22c310d78ce9630af15b0de94c18a409705b7496 |
10-Dec-2014 |
Tim Murray <timmurray@google.com> |
Revert "Revert "Bring in fixes for Cortex-A53 errata + build updates."" This reverts commit c8db087b3b6d8767db4fa54057ac8fa448d812ca.
riticalAntiDepBreaker.cpp
iveRangeEdit.cpp
achineCSE.cpp
achineLICM.cpp
achineSink.cpp
egisterCoalescer.cpp
|
6eeae0cf0069a272980de53836081a244ca5dffb |
10-Dec-2014 |
Tim Murray <timmurray@google.com> |
Revert "Apply rL216114 from upstream LLVM." This reverts commit 9156e80250ada6f6d39af3b464a918d4855f9a2a.
riticalAntiDepBreaker.cpp
|
9156e80250ada6f6d39af3b464a918d4855f9a2a |
23-Oct-2014 |
Tim Murray <timmurray@google.com> |
Apply rL216114 from upstream LLVM. bug 18094492 Change-Id: Ic049d4123b9240d89daf4f3c5e8d82e8276a84e7
riticalAntiDepBreaker.cpp
|
c8db087b3b6d8767db4fa54057ac8fa448d812ca |
23-Oct-2014 |
Tim Murray <timmurray@google.com> |
Revert "Bring in fixes for Cortex-A53 errata + build updates." This reverts commit 8a1773694c6d9b1277647440583811ad3d85c6a4. bug 18094492
riticalAntiDepBreaker.cpp
iveRangeEdit.cpp
achineCSE.cpp
achineLICM.cpp
achineSink.cpp
egisterCoalescer.cpp
|
8a1773694c6d9b1277647440583811ad3d85c6a4 |
17-Oct-2014 |
Stephen Hines <srhines@google.com> |
Bring in fixes for Cortex-A53 errata + build updates. Bug: 18034609 (cherry picked from commit bfc2d688b591c574c0cc788348c74545ce894efa) Change-Id: I010fb735bb84fe97ccb8e3878f9601cb533962f4
riticalAntiDepBreaker.cpp
iveRangeEdit.cpp
achineCSE.cpp
achineLICM.cpp
achineSink.cpp
egisterCoalescer.cpp
|
593a05ca1e177fc584cba399bf66fbf437ba75d9 |
11-Aug-2014 |
Petar Jovanovic <petar.jovanovic@imgtec.com> |
Add support for scalarizing cttz_zero_undef Follow up to r214266. Add missing case in ScalarizeVectorResult() for cttz_zero_undef. Differential Revision: http://reviews.llvm.org/D4813 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215330 91177308-0d34-0410-b5e6-96231b3b80d8 (cherry picked from commit cddb0cfe383207ccec0cc797db401854e5f0c672) Change-Id: I998526c9a9a77cb340c92ad6b292e7e5a9ba5767
electionDAG/LegalizeVectorTypes.cpp
|
f06aaf11fff0e6fa12d4ee959569a263bf7bd779 |
30-Jul-2014 |
Petar Jovanovic <petar.jovanovic@imgtec.com> |
Add support for scalarizing ctlz_zero_undef Fix the missing case in ScalarizeVectorResult() that was exposed with libclcore.bc in Android. Differential Revision: http://reviews.llvm.org/D4645 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214266 91177308-0d34-0410-b5e6-96231b3b80d8 (cherry picked from commit 63045274494a5adfedbd4de7280386948f7ca9b9) Change-Id: I38fc81e0ceefd2cfdd65d7619a62124dc4ceac6f
electionDAG/LegalizeVectorTypes.cpp
|
aa9f408cef5714fc0bc0ec61fa4016a3ba0a8c61 |
12-Sep-2014 |
Benjamin Kramer <benny.kra@googlemail.com> |
Legalizer: Use the scalar bit width when promoting bit counting instrs on vectors. e.g. when promoting ctlz from <2 x i32> to <2 x i64> we have to fixup the result by 32 bits, not 64. PR20917. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb |
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
nalysis.cpp
ndroid.mk
smPrinter/ARMException.cpp
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
smPrinter/CMakeLists.txt
smPrinter/DbgValueHistoryCalculator.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfUnit.cpp
smPrinter/DwarfUnit.h
smPrinter/EHStreamer.cpp
smPrinter/EHStreamer.h
smPrinter/Win64Exception.cpp
smPrinter/WinCodeViewLineTables.cpp
tomicExpandLoadLinkedPass.cpp
asicTargetTransformInfo.cpp
ranchFolding.cpp
MakeLists.txt
odeGenPrepare.cpp
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
lobalMerge.cpp
umpInstrTables.cpp
LVMTargetMachine.cpp
iveDebugVariables.cpp
iveDebugVariables.h
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineScheduler.cpp
asses.cpp
eepholeOptimizer.cpp
rologEpilogInserter.cpp
egAllocGreedy.cpp
egisterPressure.cpp
cheduleDAGInstrs.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ResourcePriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGVLIW.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
electionDAG/TargetSelectionDAGInfo.cpp
tackMapLivenessAnalysis.cpp
argetInstrInfo.cpp
argetLoweringBase.cpp
argetLoweringObjectFileImpl.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
llocationOrder.cpp
nalysis.cpp
ndroid.mk
smPrinter/ARMException.cpp
smPrinter/AddressPool.cpp
smPrinter/AddressPool.h
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
smPrinter/DbgValueHistoryCalculator.cpp
smPrinter/DbgValueHistoryCalculator.h
smPrinter/DebugLocEntry.h
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfFile.cpp
smPrinter/DwarfFile.h
smPrinter/DwarfStringPool.cpp
smPrinter/DwarfStringPool.h
smPrinter/DwarfUnit.cpp
smPrinter/DwarfUnit.h
smPrinter/WinCodeViewLineTables.cpp
smPrinter/WinCodeViewLineTables.h
tomicExpandLoadLinkedPass.cpp
asicTargetTransformInfo.cpp
ranchFolding.cpp
MakeLists.txt
alcSpillWeights.cpp
allingConvLower.cpp
odeGen.cpp
odeGenPrepare.cpp
riticalAntiDepBreaker.cpp
FAPacketizer.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
arlyIfConversion.cpp
dgeBundles.cpp
xecutionDepsFix.cpp
xpandISelPseudos.cpp
xpandPostRAPseudos.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
nlineSpiller.cpp
nterferenceCache.cpp
nterferenceCache.h
ntrinsicLowering.cpp
LVMTargetMachine.cpp
atencyPriorityQueue.cpp
exicalScopes.cpp
iveDebugVariables.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveIntervalUnion.cpp
iveRangeCalc.cpp
iveRangeCalc.h
iveRangeEdit.cpp
iveRegMatrix.cpp
iveStackAnalysis.cpp
iveVariables.cpp
ocalStackSlotAllocation.cpp
achineBasicBlock.cpp
achineBlockFrequencyInfo.cpp
achineBlockPlacement.cpp
achineBranchProbabilityInfo.cpp
achineCSE.cpp
achineCopyPropagation.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineInstr.cpp
achineLICM.cpp
achineModuleInfo.cpp
achinePassRegistry.cpp
achineRegisterInfo.cpp
achineSSAUpdater.cpp
achineScheduler.cpp
achineSink.cpp
achineTraceMetrics.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.cpp
asses.cpp
eepholeOptimizer.cpp
ostRASchedulerList.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
seudoSourceValue.cpp
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterClassInfo.cpp
egisterCoalescer.cpp
egisterCoalescer.h
egisterPressure.cpp
egisterScavenging.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
coreboardHazardRecognizer.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ResourcePriorityQueue.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGVLIW.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
lotIndexes.cpp
pillPlacement.cpp
pillPlacement.h
piller.cpp
plitKit.cpp
plitKit.h
tackColoring.cpp
tackMapLivenessAnalysis.cpp
tackMaps.cpp
tackProtector.cpp
tackSlotColoring.cpp
ailDuplication.cpp
argetInstrInfo.cpp
argetLoweringBase.cpp
argetLoweringObjectFileImpl.cpp
argetRegisterInfo.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
odule.modulemap
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
llocationOrder.h
nalysis.cpp
ndroid.mk
smPrinter/ARMException.cpp
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/AsmPrinterHandler.h
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/ByteStreamer.h
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
smPrinter/DebugLocEntry.h
smPrinter/DebugLocList.h
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfUnit.cpp
smPrinter/DwarfUnit.h
smPrinter/ErlangGCPrinter.cpp
smPrinter/LLVMBuild.txt
smPrinter/OcamlGCPrinter.cpp
smPrinter/Win64Exception.cpp
smPrinter/WinCodeViewLineTables.cpp
smPrinter/WinCodeViewLineTables.h
asicTargetTransformInfo.cpp
ranchFolding.cpp
MakeLists.txt
alcSpillWeights.cpp
odeGen.cpp
odeGenPrepare.cpp
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
FAPacketizer.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
arlyIfConversion.cpp
rlangGC.cpp
xecutionDepsFix.cpp
xpandISelPseudos.cpp
xpandPostRAPseudos.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
nlineSpiller.cpp
nterferenceCache.cpp
nterferenceCache.h
ntrinsicLowering.cpp
LVMBuild.txt
LVMTargetMachine.cpp
atencyPriorityQueue.cpp
exicalScopes.cpp
iveDebugVariables.cpp
iveDebugVariables.h
iveInterval.cpp
iveIntervalAnalysis.cpp
ivePhysRegs.cpp
iveRangeCalc.cpp
iveRangeEdit.cpp
iveRegMatrix.cpp
iveRegUnits.cpp
ocalStackSlotAllocation.cpp
achineBasicBlock.cpp
achineBlockFrequencyInfo.cpp
achineBlockPlacement.cpp
achineBranchProbabilityInfo.cpp
achineCSE.cpp
achineCopyPropagation.cpp
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
achineInstr.cpp
achineInstrBundle.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineRegisterInfo.cpp
achineSSAUpdater.cpp
achineScheduler.cpp
achineSink.cpp
achineTraceMetrics.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIEliminationUtils.cpp
asses.cpp
eepholeOptimizer.cpp
ostRASchedulerList.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
rologEpilogInserter.h
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterClassInfo.cpp
egisterCoalescer.cpp
egisterPressure.cpp
egisterScavenging.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
electionDAG/Android.mk
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ResourcePriorityQueue.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGVLIW.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
electionDAG/TargetSelectionDAGInfo.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
lotIndexes.cpp
pillPlacement.cpp
pillPlacement.h
piller.cpp
plitKit.cpp
tackColoring.cpp
tackMapLivenessAnalysis.cpp
tackMaps.cpp
tackProtector.cpp
tackSlotColoring.cpp
ailDuplication.cpp
argetInstrInfo.cpp
argetLoweringBase.cpp
argetLoweringObjectFileImpl.cpp
argetOptionsImpl.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
373aa5c665fe6df6b9c5586d397dc3617f25aab5 |
07-Feb-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for merge to 3.4. Update config.h files. Add RS SubtargetFeature for +long64 on ARM devices. Adjust Android.mk for added/removed files: + Delinearization.cpp - PathNumbering.cpp - PathProfileInfo.cpp - PathProfileVerifier.cpp - ProfileDataLoader.cpp - ProfileDataLoaderPass.cpp - ProfileEstimatorPass.cpp - ProfileInfo.cpp - ProfileInfoLoader.cpp - ProfileInfoLoaderPass.cpp - ProfileVerifierPass.cpp + LiveRegUnits.cpp - ShrinkWrapping.cpp + StackMaps.cpp - StrongPHIElimination.cpp + DIEHash.cpp + LegacyPassManager.cpp + ELF.cpp + Unicode.cpp - MipsOptimizeMathLibCalls.cpp - MipsELFStreamer.cpp + MipsTargetStreamer.cpp - EdgeProfiling.cpp + DataFlowSanitizer.cpp + DebugIR.cpp - OptimalEdgeProfiling.cpp - PathProfiling.cpp - ProfilingUtils.cpp - BasicBlockPlacement.cpp + LoopRerollPass.cpp + PartiallyInlineLibCalls.cpp + SampleProfile.cpp + GlobalStatus.cpp Change-Id: I17dcf0bf53a1720acd8226ae3e30d84993562a91
ndroid.mk
smPrinter/Android.mk
|
ce9904c6ea8fd669978a8eefb854b330eb9828ff |
12-Feb-2014 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/release_34' into merge-20140211 Conflicts: lib/Linker/LinkModules.cpp lib/Support/Unix/Signals.inc Change-Id: Ia54f291fa5dc828052d2412736e8495c1282aa64
|
77e30195a006a022b1554933bc766b604692b9d1 |
15-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r197047: ------------------------------------------------------------------------ r197047 | d0k | 2013-12-11 08:36:09 -0800 (Wed, 11 Dec 2013) | 3 lines SelectionDAG: Fix a typo. Found by "cppcheck". PR18208. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@197355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b1eb9dd018475d45d9a8f705441f8f6c86a8f986 |
10-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r196858: ------------------------------------------------------------------------ r196858 | nadav | 2013-12-09 17:13:59 -0800 (Mon, 09 Dec 2013) | 1 line Fix PR18162 - Incorrect assertion assumed that the SDValue resno is zero. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aee5c3e1052b2e144fdc6461bd602cdc502a93cc |
05-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert r191049 and r191059. They were causing failures. See PR17975. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d0cf77ad590633c0e10336e4c59b509140328042 |
01-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging r195823 into '.': U lib/MC/MCSectionCOFF.cpp U lib/CodeGen/TargetLoweringObjectFileImpl.cpp U test/MC/COFF/weak-symbol.ll U test/MC/COFF/tricky-names.ll G . --- Recording mergeinfo for reverse merge of r195823 into '.': G . git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196036 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
38af06736e6d46ef3d417e40b9843ca1658fc8e7 |
27-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195798: ------------------------------------------------------------------------ r195798 | rafael | 2013-11-26 17:18:37 -0800 (Tue, 26 Nov 2013) | 9 lines Use simple section names for COMDAT sections on COFF. With this patch we use simple names for COMDAT sections (like .text or .bss). This matches the MSVC behavior. When merging it is the COMDAT symbol that is used to decide if two sections should be merged, so there is no point in building a fancy name. This survived a bootstrap on mingw32. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195823 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
0ae07098f7d2ad5a1868d448d0b1b4eef2a3b091 |
27-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195148: ------------------------------------------------------------------------ r195148 | rafael | 2013-11-19 11:52:52 -0800 (Tue, 19 Nov 2013) | 15 lines Support multiple COFF sections with the same name but different COMDAT. This is the first step to fix pr17918. It extends the .section directive a bit, inspired by what the ELF one looks like. The problem with using linkonce is that given .section foo .linkonce.... .section foo .linkonce we would already have switched sections when getting to .linkonce. The cleanest solution seems to be to add the comdat information in the .section itself. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195822 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
1349899ba424eb4655c890bdfecb514682627a8d |
25-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195670: ------------------------------------------------------------------------ r195670 | void | 2013-11-25 10:05:22 -0800 (Mon, 25 Nov 2013) | 5 lines Unrevert r195599 with testcase fix. I'm not sure how it was checking for the wrong values... PR18023. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ddc3c964657cc0be4994ddfaf056d5ec6bb11e5b |
25-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195636: ------------------------------------------------------------------------ r195636 | aemerson | 2013-11-25 03:24:18 -0800 (Mon, 25 Nov 2013) | 2 lines Revert r195599 as it broke the builds. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
975e958dbc12ba412385b721100fc1c830b0e3ab |
25-Nov-2013 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Merging r195635: ------------------------------------------------------------------------ r195635 | dsanders | 2013-11-25 11:14:43 +0000 (Mon, 25 Nov 2013) | 19 lines Fixed tryFoldToZero() for vector types that need expansion. Summary: Moved the requirement for SelectionDAG::getConstant() to return legally typed nodes slightly earlier. There were two optional DAGCombine passes that were missed out and were required to produce type-legal DAGs. Simplified a code-path in tryFoldToZero() to use SelectionDAG::getConstant(). This provides support for both promoted and expanded vector types whereas the previous code only supported promoted vector types. Fixes a "Type for zero vector elements is not legal" assertion detected by an llvm-stress generated test. Reviewers: resistor CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2251 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195651 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
|
f02a188899769cde2315c964f0fbed1d024b7514 |
25-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195491: ------------------------------------------------------------------------ r195491 | probinson | 2013-11-22 11:11:24 -0800 (Fri, 22 Nov 2013) | 11 lines Teach ISel not to optimize 'optnone' functions (revised). Improvements over r195317: - Set/restore EnableFastISel flag instead of just running FastISel within SelectAllBasicBlocks; the flag is checked in various places, and FastISel won't run properly if those places don't do the right thing. - Test looks for normal ISel versus FastISel behavior, and not something more subtle that doesn't work everywhere. Based on work by Andrea Di Biagio. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e1679735d6df98bd71808f3c34a32599de0f40a1 |
25-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195599: ------------------------------------------------------------------------ r195599 | void | 2013-11-24 21:01:21 -0800 (Sun, 24 Nov 2013) | 4 lines Don't look past volatile loads. A volatile load should block us from trying to coalesce stores. PR18023 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f0061998dd1256df1ba933e80fdad2f594ea3f50 |
22-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195398: ------------------------------------------------------------------------ r195398 | tstellar | 2013-11-21 16:41:05 -0800 (Thu, 21 Nov 2013) | 7 lines SelectionDAG: Optimize expansion of vec_type = BITCAST scalar_type The legalizer can now do this type of expansion for more type combinations without loading and storing to and from the stack. NOTE: This is a candidate for the 3.4 branch. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
f62b274a93d4014d56fa3a656f4fac6e7d827358 |
22-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195397: ------------------------------------------------------------------------ r195397 | tstellar | 2013-11-21 16:39:23 -0800 (Thu, 21 Nov 2013) | 11 lines Split SETCC if VSELECT requires splitting too. This patch is a rewrite of the original patch commited in r194542. Instead of relying on the type legalizer to do the splitting for us, we now peform the splitting ourselves in the DAG combiner. This is necessary for the case where the vector mask is a legal type after promotion and still wouldn't require splitting. Patch by: Juergen Ributzka NOTE: This is a candidate for the 3.4 branch. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195413 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
ee287ca22abcce9f769618c107ff3f46aa2d0cba |
22-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195156: ------------------------------------------------------------------------ r195156 | ributzka | 2013-11-19 13:20:17 -0800 (Tue, 19 Nov 2013) | 3 lines [DAG] Refactor vector splitting code in SelectionDAG. No functional change intended. Reviewed by Tom ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195412 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
54075bbea7e70fea6cdb9e5e89b066118c1d314b |
21-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195339: ------------------------------------------------------------------------ r195339 | chapuni | 2013-11-21 02:55:15 -0800 (Thu, 21 Nov 2013) | 5 lines Revert r195317 (and r195333), "Teach ISel not to optimize 'optnone' functions." It broke, at least, i686 target. It is reproducible with "llc -mtriple=i686-unknown". FYI, it didn't appear to add either "-O0" or "-fast-isel". ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4e2d2f091e88dd83d1685173d2c0692d8ae155e6 |
21-Nov-2013 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Merging r195355: ------------------------------------------------------------------------ r195355 | dsanders | 2013-11-21 13:24:49 +0000 (Thu, 21 Nov 2013) | 20 lines Add support for legalizing SETNE/SETEQ by inverting the condition code and the result of the comparison. Summary: LegalizeSetCCCondCode can now legalize SETEQ and SETNE by returning the inverse condition and requesting that the caller invert the result of the condition. The caller of LegalizeSetCCCondCode must handle the inverted CC, and they do so as follows: SETCC, BR_CC: Invert the result of the SETCC with SelectionDAG::getNOT() SELECT_CC: Swap the true/false operands. This is necessary for MSA which lacks an integer SETNE instruction. Reviewers: resistor CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2229 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195363 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0a0da619eb7a072836cf2c5debee1c5c7c8f5496 |
21-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195317: ------------------------------------------------------------------------ r195317 | probinson | 2013-11-20 22:33:32 -0800 (Wed, 20 Nov 2013) | 4 lines Teach ISel not to optimize 'optnone' functions. Based on work by Andrea Di Biagio. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3773bef110790fbeeb386b083bdf8ad16bbceb91 |
20-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195138: ------------------------------------------------------------------------ r195138 | atrick | 2013-11-19 10:29:45 -0800 (Tue, 19 Nov 2013) | 3 lines Obvious pasto survived a couple rounds of cleanup. Caught by Aaron Ballman. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195219 91177308-0d34-0410-b5e6-96231b3b80d8
tackMaps.cpp
|
c00090b16b2b35f2d042d965945c4246d13321b5 |
19-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195103: ------------------------------------------------------------------------ r195103 | atrick | 2013-11-18 21:05:43 -0800 (Mon, 18 Nov 2013) | 1 line Fix patchpoint comments. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195115 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
72ef53ad21cf2df7cdf6f2a0470b4eaa98d9e7ed |
19-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195093: ------------------------------------------------------------------------ r195093 | atrick | 2013-11-18 19:29:56 -0800 (Mon, 18 Nov 2013) | 4 lines Add an abstraction to handle patchpoint operands. Hard-coded operand indices were scattered throughout lowering stages and layers. It was super bug prone. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195112 91177308-0d34-0410-b5e6-96231b3b80d8
tackMaps.cpp
|
354362524a72b3fa43a6c09380b7ae3b2380cbba |
19-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[weak vtables] Remove a bunch of weak vtables This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. The memory leaks in this version have been fixed. Thanks Alexey for pointing them out. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195064 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
achineScheduler.cpp
egAllocBase.cpp
egAllocBase.h
|
8da7540802d67336892deeac3385442e0400333c |
19-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfDebug: Move trailing else to the same line as prior closing brace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195060 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d6dffb40cb05909dd6289e6dc37c25359ab14b52 |
19-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfDebug: Remove some more redundant explicit constructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195059 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4adba52570723c2e1654b1c01feddf759893f096 |
19-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Simplify a few more explicit constructions, underconstrained types, and make DIType(MDNode*) explicit like all the other DI* node ctors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
b21ab43cfc3fa0dacf5c95f04e58b6d804b59a16 |
18-Nov-2013 |
Alexey Samsonov <samsonov@google.com> |
Revert r194865 and r194874. This change is incorrect. If you delete virtual destructor of both a base class and a subclass, then the following code: Base *foo = new Child(); delete foo; will not cause the destructor for members of Child class. As a result, I observe plently of memory leaks. Notable examples I investigated are: ObjectBuffer and ObjectBufferStream, AttributeImpl and StringSAttributeImpl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194997 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
achineScheduler.cpp
egAllocBase.cpp
egAllocBase.h
|
17a88a7e8b8ad2f0766c4099d09cd29229296352 |
17-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary temporary construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
fbf70b383d170e00d5104b22f1bda604214d6c30 |
17-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove redundant explicit default initialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194980 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
08e51e1d97e4dd2e5a0b4539da186869916ae5c3 |
17-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Add type safety to createGlobalVariableDIE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194979 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
fe128c6ac8a6ae6aa85f0168f99d9c28de010fd8 |
17-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert "Micro-optimization" This reverts commit f1d9fe9d04ce93f6d5dcebbd2cb6a07414d7a029. This was causing PR17964. We need to use thread data before regular data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194960 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
d5ae5b018644345ba0fc48a47030ef1105e1abfd |
17-Nov-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Partially revert r192795, getNOT was fixed not to create illegal constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ca1b7799aaeeeb0c6af80fa31fb8f74e79ab2967 |
17-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Use more getZExtOrTruncs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194945 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
|
91053d585abf6b20b770532d007a8b7648d0621f |
17-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Use getZExtOrTrunc instead of repeating the same logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194944 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bb756ca24401e190e3b704e5d92759c7a79cc6b7 |
17-Nov-2013 |
Andrew Trick <atrick@apple.com> |
Added a size field to the stack map record to handle subregister spills. Implementing this on bigendian platforms could get strange. I added a target hook, getStackSlotRange, per Jakob's recommendation to make this as explicit as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194942 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
tackMaps.cpp
argetInstrInfo.cpp
|
94437c9691d538cc5d3862660c79fce2a32e2279 |
17-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Use right address space pointer size git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e6e811277f045ee3d61cd62622d71005c47eb48d |
16-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix assert on unaligned access to global with different address space size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4fe5b640ee935f983db9445dc9fdb4009d4fa639 |
16-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix codegen for null different sized pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1dc27239969889661115f40b293c83ab9ff3efd5 |
16-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Push type safety of DIDescriptor through CompileUnit::createAndAddDIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194902 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
21c9708c0909a4373d04f0910ab0cb05b94f25ef |
16-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Remove unnecessary OwningPtr<T>::get() call git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194901 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
87fd14d9b52079828c5db4e1e4878046a7488f81 |
16-Nov-2013 |
Eric Christopher <echristo@gmail.com> |
For dwarf4 use the correct form for referencing debug_loc locations, and update test cases accordingly. This doesn't affect the output dumped using llvm-dwarfdump, but readelf does now dump the debug_loc section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194898 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
7b8677109452dc3f106f931edab2d1ccaf1d06b1 |
16-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Add type safety to CompileUnit::getNode by returning DICompileUnit instead of a raw MDNode*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194895 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
942431fa710f186f11538eebdf3dc4a6b824a6ba |
16-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Add type safety by using DICompileUnit rather than raw MDNode* for the CU metadata node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194893 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
aedaa723c26c33d4f9497a79d9d74a3c197fa262 |
16-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Simplify getLanguage() calls to use existing member function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194892 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
6bc810a49983e12006ba7a0dba61f7b2534b8f26 |
16-Nov-2013 |
Adrian Prantl <aprantl@apple.com> |
Replace the dangling context hotfix with an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194883 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
14f41e7e1811b0c504c82865bd6828acfee82527 |
16-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfDebug: Push DISubprogram through updateSubprogramScopeDIE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194879 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
cbc85a270d2546c49fc09f700687de2ecd46bd87 |
16-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Push DIDescriptors through a getDIE/insertDIE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
86a33487376848a606fdc629ffce2a581ae45653 |
15-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit: Push DIDescriptor usage out from isShareableAcrossCUs This is the first of a few similar patches. We'll see how far it goes/makes sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194871 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5a364c5561ec04e33a6f5d52c14f1bac6f247ea0 |
15-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[weak vtables] Remove a bunch of weak vtables This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194865 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
achineScheduler.cpp
egAllocBase.cpp
egAllocBase.h
|
17d4ac8c461fb3c32483cf7a37bc52937caeb650 |
15-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix confusing machine verifier error. The error reported the number of explicit operands, but that isn't what is checked. In my case, this resulted in the confusing errors "Too few operands." followed shortly by "8 operands expected, but 8 given." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194862 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
0cbdb81de76274c3f1731d92dc09864d2277d690 |
15-Nov-2013 |
Adrian Prantl <aprantl@apple.com> |
Reimplement r194843 in a slightly less broken way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194848 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
7d5f2bd5f9615c0f20d3a1f75ec01452d813283b |
15-Nov-2013 |
Adrian Prantl <aprantl@apple.com> |
Restore the behaviour from before r194728. If getDIE() fails, getOrCreateContextDIE() should also return the CUDie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
cc7052343e5e955d4e2f48885c06360f9003390a |
15-Nov-2013 |
Bob Wilson <bob.wilson@apple.com> |
Avoid illegal integer promotion in fastisel Stop folding constant adds into GEP when the type size doesn't match. Otherwise, the adds' operands are effectively being promoted, changing the conditions of an overflow. Results are different when: sext(a) + sext(b) != sext(a + b) Problem originally found on x86-64, but also fixed issues with ARM and PPC, which used similar code. <rdar://problem/15292280> Patch by Duncan Exon Smith! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ea28aafa83fc2b6dd632041278c9a18e5a2b2b41 |
15-Nov-2013 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type Summary: When getConstant() is called for an expanded vector type, it is split into multiple scalar constants which are then combined using appropriate build_vector and bitcast operations. In addition to the usual big/little endian differences, the case where the element-order of the vector does not have the same endianness as the elements themselves is also accounted for. For example, for v4i32 on big-endian MIPS, the byte-order of the vector is <3210,7654,BA98,FEDC>. For little-endian, it is <0123,4567,89AB,CDEF>. Handling this case turns out to be a nop since getConstant() returns a splatted vector (so reversing the element order doesn't change the value) This fixes a number of cases in MIPS MSA where calling getConstant() during operation legalization introduces illegal types (e.g. to legalize v2i64 UNDEF into a v2i64 BUILD_VECTOR of illegal i64 zeros). It should also handle bigger differences between illegal and legal types such as legalizing v2i64 into v8i16. lowerMSASplatImm() in the MIPS backend no longer needs to avoid calling getConstant() so this function has been updated in the same patch. For the sake of transparency, the steps I've taken since the review are: * Added 'virtual' to isVectorEltOrderLittleEndian() as requested. This revealed that the MIPS tests were falsely passing because a polymorphic function was not actually polymorphic in the reviewed patch. * Fixed the tests that were now failing. This involved deleting the code to handle the MIPS MSA element-order (which was previously doing an byte-order swap instead of an element-order swap). This left isVectorEltOrderLittleEndian() unused and it was deleted. * Fixed build failures caused by rebasing beyond r194467-r194472. These build failures involved the bset, bneg, and bclr instructions added in these commits using lowerMSASplatImm() in a way that was no longer valid after this patch. Some of these were fixed by calling SelectionDAG::getConstant() instead, others were fixed by a new function getBuildVectorSplat() that provided the removed functionality of lowerMSASplatImm() in a more sensible way. Reviewers: bkramer Reviewed By: bkramer CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1973 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194811 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
509a492442b7e889d615d3b451629c81a810aef1 |
15-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add target hook to prevent folding some bitcasted loads. This is to avoid this transformation in some cases: fold (conv (load x)) -> (load (conv*)x) On architectures that don't natively support some vector loads efficiently casting the load to a smaller vector of larger types and loading is more efficient. Patch by Micah Villmow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7b641815290f34f0212e4cb7b26ed1708270cb97 |
15-Nov-2013 |
Eric Christopher <echristo@gmail.com> |
Use a reference rather than a pointer as we don't expect a NULL DbgVariable. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194761 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
59d3ae6cdc4316ad338cd848251f33a236ccb36c |
15-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add addrspacecast instruction. Patch by Michele Scandale! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194760 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGDumper.cpp
argetLoweringBase.cpp
|
849596ced42f2760c5b63f7676e16829b808b5c9 |
15-Nov-2013 |
Andrew Trick <atrick@apple.com> |
When folding memory operands, preserve existing MachineMemOperands. This comes into play with patchpoint, which can fold multiple operands. Since the patchpoint is already treated as a call, the machine mem operands won't affect anything, and there's nothing to test. But we still want to do the right thing here to be sure that our MIs obey the rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194750 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfo.cpp
|
41e1a18885b8ef29219b7102ad25cd480c4a3f55 |
14-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Simplify/narrow null-check for getOrCreateType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
8c0fecc39fe7f0928a7592104b4419022ad4b54e |
14-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfCompileUnit::getOrCreateContext: Return the compile unit DIE rather than null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194728 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
f4837be7c1d8f2a9e90100e849b148eb86a2d27e |
14-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary 'else' after return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194724 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
3d47402f2e8701c7ed340884720cc99727bd7f85 |
14-Nov-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Error if we see an alias to a declaration. In ELF and COFF an alias is just another offset in a section. There is no way to represent an alias to something in another file. In MachO, the spec has the N_INDR type which should allow for exactly that, but is not currently implemented. Given that it is specified but not implemented, we error in codegen to avoid miscompiling but don't reject aliases to declarations in the verifier to leave the option open of implementing it. In the past we have used alias to declarations as a way of implementing weakref, which is why it exists in some old tests which this patch updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
72cf01cc7c8f668a17e7fdfe6aaed50e164cac1b |
14-Nov-2013 |
Andrew Trick <atrick@apple.com> |
Minor extension to llvm.experimental.patchpoint: don't require a call. If a null call target is provided, don't emit a dummy call. This allows the runtime to reserve as little nop space as it needs without the requirement of emitting a call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a9a8f0f432966438800ffabb1b740a4cc8cd2599 |
13-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Move header include to be first in the implementation file to flush out header inclusion ordering issues git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194588 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
c7e77f91fecd662b198939a9a8ee0a0cc3828fc4 |
13-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too. This patch reapplies r193676 with an additional fix for the Hexagon backend. The SystemZ backend has already been fixed by r194148. The Type Legalizer recognizes that VSELECT needs to be split, because the type is to wide for the given target. The same does not always apply to SETCC, because less space is required to encode the result of a comparison. As a result VSELECT is split and SETCC is unrolled into scalar comparisons. This commit fixes the issue by checking for VSELECT-SETCC patterns in the DAG Combiner. If a matching pattern is found, then the result mask of SETCC is promoted to the expected vector mask type for the given target. Now the type legalizer will split both VSELECT and SETCC. This allows the following X86 DAG Combine code to sucessfully detect the MIN/MAX pattern. This fixes PR16695, PR17002, and <rdar://problem/14594431>. Reviewed by Nadav git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
eb3602472026dc029beb45ccbe09bc84162ba949 |
13-Nov-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Replacing HUGE_VALF with llvm::huge_valf in order to work around a warning triggered in MSVC 12. Patch reviewed by Reid Kleckner and Jim Grosbach. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194533 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocGreedy.cpp
piller.cpp
|
d736763847cee94c40a7f4d106cad91445834b7c |
11-Nov-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
CalcSpillWeights: allow overidding the spill weight normalizing function This will enable the PBQP register allocator to provide its own normalizing function. No functionnal change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194417 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
095f994ba63994e8eb4b77127f9b872429496dba |
11-Nov-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
CalcSpillWeights: give a better describing name to calculateSpillWeights Besides, this relates it more obviously to the VirtRegAuxInfo::calculateSpillWeightAndHint. No functionnal change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194404 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveRangeEdit.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
|
953398916cfd6ee035f6f4bd2dde25c21cdde1fe |
11-Nov-2013 |
Eric Christopher <echristo@gmail.com> |
Unify the adding of enumerators with the construction of the enumeration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194401 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
6129002232c3dda7ca4ef95bba77a829ddf241f4 |
11-Nov-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
62af0c295a7e79384305557985d09de85916b4b5 |
11-Nov-2013 |
Eric Christopher <echristo@gmail.com> |
80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194399 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
883ed6bd9544e7fac36a66711132bf151fb734ad |
11-Nov-2013 |
Eric Christopher <echristo@gmail.com> |
Just pass the DIComposite type by value instead of by pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194398 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
028e4d27b1afc62be0687e9c3b57992c36852938 |
11-Nov-2013 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Vector forms of SHL, SRA, and SRL can be constant folded using SimplifyVBinOp too Reviewers: dsanders Reviewed By: dsanders CC: llvm-commits, nadav Differential Revision: http://llvm-reviews.chandlerc.com/D1958 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194393 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a77da0579bc141eba62760e21a216e5d3eafd792 |
10-Nov-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
CalculateSpillWeights does not need to be a pass Based on discussions with Lang Hames and Jakob Stoklund Olesen at the hacker's lab, and in the light of upcoming work on the PBQP register allocator, it was though that CalcSpillWeights does not need to be a pass. This change will enable to customize / tune the spill weight computation depending on the allocator. Update the documentation style while there. No functionnal change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194356 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
odeGen.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
|
6d9e013447efb7f9fbed8d3348d6dbde208f32a7 |
10-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Use type form of getIntPtrType. This should be inconsequential and is work towards removing the default address space arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194347 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ntrinsicLowering.cpp
|
a91d7b170b57e3ccb715e331575ef198e51cd304 |
09-Nov-2013 |
Lang Hames <lhames@gmail.com> |
Re-apply r194300 with fixes for warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194311 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
ceb0d9c085492151f8e4538119bf3de29ff935c0 |
09-Nov-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r194300 which broke the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194308 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
d4f5a615674aaabeee4e444e708d1fa00a41495e |
09-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[Stackmap] Materialize the jump address within the patchpoint noop slide. This patch moves the jump address materialization inside the noop slide. This enables patching of the materialization itself or its complete removal. This patch also adds the ability to define scratch registers that can be used safely by the code called from the patchpoint intrinsic. At least one scratch register is required, because that one is used for the materialization of the jump address. This patch depends on D2009. Differential Revision: http://llvm-reviews.chandlerc.com/D2074 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
fc93ae629e49b00fc1cc536d93f1b106bcd0937d |
09-Nov-2013 |
Lang Hames <lhames@gmail.com> |
Rewrite the PBQP graph data structure. The new graph structure replaces the node and edge linked lists with vectors. Free lists (well, free vectors) are used for fast insertion/deletion. The ultimate aim is to make PBQP graphs cheap to clone. The motivation is that the PBQP solver destructively consumes input graphs while computing a solution, forcing the graph to be fully reconstructed for each round of PBQP. This imposes a high cost on large functions, which often require several rounds of solving/spilling to find a final register allocation. If we can cheaply clone the PBQP graph and incrementally update it between rounds then hopefully we can reduce this cost. Further, once we begin pooling matrix/vector values (future work), we can cache some PBQP solver metadata and share it between cloned graphs, allowing the PBQP solver to re-use some of the computation done in earlier rounds. For now this is just a data structure update. The allocator and solver still use the graph the same way as before, fully reconstructing it between each round. I expect no material change from this update, although it may change the iteration order of the nodes, causing ties in the solver to break in different directions, and this could perturb the generated allocations (hopefully in a completely benign way). Thanks very much to Arnaud Allard de Grandmaison for encouraging me to get back to work on this, and for a lot of discussion and many useful PBQP test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194300 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
623d2e618f4e672c47edff9ec63ed6d733ac81d3 |
09-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[Stackmap] Add AnyReg calling convention support for patchpoint intrinsic. The idea of the AnyReg Calling Convention is to provide the call arguments in registers, but not to force them to be placed in a paticular order into a specified set of registers. Instead it is up tp the register allocator to assign any register as it sees fit. The same applies to the return value (if applicable). Differential Revision: http://llvm-reviews.chandlerc.com/D2009 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
tackMaps.cpp
|
d900b1179535298510490030a5d2ecce93f79eb0 |
08-Nov-2013 |
Pedro Artigas <partigas@apple.com> |
increase the accuracy of register pressure computation in the presence of dead definitions by using live intervals, if available, to identify dead definitions and proceed accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194286 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
egisterPressure.cpp
|
de753f48535fb19cdd967af3bc3a743fa2a675ff |
08-Nov-2013 |
Lang Hames <lhames@gmail.com> |
Fix some minor issues with r194282 to get the tree healthy again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194284 91177308-0d34-0410-b5e6-96231b3b80d8
tackMaps.cpp
|
c87e4380542c0e15cdaa480716da1434284feb93 |
08-Nov-2013 |
Lang Hames <lhames@gmail.com> |
Add a method to get the object-file appropriate stack map section. Thanks to Eric Christopher for the tips on the appropriate way to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194282 91177308-0d34-0410-b5e6-96231b3b80d8
tackMaps.cpp
|
d241fa7a61682a15b753c52afee07dfbf1b3bd1f |
08-Nov-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
Revert "CalculateSpillWeights does not need to be a pass" Temporarily revert my previous commit until I understand why it breaks 3 target tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194272 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
odeGen.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
|
f0c6ab6f00861fd97ad593cfc6d841082e4b4bd1 |
08-Nov-2013 |
Quentin Colombet <qcolombet@apple.com> |
[VirtRegMap] Fix for PR17825. Do not ignore noreturn definitions when setting isPhysRegUsed if the unwind information is required. Indeed, the runtime may need a correct stack to be able to unwind the call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194271 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
663fcde3d33e44a9b543a692ad29873bd1ddc403 |
08-Nov-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
CalculateSpillWeights does not need to be a pass Based on discussions with Lang Hames and Jakob Stoklund Olesen at the hacker's lab, and in the light of upcoming work on the PBQP register allocator, it was though that CalcSpillWeights does not need to be a pass. This change will enable to customize / tune the spill weight computation depending on the allocator. Update the documentation style while there. No functionnal change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194269 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
odeGen.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
|
bf1757d5a100ef08e5e9b31b8dce5f5aad320197 |
08-Nov-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
CalculateSpillWeights cleanup: remove unneeded includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194259 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
dc8224def3d88915b0ff830687815a9a0aad5f63 |
05-Nov-2013 |
Andrew Trick <atrick@apple.com> |
Slightly change the way stackmap and patchpoint intrinsics are lowered. MorphNodeTo is not safe to call during DAG building. It eagerly deletes dependent DAG nodes which invalidates the NodeMap. We could expose a safe interface for morphing nodes, but I don't think it's worth it. Just create a new MachineNode and replaceAllUsesWith. My understaning of the SD design has been that we want to support early target opcode selection. That isn't very well supported, but generally works. It seems reasonable to rely on this feature even if it isn't widely used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
31ed50c225c8de764c899e31ab4e25f242ce0b78 |
02-Nov-2013 |
Eric Christopher <echristo@gmail.com> |
Comment some and reformat for clarity beginFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193894 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
26cc826a0e4693b861776d6b349d41d0e5c2678e |
01-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[Stackmap] Remove erroneous assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
19794da02cc48a772ae6f4756b14b111a627170e |
01-Nov-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove linkonce_odr_auto_hide. linkonce_odr_auto_hide was in incomplete attempt to implement a way for the linker to hide symbols that are known to be available in every TU and whose addresses are not relevant for a particular DSO. It was redundant in that it all its uses are equivalent to linkonce_odr+unnamed_addr. Unlike those, it has never been connected to clang or llvm's optimizers, so it was effectively dead. Given that nothing produces it, this patch just nukes it (other than the llvm-c enum value). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193865 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
307cfaeaf0bc629357725fb0c471e45319d48ff1 |
01-Nov-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Commenting out this assert because it is causing the build bots to fail. This effectively reverts r193861, but needs to be fixed as part of r193769. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193862 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8d13de3f0900e674920921bfb2d1b4c1893c0f27 |
01-Nov-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Fixing an order of evaluation error in an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9b93392185d3838cc438629981d7c3fee634176d |
01-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Emit member variable locations as data instead of expressions in blocks Drive by space optimization. Also makes the DIEs more regular which might speed up DWARF parsing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193835 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
21cd360f521af405282effa0dd6743018385c9ce |
31-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Unused variable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193819 91177308-0d34-0410-b5e6-96231b3b80d8
tackMaps.cpp
|
3d74dea4bddc84d1881efc21eb5eefbddbfa9aed |
31-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Add support for stack map generation in the X86 backend. Originally implemented by Lang Hames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193811 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
electionDAG/SelectionDAGBuilder.cpp
tackMaps.cpp
|
b8b70e10a2b3f252314e0d176379778fe8f3b582 |
31-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: remove duplication of DIEs when a DIE can be shared across CUs. We add a map in DwarfDebug to map MDNodes that are shareable across CUs to the corresponding DIEs: MDTypeNodeToDieMap. These DIEs can be shared across CUs, that is why we keep the maps in DwarfDebug instead of CompileUnit. We make the assumption that if a DIE is not added to an owner yet, we assume it belongs to the current CU. Since DIEs for the type system are added to their owners immediately after creation, and other DIEs belong to the current CU, the assumption should be true. A testing case is added to show that we only create a single DIE for a type MDNode and we use ref_addr to refer to the type DIE. We also add a testing case to show ref_addr relocations for non-darwin platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2343e3b228c02896f4779962a91aaa659356fe2a |
31-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Lower stackmap intrinsics directly to their target opcode in the DAG builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193769 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/TargetLowering.cpp
|
cf940ceff73f567876f1a1f62d3acbf67c43ea90 |
31-Oct-2013 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
83dd2ae095626d8e461f8a69214ec2b97ff18c2f |
31-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the --shrink-wrap option. It had no tests, was unused and was "experimental at best". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193749 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
rologEpilogInserter.cpp
rologEpilogInserter.h
hrinkWrapping.cpp
|
0e536ee4cae5f7359e8a8db99edadc39a5c12132 |
31-Oct-2013 |
Jim Grosbach <grosbach@apple.com> |
Legalize: Improve legalization of long vector extends. When an extend more than doubles the size of the elements (e.g., a zext from v16i8 to v16i32), the normal legalization method of splitting the vectors will run into problems as by the time the destination vector is legal, the source vector is illegal. The end result is the operation often becoming scalarized, with the typical horrible performance. For example, on x86_64, the simple input of: define void @bar(<16 x i8> %a, <16 x i32>* %p) nounwind { %tmp = zext <16 x i8> %a to <16 x i32> store <16 x i32> %tmp, <16 x i32>*%p ret void } Generates: .section __TEXT,__text,regular,pure_instructions .section __TEXT,__const .align 5 LCPI0_0: .long 255 ## 0xff .long 255 ## 0xff .long 255 ## 0xff .long 255 ## 0xff .long 255 ## 0xff .long 255 ## 0xff .long 255 ## 0xff .long 255 ## 0xff .section __TEXT,__text,regular,pure_instructions .globl _bar .align 4, 0x90 _bar: vpunpckhbw %xmm0, %xmm0, %xmm1 vpunpckhwd %xmm0, %xmm1, %xmm2 vpmovzxwd %xmm1, %xmm1 vinsertf128 $1, %xmm2, %ymm1, %ymm1 vmovaps LCPI0_0(%rip), %ymm2 vandps %ymm2, %ymm1, %ymm1 vpmovzxbw %xmm0, %xmm3 vpunpckhwd %xmm0, %xmm3, %xmm3 vpmovzxbd %xmm0, %xmm0 vinsertf128 $1, %xmm3, %ymm0, %ymm0 vandps %ymm2, %ymm0, %ymm0 vmovaps %ymm0, (%rdi) vmovaps %ymm1, 32(%rdi) vzeroupper ret So instead we can check if there are legal types that enable us to split more cleverly when the input vector is already legal such that we don't turn it into an illegal type. If the extend is such that it's more than doubling the size of the input we check if - the number of vector elements is even, - the source type is legal, - the type of a split source is illegal, - the type of an extended (by doubling element size) source is legal, and - the type of that extended source when split is legal. If the conditions are met, instead of just splitting both the destination and the source types, we create an extend that only goes up one "step" (doubling the element width), and the continue legalizing the rest of the operation normally. The result is that this operates as a new, more effecient, termination condition for the loop of "split the operation until the destination type is legal." With this change, the above example now compiles to: _bar: vpxor %xmm1, %xmm1, %xmm1 vpunpcklbw %xmm1, %xmm0, %xmm2 vpunpckhwd %xmm1, %xmm2, %xmm3 vpunpcklwd %xmm1, %xmm2, %xmm2 vinsertf128 $1, %xmm3, %ymm2, %ymm2 vpunpckhbw %xmm1, %xmm0, %xmm0 vpunpckhwd %xmm1, %xmm0, %xmm3 vpunpcklwd %xmm1, %xmm0, %xmm0 vinsertf128 $1, %xmm3, %ymm0, %ymm0 vmovaps %ymm0, 32(%rdi) vmovaps %ymm2, (%rdi) vzeroupper ret This generalizes a custom lowering that was added a while back to the ARM backend. That lowering is no longer necessary, and is removed. The testcases for it, however, provide excellent ARM tests for this change and so remain. rdar://14735100 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
4f17f88071260cecffd96c272098549ac5887523 |
31-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix CodeGen for unaligned loads with address spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2cc546db188d5e4d4537681cab3d52781125518c |
30-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Produce .weak_def_can_be_hidden for some linkonce_odr values With this patch llvm produces a weak_def_can_be_hidden for linkonce_odr if they are also unnamed_addr or don't have their address taken. There is not a lot of documentation about .weak_def_can_be_hidden, but from the old discussion about linkonce_odr_auto_hide and the name of the directive this looks correct: these symbols can be hidden. Testing this with the ld64 in Xcode 5 linking clang reduces the number of exported symbols from 21053 to 19049. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193718 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1d36113c05e611c0fba9b872b5f03eca9848bd69 |
30-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Push header handling down into CompileUnit This is a preliminary step to handling type units by abstracting over all (type or compile) units. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
8e8e6dc41ff295a297fb517683be89b5509dabc2 |
30-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DwarfDebug: Change Abbreviations member from pointer to reference git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193699 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9a5df73e32819c45884feee6bd49e7ebe911f977 |
30-Oct-2013 |
Juergen Ributzka <juergen@apple.com> |
Revert "SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too." Now Hexagon and SystemZ are not happy with it :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
4eced19c505bb32dc210a18e87624f64d011894c |
30-Oct-2013 |
Juergen Ributzka <juergen@apple.com> |
SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too. The Type Legalizer recognizes that VSELECT needs to be split, because the type is to wide for the given target. The same does not always apply to SETCC, because less space is required to encode the result of a comparison. As a result VSELECT is split and SETCC is unrolled into scalar comparisons. This commit fixes the issue by checking for VSELECT-SETCC patterns in the DAG Combiner. If a matching pattern is found, then the result mask of SETCC is promoted to the expected vector mask type for the given target. This mask has usually the same size as the VSELECT return type (except for Intel KNL). Now the type legalizer will split both VSELECT and SETCC. This allows the following X86 DAG Combine code to sucessfully detect the MIN/MAX pattern. This fixes PR16695, PR17002, and <rdar://problem/14594431>. Reviewed by Nadav git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
62406fdc6f199e4e7df60830be45de4da97b34c7 |
30-Oct-2013 |
Josh Magee <joshua_magee@playstation.sony.com> |
Reformat code with clang-format. Differential Revision: http://llvm-reviews.chandlerc.com/D2057 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193672 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
38856f8bed12da9459a3eb958a1c8df68bf0aced |
30-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: code clean up. Use EmitLabelOffsetDifference for handling on darwin platform when non-darwin platforms use EmitLabelPlusOffset. Also fix a bug in EmitLabelOffsetDifference where the size is hard-coded to 4 even though Size is passed in as an argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193660 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
3eabc2adb7387c97da547e250997ed0a8d5e6d3d |
29-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: support for DW_FORM_ref_addr. To support ref_addr, we calculate the section offset of a DIE (i.e. offset of a DIE from beginning of the debug info section). The Offset field in DIE is currently CU-relative. To calculate the section offset, we add a DebugInfoOffset field in CompileUnit to store the offset of a CU from beginning of the debug info section. We set the value in DwarfUnits::computeSizeAndOffset for each CompileUnit. A helper function DIE::getCompileUnit is added to return the CU DIE that the input DIE belongs to. We also add a map CUDieMap in DwarfDebug to help finding the CU for a given CU DIE. For a cross-referenced DIE, we first find the CU DIE it belongs to with getCompileUnit, then we use CUDieMap to get the corresponding CU for the CU DIE. Adding the section offset of the CU with the CU-relative offset of a DIE gives us the seciton offset of the DIE. We correctly emit ref_addr with relocation using EmitLabelPlusOffset when doesDwarfUseRelocationsAcrossSections is true. This commit handles the emission of DW_FORM_ref_addr when we have an attribute with FORM_ref_addr. A follow-on patch will start using ref_addr when adding a DIEEntry. This commit will be tested and verified in the follow-on patch. Reviewed off-list by Eric, Thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193658 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d498e5e960f237d3eb04ad7680bd093d1954c7fe |
29-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: instead of calling addToContextOwner which constructs the context after the DIE creation, we construct the context first. Ensure that we create the context before we create a type so that we can add the newly created type to the parent. Remove last use of addToContextOwner now that it's not needed. We use createAndAddDIE to wrap around "new DIE(". Now all shareable DIEs should be added to their parents right after the creation. Reviewed off-list by Eric, Thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193657 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
4598b40ce62dceb5ff96bbb7caeebd1ca57ae3fe |
29-Oct-2013 |
Josh Magee <joshua_magee@playstation.sony.com> |
[stackprotector] Update the StackProtector pass to perform datalayout analysis. This modifies the pass to classify every SSP-triggering AllocaInst according to an SSPLayoutKind (LargeArray, SmallArray, AddrOf). This analysis is collected by the pass and made available for use, but no other pass uses it yet. The next patch will make use of this analysis in PEI and StackSlot passes. The end goal is to support ssp-strong stack layout rules. WIP. Differential Revision: http://llvm-reviews.chandlerc.com/D1789 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193653 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
93cf0939f95b3d580d9c05375a7c84164e1ba72e |
29-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move getSymbol to TargetLoweringObjectFile. This allows constructing a Mangler with just a TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193630 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
ffc7dca885151ed42642c2d6733e8db75d276621 |
29-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add a helper getSymbol to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193627 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfCompileUnit.cpp
|
6b713800ff03fdbb1d770d1e00af0e76041f3c03 |
29-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: instead of calling addToContextOwner which constructs the context after the DIE creation, we construct the context first. This touches creation of namespaces and global variables. The purpose is to handle all DIE creations similarly: constructs the context first, then creates the DIE and immediately adds the DIE to its parent. We use createAndAddDIE to wrap around "new DIE(". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
18a988e3a76eb0f8783d115618e48466854f5901 |
29-Oct-2013 |
Alp Toker <alp@nuanti.com> |
Fix "existant" typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8ef9cebb68d6305e197c3e0b8369aa3c57570bbf |
29-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: use createAndAddDIE to wrap around "new DIE" in DwarfDebug. This commit ensures DIEs are constructed within a compile unit and immediately added to their parents. Reviewed off-list by Eric. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193568 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bbdd02cc303d0f38f7739b64f419d645ca17b533 |
29-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: use createAndAddDIE for newly-created Subprogram DIEs. More patches will be submitted to convert "new DIE(" to use createAddAndDIE in DwarfCompileUnit.cpp. This will simplify implementation of addDIEEntry where we have to decide between ref4 and ref_addr, because DIEs that can be shared across CU will be added to a CU already. Reviewed off-list by Eric. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
1a5e787f701c45ac2487d400faf6f6d4def6dcef |
29-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: add a helper function createAndAddDIE. It wraps around "new DIE(" and handles the bookkeeping part of the newly-created DIE. It adds the DIE to its parent, and calls insertDIE if necessary. It makes sure that bookkeeping is done at the earliest time and we should not see parentless DIEs if all constructions of DIEs go through this helper function. Later on, we can use an allocator for DIE allocation, and will only need to change createAndAddDIE instead of modifying all the "new DIE(". Reviewed off-list by Eric. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193566 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
a7be36c8eb4717e44b05e00008544b883fc87de9 |
28-Oct-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[DAGCombiner] Respect volatility when checking for aliases Making useAA() default to true for SystemZ showed that the combiner alias analysis wasn't handling volatile accesses. This hit many of the SystemZ tests, but I arbitrarily picked one for the purpose of this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193518 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
66589dcc8fb5dcf0894a9a80a8dee890a4f3a379 |
28-Oct-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
Keep TBAA info when rewriting SelectionDAG loads and stores Most SelectionDAG code drops the TBAA info when creating a new form of a load and store (e.g. during legalization, or when converting a plain load to an extending one). This patch tries to catch all cases where the TBAA information can legitimately be carried over. The patch adds alternative forms of getLoad() and getExtLoad() that take a MachineMemOperand instead of individual fields. (The corresponding getTruncStore() already exists.) The idea is to use the MachineMemOperand forms when all fields are carried over (size, pointer info, isVolatile, isNonTemporal, alignment and TBAA info). If some adjustment is being made, e.g. to narrow the load, then we still pass the individual fields but also pass the TBAA info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
7c0c2e56b09fee406ca0bb6e3ac840a3a6ed1160 |
25-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Summary hashing of member functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
a954618c6e6c5f94d3cedc0b6bc19dbc49e56ac2 |
25-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Summary hashing of nested types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193427 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
5a42ae81f742aaab826b7a72cb0a9a7e5a957a07 |
25-Oct-2013 |
Tim Northover <tnorthover@apple.com> |
LegalizeDAG: allow libcalls for max/min atomic operations ARM processors without ldrex/strex need to be able to make libcalls for all atomic operations, including the newer min/max versions. The alternative would probably be expanding these operations in terms of cmpxchg (as x86 does always), but in the configurations where this matters code-size tends to be paramount so the libcall is more desirable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
argetLoweringBase.cpp
|
97541d400e5011fd8ab5d2eb2a736c301d85b232 |
25-Oct-2013 |
Nadav Rotem <nrotem@apple.com> |
Optimize concat_vectors(X, undef) -> scalar_to_vector(X). This optimization is not SSE specific so I am moving it to DAGco. The new scalar_to_vector dag node exposed a missing pattern in the AArch64 target that I needed to add. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193393 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5759c3a02902026a27a0d1bc24a5bad85f52bd71 |
25-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
MCStreamer: Reimplement the virtual EmitRawText as a protected member, EmitRawTextImpl, to avoid string literal ambiguities Also improve the implementation of EmitRawText(Twine) so it doesn't bother using the SmallString buffer if the Twine is a simple StringRef anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
9e39e0d56d105f97b9d8f851403619bb0d9f780d |
25-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DWARF emission: Remove unnecessary/redundant DIE reference code The default case at the end of the switch handles this just fine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193374 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
200bb6df7ff84e2129bcc0f4f79d6d96d47eb645 |
24-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Fix name of variable in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
1f7d0d579475eefd772352f7f7f79acc445aa605 |
24-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193372 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
39cd7d48c07f6d8d104432a6b671c9cb3ede2b75 |
24-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Update misleading comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193371 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
377e83202cb40849d384ddede39f9468af197427 |
24-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Const correct and use references where non-null/non-rebound. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
smPrinter/DwarfDebug.cpp
|
1d7d8da4cb81aa3f149e1e80811d72525eee15e3 |
24-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Do not use shallow type hashing for unnamed types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193361 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
851aa948cb7fa379c9e674ae1cfe7276dd9ab171 |
24-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Refactor ref attribute hashing into smaller functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
724452e94c0bdbcd45a95f62b21c5a06632f38eb |
24-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unused debug-only member variable. This may've been used at some point but the 'print' member function grew an Indent parameter that entirely shadows this parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
be87b69a5f2f0b66939cef4d107a2cb8e4f4f4dc |
24-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: code clean up. Since we never insert DIE for DITemplateTypeParameter to a map, there is no need to call getDIE in getOrCreateTemplateTypeParameterDIE. It is also renamed to constructTemplateTypeParameterDIE to match with other construct functions in CompileUnit. Same applies to getOrCreateTemplateValueParameterDIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193287 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
a1d25b6360a6f40bf1c5651950226640211dc6d0 |
24-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: code clean up. Rename createMemberDIE to constructMemberDIE to match other construct functions in CompileUnit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193286 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
99addee7335441fe9bb6249eb9d5332cdbdf3c97 |
24-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: code clean up. Remove the unneeded return values from createMemberDIE, constructEnumTypeDIE, getOrCreateTemplateTypeParameterDIE, and getOrCreateTemplateValueParameterDIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193285 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
950f4e82afe9459457ce3f655ecb40fb64f761d9 |
24-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: code clean up. Unifying the argument ordering of private construct functions in CompileUnit to follow constructTypeDIE(DIE &, DIBasicType), constructTypeDIE(DIE &, DIDerivedType), constructTypeDIE(DIE &, DICompositeType), constructSubrangeDIE and constructArrayTypeDIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193284 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
250f4e8ec22175dcc121e81c9b270065e7b94677 |
24-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Remove {} from one-line block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193276 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
3873361e281d1b25fd4579cb42c76954cf40c3ef |
23-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reduce casting and use a fully covered switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d0716b064744598ba7df33b8b47de0375c450570 |
23-Oct-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Pass along the original argument/element type in ISD::InputArg For some targets, it is useful to be able to look at the original type of an argument without having to dig through the original IR. This also fixes a bug in SelectionDAGBuilder where InputArg.PartOffset was not taking into account the offset of structure elements. Patch by: Justin Holewinski Tom Stellard: - Changed the type of ArgVT to EVT, so it can store non-simple types like v3i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
argetLoweringBase.cpp
|
d56c9db9603c3e2edf43405142dee60559559919 |
22-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: code clean up. Remove unnecessary creation of LexicalScope in collectDeadVariables. The created LexicialScope was only used to get isAbstractScope, which should be false from the creation: "new LexicalScope(NULL, DIDescriptor(SP), NULL, false);". We can also remove a DenseMap that holds the created LexicalScopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c960816625ce47aea8368451b0025fbdcd15011a |
22-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHashing: Provide an assert for unreachable functionality regarding friends. Since (as of r190716) Clang no longer emits debug info for C++ friend declarations (and it seems GCC never has/does, which was the motivation for the Clang change), there's no actual reachable case for implementing the part of DWARF 4, Section 7.27 part 5 that pertains to friends. Leave an assert here so that if/when we do have a client producing friends and using type units, we can fill in the gap and add appropriate (unit and feature) tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193193 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
f196208900e690fe2d3bb1c6ca393d3fcd64226d |
22-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DWARF type hashing: pointers to members Includes a test case/FIXME demonstrating a bug/limitation in pointer to member hashing. To be honest I'm not sure why we don't just always use summary hashing for referenced types... but perhaps I'm missing something. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193175 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
8c955ea858b0c99c856c7c10a3eee7576d13abd1 |
22-Oct-2013 |
Wan Xiaofei <xiaofei.wan@intel.com> |
Using FoldingSet in SelectionDAG::getVTList. VTList has a long life cycle through the module and getVTList is frequently called. In current getVTList, sequential search over a std::vector is used, this is inefficient in big module. This patch use FoldingSet to implement hashing mechanism when searching. Reviewer: Nadav Rotem Test : Pass unit tests & LNT test suite git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8348b7d4003e4c404ef3f054001de499f24676c9 |
22-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting/whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193135 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
449f036a8141b9032ff310ecbe0ab4433c5c307b |
22-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DWARF Type Hashing: Include reference and rvalue reference type in the declarable summary hashing path More support for 7.25 Part 5. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193129 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
f1545a219744c1ae66137e64d1c456cd8e924eb7 |
22-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DWARF type hashing: begin implementing Step 5, summary hashing in declarable contexts There are several other tag types that need similar handling but to ensure test coverage they'll be coming incrementally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193126 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
e161dc28a8a58431e5e1df98834aaee72baada85 |
21-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Remove unused TargetLowering field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193113 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringBase.cpp
|
ff71812dfaf30015a9abc5cb4712e67b96fe075e |
21-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix CodeGen for different size address space GEPs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193111 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
599c0afb244e61fed389ea0d4b5479fbc380dfbf |
21-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Reuse variable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
82e7eda150eda4e4635d96b7725db6d5ede192de |
21-Oct-2013 |
Reid Kleckner <reid@kleckner.net> |
Fix the build in DIE.cpp with MSVC 2010 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193106 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
3baa3c37ce2cd7db7a4840e66f22a08ce1702787 |
21-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DWARF type hashing: Handle multiple (including recursive) references to the same type This uses a map, keeping the type DIE numbering separate from the DIEs themselves - alternatively we could do things the way GCC does if we want to add an integer to the DIE type to record the numbering there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193105 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
ef2d919f7f767b9d70bc44c4ac918b0a6b540cac |
21-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Fix up some old review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193095 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
770530babc78e444bb6d0aadc87702ef138293fd |
21-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Put each kind of constant (form, attribute, tag, etc) into its own enum for ease of use. This allows various variables to be more self-documenting and easier to debug by being of specific types without overlapping enum values. Precommit review by Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193091 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
da39dd30ad3c969be3ac843307d4630807699538 |
21-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Hash DW_FORM_GNU_str_index as a string. Found while adding type safety to the various DWARF enumerations (form, attribute, tag, etc) that caused Clang to warn on an incompletely covered switch. Converting the comment to a default/unreachable uncovered this case of an unsupported form encoding. Seems we were skipping fission strings entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193089 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
0abc36205a39f3791342165502478bb51fe67f05 |
20-Oct-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Emit prefix data after debug and EH directives. This ensures that the prefix data is treated as part of the function for the purpose of debug info. This provides a better debugging experience, among other things by allowing a debug info client to correctly look up a function in debug info given a function pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193042 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
53c9e5fbb9492824adfa1b004c198236fba1a93b |
19-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193038 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
6efc043f0ba88d8415e729c63a27e886fb64830f |
19-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Reformat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
0ab6439c3f0eef28b4b40f31f2d4d9732fe8cd15 |
19-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Fix up a few minor performance problems spotted in code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193023 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
630c3264a650af8e74f2b0b5ae7b57a17cb52061 |
18-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: add a newly-created DIE to a parent in the same function. With this commit, all DIEs created in CompileUnit will be added to parents inside the same function. Also make getOrCreateTemplateType|Value functions private. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193002 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
57a964bc635359b97340b57510df4ebaf506806b |
18-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: simplify code a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193001 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
3c58aad3bc10f888c08c82520ea5b6f629fb91ba |
18-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Revert the rest of r192749 to bring back the buildbot. These two error messages should not be able to occur at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192985 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6cd04fdaae8c604aca3696ba120bde26a2ee9b67 |
18-Oct-2013 |
Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
[PATCH] Fix PR17168 (DAG scheduler inserts DBG_VALUE before PHI with fast-isel) PR17168 describes a test case that fails when compiling for debug with fast-isel. Investigation showed that the test was failing because a DBG_VALUE machine instruction was placed prior to a PHI. For this problem to occur requires the following: * Compile for debug * Compile with fast-isel * In a block B, fast-isel must partially succeed before punting to DAG-isel * B must start with a PHI * The first unhandled node in the DAG must not generate a machine instruction * A debug value with an order less than that of that first node exists When all of these circumstances apply, the existing test that an instruction was not inserted won't fire. Currently it tests whether the block is empty, or whether the last instruction generated is a phi. When fast-isel has partially succeeded, the last instruction generated will not be a phi. Instead, we need to check whether the current insert position is immediately following a phi. This patch adds that check, and adds the test case from the PR as a regression test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192976 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
641bea117d2f5e68c11156b9eea1c9270825dfb9 |
18-Oct-2013 |
David Majnemer <david.majnemer@gmail.com> |
CodeGen: Emit a libcall if the target doesn't support 16-byte wide atomics There are targets that support i128 sized scalars but cannot emit instructions that modify them directly. The proper thing to do is to emit a libcall. This fixes PR17481. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
argetLoweringBase.cpp
|
1c165b8ee38c4d960bb4cdd86bc54df144cf5e84 |
18-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Temporarily revert r192749 as it is causing problems for LTO and requires a more in depth change to the IR structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192938 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0d87c201b1284627cef54d28a4621f34742aa24d |
18-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Add more things (and remove one character) from the COLLECT_ATTR macro Makes the uses more terse and requires that they use a semicolon at the end that helps editors indent proceeding lines correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192925 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
47f66d5a756d4eaeba9082ff4c82023a213daf45 |
18-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Support for simple (non-recursive, non-reused) type references git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192924 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
f9a5e40b90e5a98cfae5c0f8a42eedd71c849dbc |
17-Oct-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
Replace sra with srl if a single sign bit is required E.g. (and (sra (i32 x) 31) 2) -> (and (srl (i32 x) 30) 2). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
888cbad774acdff580611f6b07daaf96e825b7e7 |
17-Oct-2013 |
Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> |
Fix edge condition in DAGCombiner to improve codegen of shift sequences. When canonicalizing dags according to the rule (shl (zext (shr X, c1) ), c1) ==> (zext (shl (shr X, c1), c1)) remember to add the new shl dag to the DAGCombiner worklist of nodes. If we don't explicitly add it to the worklist of nodes to visit, we may not trigger later on the rule that folds the shift left + logical shift right into a AND instruction with bitmask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9198657e1eb13ab717248cfacb2b504fd7e72719 |
17-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
According to the dwarf standard pubnames and pubtypes for languages like C++ should be the fully qualified names for the type. Add a routine that does a language specific context walk to build up the qualified name and use it when we add types/names to the tables. Expand the gnu pubnames testcase as it's the most complex to make sure that qualified types are also being added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192865 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
adbd3ae1dfa7530d23653b6fd910d28de8217fbd |
17-Oct-2013 |
Jack Carter <jack.carter@imgtec.com> |
[projects/test-suite] White space and long line fixes. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bdfed1687b4288f7edb6faa637774bce903810c8 |
17-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Add the subprogram DIEs to the context they're created with only if they're a declaration, otherwise they're owned by the compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192861 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
88a68cbbb57aa9caef60dbd2f63d908983e77465 |
17-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Include the type's context in the type hash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192856 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
c0987082206d202c20ebe1d528c1b28a875160ac |
17-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Use DW_FORM_sdata for integers, per spec. This allows us to produce the same hash as GCC for at least some simple examples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192855 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
700b91f07ca506f19c6d736bc020b36c678eb527 |
16-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove ambiguity introduced in r192836 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192840 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
75ee00021d5e753be09baa4121a090afc8d7c236 |
16-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DIEHash: Include the trailing zero byte after the children of a DIE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192836 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
81f69410cb942079964481aba8d1c4739b77290f |
16-Oct-2013 |
Andrew Trick <atrick@apple.com> |
After PostRA scheduling, don't set kill flags on undef operands. This should fix the ATOM buildbot failing on break-avx-dep.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192824 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
72a3ee742296aa68fda0118d0e1fa649be756938 |
16-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Don't fold xor into not if getNOT would introduce an illegal constant. This happens e.g. with <2 x i64> -1 on x86_32. It cannot be generated directly because i64 is illegal. It would be nice if getNOT would handle this transparently, but I don't see a way to generate a legal constant there right now. Fixes PR17487. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192795 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5d7e93c0d44a96a416d2f1d1518954d8fed73f40 |
16-Oct-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
Handle (shl (anyext (shr ...))) in SimpilfyDemandedBits This is really an extension of the current (shl (shr ...)) -> shl optimization. The main difference is that certain upper bits must also not be demanded. The motivating examples are the first two in the testcase, which occur in llvmpipe output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
3aa342be500a55c3bbee302f3a8db937eaa2c241 |
16-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for metadata representing .ident directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192764 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a486f55569c584d00cfdde43a8755d68cdb68c4f |
16-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Fix a pair of bugs in the emission of pubname tables: 1) Make sure we emit static member variables by checking at the end of createGlobalVariableDIE rather than piecemeal in the function. (As a note, createGlobalVariableDIE needs rewriting.) 2) Make sure we use the definition rather than declaration DIE for two things: a) determining linkage for gnu pubnames, and b) as the address of the DIE for global variables. (As a note, createGlobalVariableDIE really needs rewriting.) Adjust the testcase to make sure we're checking the correct DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192761 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
e891775aa13b42d40483481b9dc5c701d1cc1be5 |
16-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Simplify zero initialization of DIEAttrs variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192755 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
c622824ccbb74ac726c656ebc98647810d152cce |
16-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Make sure we're not attempting to construct a subprogram DIE twice and just look up the value. Fix the one case where we were trying to create a subprogram DIE and we should already have had one. Reflow formatting in collectDeadVariables while fixing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192749 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
73df4b9f5742023838ffa4eb36638a437e728193 |
15-Oct-2013 |
Adrian Prantl <aprantl@apple.com> |
Remove some dead code. (DarwinGDBCompat was retired in r189903). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192731 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d54946ac14cca14a0b4402fd7edf5271f5e74e6a |
15-Oct-2013 |
Pekka Jaaskelainen <pekka.jaaskelainen@tut.fi> |
Guard the debug temp variable with NDEBUG to avoid warning/error with NDEBUG defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192709 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
862385112e4f81ca2e1ffb3e995c223ffd5328b7 |
15-Oct-2013 |
Pekka Jaaskelainen <pekka.jaaskelainen@tut.fi> |
Do not assert when trying to add a meta data operand with MachineInstr::addOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192707 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
51dee24ca6ba63cf021d56ca9cbae62c739d5041 |
15-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Improve on r192635, ExeDepsFix for avx, and add a test case. rdar:15221834 False AVX register dependencies cause 5x slowdown on flops-5/6 and significant slowdown on several others. This was blocking the switch to MI-Sched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192669 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
a6a9ac5aa1092067e6e1546226d8bdd6a4bfcf99 |
15-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Fix the ExecutionDepsFix pass to handle AVX instructions. This pass is needed to break false dependencies. Without it, unlucky register assignment can result in wild (5x) swings in performance. This pass was trying to handle AVX but not getting it right. AVX doesn't have partial register defs, it has unused register reads in which the high bits of a source operand are copied into the unused bits of the dest. Fixing this requires conservative liveness analysis. This is awkard because the pass already has its own pseudo-liveness. However, proper liveness is expensive, and we would like to use a generic utility to compute it. The fix only invokes liveness on-demand. It is rare to detect a case that needs undef-read dependence breaking, but when it happens, it can be needed many times within a very large block. I think the existing heuristic which uses a register window of 16 is too conservative for loop-carried false dependencies. If the loop is a reduction. The out-of-order engine may be able to execute several loop iterations in parallel. However, I'll leave this tuning exercise for next time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192635 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
966772931eea7cdc3cdd7199e304d667aa344bd7 |
15-Oct-2013 |
Andrew Trick <atrick@apple.com> |
LiveRegUnits: Use *MBB for consistency and convenience. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192634 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
iveRegUnits.cpp
|
6c325c9133511c4aeec3d7490da164d824231201 |
14-Oct-2013 |
Andrew Trick <atrick@apple.com> |
LiveRegUnits::removeRegsInMask safety. Clobbering is exclusive not inclusive on register units. For liveness, we need to consider all the preserved registers. e.g. A regmask that clobbers YMM0 may preserve XMM0. Units are only clobbered when all super-registers are clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192623 91177308-0d34-0410-b5e6-96231b3b80d8
iveRegUnits.cpp
|
7c489ab36564ddde3fa672aff52cfcae06517dfc |
14-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Use a SparseSet in LiveRegUnits. Some clients may add block live ins and may track liveness over a large scope. This guarantees an efficient implementation in all cases with no memory allocation/deallocation, independent of the number of target registers. It could be slightly less convenient but is fine in the expected case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192622 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
eb3b9f8ed979c34b7c11d749efb85df7fe1cfc9a |
14-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Move LiveRegUnits implementation into .cpp. Comment and format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192621 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
iveRegUnits.cpp
|
5601abb60dcf9617ee24f4fd2da13b1caa0f6965 |
14-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Convert LiveRegUnits methods to the current convention (it's new code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192619 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
655a10d96cd79089fc949e9f98f8484c74ec4c90 |
14-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: static member DIE creation. Clean up creation of static member DIEs. We can create static member DIEs from two places, so we call getOrCreateStaticMemberDIE from the two places. getOrCreateStaticMemberDIE will get or create the context DIE first, then it will check if the DIE already exists, if not, we create the static member DIE and add it to the context. Creation of static member DIEs are handled in a similar way as subprogram DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192618 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
54de36b39d9e6fe61e1fe697737056c567e7008a |
14-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix indenting. That wasn't confusing /at all/... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192617 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e4b44c1617b82ba4bb5451df83cfc214b1e5d5f5 |
14-Oct-2013 |
Will Dietz <wdietz2@illinois.edu> |
MachineSink: Fix and tweak critical-edge breaking heuristic. Per original comment, the intention of this loop is to go ahead and break the critical edge (in order to sink this instruction) if there's reason to believe doing so might "unblock" the sinking of additional instructions that define registers used by this one. The idea is that if we have a few instructions to sink "together" breaking the edge might be worthwhile. This commit makes a few small changes to help better realize this goal: First, modify the loop to ignore registers defined by this instruction. We don't sink definitions of physical registers, and sinking an SSA definition isn't going to unblock an upstream instruction. Second, ignore uses of physical registers. Instructions that define physical registers are rejected for sinking, and so moving this one won't enable moving any defining instructions. As an added bonus, while virtual register use-def chains are generally small due to SSA goodness, iteration over the uses and definitions (used by hasOneNonDBGUse) for physical registers like EFLAGS can be rather expensive in practice. (This is the original reason for looking at this) Finally, to keep things simple continue to only consider this trick for registers that have a single use (via hasOneNonDBGUse), but to avoid spuriously breaking critical edges only do so if the definition resides in the same MBB and therefore this one directly blocks it from being sunk as well. If sinking them together is meant to be, let the iterative nature of this pass sink the definition into this block first. Update tests to accomodate this change, add new testcase where sinking avoids pipeline stalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192608 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
67b28826cdc7be697acdd3e536a05665fd2a9752 |
14-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the now unused strong phi elimination pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192604 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
asses.cpp
trongPHIElimination.cpp
|
55240a5ddbaebc44c9acb0353c18a394b06f348f |
14-Oct-2013 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Fixed a bug in dynamic allocation memory on stack. The alignment of allocated space was wrong, see Bugzila 17345. Done by Zvi Rackover <zvi.rackover@intel.com>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
833a29c296da0a6af622448569dcbe01b5cae6c7 |
13-Oct-2013 |
Will Dietz <wdietz2@illinois.edu> |
TargetLowering: Don't index into empty string. (This is triggered by current lit tests) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
87b110ac24063a7a48a9d1273e6db596baab78a0 |
12-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: remove form from function addDIEEntry. The form must be a reference form in addDIEEntry. Which reference form to use will be decided by the callee. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192517 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
4c5956cefbb469b93fcbeb5ec3c5ba16d8b83dad |
11-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
fConversion: Attempt #2 at fixing the MSVC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192492 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
ae6fa27a0c17b448cc18b0f861f1b935195b419d |
11-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
IfConversion: Try to unbreak the MSVC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192487 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
85733840109907e1e0f8ffc03dcd2f5fd8e49d47 |
11-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Remove kill flags after if conversion if necessary When if converting something like: true: ... = R0<kill> false: ... = R0<kill> then the instructions of the true block must not have a <kill> flag anymore, as the instruction of the false block follow and do still read the R0 value. Specifically this patch determines the set of register live-in in the false block (possibly after simulating the liveness changes of the duplicated instructions). Each of these live-in registers mustn't be killed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192482 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
83f743a4d5b4298893adaada0270ff2d832a50c7 |
11-Oct-2013 |
Quentin Colombet <qcolombet@apple.com> |
[DAGCombiner] Reapply load slicing (192471) with a test that explicitly set sse4.2 support. This should fix the buildbots. Original commit message: [DAGCombiner] Slice a big load in two loads when the element are next to each other in memory and the target has paired load and performs post-isel loads combining. E.g., this optimization will transform something like this: a = load i64* addr b = trunc i64 a to i32 c = lshr i64 a, 32 d = trunc i64 c to i32 into: b = load i32* addr1 d = load i32* addr2 Where addr1 = addr2 +/- sizeof(i32), if the target supports paired load and performs post-isel loads combining. One should overload TargetLowering::hasPairedLoad to provide this information. The default is false. <rdar://problem/14477220> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192476 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4351741a3b36bfe1ac1b385334fc5fa6f6ef5a11 |
11-Oct-2013 |
Quentin Colombet <qcolombet@apple.com> |
[DAGCombiner] Revert load slicing (r192471), until I figure out why it fails on ubuntu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c34693f6efc670b71e11f3479844c36d9696b535 |
11-Oct-2013 |
Quentin Colombet <qcolombet@apple.com> |
[DAGCombiner] Slice a big load in two loads when the element are next to each other in memory and the target has paired load and performs post-isel loads combining. E.g., this optimization will transform something like this: a = load i64* addr b = trunc i64 a to i32 c = lshr i64 a, 32 d = trunc i64 c to i32 into: b = load i32* addr1 d = load i32* addr2 Where addr1 = addr2 +/- sizeof(i32), if the target supports paired load and performs post-isel loads combining. One should overload TargetLowering::hasPairedLoad to provide this information. The default is false. <rdar://problem/14477220> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d2f8df50fbd2d91cc9f9e4c6b9c4b65304e710c1 |
11-Oct-2013 |
Matthias Braun <matze@braunis.de> |
fix typo in comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192455 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
|
43777c3150c1dd12c661f62d5d7c95bf9b04c16a |
11-Oct-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Make AsmPrinter::emitImplicitDef a virtual method so targets can emit custom comments for implicit defs For NVPTX, this fixes a crash where the emitImplicitDef implementation was expecting physical registers, while NVPTX uses virtual registers (with a couple of exceptions). Now, the implicit def comment will be emitted as a true PTX register name. Other targets can use this to customize the output of implicit def comments. Fixes PR17519 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192444 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3b9c5eb589de17694dd4cec116eee5c704e7bd2e |
11-Oct-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
LiveRangeCalc.h: Update a description corresponding to r192396. [-Wdocumentation] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192421 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.h
|
03d9609c6154ed91daefb4e4f89b7298c11961f3 |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Print register in LiveInterval::print() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192398 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
achineVerifier.cpp
egAllocBase.cpp
egisterCoalescer.cpp
|
4f3b5e8c9232e43d1291aab8db5f5698d7ee0ea4 |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Represent RegUnit liveness with LiveRange instance Previously LiveInterval has been used, but having a spill weight and register number is unnecessary for a register unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192397 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
nterferenceCache.cpp
nterferenceCache.h
iveDebugVariables.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
iveRegMatrix.cpp
achineVerifier.cpp
egAllocGreedy.cpp
egisterCoalescer.cpp
egisterPressure.cpp
|
e25dde550baec1f79caf2fc06edd74e7ae6ffa33 |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Work on LiveRange instead of LiveInterval where possible Also change some pointer arguments to references at some places where 0-pointers are not allowed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192396 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveRangeCalc.cpp
iveRangeCalc.h
egisterCoalescer.cpp
plitKit.cpp
|
a4aed9ae392b30147745bd27e5fea7b0cebc1702 |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Change MachineVerifier to work on LiveRange + LiveInterval git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192395 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5649e25ce86b9d89d228ae7c392413571b0f8c19 |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Pass LiveQueryResult by value This makes the API a bit more natural to use and makes it easier to make LiveRanges implementation details private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192394 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
achineScheduler.cpp
achineVerifier.cpp
egisterCoalescer.cpp
egisterPressure.cpp
cheduleDAGInstrs.cpp
|
87a86058fa0726328de42ace85b5532d18775646 |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Refactor LiveInterval: introduce new LiveRange class LiveRange just manages a list of segments and a list of value numbers now as LiveInterval did previously, but without having details like spill weight or a fixed register number. LiveInterval is now a subclass of LiveRange and simply adds the spill weight and the register number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192393 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
331de11a0acc6a095b98914b5f05ff242c9d7819 |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Rename LiveRange to LiveInterval::Segment The Segment struct contains a single interval; multiple instances of this struct are used to construct a live range, but the struct is not a live range by itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192392 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveDebugVariables.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveRangeCalc.cpp
achineBasicBlock.cpp
achineVerifier.cpp
HIElimination.cpp
egisterCoalescer.cpp
plitKit.cpp
tackColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
4afb5f560d2c3171eda8be6ae64998080dddec0c |
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Rename parameter: defined regs are not incoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192391 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
828c9e73baacf0b0f68932718659681223b6b3c4 |
10-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Use getPointerSizeInBits() rather than 8 * getPointerSize() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b8e48a636e7ee6c13140382eb93d9695a65b0624 |
10-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context field of subprogram is updated to use DIScopeRef. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
b4d9c11f6c7e0a38e750f946d5cea3ffa5ae8f61 |
09-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context and type fields of template_type and template_value are updated to use DIRef. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192320 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
73f615b0bd822db3a2a8aab2fd4ed58f093c9769 |
08-Oct-2013 |
Reid Kleckner <reid@kleckner.net> |
Explicitly request unsigned enum types when desired This fixes repeated -Wmicrosoft warnings when self-hosting clang on Windows, and gets us real unsigned enum types with MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192227 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
egAllocGreedy.cpp
|
8199f0bc7722a4d93099cafdb30fa465a2746ce8 |
08-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Add DbgVariable::resolve per Eric's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192218 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
43251008c2ce836f47a6e4c8a64947069d6b268e |
08-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: rename getOriginalTypeSize to getBaseTypeSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192216 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
017ceda04067cb51ed4dfc01ac4ad118f0cd9f42 |
08-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: take advantage of the existing CU::resolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
2565de926b64b0777c2a192b53ac1ab43fc42a70 |
08-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192199 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
320296a4cfe414ce59f406b8a5ce15272f563103 |
08-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add a MCTargetStreamer interface. This patch fixes an old FIXME by creating a MCTargetStreamer interface and moving the target specific functions for ARM, Mips and PPC to it. The ARM streamer is still declared in a common place because it is used from lib/CodeGen/ARMException.cpp, but the Mips and PPC are completely hidden in the corresponding Target directories. I will send an email to llvmdev with instructions on how to use this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192181 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/DwarfException.h
|
379f76e873b91550e3d9cee79dff814e3ce1e86e |
07-Oct-2013 |
Richard Mitton <richard@codersnotes.com> |
Formally added an explicit enum for DWARF TLS support. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192118 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
32e3150faba95187c76b211e27d6496a21bee360 |
07-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Fix some assert messages to say the correct opcode name. Looks like one assert got copy and pasted to many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192078 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2def17935c87f5e6b23d899567ef3dd00ed89d48 |
06-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for aliases with linkonce_odr. This will be used to extend constructor aliases in clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192066 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
87855d3013d9a87a3aeb51508312b76e200baac7 |
05-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Emit a better error when running out of registers on inline asm. The most likely case where this error happens is when the user specifies too many register operands. Don't make it look like an internal LLVM bug when we can see that the error is coming from an inline asm instruction. For other instructions we keep the "ran out of registers" error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192041 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
egAllocFast.cpp
|
5e195a4c8d8cd4498ab7e0aa16a3b6f273daf457 |
05-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove some really nasty uses of hasRawTextSupport. When MC was first added, targets could use hasRawTextSupport to keep features working before they were added to the MC interface. The design goal of MC is to provide an uniform api for printing assembly and object files. Short of relaxations and other corner cases, a object file is just another representation of the assembly. It was never the intention that targets would keep doing things like if (hasRawTextSupport()) Set flags in one way. else Set flags in another way. When they do that they create two code paths and the object file is no longer just another representation of the assembly. This also then requires testing with llc -filetype=obj, which is extremelly brittle. This patch removes some of these hacks by replacing them with smaller ones. The ARM flag setting is trivial, so I just moved it to the constructor. For Mips, the patch adds two temporary hack directives that allow the assembly to represent the same things as the object file was already able to. The hope is that the mips developers will replace the hack directives with the same ones that gas uses and drop the -print-hack-directives flag. I will also try to implement a target streamer interface, so that we can move this out of the common code. In summary, for any new work, two rules of the thumb are * Don't use "llc -filetype=obj" in tests. * Don't add calls to hasRawTextSupport. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192035 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
936910d9293f7118056498c75c7bca79a7fc579c |
05-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c664d76716ba87577b6c2a513ce4fe0712a2d3e2 |
05-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the derived-from field of a DW_TAG_pointer_type is updated to use DITypeRef. Move isUnsignedDIType and getOriginalTypeSize from DebugInfo.h to be static helper functions in DwarfCompileUnit. We already have a static helper function "isTypeSigned" in DwarfCompileUnit, and a pointer to DwarfDebug is added to resolve the derived-from field. All three functions need to go across link for derived-from fields, so we need to get hold of a type identifier map. A pointer to DwarfDebug is also added to DbgVariable in order to resolve the derived-from field. Debug info verifier is updated to check a derived-from field is a TypeRef. Verifier will not go across link for derived-from fields, in debug info finder, we go across the link to add derived-from fields to types. Function getDICompositeType is only used by dragonegg and since dragonegg does not generate identifier for types, we use an empty map to resolve the derived-from field. When printing a derived-from field, we use DITypeRef::getName to either return the type identifier or getName of the DIType. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192018 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
af76b1601cc1568aa7c672bca6383760b56d2ac4 |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Reorganize some member variables and update a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192017 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
72dd4cd1dda543e76b5dfc6cba50d7c4e085e87c |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Fix one comment and update another. Slightly reformat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192016 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.h
|
eee74fbbb64e5a4fd3af90611128ded5d759c82f |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Add a resolve method on CompileUnit that forwards to DwarfDebug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192014 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
eacbfd1d512b97b5551ce9f30bf85ba000d9da42 |
05-Oct-2013 |
Adrian Prantl <aprantl@apple.com> |
Debug info: Don't crash in SelectionDAGISel when a vreg that is being pointed to by a dbg_value belonging to a function argument is eliminated during instruction selection. rdar://problem/15094721. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
22852c76f5791f98aadb176ebcf15af5217a67eb |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Make a bunch of CompileUnit member functions private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192009 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
c4eb353c7a15f8b0283f4772dcac0571b7cc3350 |
05-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Minor formatting/comment rewording/etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192005 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
9aa0a93f22beef36cd772b85d0dc4d82ff9f45fa |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Remove odd use of this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
c543a8849eb41b29b42bcd2986b1f7b4ef4ff082 |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Reformat some odd formattings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192003 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
ccb663668455da81a629b7abeed905a7fcc886e3 |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Tighten up some type arguments to functions. Where we expect a scope, pass a scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192002 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
356ccdceed31f84472e58df56da65b2f4f6ab72f |
05-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192000 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
|
916d49e77237c5aabfd5638b4e481c7ed9441608 |
05-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Simplify setting of DIE tag for type DIEs by setting it in one* place. * two actually due to some weird template thing... investigating that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191998 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
d3b3eef49bac03b70b6394d647cf3813e781daa2 |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Prune includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191994 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
371d95851a4e506dd0baba01c759f5dafcb3c128 |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Use addFlag to add the enum class attribute. This has the side effect of using DW_FORM_flag_present on dwarf4 and above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
9c0c9485808ba4280a62429700693c41fa304598 |
05-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Use Die->addValue and DIEIntegerOne directly when we want to add a flag. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191990 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
03c8f8fbd539e539796b0bd9824797f3240261d7 |
05-Oct-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix DAGCombiner::visitFP_EXTEND to ignore indexed loads DAGCombiner::visitFP_EXTEND will apply the following transformation: fold (fpext (load x)) -> (fpext (fptrunc (extload x))) but the implementation does not handle indexed loads (pre/post inc.), but did not specifically ignore them either (unlike for extending loads, which it already ignored), causing an assert when the transformation was applied to an indexed load. This is the minimal fix for correctness (causing the transformation to be skipped for indexed loads). Unfortunately, I don't have an in-tree test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191989 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e7099f6ff48ee99e50aa8347b455255e3a893a12 |
04-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Temporarily revert r176882 as it needs to be implemented in a different way for all platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191975 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3f045005bf96b6521b2769fc824283589bfa133a |
04-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Temporarily revert r191792 as it is causing some LTO debug failures on platforms with relocations in debug info and also temporarily revert r191800 due to conflicts with the revert of r191792. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191967 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0bb5a66b0388d2c52a887eaafe3749aaceb6a754 |
04-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191966 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
b38d9877f490e6bd65a38048d7e00877c0a670f0 |
04-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191965 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b1aa5e43a2976caed47e21d31823a48bf8324000 |
04-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191964 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
rocessImplicitDefs.cpp
|
596cfd045fa05c249083b5ff7cdb5e32f4d92b97 |
04-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Revert r191940 to see if it fixes the build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d3562956789dbd0571a7e46052bee64b153fa7c4 |
04-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c32f2332b065d0fb8de4db8b8ca0981564dae92b |
04-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Fix ordering of members after r191928 In the case (shown in the attached test) where a member function definition was emitted into debug info the following could occur: 1) build the debug info for the member function definition 2) in (1), build the debug info for the member function declaration 3) construct and add the member function declaration DIE 4) add it to its context 5) build its context (the type it is a member of) 6) construct the members and add them to the type 7) except don't add member functions because "getOrCreateSubprogram" adds the function to its parent anyway 8) except we're only partway through building this subprogram declaration so it hasn't been added yet - but we returned the partially constructed DIE (since it's already in the MDNode->DIE mapping to avoid infinitely recursing trying to create the member function DIE) 9) once the type is constructed, add the member function to it 10) now the members are out of order (the member function being defined is listed as the last member, even though it was declared as the first) To avoid this, construct the context of the subprogram DIE before we query to see if it exists. That way we never end up creating it before creating its context and ending up in this situation. Alternatively, the type construction that visits/builds all the members could call something like getOrCreateSubprogram, but that doesn't ever do the "add to context" step. Then the type building code would always be responsible for adding members (and the subprogram "addToContextDIE" would no-op because the context building would have added the subprogram declaration to the type/context DIE already). (the test cases updated were overly-sensitive to offsets or abbreviation numbers. We don't have a nice way to make these tests more robust as yet - multiline FileCheck matches would be required) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191939 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
7c9659a3b297be6298ffae4656b86797295c5d58 |
04-Oct-2013 |
Richard Mitton <richard@codersnotes.com> |
Fixed a bug with section names containing special characters. Changed the dwarf aranges code to not use getLabelEndName, as it turns out it's not reliable to call that given user-defined section names. Section names can have characters in that aren't representable as symbol names. The dwarf-aranges test case has been updated to include a special character, to check this. This fixes pr17416. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191932 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e5830c4e2603ab36f08911ff6bb117638ae529c7 |
03-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Avoid redundantly adding child DIEs to parents. DIE::addChild had a shortcircuit that silently no-op'd when a child was readded to the same parent. This hid some quirky/redundant code in DwarfDebug/CompileUnit. By removing that functionality and replacing it with an assert I was able to find and cleanup those cases, mostly centering around adding members to types in various circumstances. 1) The original oddity I noticed while working on type units (which actually was helping me in the short term, by accident) was the addToContextOwner call in constructTypeDIE. This call was completely bogus (why was it only done for non-virtual types? what relevance does that have at all) and redundant with the more uniform addToContextOwner made in getOrCreateTypeDIE. 2) If a member function definition was visited (createSubprogramDIE), it would attempt to build the member function declaration. The declaration DIE would then be added to its context, but in building the context (the type for which this function is a member) the members of the type would be added to the type automatically, so by the time the context was constructed, the member function was already associated with it. 3) The same as (2) but without the member function being constructed first. Whenever a type was constructed, the members would be created and member functions would be created by getOrCreateSubprogramDIE - this would lead to the subprogram being added to the (incomplete) type already, then the general member-construction code would add it again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191928 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
cee51c48030f37133ad4004d3e5c14d8ebfc91c4 |
03-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Rename DataLayout variables TD -> DL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191927 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
45fae28db7ccc4f9d40f4b4d3fb35676826dfdc0 |
03-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Make sure we emit a section for pubnames even if that section is going to be empty. This is particularly important for the gnu pubnames case since we're emitting a relocation to the section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191915 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7c9fc90c75a2b7cf18dd725484aba0af55b44b33 |
03-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Fix cut and paste typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191914 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b70a05a871a9ce44231a5f6308271f333c4ad110 |
03-Oct-2013 |
Jin-Gu Kang <jaykang10@imrc.kist.re.kr> |
Added checking code whehter target supports specific dag combining about rotate or not. The corresponding dag patterns are as following: "DAGCombier::MatchRotate" function in DAGCombiner.cpp Pattern1 // fold (or (shl (*ext x), (*ext y)), // (srl (*ext x), (*ext (sub 32, y)))) -> // (*ext (rotl x, y)) // fold (or (shl (*ext x), (*ext y)), // (srl (*ext x), (*ext (sub 32, y)))) -> // (*ext (rotr x, (sub 32, y))) pattern2 // fold (or (shl (*ext x), (*ext (sub 32, y))), // (srl (*ext x), (*ext y))) -> // (*ext (rotl x, y)) // fold (or (shl (*ext x), (*ext (sub 32, y))), // (srl (*ext x), (*ext y))) -> // (*ext (rotr x, (sub 32, y))) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191905 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9d08d69fd4562a4433cf19eb4b96c17b34f6da2e |
03-Oct-2013 |
Alexey Samsonov <samsonov@google.com> |
Remove wild .debug_aranges entries generated from unimportant labels r191052 added emitting .debug_aranges to Clang, but this functionality is broken: it uses all MC labels added in DWARF Asm printer, including the labels for build relocations between different DWARF sections, like .Lsection_line or .Ldebug_loc0. As a result, if any DIE .debug_info would contain "DW_AT_location=0x123" attribute, .debug_aranges would also contain a range starting from 0x123, breaking tools that rely on this section. This patch fixes this by using only MC labels that corresponds to the addresses in the user program. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191884 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
dd5d86d992eb129ecd0bb013d2db2d6a0e8d2605 |
02-Oct-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Remove the very substantial, largely unmaintained legacy PGO infrastructure. This was essentially work toward PGO based on a design that had several flaws, partially dating from a time when LLVM had a different architecture, and with an effort to modernize it abandoned without being completed. Since then, it has bitrotted for several years further. The result is nearly unusable, and isn't helping any of the modern PGO efforts. Instead, it is getting in the way, adding confusion about PGO in LLVM and distracting everyone with maintenance on essentially dead code. Removing it paves the way for modern efforts around PGO. Among other effects, this removes the last of the runtime libraries from LLVM. Those are being developed in the separate 'compiler-rt' project now, with somewhat different licensing specifically more approriate for runtimes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191835 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
2b53089bd017139f0125b870ace94ff27dffd2ff |
02-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the derived-from field of a DW_TAG_pointer_type is updated to use DITypeRef. Move isUnsignedDIType and getOriginalTypeSize from DebugInfo.h to be static helper functions in DwarfCompileUnit. We already have a static helper function "isTypeSigned" in DwarfCompileUnit, and a pointer to DwarfDebug is added to resolve the derived-from field. All three functions need to go across link for derived-from fields, so we need to get hold of a type identifier map. A pointer to DwarfDebug is also added to DbgVariable in order to resolve the derived-from field. Debug info verifier is updated to check a derived-from field is a TypeRef. Verifier will not go across link for derived-from fields, in debug info finder, we go across the link to add derived-from fields to types. Function getDICompositeType is only used by dragonegg and since dragonegg does not generate identifier for types, we use an empty map to resolve the derived-from field. When printing a derived-from field, we use DITypeRef::getName to either return the type identifier or getName of the DIType. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191800 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
620f436b205ab75e1dd48b9af8823bc30c53fd0e |
01-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: remove duplication of DIEs when a DIE is part of the type system and it is shared across CUs. We add a few maps in DwarfDebug to map MDNodes for the type system to the corresponding DIEs: MDTypeNodeToDieMap, MDSPNodeToDieMap, and MDStaticMemberNodeToDieMap. These DIEs can be shared across CUs, that is why we keep the maps in DwarfDebug instead of CompileUnit. Sometimes, when we try to add an attribute to a DIE, the DIE is not yet added to its owner yet, so we don't know whether we should use ref_addr or ref4. We create a worklist that will be processed during finalization to add attributes with the correct form (ref_addr or ref4). We add addDIEEntry to DwarfDebug to be a wrapper around DIE->addValue. It checks whether we know the correct form, if not, we update the worklist (DIEEntryWorklist). A testing case is added to show that we only create a single DIE for a type MDNode and we use ref_addr to refer to the type DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191792 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8819c84aed10777ba91d4e862229882b8da0b272 |
01-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove several unused variables. Patch by Alp Toker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
ailDuplication.cpp
|
20a3bc600c62b2519a1b6be7e752a8ac00deac3b |
01-Oct-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Clarify comments from r191600 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
451c71d67b1dd324dcd76d771cf05bf7721bdc59 |
01-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Add the DW_AT_GNU_ranges_base attribute if we've emitted any ranges into the debug_ranges section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191721 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
08bd923be85d27d396c82fda7ef417c6d357bf9e |
01-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191720 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a6d841561b1b7e3f32e1f77e35982d8cfd0f515e |
01-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
The DW_AT_GNU_pubnames/pubtypes attributes are actually form SEC_OFFSET from the beginning of the section so go ahead and emit a label at the beginning of each one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191710 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d42730dc712026cbfb1322a979e0ac72cd31a19e |
30-Sep-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
IfConverter: Use TargetSchedule for instruction latencies For targets that have instruction itineraries this means no change. Targets that move over to the new schedule model will use be able the new schedule module for instruction latencies in the if-converter (the logic is such that if there is no itineary we will use the new sched model for the latencies). Before, we queried "TTI->getInstructionLatency()" for the instruction latency and the extra prediction cost. Now, we query the TargetSchedule abstraction for the instruction latency and TargetInstrInfo for the extra predictation cost. The TargetSchedule abstraction will internally call "TTI->getInstructionLatency" if an itinerary exists, otherwise it will use the new schedule model. ATTENTION: Out of tree targets! (I will also send out an email later to LLVMDev) This means, if your target implements unsigned getInstrLatency(const InstrItineraryData *ItinData, const MachineInstr *MI, unsigned *PredCost); and returns a value for "PredCost", you now also need to implement unsigned getPredictationCost(const MachineInstr *MI); (if your target uses the IfConversion.cpp pass) radar://15077010 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191671 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
argetInstrInfo.cpp
argetSchedule.cpp
|
fd40d514ec7e95fe4a59a7a467c887b026364ff2 |
29-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Allocate AtomicSDNode operands in SelectionDAG's allocator to stop leakage. SDNode destructors are never called. As an optimization use AtomicSDNode's internal storage if we have a small number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f80a63fa23862e578de919f4b44d4fcdee68fd0d |
28-Sep-2013 |
Robert Wilhelm <robert.wilhelm@gmx.net> |
Fix spelling intruction -> instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
tackColoring.cpp
|
8034d7100652091c20101554a3b6d6afa545e696 |
28-Sep-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Silence unused variable warning on release builds git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bbafe422d6f9036b03992ee5eacb5d09644c3267 |
28-Sep-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Improve legalization of SELECT_CC with illegal condition codes SelectionDAG will now attempt to inverse an illegal conditon in order to find a legal one and if that doesn't work, it will attempt to swap the operands using the inverted condition. There are no new test cases for this, but a nubmer of the existing R600 tests hit this path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191602 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
12d43f9baf83b6a2cc444c89bb688ebfe01a9fa1 |
28-Sep-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Try to expand all condition codes using getCCSwappedOperands() This is useful for targets like R600, which only support GT, GE, NE, and EQ condition codes as it removes the need to handle unsupported condition codes in target specific code. There are no tests with this commit, but R600 has been updated to take advantage of this new feature, so its existing selectcc tests are now testing the swapped operands path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
8a9879a4481667b18eee4a0f8b254b3810878539 |
28-Sep-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Clean up LegalizeSetCCCondCode() function Interpreting the results of this function is not very intuitive, so I cleaned it up to make it more clear whether or not a SETCC op was legalized and how it was legalized (either by swapping LHS and RHS or replacing with AND/OR). This patch does change functionality in the LHS and RHS swapping case, but unfortunately there are no in-tree tests for this. However, this patch is a prerequisite for R600 to take advantage of the LHS and RHS swapping, so tests will be added in subsequent commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0b15e9893d8dc71127e722d122214d6ec5d89d0e |
28-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Unify conditionals and reformat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191582 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
18ebd48960afe9a4e694dac3ba0ee1002044d297 |
27-Sep-2013 |
Josh Magee <joshua_magee@playstation.sony.com> |
[stackprotector] Refactor the StackProtector pass from a single .cpp file into StackProtector.h and StackProtector.cpp. No functionality change. Future patches will add analysis which will be used in other passes (PEI, StackSlot). The end goal is to support ssp-strong stack layout rules. WIP. Differential Revision: http://llvm-reviews.chandlerc.com/D1521 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191570 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
a9f113d0662faba063742d0ed82709c1f9087710 |
27-Sep-2013 |
Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> |
Re-apply the change from r191393 with fix for pr17380. This change fixes the problem reported in pr17380 and re-add the dagcombine transformation ensuring that the value types are always legal if the transformation is triggered after Legalization took place. Added the test case from pr17380. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191509 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6c73cf5a8aef28e4274a0d843940fdee0d9f7329 |
26-Sep-2013 |
Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> |
Revert r191393 since it caused pr17380. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
30ec8a3658b1f06bb94d392c55feb7f107517bf8 |
26-Sep-2013 |
Venkatraman Govindaraju <venkatra@cs.wisc.edu> |
[Sparc] Implements exception handling in SPARC with DwarfCFI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
83ba58e5f0a5afbb23d7d2092d817accded4455a |
26-Sep-2013 |
Venkatraman Govindaraju <venkatra@cs.wisc.edu> |
Implements parsing and emitting of .cfi_window_save in MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191431 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
268c743a3ba44ada364938bc5ff9b1be219df54f |
26-Sep-2013 |
Amara Emerson <amara.emerson@arm.com> |
[ARM] Use the load-acquire/store-release instructions optimally in AArch32. Patch by Artyom Skrobov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b6ac11cd03e9dd97b45dc97787171f942ef8e344 |
26-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Added temp flag -misched-bench for staging in default changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191423 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
egisterCoalescer.cpp
electionDAG/SelectionDAGISel.cpp
|
7394a7c0c27d498fe7ff0760eeefdb83bb54a795 |
26-Sep-2013 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2ce3ac8dd8c8e43f0a1a4db1a11f452b087ca24d |
25-Sep-2013 |
Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> |
Teach DAGCombiner how to canonicalize dags according to the rule (shl (zext (shr A, X)), X) => (zext (shl (shr A, X), X)). The rule only triggers when there are no other uses of the zext to avoid materializing more instructions. This helps the DAGCombiner understand that the shl/shr sequence can then be converted into an and instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191393 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
070156437752179833b1e5fddd50caa03fd7c12f |
25-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Mark the x86 machine model as incomplete. PR17367. Ideally, the machinel model is added at the time the instructions are defined. But many instructions in X86InstrSSE.td still need a model. Without this workaround the scheduler asserts because x86 already has itinerary classes for these instructions, indicating they should be modeled by the scheduler. Since we use the new machine model for other instructions, it expects a new machine model for these too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191391 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
ce734f1f43b3c5f614b95b53e3ed86f65daca8dd |
25-Sep-2013 |
Quentin Colombet <qcolombet@apple.com> |
[PR16882] Ignore noreturn definitions when setting isPhysRegUsed. PEI inserts a save/restore sequence for the link register, according to the information it gets from the MachineRegisterInfo. MachineRegisterInfo is populated by the VirtRegMap pass. This pass was not aware of noreturn calls and was registering the definitions of these calls the same way as regular operations. Modify VirtRegPass so that it does not set the isPhysRegUsed information for registers only defined by noreturn calls. The rational is that a noreturn call is the "last instruction" of the program (if it returns the behavior is undefined), so everything that is defined by it cannot be used and will not interfere with anything else. Therefore, it is pointless to account for then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191349 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
85509802eba15c82ff486f512a0b559699dc6999 |
25-Sep-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Add missing check to SETCC optimization. PR17338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191337 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b0dfceec2282d4af1e87042f1db8ed51c5330132 |
24-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191312 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
cd216b2c7359b21de08e568792ae01106407b351 |
24-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Unify rotate matching for extended and unextended amounts. No functionality change, lots of indentation changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191303 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
477fc628b3c9ce1c970d4a678dd5607b15242cc8 |
24-Sep-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Initial support for Neon scalar instructions. Patch by Ana Pazos. 1.Added support for v1ix and v1fx types. 2.Added Scalar Pairwise Reduce instructions. 3.Added initial implementation of Scalar Arithmetic instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
eed779ff68c9a4612ea229f4fbd23a5258458889 |
24-Sep-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Allow for copies from vreg -> vreg to be in a terminator sequence. Sometimes a copy from a vreg -> vreg sneaks into the middle of a terminator sequence. It is safe to slice this into the stack protector success bb. This fixes PR16979. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3d2c90f6dd7bc86a320b96bace7ad3fda631bf17 |
24-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Add namespaces to the list of items that we expose via pubnames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191257 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5a63474e2d4c797ca8245edae4064f17b47df3ee |
24-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Add more external types to the pubtypes table. Expand the asm checking patch until we get full dumping support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191239 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
a31a975e54074f39d9d1643763f800ed138510a5 |
24-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Rename IsStatic variable to Linkage in order to be a bit more descriptive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191236 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
734334e349f8a803e7dbcd969ab6e6bbf540e1bc |
24-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191235 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
54e82495e99632c2d1009ac0dde796c0e9e651f7 |
23-Sep-2013 |
Bill Wendling <isanbard@gmail.com> |
Reformat code with clang-format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191226 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
cdeaae4f75fa2716bdc749b812273ac046344091 |
23-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Handle gnu pubtypes sections: a) Make sure we are emitting the correct section in our section labels when we begin the module. b) Make sure we are emitting the correct pubtypes section in the presence of gnu pubtypes. c) For C++ struct, union, class, and enumeration types are default external. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191225 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
670711e66217d32a751f0dfc7bb88006bfb05012 |
23-Sep-2013 |
Kay Tiong Khoo <kkhoo@perfwizard.com> |
fix typo: than -> then git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
eb46def978a60fd705cca3037feff5573122b404 |
23-Sep-2013 |
Richard Mitton <richard@codersnotes.com> |
Fixed debug_aranges handling for common symbols. The size of common symbols is now tracked correctly, so they can be listed in the arange section without needing knowledge of other following symbols. .comm (and .lcomm) do not indicate to the system assembler any particular section to use, so we have to treat them as having no section. Test case update to account for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191210 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0d293e45b66c742fdbc3998209bb20ed6c5806bf |
22-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Provide basic type safety for array_pod_sort comparators. This makes using array_pod_sort significantly safer. The implementation relies on function pointer casting but that should be safe as we're dealing with void* here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191175 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
3e84ad28d4d3ceee25771b1e30315c20b7608c39 |
22-Sep-2013 |
Tim Northover <tnorthover@apple.com> |
ISelDAG: spot chain cycles involving MachineNodes Previously, the DAGISel function WalkChainUsers was spotting that it had entered already-selected territory by whether a node was a MachineNode (amongst other things). Since it's fairly common practice to insert MachineNodes during ISelLowering, this was not the correct check. Looking around, it seems that other nodes get their NodeId set to -1 upon selection, so this makes sure the same thing happens to all MachineNodes and uses that characteristic to determine whether we should stop looking for a loop during selection. This should fix PR15840. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
189c6235e7d783928c94cbfe4bccb39e4bd0b84f |
21-Sep-2013 |
Juergen Ributzka <juergen@apple.com> |
Revert "SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too." This reverts commit r191130. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191138 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
1941431f8a0f61fb5d5e3175cc49efd5dd19033c |
21-Sep-2013 |
Juergen Ributzka <juergen@apple.com> |
SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too. The Type Legalizer recognizes that VSELECT needs to be split, because the type is to wide for the given target. The same does not always apply to SETCC, because less space is required to encode the result of a comparison. As a result VSELECT is split and SETCC is unrolled into scalar comparisons. This commit fixes the issue by checking for VSELECT-SETCC patterns in the DAG Combiner. If a matching pattern is found, then the result mask of SETCC is promoted to the expected vector mask for the given target. This mask has usually te same size as the VSELECT return type (except for Intel KNL). Now the type legalizer will split both VSELECT and SETCC. This allows the following X86 DAG Combine code to sucessfully detect the MIN/MAX pattern. This fixes PR16695, PR17002, and <rdar://problem/14594431>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
9e0b08dd2053843fd330774cdbac06a7b0191f14 |
21-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Move emission of the debug string table to early in the debug info finalization to greatly reduce the number of fixups that the assembler has to handle in order to improve compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191119 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
50d37a4e569536485ace9131fa6726a36c8e0d87 |
21-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Migrate addGlobalName to the .cpp file as an intermediate step to further work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191113 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
f45edcc3818757234c20d4d5975c0b992bf1f95e |
20-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Allow subtarget selection of the default MachineScheduler and document the interface. The global registry is used to allow command line override of the scheduler selection, but does not work well as the normal selection API. For example, the same LLVM process should be able to target multiple targets or subtargets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191071 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
ac3f016599ac50a4777b0348c43892c041ef489b |
20-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: GDBIndexEntry*String conversion functions now return const char* for easy llvm::formating This was previously invoking UB by passing a user-defined type to format. Thanks to Jordan Rose for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191060 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c2286720de4f665dc2750d54c3748d331f81e105 |
20-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
Add braces to suppress Clang's dangling-else warning. These violations were introduced in r191049 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5cc319a42a914b24b164a94d9a563c728a7a4026 |
20-Sep-2013 |
Richard Mitton <richard@codersnotes.com> |
Added support for generate DWARF .debug_aranges sections automatically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191052 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
70e0b047be83cbaca06c0cc72e508667bcd5e95f |
20-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Rename ConvergingScheduler to GenericScheduler. This was an experimental scheduler a year ago. It's now used by several subtargets, both in-order and out-of-order, and it is about to be enabled by default for x86 and armv7. It will be the new GenericScheduler for subtargets that don't provide their own SchedulingStrategy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191051 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
994c37fcb001bc5a53bf2c676009b327b882d765 |
20-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: llvm-dwarfdump support for gnu_pubnames section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191050 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ceb3b4649086c4aa6aa535440748c5860093f6e6 |
20-Sep-2013 |
Kai Nacke <kai.nacke@redstar.de> |
PR16726: extend rol/ror matching C-like languages promote types like unsigned short to unsigned int before performing an arithmetic operation. Currently the rotate matcher in the DAGCombiner does not consider this situation. This commit extends the DAGCombiner in the way that the pattern (or (shl ([az]ext x), (*ext y)), (srl ([az]ext x), (*ext (sub 32, y)))) is folded into ([az]ext (rotl x, y)) The matching is restricted to aext and zext because in this cases the upper bits are either undefined or known. Test case is included. This fixes PR16726. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191049 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7cb98c9cb7688ad775d4dee07ca66570f1c030d1 |
20-Sep-2013 |
Kai Nacke <kai.nacke@redstar.de> |
Revert PR16726: extend rol/ror matching There is a buildbot failure. Need to investigate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191048 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a5950e0149871671847c051c95113460f161e384 |
20-Sep-2013 |
Kai Nacke <kai.nacke@redstar.de> |
PR16726: extend rol/ror matching C-like languages promote types like unsigned short to unsigned int before performing an arithmetic operation. Currently the rotate matcher in the DAGCombiner does not consider this situation. This commit extends the DAGCombiner in the way that the pattern (or (shl ([az]ext x), (*ext y)), (srl ([az]ext x), (*ext (sub 32, y)))) is folded into ([az]ext (rotl x, y)) The matching is restricted to aext and zext because in this cases the upper bits are either undefined or known. Test case is included. This fixes PR16726. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191045 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
18a6ade6cd638c1e5d2c7c7d044cec0fec5c63d3 |
20-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Improve IR annotation comments for GNU pubthings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191043 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9599f51559c692bb20092da23e3a34b2cc841e03 |
19-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
Unshift the GDB index/GNU pubnames constants modified in r191025 Based on code review feedback from Eric Christopher, unshifting these constants as they can appear in the gdb_index itself, shifted a further 24 bits. This means that keeping them preshifted is a bit inflexible, so let's not do that. Given the motivation, wrap up some nicer enums, more type safety, and some utility functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191035 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ecb41cfe36c9e60664c95970bfae82e4cf7397c5 |
19-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Simplify gnu_pubnames index computation. Names open to bikeshedding. Could switch back to the constants being unshifted, but this way seems a bit easier to work with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191025 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e56a4d9236336910cf46976c22dc767ebc8ced43 |
19-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary conditional operators performing bool->bool conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191020 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
08b5ff7f5809ece849f1fdcd7e011aa175c31516 |
19-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix a typo and simplify a boolean expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191018 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
530d09a22bd2f5c638ae1932bed560c8a46e399e |
19-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Don't fold vector muls with constants that look like a splat of a power of 2 but differ in bit width. PR17283. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0a4371a2073d8841768cf3e8cf65601a8d7cc4fc |
19-Sep-2013 |
Adrian Prantl <aprantl@apple.com> |
Debug info: Get rid of the VLA indirection hack in FastISel. Use the DIVariable::isIndirect() flag set by the frontend instead of guessing whether to set the machine location's indirection bit. Paired commit with CFE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
65457b679ae240c1a37da82c5484dac478c47b6d |
17-Sep-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
Costmodel: Add support for horizontal vector reductions Upcoming SLP vectorization improvements will want to be able to estimate costs of horizontal reductions. Add infrastructure to support this. We model reductions as a series of (shufflevector,add) tuples ultimately followed by an extractelement. For example, for an add-reduction of <4 x float> we could generate the following sequence: (v0, v1, v2, v3) \ \ / / \ \ / + + (v0+v2, v1+v3, undef, undef) \ / ((v0+v2) + (v1+v3), undef, undef) %rdx.shuf = shufflevector <4 x float> %rdx, <4 x float> undef, <4 x i32> <i32 2, i32 3, i32 undef, i32 undef> %bin.rdx = fadd <4 x float> %rdx, %rdx.shuf %rdx.shuf7 = shufflevector <4 x float> %bin.rdx, <4 x float> undef, <4 x i32> <i32 1, i32 undef, i32 undef, i32 undef> %bin.rdx8 = fadd <4 x float> %bin.rdx, %rdx.shuf7 %r = extractelement <4 x float> %bin.rdx8, i32 0 This commit adds a cost model interface "getReductionCost(Opcode, Ty, Pairwise)" that will allow clients to ask for the cost of such a reduction (as backends might generate more efficient code than the cost of the individual instructions summed up). This interface is excercised by the CostModel analysis pass which looks for reduction patterns like the one above - starting at extractelements - and if it sees a matching sequence will call the cost model interface. We will also support a second form of pairwise reduction that is well supported on common architectures (haddps, vpadd, faddp). (v0, v1, v2, v3) \ / \ / (v0+v1, v2+v3, undef, undef) \ / ((v0+v1)+(v2+v3), undef, undef, undef) %rdx.shuf.0.0 = shufflevector <4 x float> %rdx, <4 x float> undef, <4 x i32> <i32 0, i32 2 , i32 undef, i32 undef> %rdx.shuf.0.1 = shufflevector <4 x float> %rdx, <4 x float> undef, <4 x i32> <i32 1, i32 3, i32 undef, i32 undef> %bin.rdx.0 = fadd <4 x float> %rdx.shuf.0.0, %rdx.shuf.0.1 %rdx.shuf.1.0 = shufflevector <4 x float> %bin.rdx.0, <4 x float> undef, <4 x i32> <i32 0, i32 undef, i32 undef, i32 undef> %rdx.shuf.1.1 = shufflevector <4 x float> %bin.rdx.0, <4 x float> undef, <4 x i32> <i32 1, i32 undef, i32 undef, i32 undef> %bin.rdx.1 = fadd <4 x float> %rdx.shuf.1.0, %rdx.shuf.1.1 %r = extractelement <4 x float> %bin.rdx.1, i32 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190876 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
496f02481dd9abdee85c61d88f07963ea27b9e38 |
17-Sep-2013 |
Serge Pavlov <sepavloff@gmail.com> |
Added documentation to getMemsetStores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
24e1b39a24ca7b8866a636498173f3959b561058 |
17-Sep-2013 |
Quentin Colombet <qcolombet@apple.com> |
[SelectionDAG] Teach the vector scalarizer about TRUNCATE. When a truncate node defines a legal vector type but uses an illegal vector type, the legalization process was splitting the vector until <1 x vector> type, but then it was failing to scalarize the node because it did not know how to handle TRUNCATE. <rdar://problem/14989896> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
818833f27929d650b4323774cd3660860588f687 |
17-Sep-2013 |
Adrian Prantl <aprantl@apple.com> |
Debug info: Fix PR16736 and rdar://problem/14990587. A DBG_VALUE is register-indirect iff the first operand is a register _and_ the second operand is an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190821 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveDebugVariables.cpp
egAllocFast.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
b06ea25b4c4cff341194279e01c08d23fa022378 |
17-Sep-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Use reference instead of copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190813 91177308-0d34-0410-b5e6-96231b3b80d8
hrinkWrapping.cpp
|
1e3037f0be430ef2339838bbdede11f45658bd82 |
16-Sep-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement function prefix data as an IR feature. Previous discussion: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/063909.html Differential Revision: http://llvm-reviews.chandlerc.com/D1191 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190773 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
94ee55d4b39d6506cf4e0f4e4b1c0b7fbbfeaed5 |
16-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace some unnecessary vector copies with references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190770 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
77364b7a200682e84f75171f30f8a77005b87e94 |
15-Sep-2013 |
Hal Finkel <hfinkel@anl.gov> |
Prevent assert in CombinerGlobalAA with null values DAGCombiner::isAlias can be called with SrcValue1 or SrcValue2 null, and we can't use AA in this case (if we try, then the casting code in AA will assert). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190763 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0df68423f9567b3d3eafb3b26668f783b07f687f |
13-Sep-2013 |
Quentin Colombet <qcolombet@apple.com> |
[Peephole] Rewrite copies to avoid cross register banks copies. By definition copies across register banks are not coalescable. Still, it may be possible to get rid of such a copy when the value is available in another register of the same register file. Consider the following example, where capital and lower letters denote different register file: b = copy A <-- cross-bank copy ... C = copy b <-- cross-bank copy This could have been optimized this way: b = copy A <-- cross-bank copy ... C = copy A <-- same-bank copy Note: b and C's definitions may be in different basic blocks. This patch adds a peephole optimization that looks through a chain of copies leading to a cross-bank copy and reuses a source that is on the same register file if available. This solution could also be used to get rid of some copies (e.g., A could have been used instead of C). However, we do not do so because: - It may over constrain the coloring of the source register for coalescing. - The register allocator may not be able to find a nice split point for the longer live-range, leading to more spill. <rdar://problem/14742333> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190713 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
8f1a9299de0333c8c310b7580ea63ba5b7a3c400 |
13-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Add initial support for handling gnu style pubnames accepted by some versions of gold. This support is designed to allow gold to produce gdb_index sections similar to the accelerator tables and consumable by gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190649 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5704d640abd96f8614ad4be555fcf1049c500bcd |
13-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Reformat and hoist section grabbing to top level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190648 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
715d98d657491b3fb8ea0e14643e9801b2f9628c |
12-Sep-2013 |
Joey Gouly <joey.gouly@arm.com> |
Add an instruction deprecation feature to TableGen. The 'Deprecated' class allows you to specify a SubtargetFeature that the instruction is deprecated on. The 'ComplexDeprecationPredicate' class allows you to define a custom predicate that is called to check for deprecation. For example: ComplexDeprecationPredicate<"MCR"> would mean you would have to define the following function: bool getMCRDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI, std::string &Info) Which returns 'false' for not deprecated, and 'true' for deprecated and store the warning message in 'Info'. The MCTargetAsmParser constructor was chaned to take an extra argument of the MCInstrInfo class, so out-of-tree targets will need to be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190598 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
9ec1a55a863f658292b19d7a3c167ba089134dff |
12-Sep-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix crash in AggressiveAntiDepBreaker with empty CriticalPathSet If no register classes are added to CriticalPathRCs, then the CriticalPathSet bitmask will be empty. In that case, ExcludeRegs must remain NULL or else this line will cause a segfault: } else if ((ExcludeRegs != NULL) && ExcludeRegs->test(AntiDepReg)) { I have no in-tree test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190584 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
6fc4f7e2b67f89913e6b94888577a09918187e7d |
12-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Remove pointless assertion after r190376 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
995de6cddf74cdd7fb46b1ba53f4442df28be8ed |
11-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug info: add more comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190544 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4f7e2c38e864d7eaeb407ac501478e9579624d1b |
11-Sep-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add getUnrollingPreferences to TTI Allow targets to customize the default behavior of the generic loop unrolling transformation. This will be used by the PowerPC backend when targeting the A2 core (which is in-order with a deep pipeline), and using more aggressive defaults is important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190542 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
55c06ae7afa3f862a6bb4a4441fe485c135f5b5e |
11-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert "Give internal classes hidden visibility." It works with clang, but GCC has different rules so we can't make all of those hidden. This reverts commit r190534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190536 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.h
llocationOrder.h
ntiDepBreaker.h
smPrinter/DIE.h
smPrinter/DIEHash.h
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
ranchFolding.h
riticalAntiDepBreaker.h
nterferenceCache.h
iveDebugVariables.h
iveRangeCalc.h
rologEpilogInserter.h
egAllocBase.h
electionDAG/InstrEmitter.h
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGBuilder.h
pillPlacement.h
plitKit.h
|
15f387c93ef8d5c23f110143996c8b9b4a089864 |
11-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Give internal classes hidden visibility. Worth 100k on a linux/x86_64 Release+Asserts clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190534 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.h
llocationOrder.h
ntiDepBreaker.h
smPrinter/DIE.h
smPrinter/DIEHash.h
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
ranchFolding.h
riticalAntiDepBreaker.h
nterferenceCache.h
iveDebugVariables.h
iveRangeCalc.h
rologEpilogInserter.h
egAllocBase.h
electionDAG/InstrEmitter.h
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGBuilder.h
pillPlacement.h
plitKit.h
|
b79f576f5849e8bc38796753f6c9de9ec691401d |
11-Sep-2013 |
Bill Wendling <isanbard@gmail.com> |
Simplify the checking of function attributes by using the simple methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190499 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3b389cb74e13a5631c9650115aafd2af4580ce83 |
11-Sep-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Rename variables for consistency. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190466 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ResourcePriorityQueue.cpp
|
ae43dac30037395cce2b54af0a02500985813183 |
11-Sep-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Fix unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190448 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
electionDAG/ResourcePriorityQueue.cpp
|
21a6a5013d30d0515bc36da1ef49fa7c2e838f16 |
10-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Hoist section call out of loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fd2210a78dc621d3fb5c3613ff59b341041b3a4b |
10-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: create scope children DIEs when the scope DIE is not null. We try to create the scope children DIEs after we create the scope DIE. But to avoid emitting empty lexical block DIE, we first check whether a scope DIE is going to be null, then create the scope children if it is not null. From the number of children, we decide whether to actually create the scope DIE. This patch also removes an early exit which checks for a special condition. It also removes deletion of un-used children DIEs that are generated because we used to generate children DIEs before the scope DIE. Deletion of un-used children DIEs may cause problem because we sometimes keep created DIEs in a member variable of a CU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2c46deb1d07f4588ee70059cdd4c7145f81bc8e8 |
10-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: define a DIRef template. Specialize the constructors for DIRef<DIScope> and DIRef<DIType> to make sure the Value is indeed a scope ref and a type ref. Use DIScopeRef for DIScope::getContext and DIType::getContext and use DITypeRef for getContainingType and getClassType. DIScope::generateRef now returns a DIScopeRef instead of a "Value *" for readability and type safety. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190418 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c6c08508cab2fc4f52e9ab44dce272e240661e06 |
10-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Don't use getSetCCResultType for creating a vselect The vselect mask isn't a setcc. This breaks in the case when the result of getSetCCResultType is larger than the vector operands e.g. %tmp = select i1 %cmp <2 x i8> %a, <2 x i8> %b when getSetCCResultType returns <2 x i32>, the assertion that the (MaskTy.getSizeInBits() == Op1.getValueType().getSizeInBits()) is hit. No test since I don't think I can hit this with any of the current targets. The R600/SI implementation would break, since it returns a vector of i1 for this, but it doesn't reach ExpandSELECT for other reasons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
fc7fd0992a9114ea8a04d51d03c5fa4cdc1b33bf |
10-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Enable -misched-cyclicpath by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190367 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e72aba9c0ff5b19128f54b09a36d2f4c2a53b40b |
10-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: move DIScope::getContext back from DwarfDebug. This partially reverts r190330. DIScope::getContext now returns DIScopeRef instead of DIScope. We construct a DIScopeRef from DIScope when we are dealing with subprogram, lexical block or name space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ee50a46026a8e131bd1b82df729d1c45f856d0ec |
10-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: smooth out the cyclicpath heuristic. Arnold's idea. I generally try to avoid stateful heuristics because it can make debugging harder. However, we need a way to prevent the latency priority from dominating, and it somewhat makes sense to schedule aggressively for latency only within an issue group. Swift in particular likes this, and it doesn't hurt anyone else: | Benchmarks/MiBench/consumer-lame | 10.39% | | Benchmarks/Misc/himenobmtxpa | 9.63% | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190360 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
3af4d250676623b88436b89212108eb4fff897d3 |
10-Sep-2013 |
Jack Carter <jack.carter@imgtec.com> |
white spaces and long lines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
28b020d373a0706afc19c869ac4efce4a83e6090 |
09-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Always add global names. We're adding them in the rest of the code as well as types. No functional change as they're not emitted unless the option is true anyhow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190346 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
574793250890a55103c53f5ffaf6933db1e2e388 |
09-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Rename for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190345 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
da11df0c22f5d0ba2e2be3ae4a7076c806233db8 |
09-Sep-2013 |
Bill Wendling <isanbard@gmail.com> |
Call generateCompactUnwindEncodings() right before we need to output the frame information. There are more than one paths to where the frame information is emitted. Place the call to generateCompactUnwindEncodings() into the method which outputs the frame information, thus ensuring that the encoding is there for every path. This involved threading the MCAsmBackend object through to this method. <rdar://problem/13623355> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190335 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2c9905a1f3bcf22cc2f93332cc8411d11798ba07 |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use DIScopeRef for DIType::getContext. In DIBuilder, the context field of a TAG_member is updated to use the scope reference. Verifier is updated accordingly. DebugInfoFinder now needs to generate a type identifier map to have access to the actual scope. Same applies for BreakpointPrinter. processModule of DebugInfoFinder is called during initialization phase of the verifier to make sure the type identifier map is constructed early enough. We are now able to unique a simple class as demonstrated by the added testing case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190334 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
18eb245a2e5ec41b5da1367d5f7e7619532f7ceb |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: move DIScope::getContext to DwarfDebug. DIScope::getContext is a wrapper function that calls the specific getContext method on each subclass. When we switch DIType::getContext to return DIScopeRef instead of DIScope, DIScope::getContext can no longer return a DIScope without a type identifier map. DIScope::getContext is only used by DwarfDebug, so we move it to DwarfDebug to have easy access to the type identifier map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190330 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
db3a9e64f856e3a233a427da1f3969fd3a65a438 |
09-Sep-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert patches to add case-range support for PR1255. The work on this project was left in an unfinished and inconsistent state. Hopefully someone will eventually get a chance to implement this feature, but in the meantime, it is better to put things back the way the were. I have left support in the bitcode reader to handle the case-range bitcode format, so that we do not lose bitcode compatibility with the llvm 3.3 release. This reverts the following commits: 155464, 156374, 156377, 156613, 156704, 156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575, 157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884, 157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100, 159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659, 159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
02d296759cd53f2d6081fd307c4d81cc41f2c9ed |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Move isSubprogramContext from DebugInfo to DwarfDebug. This helper function needs the type identifier map when we switch DIType::getContext to return DIScopeRef instead of DIScope. Since isSubprogramContext is used by DwarfDebug only, We move it to DwarfDebug to have easy access to the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c573305bce147df68051a6dffef034c6210ab89c |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Rename DITypeRef to DIScopeRef. A reference to a scope is more general than a reference to a type since DIType is a subclass of DIScope. A reference to a type can be either an identifier for the type or the DIType itself, while a reference to a scope can be either an identifier for the type (when the scope is indeed a type) or the DIScope itself. A reference to a type and a reference to a scope will be resolved in the same way. The only difference is in the verifier when a field is a reference to a type (i.e. the containing type field of a DICompositeType) or a field is a reference to a scope (i.e. the context field of a DIType). This is to get ready for switching DIType::getContext to return DIScopeRef instead of DIScope. Tighten up isTypeRef and isScopeRef to make sure the identifier is not empty and the MDNode is DIType for TypeRef and DIScope for ScopeRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190322 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
54cf1413aca342753ab846d915c6a55d9c087bc6 |
09-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
[stackprotector] Modernize code with IRBuilder git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190317 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
b57d99694b87326a2eea26d76becf67bf5784b49 |
09-Sep-2013 |
Joey Gouly <joey.gouly@arm.com> |
[ARMv8] Prevent generation of deprecated IT blocks on ARMv8 in Thumb mode. IT blocks can only be one instruction lonf, and can only contain a subset of the 16 instructions. Patch by Artyom Skrobov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190309 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c3cee57f7d20f69a84fd88464ed8cf050e63c7ad |
09-Sep-2013 |
Bill Wendling <isanbard@gmail.com> |
Generate compact unwind encoding from CFI directives. We used to generate the compact unwind encoding from the machine instructions. However, this had the problem that if the user used `-save-temps' or compiled their hand-written `.s' file (with CFI directives), we wouldn't generate the compact unwind encoding. Move the algorithm that generates the compact unwind encoding into the MCAsmBackend. This way we can generate the encoding whether the code is from a `.ll' or `.s' file. <rdar://problem/13623355> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190290 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
0e85f6e391990cc20be98263640b843edfa32bef |
07-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use identifier to reference DIType in containing type field of a DISubprogram. Verifier is updated accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190229 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
e42279cda481b48138d2119f4a4bbce7077f0a72 |
06-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use identifier to reference DIType in containing type field of a DICompositeType. Verifier is updated accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
fb386db636d134b0b72cf0a37075906cf8f7248c |
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: cleanup register pressure update, remove a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190181 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
6bf0c6c53577485360247a527dd16aaa3297b93c |
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: improve regpressure tracing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190180 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
fd30312c492ef2d627af2df48e6d4f5d03c456bc |
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: print tree size in -view-misched-dags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190179 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
1251bcccc1ab02b1953318c4b79fc6a590b57efe |
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: register pressure update tracing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190178 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
f9c2fa8341d4b7fe64ccd7beb5696d4a9934f5e9 |
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Reorder Cyclicpath (latency) and CriticalMax (pressure) heuristics. The latency based scheduling could induce spills in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190177 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
38e61122f27a8ca4ef0578eaf6dc5242880d2918 |
06-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Added MachineSchedPolicy. Allow subtargets to customize the generic scheduling strategy. This is convenient for targets that don't need to add new heuristics by specializing the strategy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190176 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
b63db853500b3dcb46a96af3f2d5aec003e41d77 |
06-Sep-2013 |
Matthias Braun <matze@braunis.de> |
avoid unnecessary direct access to LiveInterval::ranges git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190170 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
egisterCoalescer.cpp
trongPHIElimination.cpp
|
1920156982643a1c5c28af6f4684580b516eb597 |
06-Sep-2013 |
Matthias Braun <matze@braunis.de> |
remove unused argument from LiveRanges::join() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190169 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
egisterCoalescer.cpp
|
2d5558cbaecfcaea72b80a725417dde6ed80ee04 |
06-Sep-2013 |
Matthias Braun <matze@braunis.de> |
remove pointless assert The if above it ensures the property anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190168 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
c725865bbcfb935f3698f26b6608fdbd2b2d3fd4 |
06-Sep-2013 |
Matthias Braun <matze@braunis.de> |
fix comment There's no 'B3' in the example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190167 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
a5eeb9da054bd76b38e18bedb9015bbaf20605e0 |
06-Sep-2013 |
Tim Northover <tnorthover@apple.com> |
SelectionDAG: create correct BooleanContent constants Occasionally DAGCombiner can spot that a SETCC operation is completely redundant and reduce it to "all true" or "all false". If this happens to a vector, the value produced has to take account of what a normal comparison would have produced, which may be an all-1s bitmask. The fix in SelectionDAG.cpp is tested, however, as far as I can see the code in TargetLowering.cpp is possibly unreachable and almost certainly irrelevant when triggered so there are no tests. However, I believe it's still clearly the right change and may save someone else some hassle if it suddenly becomes reachable. So I'm doing it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190147 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
bc66071baa3153ba95d673b8084383835221eef6 |
05-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use identifier to reference DIType in base type field of ptr_to_member. We introduce a new class DITypeRef that represents a reference to a DIType. It wraps around a Value*, which can be either an identifier in MDString or an actual MDNode. The class has a helper function "resolve" that finds the actual MDNode for a given DITypeRef. We specialize getFieldAs to return a field that is a reference to a DIType. To correctly access the base type field of ptr_to_member, getClassType now calls getFieldAs<DITypeRef> to return a DITypeRef. Also add a typedef for DITypeIdentifierMap and a helper generateDITypeIdentifierMap in DebugInfo.h. In DwarfDebug.cpp, we keep a DITypeIdentifierMap and call generateDITypeIdentifierMap to actually populate the map. Verifier is updated accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190081 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
577056f89c840537b059ea4cef8d2ae18513cda0 |
05-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Move accelerator table defines and constants to Dwarf.h since we're proposing it for DWARF5. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190074 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
5b9544b526fb655a8abcbb2034206e1a25aa4690 |
05-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Reformat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190064 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
|
d4486ebd5f9b727fc73407b93a7d83aab7551179 |
05-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Force bottom up scheduling for generic targets. Fast register pressure tracking currently only takes effect during bottom up scheduling. Forcing this is a bit faster and simpler for targets that don't have many scheduling constraints and don't need top-down scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190014 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
efc47ec528c32f09fa32445f54ee966b462add0f |
05-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Remove hack ensuring that darwin didn't produce dwarf > 3 for modules without a limiting factor. Update all testcases accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190002 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6509593cb64669d8d4416a83f1417f4e68632fa1 |
04-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "Revert r189902 as the workaround shouldn't be necessary anymore." Needs testcase updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190000 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a42c7d5db12db0a2fe6ee26a65050d7f27f528bc |
04-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Revert r189902 as the workaround shouldn't be necessary anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3d6e70c857ded2605699f7de1b18269f4fb390bf |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
comment typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189997 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
ba9ec8ce802b6b15a70db5faa805f6c12267328b |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Remove dead subtree limit code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189995 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
da9f441854db4852118d0787583eb2be231c15d1 |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
-view-misched-dags, better pruning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189994 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
ee5fd9cf102ef6b10b3df1202ef525c9ef38b127 |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: DEBUG cleanup, call tracePick for unidirectional scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189993 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
85d7f0be788e4c7659c0937b409dc278ef7d06b9 |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189992 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
16bb45c5c8e918efa732fd7d0b31c0f31dc2a979 |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Suppress register pressure tracking when the scheduling window is too small. If the instruction window is < NumRegs/2, pressure tracking is not likely to be effective. The scheduler has to process a very large number of tiny blocks. We want this to be fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189991 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
d1d0d37a198df718b0fd1f838b7d9593b1636299 |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Load clustering is a bit to expensive to enable unconditionally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189990 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
00b5fa4c280a5e7b84142d73b0ce86fa13654f2a |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Reuse an invalid HazardRecognizer to save compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189989 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
40b52bb8f2b4f63f6d99e347af0c48945f9cb4d2 |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: bypass heuristic checks when regpressure tracking is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189988 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
42ebb3ad41813af292cfa681c1fe2aadd1008721 |
04-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Added -misched-regpressure option. Register pressure tracking is half the complexity of the scheduler. It's useful to be able to turn it off for compile time and performance comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189987 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
|
4dc211ae399343312137f0391f5e7d235ab15f24 |
04-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Unify and clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189977 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
dc42d031fb5787733d6765d6fefc76d46a7a4c9b |
04-Sep-2013 |
Michael Gottesman <mgottesman@apple.com> |
Revert "Revert "Remove the darwin gdb option, that version of gdb is now dead and the rest of the compatibility should be done on a dwarf-N level."" This reverts commit r189913. Talked with Eric on IRC. I am going to XFAIL the failing test since it is using what Eric described as "the member hack" which was needed on that old GDB. Sorry for the noise! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189914 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
14ce9f1d253472b73689787c28808dd2ade6281d |
04-Sep-2013 |
Michael Gottesman <mgottesman@apple.com> |
Revert "Remove the darwin gdb option, that version of gdb is now dead and the rest of the compatibility should be done on a dwarf-N level." This reverts commit r189903. This commit broke the phase 1 buildbot for a while. http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/6684 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189913 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
0a69049b6232a2183de23867c1fb2e4fa38ee093 |
04-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Remove the darwin gdb option, that version of gdb is now dead and the rest of the compatibility should be done on a dwarf-N level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189903 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
04031a6c2266c32b658e412147334d553990cfd5 |
04-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Make the default dwarf version 3 for darwin when we can't find one in the module. Add a FIXME with a comment about darwin's ld. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189902 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
800a8761285a239bb82f7d1883a8398815cd2d8f |
03-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Add a hashing routine that handles hashing types. Add a test for hashing the contents of DW_FORM_data1 on top of a type with attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189862 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
41627cf813afae89b23b0570bcd2f99a545f9eea |
03-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Sentences end with periods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189861 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.h
|
bd18c8d0903b695bd503a45cf11901d48eea61bd |
03-Sep-2013 |
Eric Christopher <echristo@gmail.com> |
Add the rest of the stock attributes to the attribute table. This won't affect the kinds of hashes we test for as we actually do hashing based on form and attribute. Change the fission-hash testcase one last time to handle DW_AT_comp_dir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189840 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
c94e7b50c36ce866772e269f1541f49cbf114d27 |
31-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Fix my previous checkin to updatePressureDiffs. There was one case that we could hit a DebugValue where I didn't think to check. DebugValues are evil. No checkinable test case, sorry. It's an obvious fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189717 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
846b31d74aa673a178f57f9d47f366d8ddb756d3 |
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Use LiveRangeQuery for instruction-level liveness queries. Remove redundant or bug-prone LiveInterval APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189685 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
egisterPressure.cpp
|
663bd9922776e5f7bc17dfc574efe3fe05ceb12c |
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: update PressureDiffs on-the-fly for liveness. This removes all expensive pressure tracking logic from the scheduling critical path of node comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189643 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
cheduleDAGInstrs.cpp
|
1362dcb5899bc88f0e567dd10e2e9003a79ace21 |
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Replace LiveInterval::killedAt with isKilledAtInstr. Return true for LRGs that end at EarlyClobber or Register slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189642 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
egisterPressure.cpp
|
da6fc15f0fb26ebbe42ab96e0d066bbd5bdbb72e |
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: improve the generic register pressure comparison. Only compare pressure within the same set. When multiple sets are affected, we prioritize the most constrained set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189641 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
4c60b8a78d811a5b16ae45f6957933fb479bab58 |
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Precompute a PressureDiff for each instruction, adjust for liveness later. Created SUPressureDiffs array to hold the per node PDiff computed during DAG building. Added a getUpwardPressureDelta API that will soon replace the old one. Compute PressureDelta here from the precomputed PressureDiffs. Updating for liveness will come next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189640 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
cheduleDAGInstrs.cpp
|
6dc6a89d73c24f20caabda4cdcd9279e88658d0b |
30-Aug-2013 |
Andrew Trick <atrick@apple.com> |
comment typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189635 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
2612354594d286501348a4ca4b72eaf11de77070 |
30-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Don't bother emitting the pubtypes section on darwin since there aren't any maintained consumers of it on that platform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ab6cd837317872025b60495c3d34b4a4ef612690 |
30-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Reformat slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189630 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
851bb2c9cbbd3b1847def5ca7ea8dadf457298b5 |
29-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Comment and revise the cyclic critical path code. This should be much more clear now. It's still disabled pending testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189597 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
f208398528efde82bc49f48d0fef0587c1f192bb |
29-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Revert: r189565 - Add getUnrollingPreferences to TTI Revert unintentional commit (of an unreviewed change). Original commit message: Add getUnrollingPreferences to TTI Allow targets to customize the default behavior of the generic loop unrolling transformation. This will be used by the PowerPC backend when targeting the A2 core (which is in-order with a deep pipeline), and using more aggressive defaults is important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189566 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
32f258b96a723b771eb44a2c0689b8bf4dd871ee |
29-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add getUnrollingPreferences to TTI Allow targets to customize the default behavior of the generic loop unrolling transformation. This will be used by the PowerPC backend when targeting the A2 core (which is in-order with a deep pipeline), and using more aggressive defaults is important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189565 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
253acef7a5ea2fbba7848d2257ae3cce2ea02ce0 |
29-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Use TargetSubtargetInfo::useAA() in DAGCombine This uses the TargetSubtargetInfo::useAA() function to control the defaults of the -combiner-alias-analysis and -combiner-global-alias-analysis options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
738073c4aa474e27c9d3c991daf593bddce54718 |
29-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add useAA() to TargetSubtargetInfo There are several optional (off-by-default) features in CodeGen that can make use of alias analysis. These features are important for generating code for some kinds of cores (for example the (in-order) PPC A2 core). This adds a useAA() function to TargetSubtargetInfo to allow these features to be enabled by default on a per-subtarget basis. Here is the first use of this function: To control the default of the -enable-aa-sched-mi feature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189563 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
2b884bcbce3ec76bd065d2dd9a6597f13e9fdd57 |
29-Aug-2013 |
Juergen Ributzka <juergen@apple.com> |
Fix a typo and coding style of a previous commit. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6b6345f0167fb9ddf60bdc51d616d7a9ae590442 |
28-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Remove support for the .debug_inlined section. No known software in use supports it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189439 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c3e9457f6d66d1cc16fc37e39ed5fe13f835875c |
28-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Add a TODO here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189428 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
7ced4fa25778d646b29e1fb92ef8de01d279e57a |
28-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Add support for DW_FORM_dataN and DW_FORM_udata to the DIE hashing algorithm. Update the split dwarf hashing testcase accordingly - this should be the last time that the hash of an empty file changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189427 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
7b2ee399d9c1b2112962d29540c25b94fa98e8ed |
28-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Use DW_FORM_sdata for signed constant values and udata on occasion when we can. Migrate from using blocks when we're adding just a single attribute and floating point values are an unsigned, not signed, bag of bits. Update all test cases accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189419 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5d8c2e460cac05dedf3466d630995f1475317fc9 |
27-Aug-2013 |
Tim Northover <tnorthover@apple.com> |
DAGCombiner: make sure or/shl/srl really has zero high bits before forming bswap We want to convert code like (or (srl N, 8), (shl N, 8)) into (srl (bswap N), const), but this is only valid if the bits above 16 on the source pattern are 0, the checks we were doing on this were slightly wrong before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
15cfa585eb86328bb626d0375e1b71873a83beb9 |
27-Aug-2013 |
Owen Anderson <resistor@mac.com> |
Remove an over-zealous assertion. A pointer type could be illegal if the target is prepared to custom-legalize pointer operands. This assertion was evaluated before the target would have a chance to do so, making it impossible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
fdaf0308c8d2d58dc156e553fb11947a0a3dfafb |
27-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189296 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
30410d5993f3c99da9102ccf6f78a63f9f64f252 |
27-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Make the lifetime of the DICompileUnit we're constructing from the MDNode more clear as just for a single argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a9b2c79e266a29aac47b2c38b218ee8d9b052c15 |
27-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Have the skeleton compile unit construction method take the CU it is constructing from as an input and keep the same unique identifier. We can use this to connect items which must stay in the .o file (e.g. pubnames and pubtypes) to the skeleton cu rather than having duplicate unique numbers for the sections and needing to do lookups based on MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189293 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4c65ab79a7bc1c7121fcba738464266dd8efd053 |
27-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Remove duplicate set of CompilationDir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189292 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7b87895a6c7307a0ee809659abdaefe4a48b6bc6 |
27-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Remove the language parameter and variable from the compile unit. We can get it via the MDNode that's passed in. Save that instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189291 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
63ae7c9aeca10f1028bb7232672ccefb2343ba08 |
27-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Treat the pubtypes section similarly to the pubnames section and emit it by default under linux or when we're trying to keep compatibility with old gdb versions. Fix testcase for option name change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189289 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
978046bd070fbd3b9359922611b3fd5d3fd7ab96 |
27-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Only emit the section sym if we're emitting the section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189288 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
03be5e5b6e2d604313df5b7758bffcf5b0bb0ef0 |
26-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Fix thinko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189279 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
edd08f74289c6ba3b3f8e730e4ab825ef9bd6492 |
26-Aug-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Remove unnecessary uses of TargetLowering::getPointerTy() If we have a binary operation like ISD:ADD, we can set the result type equal to the result type of one of its operands rather than using TargetLowering::getPointerTy(). Also, any use of DAG.getIntPtrConstant(C) as an operand for a binary operation can be replaced with: DAG.getConstant(C, OtherOperand.getValueType()); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
|
c52565157d23c7b8a374b74044a5458ea67d6cb5 |
26-Aug-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Use correct pointer size when splitting vector stores git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189224 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
da25cd3e6de8f21005590c2de49868f883cf2410 |
26-Aug-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Use correct pointer size when lowering function arguments v2 This adds minimal support to the SelectionDAG for handling address spaces with different pointer sizes. The SelectionDAG should now correctly lower pointer function arguments to the correct size as well as generate the correct code when lowering getelementptr. This patch also updates the R600 DataLayout to use 32-bit pointers for the local address space. v2: - Add more helper functions to TargetLoweringBase - Use CHECK-LABEL for tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
argetLoweringBase.cpp
|
b31eebd3fd8384d4355dab1efbba6be339de70cd |
25-Aug-2013 |
David Majnemer <david.majnemer@gmail.com> |
AsmPrinter: Get rid of llvm$workaround$fake$stub$ We currently emit labels with the prefix Lllvm$workaround$fake$stub$ if the target's MCAsmInfo has getLinkOnceDirective() mapped to something interesting. This was apparently a work around introduced in r31033 for binutils that we don't need anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189187 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0b6962f4be35aca7054ff68ef9bbbb2e03617d31 |
24-Aug-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a function object to compare the first or second component of a std::pair. Replace instances of this scattered around the code base. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189169 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
4321d4e4a9b5786e990a9e731165f3ee3df6fa01 |
24-Aug-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189168 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6bee6319c64d2c5dae98491f8a6ab65981708109 |
24-Aug-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DwarfDebug: Delete orphaned children. Leak found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189167 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
12d3dc73dc44acd8b11cca783b826ccbd66f44da |
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
PrintVRegOrUnit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189124 91177308-0d34-0410-b5e6-96231b3b80d8
argetRegisterInfo.cpp
|
751c6d28780e9e852f71aff63de608cff6a146ec |
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Rename to RegPressure API parameters RegUnits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189123 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
6abb4ab8127e270477f1028cb089c0d0fe4be927 |
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Simplify RegPressure helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189122 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
238bf5ada19ee411c1decff68e140966f7baf479 |
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Add a convenient PSetIterator for visiting pressure sets affected by a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189121 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
ea57433cee8bd59acaa99d148b45df92347cea68 |
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Adds cyclic critical path computation and heuristics, temporarily disabled. Estimate the cyclic critical path within a single block loop. If the acyclic critical path is longer, then the loop will exhaust OOO resources after some number of iterations. If lag between the acyclic critical path and cyclic critical path is longer the the time it takes to issue those loop iterations, then aggressively schedule for latency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189120 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
99093638a024fc23609a323677e67bb1dc63ebe7 |
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: record local vreg uses. This will be used to compute the cyclic critical path and to update precomputed per-node pressure differences. In the longer term, it could also be used to speed up LiveInterval update by avoiding visiting all global vreg users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189118 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
d2763f6ce62eaa497e944331668414e35f3712f3 |
23-Aug-2013 |
Andrew Trick <atrick@apple.com> |
mi-sched: Don't call MBB.size() in initSUnits. The driver already has instr count. This fixes a pathological compile time problem with very large blocks and lots of scheduling boundaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189116 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
|
a8a7099c1849fcbb4a68642a292fd0250aa46505 |
23-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
Turn MipsOptimizeMathLibCalls into a target-independent scalar transform ...so that it can be used for z too. Most of the code is the same. The only real change is to use TargetTransformInfo to test when a sqrt instruction is available. The pass is opt-in because at the moment it only handles sqrt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189097 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
58a9b4388bcace0f332205f960c6c8705fb5a24b |
23-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stack protector] Work around an issue with the BMOVPCB_CALL instruction on ARM by disabling does not return on __stack_chk_fail. This is to fix the bots while I look to see if there is something I can do here. rdar://14811848 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
062cd9437ff0de45e321f8ddb04f876a4fd90e33 |
22-Aug-2013 |
Bill Wendling <isanbard@gmail.com> |
Check only if we have this attribute. If it's not an attribute, then it's assumed false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189063 91177308-0d34-0410-b5e6-96231b3b80d8
argetOptionsImpl.cpp
|
021f3280fe791722c668cb96b02f473f2f76f925 |
22-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] When finding the split point to splice off the end of a parentmbb into a successmbb, include any DBG_VALUE MI. Fix for PR16954. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d00968a7a52b23a0d9fc5c1c4b07aceb2cd15006 |
22-Aug-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SelectionDAG: Make sure stores are always added to the LegalizedNodes list When truncated vector stores were being custom lowered in VectorLegalizer::LegalizeOp(), the old (illegal) and new (legal) node pair was not being added to LegalizedNodes list. Instead of the legalized result being passed to VectorLegalizer::TranslateLegalizeResult(), the result was being passed back into VectorLegalizer::LegalizeOp(), which ended up adding a (new, new) pair to the list instead. This was causing an assertion failure when a custom lowered truncated vector store was the last instruction a basic block and the VectorLegalizer was unable to find it in the LegalizedNodes list when updating the DAG root. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188953 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
915e936de270c3c57df1382b683001adc2c0d695 |
21-Aug-2013 |
Juergen Ributzka <juergen@apple.com> |
Teach BaseIndexOffset::match to identify base pointers in loops. The small utility function that pattern matches Base + Index + Offset patterns for loads and stores fails to recognize the base pointer for loads/stores from/into an array at offset 0 inside a loop. As a result DAGCombiner::MergeConsecutiveStores was not able to merge all stores. This commit fixes the issue by adding an additional pattern match and also a test case. Reviewer: Nadav git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188936 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d7d43dc435f24e611d9d8090f6ca80a4998efd31 |
21-Aug-2013 |
David Majnemer <david.majnemer@gmail.com> |
DebugInfo: Do not use the DWARF Version for the .debug_pubnames or .debug_pubtypes version field Summary: LLVM would generate DWARF with version 3 in the .debug_pubname and .debug_pubtypes version fields. This would lead SGI dwarfdump to fail parsing the DWARF with (in the instance of .debug_pubnames) would exit with: dwarfdump ERROR: dwarf_get_globals: DW_DLE_PUBNAMES_VERSION_ERROR (123) This fixes PR16950. Reviewers: echristo, dblaikie Reviewed By: echristo CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1454 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188869 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8c20158fb0e1e5d747077f065eb0170c5af1fbfa |
20-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Use SRST to optimize memchr SystemZTargetLowering::emitStringWrapper() previously loaded the character into R0 before the loop and made R0 live on entry. I'd forgotten that allocatable registers weren't allowed to be live across blocks at this stage, and it confused LiveVariables enough to cause a miscompilation of f3 in memchr-02.ll. This patch instead loads R0 in the loop and leaves LICM to hoist it after RA. This is actually what I'd tried originally, but I went for the manual optimisation after noticing that R0 often wasn't being hoisted. This bug forced me to go back and look at why, now fixed as r188774. We should also try to optimize null checks so that they test the CC result of the SRST directly. The select between null and the SRST GPR result could then usually be deleted as dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
9608ed1311ca15fc43ee09dabea97d12f32485a4 |
20-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
Fix overly pessimistic shortcut in post-RA MachineLICM Post-RA LICM keeps three sets of registers: PhysRegDefs, PhysRegClobbers and TermRegs. When it sees a definition of R it adds all aliases of R to the corresponding set, so that when it needs to test for membership it only needs to test a single register, rather than worrying about aliases there too. E.g. the final candidate loop just has: unsigned Def = Candidates[i].Def; if (!PhysRegClobbers.test(Def) && ...) { to test whether register Def is multiply defined. However, there was also a shortcut in ProcessMI to make sure we didn't add candidates if we already knew that they would fail the final test. This shortcut was more pessimistic than the final one because it checked whether _any alias_ of the defined register was multiply defined. This is too conservative for targets that define register pairs. E.g. on z, R0 and R1 are sometimes used as a pair, so there is a 128-bit register that aliases both R0 and R1. If a loop used R0 and R1 independently, and the definition of R0 came first, we would be able to hoist the R0 assignment (because that used the final test quoted above) but not the R1 assignment (because that meant we had two definitions of the paired R0/R1 register and would fail the shortcut in ProcessMI). This patch just uses the same check for the ProcessMI shortcut as we use in the final candidate loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188774 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
ade3075030ddd6db370649993a6da5e21e73daab |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Small cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188772 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
d4f478899e6229648f94c4aa70256986cdc6ee18 |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Small Bit of computation hoisting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188771 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
b99272a521ecffe8d021306713bd51fafc85721e |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Added significantly longer comment to FindPotentialTailCall to make clear its relationship to llvm::isInTailCallPosition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188770 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
c02dbeb429f3a11f396c3915b638a9a525c97c62 |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Removed trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188769 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
47d6e07a9be631c582d47d8187a9073619d1c158 |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Removed stale TODO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188768 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
3480d1b84e0bdea91c08dcd931fe86b562971f3d |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Added support for emitting the llvm intrinsic stack protector check. rdar://13935163 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188766 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
9d6852cf98dd1e6a939b3469ea49ff7cbc15ad73 |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Refactor out the end of isInTailCallPosition into the function returnTypeIsEligibleForTailCall. This allows me to use returnTypeIsEligibleForTailCall in the stack protector pass. rdar://13935163 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188765 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
1a6de17273c58129880d8de8094ecc935721b1a1 |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Remove unused variables that crept in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188761 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
657484f494edbac571ce2a91b8ac227e5011321d |
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Teach selectiondag how to handle the stackprotectorcheck intrinsic. Previously, generation of stack protectors was done exclusively in the pre-SelectionDAG Codegen LLVM IR Pass "Stack Protector". This necessitated splitting basic blocks at the IR level to create the success/failure basic blocks in the tail of the basic block in question. As a result of this, calls that would have qualified for the sibling call optimization were no longer eligible for optimization since said calls were no longer right in the "tail position" (i.e. the immediate predecessor of a ReturnInst instruction). Then it was noticed that since the sibling call optimization causes the callee to reuse the caller's stack, if we could delay the generation of the stack protector check until later in CodeGen after the sibling call decision was made, we get both the tail call optimization and the stack protector check! A few goals in solving this problem were: 1. Preserve the architecture independence of stack protector generation. 2. Preserve the normal IR level stack protector check for platforms like OpenBSD for which we support platform specific stack protector generation. The main problem that guided the present solution is that one can not solve this problem in an architecture independent manner at the IR level only. This is because: 1. The decision on whether or not to perform a sibling call on certain platforms (for instance i386) requires lower level information related to available registers that can not be known at the IR level. 2. Even if the previous point were not true, the decision on whether to perform a tail call is done in LowerCallTo in SelectionDAG which occurs after the Stack Protector Pass. As a result, one would need to put the relevant callinst into the stack protector check success basic block (where the return inst is placed) and then move it back later at SelectionDAG/MI time before the stack protector check if the tail call optimization failed. The MI level option was nixed immediately since it would require platform specific pattern matching. The SelectionDAG level option was nixed because SelectionDAG only processes one IR level basic block at a time implying one could not create a DAG Combine to move the callinst. To get around this problem a few things were realized: 1. While one can not handle multiple IR level basic blocks at the SelectionDAG Level, one can generate multiple machine basic blocks for one IR level basic block. This is how we handle bit tests and switches. 2. At the MI level, tail calls are represented via a special return MIInst called "tcreturn". Thus if we know the basic block in which we wish to insert the stack protector check, we get the correct behavior by always inserting the stack protector check right before the return statement. This is a "magical transformation" since no matter where the stack protector check intrinsic is, we always insert the stack protector check code at the end of the BB. Given the aforementioned constraints, the following solution was devised: 1. On platforms that do not support SelectionDAG stack protector check generation, allow for the normal IR level stack protector check generation to continue. 2. On platforms that do support SelectionDAG stack protector check generation: a. Use the IR level stack protector pass to decide if a stack protector is required/which BB we insert the stack protector check in by reusing the logic already therein. If we wish to generate a stack protector check in a basic block, we place a special IR intrinsic called llvm.stackprotectorcheck right before the BB's returninst or if there is a callinst that could potentially be sibling call optimized, before the call inst. b. Then when a BB with said intrinsic is processed, we codegen the BB normally via SelectBasicBlock. In said process, when we visit the stack protector check, we do not actually emit anything into the BB. Instead, we just initialize the stack protector descriptor class (which involves stashing information/creating the success mbbb and the failure mbb if we have not created one for this function yet) and export the guard variable that we are going to compare. c. After we finish selecting the basic block, in FinishBasicBlock if the StackProtectorDescriptor attached to the SelectionDAGBuilder is initialized, we first find a splice point in the parent basic block before the terminator and then splice the terminator of said basic block into the success basic block. Then we code-gen a new tail for the parent basic block consisting of the two loads, the comparison, and finally two branches to the success/failure basic blocks. We conclude by code-gening the failure basic block if we have not code-gened it already (all stack protector checks we generate in the same function, use the same failure basic block). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
66d1fa6f4b443ac9f8bcea5d1f71a73ada733a42 |
20-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add a llvm.copysign intrinsic This adds a llvm.copysign intrinsic; We already have Libfunc recognition for copysign (which is turned into the FCOPYSIGN SDAG node). In order to autovectorize calls to copysign in the loop vectorizer, we need a corresponding intrinsic as well. In addition to the expected changes to the language reference, the loop vectorizer, BasicTTI, and the SDAG builder (the intrinsic is transformed into an FCOPYSIGN node, just like the function call), this also adds FCOPYSIGN to a few lists in LegalizeVector{Ops,Types} so that vector copysigns can be expanded. In TargetLoweringBase::initActions, I've made the default action for FCOPYSIGN be Expand for vector types. This seems correct for all in-tree targets, and I think is the right thing to do because, previously, there was no way to generate vector-values FCOPYSIGN nodes (and most targets don't specify an action for vector-typed FCOPYSIGN). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188728 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
argetLoweringBase.cpp
|
05bae3bfe47b63976cfa63b4756d3e768dd9eebc |
19-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Use less verbose code and update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188711 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f04e4efcaa02012b7943b44c61b321a0fb5e1a72 |
19-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Turn on pubnames by default on linux. Until gdb supports the new accelerator tables we should add the pubnames section so that gdb_index can be generated from gold at link time. On darwin we already emit the accelerator tables and so don't need to worry about pubnames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188708 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d345395ec97a303ffd420c3e761af7b9e3e4c338 |
19-Aug-2013 |
Paul Redmond <paul.redmond@intel.com> |
Improve the widening of integral binary vector operations - split WidenVecRes_Binary into WidenVecRes_Binary and WidenVecRes_BinaryCanTrap - WidenVecRes_BinaryCanTrap preserves the original behaviour for operations that can trap - WidenVecRes_Binary simply widens the operation and improves codegen for 3-element vectors by allowing widening and promotion on x86 (matches the behaviour of unary and ternary operation widening) - use WidenVecRes_Binary for operations on integers. Reviewed by: nrotem git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
a0e735ee16f439675c1842e47ba3149aa226bdc0 |
19-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add ExpandFloatOp_FCOPYSIGN to handle ppcf128-related expansions We had previously been asserting when faced with a FCOPYSIGN f64, ppcf128 node because there was no way to expand the FCOPYSIGN node. Because ppcf128 is the sum of two doubles, and the first double must have the larger magnitude, we can take the sign from the first double. As a result, in addition to fixing the crash, this is also an optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188655 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
2883fd4df4bba4bb57b984bcea5fa896d435a662 |
19-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: don't emit zero-length names for parameters We check this in many/all other cases, just missed this one it seems. Perhaps it'd be worth unifying this so we never emit zero-length DW_AT_names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188649 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
b49860ef030cb2dba0386278ee8737eecc4e7272 |
17-Aug-2013 |
Jim Grosbach <grosbach@apple.com> |
ARM: Fix more fast-isel verifier failures. Teach the generic instruction selection helper functions to constrain the register classes of their input operands. For non-physical register references, the generic code needs to be careful not to mess that up when replacing references to result registers. As the comment indicates for MachineRegisterInfo::replaceRegWith(), it's important to call constrainRegClass() first. rdar://12594152 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188593 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
692062f18023979c0f8d5a155c14cf1f1616a2b0 |
16-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Allow the addition of other (such as static data) members to a record type after construction Plus a type cleanup & minor fix to enumerate members of declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
19262ee0725a09b7c621a3d2eb66ba1513ae932a |
16-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Use SRST to implement strlen and strnlen It would also make sense to use it for memchr; I'm working on that now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
4fc7355a21e1fa838406e15459aaf54a58fcf909 |
16-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Use MVST to implement strcpy and stpcpy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
e1b2af731e2a45344a7c502232f66c55cd746da0 |
16-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Use CLST to implement strcmp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
6a079fef4fad3e6c2e07c9e1d0776e20a0b05b1e |
16-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Fix handling of 64-bit memcmp results Generalize r188163 to cope with return types other than MVT::i32, just as the existing visitMemCmpCall code did. I've split this out into a subroutine so that it can be used for other upcoming patches. I also noticed that I'd used the wrong API to record the out chain. It's a load that uses DAG.getRoot() rather than getRoot(), so the out chain should go on PendingLoads. I don't have a testcase for that because we don't do any interesting scheduling on z yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188540 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
873e392ffd6701f6724e4c2a7accd0a4e1f1e0a1 |
15-Aug-2013 |
Bill Wendling <isanbard@gmail.com> |
Make a few more things const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7d938adacc9a625b09dd1b4c0c0df0247a1b1ed2 |
15-Aug-2013 |
Bill Wendling <isanbard@gmail.com> |
Use a reference instead of making an unnecessary copy. Also use 'const'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0ff1190888f5b24f64a196392c452800447186d8 |
15-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Replace getValueType().getSimpleVT() with getSimpleValueType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
e742d687369f79702894b6cf302e1f222c5d7432 |
15-Aug-2013 |
Mark Lacey <mark.lacey@apple.com> |
Auto-compute live intervals on demand. When new virtual registers are created during splitting/spilling, defer creation of the live interval until we need to use the live interval. Along with the recent commits to notify LiveRangeEdit when new virtual registers are created, this makes it possible for functions like TargetInstrInfo::loadRegFromStackSlot() and TargetInstrInfo::storeRegToStackSlot() to create multiple virtual registers as part of the process of generating loads/stores for different register classes, and then have the live intervals for those new registers computed when they are needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188437 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
HIElimination.cpp
piller.cpp
plitKit.cpp
trongPHIElimination.cpp
|
03fe68e0a9c0fdd196f62899cb44b6f9a56dd7c8 |
15-Aug-2013 |
Mark Lacey <mark.lacey@apple.com> |
Notify LiveRangeEdit of new virtual registers. Add a delegate class to MachineRegisterInfo with a single virtual function, MRI_NoteNewVirtualRegister(). Update LiveRangeEdit to inherit from this delegate class and override the definition of the callback with an implementation that tracks the newly created virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188435 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
achineRegisterInfo.cpp
|
1feb5854aeeda897e9318c8193d187673c8576b8 |
15-Aug-2013 |
Mark Lacey <mark.lacey@apple.com> |
Track new virtual registers by register number. Track new virtual registers by register number, rather than by the live interval created for them. This is the first step in separating the creation of new virtual registers and new live intervals. Eventually live intervals will be created and populated on demand after the virtual registers have been created and used in instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188434 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
iveDebugVariables.h
iveRangeEdit.cpp
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
plitKit.cpp
|
cbb5c73942b62e693d9233907720138dd4f40f26 |
15-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Prefer references over pointers, pass by const reference for a type that will grow in the future git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188422 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
1c6d387dc90fba589f8effb17c72a39f966f87df |
14-Aug-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unnecessary parameter to RenumberValues. Patch by Matthias Braun! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188393 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveRangeEdit.cpp
plitKit.cpp
|
2aeef00d681bf4010d234949043fe0beb29547e2 |
14-Aug-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Improve misleading comment. Patch by Matthias Braun! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188391 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
15d737b855dc91c4e9143a655ce6c25ac565b6ec |
14-Aug-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove declaration of nonexistant function. Patch by Matthias Braun! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188390 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.h
|
be6a376b95d03e4e58f10ed50c3eee2f593c9ccc |
14-Aug-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
LiveIntervalUnion is not used in RegAllocBase. Patch by Matthias Braun! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188389 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
|
51a0280d296405cb1fdb268e5387867e0db2e46e |
13-Aug-2013 |
Jim Grosbach <grosbach@apple.com> |
DAG: Combine (and (setne X, 0), (setne X, -1)) -> (setuge (add X, 1), 2) A common idiom is to use zero and all-ones as sentinal values and to check for both in a single conditional ("x != 0 && x != (unsigned)-1"). That generates code, for i32, like: testl %edi, %edi setne %al cmpl $-1, %edi setne %cl andb %al, %cl With this transform, we generate the simpler: incl %edi cmpl $1, %edi seta %al Similar improvements for other integer sizes and on other platforms. In general, combining the two setcc instructions into one is better. rdar://14689217 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188315 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3add0679d24a00c4a585809c6ce54486f6a458f5 |
13-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Update makeLibCall to return both the call and the chain associated with the libcall instead of just the call. This allows us to specify libcalls that return void. LowerCallTo returns a pair with the return value of the call as the first element and the chain associated with the return value as the second element. If we lower a call that has a void return value, LowerCallTo returns an SDValue with a NULL SDNode and the chain for the call. Thus makeLibCall by just returning the first value makes it impossible for you to set up the chain so that the call is not eliminated as dead code. I also updated all references to makeLibCall to reflect the new return type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/TargetLowering.cpp
|
46f0b6f10a6d50ba929f64cc3412bc1c35864a63 |
13-Aug-2013 |
Carlo Kok <ck@remobjects.com> |
Output DW_AT_stmt_list dwarf debug info as DW_FORM_sec_offset instead of DW_FORM_data4 as it is a section offset (fixes the coff/dwarf debug info statement locations) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e05a304e5af754e4f8b1f1a35e22ebf35f072995 |
13-Aug-2013 |
Carlo Kok <ck@remobjects.com> |
For COFF only: dwarf debug info output a label reference as a section relative item only when it's one of dw_from strp, sec_offset, ref_addr or op_call_ref instead of going by size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188296 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
|
15ab9f4aaa0bebe50c1367963c409d929bede030 |
13-Aug-2013 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Pass DIEHash::collectAttributes output argument by-pointer instead of by-value. Before this, collectAttributes() was operating on a local object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188254 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
|
6aa9315353574c000c5f2aa0edd34067e94b8c79 |
13-Aug-2013 |
David Majnemer <david.majnemer@gmail.com> |
[-cxx-abi microsoft] Stick zero initialized symbols into the .bss section for COFF Summary: We need to do two things: - Initialize BSSSection in MCObjectFileInfo::InitCOFFMCObjectFileInfo - Teach TargetLoweringObjectFileCOFF::SelectSectionForGlobal what to do with it This fixes PR16861. Reviewers: rnk Reviewed By: rnk CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1361 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188244 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
0710bfa8667ea08ede15bf4f801f25418b4cefa0 |
13-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Add the start of DIE hashing for DWARF4 type units and split dwarf CUs. Currently only hashes the name of CUs and the names of any children, but it's an obvious first step to show the framework. The testcase should continue to be correct, however, as it's an empty TU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188243 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
smPrinter/DwarfDebug.cpp
|
dd0cd3c4f468b55651bf33240667881bbed8d04c |
13-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Reflow comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
|
11de8539cb5d4c5f33b39aabcd38d65b05c176a7 |
13-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Remove empty constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188232 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.h
|
b0a50ade8b59816324783733e9ac8eb2aa7e73d6 |
12-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Fixed SelectionDAGBuilder.h C++ filetype declaration to use the canonical C++ instead of c++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
8711b767b4a04eebc23ad1490891c1f8dd2539ad |
12-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Fixed another place in CodeGen where we had a typo in our editor C++ filetype declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188202 91177308-0d34-0410-b5e6-96231b3b80d8
HIEliminationUtils.h
|
a8b107e9e0379f6fbe1a22ba0654a7ff895be9f3 |
12-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[branchfolding] Fix typo in C++ editor declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188201 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.h
|
f962c02b80cc8b21c8ece92ab5dd67455a945361 |
12-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Move the addition of the dwo_id as late as possible after everything has been finalized except for sizes and offsets. Update test accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188199 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
15b2782ccf141930cc98507a1cb1d501fbfd4000 |
12-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Add in the stackprotector libcall. We support this libcall on all platforms except for OpenBSD (See lib/Codegen/StackProtector.cpp). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188193 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringBase.cpp
|
ac168b8bc8773a083a10902f64e4ae57a925aee4 |
12-Aug-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Use CLC and IPM to implement memcmp For now this is restricted to fixed-length comparisons with a length in the range [1, 256], as for memcpy() and MVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6a4e44f0de6e59d4458e3795c765a9001ba1b87f |
12-Aug-2013 |
Tim Northover <tnorthover@apple.com> |
Allow compatible extension attributes for tail calls If the tail-callee and caller give the same bits via the same signext/zeroext attribute then a tail-call should be allowed, since the extension has already been done by the callee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188159 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
236e389be4bb7f65e78bd378143b67f401f05338 |
09-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Simplify SP Pass so that we emit different fail basic blocks for each fail condition. This patch decouples the stack protector pass so that we can support stack protector implementations that do not use the IR level generated stack protector fail basic block. No codesize increase is caused by this change since the MI level tail merge pass properly merges together the fail condition blocks (see the updated test). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188105 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
b0e8d37240835c68357be061de5f2e5fb69dd7ac |
09-Aug-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make helper static and fix formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188074 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
ad445a60d0d899d235f75d8b4e01c5f75cdf4f23 |
09-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Change asserts at the top of getVectorShuffle to check that LHS and RHS have the same type as the result. Previously the asserts were only checking that RHS and LHS were the same type and had the same element type as the result. All downstream code for ISD::VECTOR_SHUFFLE requires the types to be the same. Also removed one unnecessary check of matched element counts that was present in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188051 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3d7f79a02e143cfcbc85ea2091f2797285a9db84 |
09-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Set ISD::FROUND to Expand by default for all types For most libm ISD nodes, TargetLoweringBase::initActions sets the default scalar-type action to Expand, and leaves the vector-type action default as Legal. This is not appropriate for the new ISD::FROUND node (which no backend but PowerPC handles explicitly). Fixes PR16842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188048 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringBase.cpp
|
b8b2a03117d7fed88c3311b58c0f5660ee9eee19 |
09-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Update the CMake build files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188030 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
0d27ca145fff7d71ca2da5d356925a1df6f533ca |
09-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Move hash computation code into a separate class and file. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188028 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIEHash.cpp
smPrinter/DIEHash.h
smPrinter/DwarfDebug.cpp
|
9b19dfc2e003e33892be2d80ad535d18f24c53d9 |
08-Aug-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
Revert "Reapply r185872 now that the address sanitizer has been changed to support this." This reverts commit r187939. It broke an O0 build of a spec benchmark. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188012 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
76ef79f410853a431c820cb5d0ee11cd66d4c90d |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
For DW_TAG_template_type_parameter the actual passed in type could be void and therefore not have a type entry. Only add the type if it is non-void and provide a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187966 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
eee2a11ee38307ea3b0bbd43c33e5fad182f0951 |
08-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Remove AllUndef check from one of the loops in getVectorShuffle. It was already handled by the 'AllLHS && AllRHS' check after the previous loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
37c107b9b57aab9a13cde0d1db41b66565941f9d |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
The conversion to bool is fine here, no need to check isType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187964 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
dc1363f5af47542a602c80e726749bc06d8ef3f8 |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Make sure that if we're going to attempt to add a type to a DIE that the type exists. Fix up cases where we weren't checking for optional types and add an assert to addType to make sure we catch this in the future. Fix up a testcase that was using the tag for DW_TAG_array_type when it meant DW_TAG_enumeration_type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187963 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
afdd1f8a851349e2b3cdc6d441043ac3f4cdb9b9 |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Change variable name and reflow formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
01d22aaa78b831ad4837f928e0554be7e65addaa |
08-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Optimize mask generation for one of the DAG combiner shufflevector cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9706d43b56e16eb3029314e02c499305284e99f1 |
08-Aug-2013 |
David Majnemer <david.majnemer@gmail.com> |
Revert "coff also doesn't have a ReadOnlySection yet, (!)" This reverts commit r77814. We were sticking global constants in the .data section instead of in the .rdata section when emitting for COFF. This fixes PR16831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187956 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
a1eacd020f3f7fe7f959ad44f206f71055454c45 |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Reflow for loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187954 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
31667626106048c07866d996e667a3a10010ef4b |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Be more rigorous about the sizes of forms and attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187953 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d3a951026462713a377c0fe616bf512de59a56bc |
08-Aug-2013 |
Bill Wendling <isanbard@gmail.com> |
Reapply r185872 now that the address sanitizer has been changed to support this. Original commit message: Stop emitting weak symbols into the "coal" sections. The Mach-O linker has been able to support the weak-def bit on any symbol for quite a while now. The compiler however continued to place these symbols into a "coal" section, which required the linker to map them back to the base section name. Replace the sections like this: __TEXT/__textcoal_nt instead use __TEXT/__text __TEXT/__const_coal instead use __TEXT/__const __DATA/__datacoal_nt instead use __DATA/__data <rdar://problem/14265330> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187939 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
41418d17cced656f91038b2482bc9d173b4974b0 |
08-Aug-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add ISD::FROUND for libm round() All libm floating-point rounding functions, except for round(), had their own ISD nodes. Recent PowerPC cores have an instruction for round(), and so here I'm adding ISD::FROUND so that round() can be custom lowered as well. For the most part, this is straightforward. I've added an intrinsic and a matching ISD node just like those for nearbyint() and friends. The SelectionDAG pattern I've named frnd (because ISD::FP_ROUND has already claimed fround). This will be used by the PowerPC backend in a follow-up commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187926 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
argetLoweringBase.cpp
|
fab2daa4a1127ecb217abe2b07c1769122b6fee1 |
08-Aug-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '10251753b6897adcd22cc981c0cc42f348c109de' into merge-20130807 Conflicts: lib/Archive/ArchiveReader.cpp lib/Support/Unix/PathV2.inc Change-Id: I29d8c1e321a4a380b6013f00bac6a8e4b593cc4e
|
10251753b6897adcd22cc981c0cc42f348c109de |
07-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Using the integrated assembler we'd fail to change section to the .tbss section for zerofill thread locals. Make sure we do this before emitting the zerofills. Fixes PR15972. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187913 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cc47c120e42ca8e8b88995786fb4bcbdca604762 |
07-Aug-2013 |
Andrew Trick <atrick@apple.com> |
Confusing comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187895 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
f76e118cf879a90145aebbdc39fdd7feb9bf3e51 |
07-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Remove some parens. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187872 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b7669139e6309679acbe16ca26f1b1a2fdd91268 |
07-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Add a way to grab a particular attribute out of a DIE. Use it when we're looking for a string in particular. Update comments as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187844 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
028f3478a510ef0855abc891237882b3c6123671 |
07-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Move somewhat messy conditional out of line. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2d66d4cf42022239bfc9cd260a7b924400139cb5 |
07-Aug-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
LoopVectorize: Allow vectorization of loops with lifetime markers Patch by Marc Jessome! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187825 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
d113448c1dd5f40522c3c02db96e87a9eb59eaf4 |
06-Aug-2013 |
Tim Northover <tnorthover@apple.com> |
Refactor isInTailCallPosition handling This change came about primarily because of two issues in the existing code. Niether of: define i64 @test1(i64 %val) { %in = trunc i64 %val to i32 tail call i32 @ret32(i32 returned %in) ret i64 %val } define i64 @test2(i64 %val) { tail call i32 @ret32(i32 returned undef) ret i32 42 } should be tail calls, and the function sameNoopInput is responsible. The main problem is that it is completely symmetric in the "tail call" and "ret" value, but in reality different things are allowed on each side. For these cases: 1. Any truncation should lead to a larger value being generated by "tail call" than needed by "ret". 2. Undef should only be allowed as a source for ret, not as a result of the call. Along the way I noticed that a mismatch between what this function treats as a valid truncation and what the backends see can lead to invalid calls as well (see x86-32 test case). This patch refactors the code so that instead of being based primarily on values which it recurses into when necessary, it starts by inspecting the type and considers each fundamental slot that the backend will see in turn. For example, given a pathological function that returned {{}, {{}, i32, {}}, i32} we would consider each "real" i32 in turn, and ask if it passes through unchanged. This is much closer to what the backend sees as a result of ComputeValueVTs. Aside from the bug fixes, this eliminates the recursion that's going on and, I believe, makes the bulk of the code significantly easier to understand. The trade-off is the nasty iterators needed to find the real types inside a returned value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187787 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
2e363350f5b3a5df6a92b5afe55ee2375e06740a |
06-Aug-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
AsmPrinter/CMakeLists.txt: Add explicit dependency to intrinsics_gen here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187778 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
4c5be13890f723d78a92d4c96006f9102c4580a0 |
06-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Recommit previous cleanup with a fix for c++98 ambiguity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187752 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
425b76c2314ff7ee7ad507011bdda1988ae481ef |
06-Aug-2013 |
Tom Stellard <thomas.stellard@amd.com> |
TargetLowering: Add getVectorIdxTy() function v2 This virtual function can be implemented by targets to specify the type to use for the index operand of INSERT_VECTOR_ELT, EXTRACT_VECTOR_ELT, INSERT_SUBVECTOR, EXTRACT_SUBVECTOR. The default implementation returns the result from TargetLowering::getPointerTy() The previous code was using TargetLowering::getPointerTy() for vector indices, because this is guaranteed to be legal on all targets. However, using TargetLowering::getPointerTy() can be a problem for targets with pointer sizes that differ across address spaces. On such targets, when vectors need to be loaded or stored to an address space other than the default 'zero' address space (which is the address space assumed by TargetLowering::getPointerTy()), having an index that is a different size than the pointer can lead to inefficient pointer calculations, (e.g. 64-bit adds for a 32-bit address space). There is no intended functionality change with this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
de5cb6b24925c8d3113f02e94d2c16cfed69c47d |
06-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "Use existing builtin hashing functions to make this routine more" This reverts commit r187745. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187747 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c222f671099ae5cc354a22078eeb405b5e02a91b |
06-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Use existing builtin hashing functions to make this routine more simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187745 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b30347e64e0bd2904a39cd72631b91900f46d601 |
05-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Change parent hashing algorithm to be non-recursive and elaborate greatly on many comments in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f8e16c6f5a3a0d2cc6f7ae6dae0a8f55a89cfb2f |
05-Aug-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't leak passes if added outside of the area determined by Started/Stopped flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187722 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
fdabd9f391c1c32c8800d1a07b03604b4a00ef3b |
02-Aug-2013 |
Carlo Kok <ck@remobjects.com> |
Bugfix for making the DWARF debug strings and labels to code emitted as secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB (with fix for 64bits msvc) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187656 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ee1d7db74b24f941dd0334f5ca3db7ab48f65ede |
02-Aug-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r187597, "Bugfix for making the DWARF debug strings and labels to code emitted as secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB." It broke x86_64-win32 builder in llvm/test/DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187642 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
61fc8d670f1e991804c2ab753e567981e60962cb |
01-Aug-2013 |
Bill Wendling <isanbard@gmail.com> |
Use function attributes to indicate that we don't want to realign the stack. Function attributes are the future! So just query whether we want to realign the stack directly from the function instead of through a random target options structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187618 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c8b93557da150e051c273701652a2db328708708 |
01-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Emit definitions for types with no members. The absence of members was a poor/incorrect proxy for "is definition". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5b25082ddb88a3fdedcd3841d5f397402fcd3be4 |
01-Aug-2013 |
Carlo Kok <ck@remobjects.com> |
Bugfix for making the DWARF debug strings and labels to code emitted as secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB. fixes Bug 16249 - LLVM generates broken debug info on Windows git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187597 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1a54c57cf654e001c078c7064123d30e6c03e349 |
31-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Fix crashing on invalid inline asm with matching constraints. For a testcase like the following: typedef unsigned long uint64_t; typedef struct { uint64_t lo; uint64_t hi; } blob128_t; void add_128_to_128(const blob128_t *in, blob128_t *res) { asm ("PAND %1, %0" : "+Q"(*res) : "Q"(*in)); } where we'll fail to allocate the register for the output constraint, our matching input constraint will not find a register to match, and could try to search past the end of the current operands array. On the idea that we'd like to attempt to keep compilation going to find more errors in the module, change the error cases when we're visiting inline asm IR to return immediately and avoid trying to create a node in the DAG. This leaves us with only a single error message per inline asm instruction, but allows us to safely keep going in the general case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187470 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b0bee810e7f980ccb4c0ee56aed948716a51d0ab |
31-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Reflow this to be easier to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c0173e6f9f0de4497cd9b52b4f2269a57846f2ac |
30-Jul-2013 |
Andrew Trick <atrick@apple.com> |
Down-scale slot index distance to save bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187438 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
d71efffdcffc4204e75238f940df41fb24979a7d |
30-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: Track live-thru registers. When registers must be live throughout the scheduling region, increase the limit for the register class. Once we exceed the original limit, they will be spilled, and there's no point further reducing pressure. This isn't a perfect heuristics but avoids a situation where the scheduler could become trapped by trying to achieve the impossible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187436 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
|
1e46fcd9891897f4fef8d8404214a7c9b6db158b |
30-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched fix: assert "Disconnected LRG within the scheduling region." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187435 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
75c9433b49b1e4e2d7e61249c3cd0e3ce910d5c8 |
30-Jul-2013 |
Quentin Colombet <qcolombet@apple.com> |
[DAGCombiner] insert_vector_elt: Avoid building a vector twice. This patch prevents the following combine when the input vector is used more than once. insert_vector_elt (build_vector elt0, ..., eltN), NewEltIdx, idx => build_vector elt0, ..., NewEltIdx, ..., eltN The reasons are: - Building a vector may be expensive, so try to reuse the existing part of a vector instead of creating a new one (think big vectors). - elt0 to eltN now have two users instead of one. This may prevent some other optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
86aa03d5f991959299821ba45d476e2c51427139 |
30-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Fix a truly egregious thinko in anonymous namespace check, update testcase to make sure we generate debug info for walrus by adding a non-trivial constructor and verify that we don't emit an ODR signature for the type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187393 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
944aa2b784c727f5d4dca1a1a5347af8519ae6f2 |
30-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Make sure we don't emit an ODR hash for types with no name and make sure the comments for each testcase are a bit easier to distinguish. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187392 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
be48204a7b80917aff0bc659c75571b28fed2f24 |
30-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Elaborate a bit on the type unit and ODR conditional code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187385 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fdbea5107b5a8249421fd5e603a31f40f05ea25f |
29-Jul-2013 |
Nico Rieck <nico.rieck@gmail.com> |
Use proper section suffix for COFF weak symbols 32-bit symbols have "_" as global prefix, but when forming the name of COMDAT sections this prefix is ignored. The current behavior assumes that this prefix is always present which is not the case for 64-bit and names are truncated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187356 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
1faea8f0869a173c5952b59fd17718cf42111416 |
27-Jul-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DwarfDebug: MD5 is always little endian, bswap on big endian platforms. This makes LLVM emit the same signature regardless of host and target endianess. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187304 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
05497cc965b59dff8a8170c5cbbcef3dff251262 |
27-Jul-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a memory leak in the debug emission by simply not allocating memory. There doesn't appear to be any reason to put this variable on the heap. I'm suspicious of the LexicalScope above that we stuff in a map and then delete afterward, but I'm just trying to get the valgrind bot clean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187301 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
81e480463d8bb57776d03cebfd083762909023f1 |
27-Jul-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Reimplement isPotentiallyReachable to make nocapture deduction much stronger. Adds unit tests for it too. Split BasicBlockUtils into an analysis-half and a transforms-half, and put the analysis bits into a new Analysis/CFG.{h,cpp}. Promote isPotentiallyReachable into llvm::isPotentiallyReachable and move it into Analysis/CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
57e6b2d1f3de0bf459e96f7038e692d624f7e580 |
27-Jul-2013 |
Tom Stellard <thomas.stellard@amd.com> |
SimplifyCFG: Use parallel-and and parallel-or mode to consolidate branch conditions Merge consecutive if-regions if they contain identical statements. Both transformations reduce number of branches. The transformation is guarded by a target-hook, and is currently enabled only for +R600, but the correctness has been tested on X86 target using a variety of CPU benchmarks. Patch by: Mei Ye git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187278 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
0be31910e08bd70e35293d7f85c797071326c02c |
26-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove addLetterToHash, no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187245 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3dee575b8dfe9c3d89f581e51dd11ddd08c43cd6 |
26-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Add preliminary support for hashing DIEs and breaking them into type units. Initially this support is used in the computation of an ODR checker for C++. For now we're attaching it to the DIE, but in the future it will be attached to the type unit. This also starts breaking out types into the separation for type units, but without actually splitting the DIEs. In preparation for hashing the DIEs this adds a DIEString type that contains a StringRef with the string contained at the label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187213 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
320185fa5f5838b3892962f6e91083e9729cd946 |
26-Jul-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Add a target legalize hook for SplitVectorOperand (again) CustomLowerNode was not being called during SplitVectorOperand, meaning custom legalization could not be used by targets. This also adds a test case for NVPTX that depends on this custom legalization. Differential Revision: http://llvm-reviews.chandlerc.com/D1195 Attempt to fix the buildbots by making the X86 test I just added platform independent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187202 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
c735c1c2aed2cbaeb61296f4269535b5d13d8b0a |
26-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert "Add a target legalize hook for SplitVectorOperand" This reverts commit 187198. It broke the bots. The soft float test probably needs a -triple because of name differences. On the hard float test I am getting a "roundss $1, %xmm0, %xmm0", instead of "vroundss $1, %xmm0, %xmm0, %xmm0". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
5a24ed951b7f5e553a7e4e1415da5be247db443e |
26-Jul-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Add a target legalize hook for SplitVectorOperand CustomLowerNode was not being called during SplitVectorOperand, meaning custom legalization could not be used by targets. This also adds a test case for NVPTX that depends on this custom legalization. Differential Revision: http://llvm-reviews.chandlerc.com/D1195 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
bef4c3e069a66c8b2d5871468cb57978f44ddc54 |
25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
RegAllocGreedy comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187141 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
8adae96fd905daa8835b6fde5e74e25d818c7471 |
25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
Evict local live ranges if they can be reassigned. The previous change to local live range allocation also suppressed eviction of local ranges. In rare cases, this could result in more expensive register choices. This commit actually revives a feature that I added long ago: check if live ranges can be reassigned before eviction. But now it only happens in rare cases of evicting a local live range because another local live range wants a cheaper register. The benefit is improved code size for some benchmarks on x86 and armv7. I measured no significant compile time increase and performance changes are noise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187140 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
6ea2b9608a38e9b53d208ff85051e8e3ed53192c |
25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
Allocate local registers in order for optimal coloring. Also avoid locals evicting locals just because they want a cheaper register. Problem: MI Sched knows exactly how many registers we have and assumes they can be colored. In cases where we have large blocks, usually from unrolled loops, greedy coloring fails. This is a source of "regressions" from the MI Scheduler on x86. I noticed this issue on x86 where we have long chains of two-address defs in the same live range. It's easy to see this in matrix multiplication benchmarks like IRSmk and even the unit test misched-matmul.ll. A fundamental difference between the LLVM register allocator and conventional graph coloring is that in our model a live range can't discover its neighbors, it can only verify its neighbors. That's why we initially went for greedy coloring and added eviction to deal with the hard cases. However, for singly defined and two-address live ranges, we can optimally color without visiting neighbors simply by processing the live ranges in instruction order. Other beneficial side effects: It is much easier to understand and debug regalloc for large blocks when the live ranges are allocated in order. Yes, global allocation is still very confusing, but it's nice to be able to comprehend what happened locally. Heuristics could be added to bias register assignment based on instruction locality (think late register pairing, banks...). Intuituvely this will make some test cases that are on the threshold of register pressure more stable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187139 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
4c9d299d80f367a7fa1e97084613565a5956532f |
25-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187135 91177308-0d34-0410-b5e6-96231b3b80d8
exicalScopes.cpp
|
13372886a6d387c8847143744f26790a250f4360 |
25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: Register pressure heuristics. Consider which set is being increased or decreased before comparing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187110 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
4b43ed53b6b4aec95d7c7003e70cb74ac58886e7 |
25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: track register pressure by importance of the set, not weight of the units. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187109 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
5dca61397878a7207986455b42fa2117fbf78000 |
25-Jul-2013 |
Andrew Trick <atrick@apple.com> |
Dump LIS before regalloc. MI sched changes them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187107 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egAllocGreedy.cpp
|
f245ae5a4a78d5a02b3b9e2dae819077a56d81e7 |
25-Jul-2013 |
Bill Wendling <isanbard@gmail.com> |
Replace the "NoFramePointerElimNonLeaf" target option with a function attribute. There's no need to specify a flag to omit frame pointer elimination on non-leaf nodes...(Honestly, I can't parse that option out.) Use the function attribute stuff instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187093 91177308-0d34-0410-b5e6-96231b3b80d8
argetOptionsImpl.cpp
|
e644b7743bafaf5fc7091f8bf0accee720ade3ab |
24-Jul-2013 |
Quentin Colombet <qcolombet@apple.com> |
Fix a bug in IfConverter with nested predicates. Prior to this patch, IfConverter may widen the cases where a sequence of instructions were executed because of the way it uses nested predicates. This result in incorrect execution. For instance, Let A be a basic block that flows conditionally into B and B be a predicated block. B can be predicated with A.BrToBPredicate into A iff B.Predicate is less "permissive" than A.BrToBPredicate, i.e., iff A.BrToBPredicate subsumes B.Predicate. The IfConverter was checking the opposite: B.Predicate subsumes A.BrToBPredicate. <rdar://problem/14379453> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187071 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
1f67c63cb23ba5d405452d72bb8892df6b7ccd4f |
24-Jul-2013 |
Tom Stellard <thomas.stellard@amd.com> |
DAGCombiner: Pass the correct type to TargetLowering::isF(Abs|Neg)Free This commit also implements these functions for R600 and removes a test case that was relying on the buggy behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187007 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6e61e0ba086f7c01f0966f7def824102ecedaf09 |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Reformat options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186994 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9cb1685158f690d80a02819fff9ea2aed2feae87 |
22-Jul-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Changed isNoopBitcast/sameNoopInput to take TargetLoweringBase instead of TargetLowering. Both functions only use functionality from TargetLoweringBase. rdar://13935163 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186874 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
c03d5ec32041892734324f4dc635e7644aebd672 |
22-Jul-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Refactored ssp prologue creation code into its own helper function. No functionality change. rdar://13935163 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186868 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
0dcba2fadb990ba2298ba43d76372c754b240cee |
22-Jul-2013 |
Bill Wendling <isanbard@gmail.com> |
Recommit r186217 with testcase fix: Use the function attributes to pass along the stack protector buffer size. Now that we have robust function attributes, don't use a command line option to specify the stack protecto buffer size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186863 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
fa7399518817c456cdedc08475a8fc9bd1e6a900 |
22-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186851 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
6db0dea22585a1b7577f24a97e60769e65e0a342 |
22-Jul-2013 |
Michael Gottesman <mgottesman@apple.com> |
Added missing - in the header of PrologEpilogInserter.h so that editors properly realize it is a c++ header and not a c header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186801 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.h
|
86dc6f9a7953f45d9c4791b0cb6cdceef8ca00ee |
19-Jul-2013 |
Alexey Samsonov <samsonov@google.com> |
Fix uninitialized memory read found by MemorySanitizer: always set output parameter of ConvergingScheduler::SchedBoundary::getOtherResourceCount git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186658 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
4e3898056e1aaa8eaaf829cda578651667878843 |
19-Jul-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: Update the way resources are tracked so the current heuristics make more sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186632 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
3b5c6eaa2a3512ef98095ff537588360a6268630 |
17-Jul-2013 |
Michael Gottesman <mgottesman@apple.com> |
Add -*- C++ -*- to InstrEmitter.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.h
|
8de25f031d8a8c63e0107f7fd0ac4af6b8ab600c |
17-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Make constant string pointer into an array to remove a pointer lookup for every access. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186482 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
egAllocBase.h
|
c8cfaa1625a72aa3660a268dae753748cfed67d0 |
17-Jul-2013 |
Manman Ren <mren@apple.com> |
Add getModuleFlag(StringRef Key) to query a module flag given Key. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c1b49b56d4132efa2e06deb8f23508d0de4c8800 |
16-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add a wrapper for open. This centralizes the handling of O_BINARY and opens the way for hiding more differences (like how open behaves with directories). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186447 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
03ef600623704e6dbf6ef0322062395e7b70bcd2 |
16-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove floats from live range splitting costs. These floats all represented block frequencies anyway, so just use the BlockFrequency class directly. Some floating point computations remain in tryLocalSplit(). They are estimating spill weights which are still floats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186435 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
pillPlacement.h
|
6d9fe79afe3a325fb05165758a20470475aca8e6 |
16-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r185393. Original commit message: Remove floating point computations from SpillPlacement.cpp. Patch by Benjamin Kramer! Use the BlockFrequency class instead of floats in the Hopfield network computations. This rescales the node Bias field from a [-2;2] float range to two block frequencies BiasN and BiasP pulling in opposite directions. This construct has a more predictable behavior when block frequencies saturate. The per-node scaling factors are no longer necessary, assuming the block frequencies around a bundle are consistent. This patch can cause the register allocator to make different spilling decisions. The differences should be small. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186434 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
pillPlacement.h
|
4172a8abbabea2359d91bb07101166565127d798 |
16-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Add 'const' qualifiers to static const char* variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186371 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
519127f758fc4515adb06d52a4c2c1ae1a968879 |
16-Jul-2013 |
Manman Ren <mren@apple.com> |
PEI: Support for non-zero SPAdj at beginning of a basic block. We can have a FrameSetup in one basic block and the matching FrameDestroy in a different basic block when we have struct byval. In that case, SPAdj is not zero at beginning of the basic block. Modify PEI to correctly set SPAdj at beginning of each basic block using DFS traversal. We used to assume SPAdj is 0 at beginning of each basic block. PEI had an assert SPAdjCount || SPAdj == 0. If we have a Destroy <n> followed by a Setup <m>, PEI will assert failure. We can add an extra condition to make sure the pairs are matched: The pairs start with a FrameSetup. But since we are doing a much better job in the verifier, this patch removes the check in PEI. PR16393 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186364 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7310b75c8b6cc0f73d114dc0beccbb96a6942547 |
15-Jul-2013 |
Manman Ren <mren@apple.com> |
Machine Verifier: verify FrameSetup and FrameDestroy 1> on every path through the CFG, a FrameSetup <n> is always followed by a FrameDestroy <n> and a FrameDestroy is always followed by a FrameSetup. 2> stack adjustments are identical on all CFG edges to a merge point. 3> frame is destroyed at end of a return block. PR16393 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186350 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
d1654a769c06d20595398565de055b5ab3ede1f9 |
15-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
Remove invalid assert in DAGTypeLegalizer::RemapValue There is a comment at the top of DAGTypeLegalizer::PerformExpensiveChecks which, in part, says: // Note that these invariants may not hold momentarily when processing a node: // the node being processed may be put in a map before being marked Processed. Unfortunately, this assert would be valid only if the above-mentioned invariant held unconditionally. This was causing llc to assert when, in fact, everything was fine. Thanks to Richard Sandiford for investigating this issue! Fixes PR16562. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186338 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
3c70fcf02b367f517e93c1bd4ce237966383ebf8 |
15-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Add 'const' qualifier to some arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
4d138ba0438225630bcd1700b3d07e81c315acea |
15-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Clarify comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
010dbfdf9357f7db9dd93af35d6454919f7988f9 |
14-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Collapse temporary variable into call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
83d63f8a4dca45d1bba13710c26b4173ace58a65 |
14-Jul-2013 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Fix build by replacing '>>' with '> >' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186276 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
a0ec3f9b7b826b9b40b80199923b664bad808cce |
14-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186274 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
achineCSE.cpp
achineSSAUpdater.cpp
achineSink.cpp
rologEpilogInserter.h
egAllocFast.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
hrinkWrapping.cpp
tackSlotColoring.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
|
6c64fba6336a00e56d2428c45400c406b586f7f7 |
13-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Pass SmallVector by const reference instead of by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
12c74dc2c2ee306f60fb39a9b2a43000e23addcc |
13-Jul-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Revert commit r186217 -- this is breaking bots: http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/4328 Original commit log: Use the function attributes to pass along the stack protector buffer size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186234 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
8a50013cc23810aa3e1ac8da66764fbb2d96147e |
13-Jul-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the function attributes to pass along the stack protector buffer size. Now that we have robust function attributes, don't use a command line option to specify the stack protecto buffer size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186217 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
c0a11edba6ea46c782672ab3fb4e4ab3dc267a22 |
12-Jul-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
TargetTransformInfo: address calculation parameter for gather/scather Address calculation for gather/scather in vectorized code can incur a significant cost making vectorization unbeneficial. Add infrastructure to add cost. Tests and cost model for targets will be in follow-up commits. radar://14351991 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186187 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
da07e9df843015f8c306ed7863dbb8c8055fd85f |
12-Jul-2013 |
Manman Ren <mren@apple.com> |
PEI: refactor replaceFrameIndices(MF) to call replaceFrameIndices(BB). replaceFrameIndices(MF) will iterate over the BBs and call replaceFrameIndices(BB). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186141 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
9e639e8fd95488cb4c8ef2f7f3a41919acb29ac4 |
11-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186098 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveVariables.cpp
achineLICM.cpp
|
6cf88c985023bf76d6160a68bc75489465ac15b0 |
11-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
Initialize AsmPrinter::MF in the constructor MF is normally initialized in AsmPrinter::SetupMachineFunction, but if the file contains only globals (no functions), then we need this to be initialized because, when encountering an error, lowerConstant() references it. This should fix the non-deterministic failures of test/CodeGen/X86/nonconst-static-iv.ll, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186068 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
838a7fb1a3bc514f062a44565f6680b7aeee6a87 |
11-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
RegScavenger should not exclude undef uses When computing currently-live registers, the register scavenger excludes undef uses. As a result, undef uses are ignored when computing the restore points of registers spilled into the emergency slots. While the register scavenger normally excludes from consideration, when scavenging, registers used by the current instruction, we need to not exclude undef uses. Otherwise, we might end up requiring more emergency spill slots than we have (in the case where the undef use *is* the currently-spilled register). Another bug found by llvm-stress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186067 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
75d13065fda4b470f272311520f5dfe6c11460ce |
10-Jul-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Remove trailing whitespac git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186032 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
43ae5e85f829df883dd364c0b9612bbe90f3ad97 |
10-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Use the appropriate unsigned int type for the offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186015 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4759f26c31d5544c5e1c13edb8ab013be9a95338 |
10-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Safeguard DBG_VALUE handling. Unbreaks the ASAN buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186014 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
45ff709caf46d9f472c9229493853dec27477935 |
10-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Un-break the buildbot by tweaking the indirection flag. Pulled in a testcase from the debuginfo-test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
893ae83f421c20cf34622b355c5aaba32b2c019a |
10-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Document a known limitation of the status quo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
61c91d5d7c3b40837e5512b53b15b3e3a65833fa |
10-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185984 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
b2754919ca52316755f5ce70f53db9966bee42b5 |
09-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185971 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
3517640443f0b5224e2a6414c246ac60016ee9d4 |
09-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Reapply an improved version of r180816/180817. Change the informal convention of DBG_VALUE machine instructions so that we can express a register-indirect address with an offset of 0. The old convention was that a DBG_VALUE is a register-indirect value if the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE is register-indirect if the first operand is a register and the second operand is an immediate. For plain register values the combination reg, reg is used. MachineInstrBuilder::BuildMI knows how to build the new DBG_VALUES. rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185966 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
iveDebugVariables.cpp
egAllocFast.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
b9c8c40acbe120ebf44d2a81382ceee100bcd331 |
09-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
WidenVecRes_BUILD_VECTOR must use the first operand's type Because integer BUILD_VECTOR operands may have a larger type than the result's vector element type, and all operands must have the same type, when widening a BUILD_VECTOR node by adding UNDEFs, we cannot use the vector element type, but rather must use the type of the existing operands. Another bug found by llvm-stress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
e54885af9b54bfc7436a928a48d3db1ef88a2a70 |
09-Jul-2013 |
Stephen Lin <stephenwlin@gmail.com> |
AArch64/PowerPC/SystemZ/X86: This patch fixes the interface, usage, and all in-tree implementations of TargetLoweringBase::isFMAFasterThanMulAndAdd in order to resolve the following issues with fmuladd (i.e. optional FMA) intrinsics: 1. On X86(-64) targets, ISD::FMA nodes are formed when lowering fmuladd intrinsics even if the subtarget does not support FMA instructions, leading to laughably bad code generation in some situations. 2. On AArch64 targets, ISD::FMA nodes are formed for operations on fp128, resulting in a call to a software fp128 FMA implementation. 3. On PowerPC targets, FMAs are not generated from fmuladd intrinsics on types like v2f32, v8f32, v4f64, etc., even though they promote, split, scalarize, etc. to types that support hardware FMAs. The function has also been slightly renamed for consistency and to force a merge/build conflict for any out-of-tree target implementing it. To resolve, see comments and fixed in-tree examples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185956 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGBuilder.cpp
|
bd6f1f6896275e04ce46c9ef82fd96e2e6c125dd |
09-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
DAGCombine tryFoldToZero cannot create illegal types after type legalization When folding sub x, x (and other similar constructs), where x is a vector, the result is a vector of zeros. After type legalization, make sure that the input zero elements have a legal type. This type may be larger than the result's vector element type. This was another bug found by llvm-stress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9467b3e0ac593571a205041c129ed5ae11bf9d1f |
09-Jul-2013 |
Alexander Potapenko <glider@google.com> |
Revert r185872 - "Stop emitting weak symbols into the "coal" sections" This patch broke `make check-asan` on Mac, causing ld warnings like the following one: ld: warning: direct access in __GLOBAL__I_a to global weak symbol ___asan_mapping_scale means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. The resulting test binaries crashed with incorrect ASan warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185923 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
b49401533082fa0e8625c7cbaa0813db6c4c9bd5 |
09-Jul-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Style fixes: remove unnecessary braces for one-statement if blocks, no else after return, etc. No funcionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8722e25715f9c56a1f2a03587211f2b0d98b330d |
08-Jul-2013 |
Bill Wendling <isanbard@gmail.com> |
Stop emitting weak symbols into the "coal" sections. The Mach-O linker has been able to support the weak-def bit on any symbol for quite a while now. The compiler however continued to place these symbols into a "coal" section, which required the linker to map them back to the base section name. Replace the sections like this: __TEXT/__textcoal_nt instead use __TEXT/__text __TEXT/__const_coal instead use __TEXT/__const __DATA/__datacoal_nt instead use __DATA/__data <rdar://problem/14265330> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185872 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
cced21285126ec09ecb021e353b54d47073cddf1 |
08-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Update comment to avoid mentioning DbgValues which is an instance variable later in the class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185866 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
d03d2b243a1c3b32a19ed4f387ac9d66febf8c2c |
08-Jul-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify. No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185847 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
66f464ee266b31bb02058c49a5abe3a6b77f080b |
08-Jul-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Correct comment & re-format a nearby loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185844 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5ce4091a68936b94c1f8858a101e61e65f71a23b |
08-Jul-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Simplify Address Pool index handling. Since the pool indexes are necessarily sequential and contiguous, just insert things in the right place rather than having to sort the sequence after the fact. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185842 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6c75160b875799a9303879e11022edf4ba44c3f9 |
08-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
Improve the comment from r185794 (re: PromoteIntRes_BUILD_VECTOR) In response to Duncan's review, I believe that the original comment was not as clear as it could be. Hopefully, this is better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
63e7a38c8980d70197ecdb9ba54b79b87c7b064d |
08-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix PromoteIntRes_BUILD_VECTOR crash with i1 vectors This fixes a bug (found by llvm-stress) in DAGTypeLegalizer::PromoteIntRes_BUILD_VECTOR where it assumed that the result type would always be larger than the original operands. This is not always true, however, with boolean vectors. For example, promoting a node of type v8i1 (where the operands will be of type i32, the type to which i1 is promoted) will yield a node with a result vector element type of i16 (and operands of type i32). As a result, we cannot blindly assume that we can ANY_EXTEND the operands to the result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
113d32cea868bd1749b4cdc8d1e52d9dccb8b5a2 |
08-Jul-2013 |
Kai Nacke <kai.nacke@redstar.de> |
Revert: Emit personality function and Dwarf EH data for Win64 SEH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185788 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Win64Exception.cpp
|
04b84c2f92b8c9cf863853eca33f47f9fbd80fd1 |
08-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add the nearbyint -> FNEARBYINT mapping to BasicTargetTransformInfo This fixes an oversight that Intrinsic::nearbyint was not being mapped to ISD::FNEARBYINT (thus fixing the over-optimistic cost we were assigning to nearbyint calls for some targets). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185783 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
155615d7dc4e4fbfd3b7273720a76356468edf46 |
08-Jul-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Remove trailing whitespace from SelectionDAG/*.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
09f8ca3986cbe89d897765926462476f345a25d0 |
06-Jul-2013 |
Stephen Lin <stephenwlin@gmail.com> |
SelectionDAGBuilder: style fixes (add space between end parentheses and open brace) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
28bb04453d82bd680e84cd2617ce94f633dc3249 |
06-Jul-2013 |
Kai Nacke <kai.nacke@redstar.de> |
Emit personality function and Dwarf EH data for Win64 SEH. Obviously the personality function should be emitted as language handler instead of the hard coded _GCC_specific_handler. The language specific data must be placed after the unwind information therefore it must not be emitted into a separate section. Reviewed by Charles Davis and Nico Rieck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185761 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Win64Exception.cpp
|
f4eeab452ad4093986359c78a57321df12df99b0 |
06-Jul-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Don't drop extension behavior when shrinking a load when unsafe. ReduceLoadWidth unconditionally drops extensions from loads. Limit it to the case when all of the bits the extension would otherwise produce are dropped by the shrink. It would be possible to shrink the load in more cases by merging the extensions, but this isn't trivial and a very rare case. I left a TODO for that case. Fixes PR16551. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e5a81a130f26b0b2651ad6a22e3748703b11cb46 |
06-Jul-2013 |
Tim Northover <tnorthover@apple.com> |
Stop putting operations after a tail call. This prevents the emission of DAG-generated vreg definitions after a tail call be dropping them entirely (on the grounds that nothing could use them anyway, and they interfere with O0 CodeGen). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185754 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
80646283796b20c6a1b7d8eb69ce6f0478d54383 |
06-Jul-2013 |
Nico Rieck <nico.rieck@gmail.com> |
MC: Implement COFF .linkonce directive git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185753 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
202eb7b18e220205ec86a03ddf18f2066c70ab15 |
06-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use modern API to avoid exposing LiveInterval internals. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185733 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
1f2415efc3e9f0eb9d50367979d9c8dd6d784658 |
06-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185731 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
71804149a3a6f6c081b874869b27fafe7d3288ce |
05-Jul-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Remove no-op MVCs The stack coloring pass has code to delete stores and loads that become trivially dead after coloring. Extend it to cope with single instructions that copy from one frame index to another. The testcase happens to show an example of this kicking in at the moment. It did occur in Real Code too though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185705 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
5f1c7e5eac78349acfd6be1f9f03ccef3ba51d59 |
05-Jul-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
Fix double renaming bug in stack coloring pass The stack coloring pass renumbered frame indexes with a loop of the form: for each frame index FI for each instruction I that uses FI for each use of FI in I rename FI to FI' This caused problems if an instruction used two frame indexes F0 and F1 and if F0 was renamed to F1 and F1 to F2. The first time we visited the instruction we changed F0 to F1, then we changed both F1s to F2. In other words, the problem was that SSRefs recorded which instructions used an FI, but not which MachineOperands and MachineMemOperands within that instruction used it. This is easily fixed for MachineOperands by walking the instructions once and processing each operand in turn. There's already a loop to do that for dead store elimination, so it seemed more efficient to fuse the two at the block level. MachineMemOperands are more tricky because they can be shared between instructions. The patch handles them by making SSRefs an array of MachineMemOperands rather than an array of MachineInstrs. We might end up processing the same MachineMemOperand twice, but that's OK because we always know from the SSRefs index what the original frame index was. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185703 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
7271ac2c0318043688ddc8686dd23777dca62c59 |
05-Jul-2013 |
Richard Sandiford <rsandifo@linux.vnet.ibm.com> |
[SystemZ] Clean up register scavenging code SystemZ wants normal register scavenging slots, as close to the stack or frame pointer as possible. The only reason it was using custom code was because PrologEpilogInserter assumed an x86-like layout, where the frame pointer is at the opposite end of the frame from the stack pointer. This meant that when frame pointer elimination was disabled, the slots ended up being as close as possible to the incoming stack pointer, which is the opposite of what we want on SystemZ. This patch adds a new knob to say which layout is used and converts SystemZ to use target-independent scavenging slots. It's one of the pieces needed to support frame-to-frame MVCs, where two slots might be required. The ABI requires us to allocate 160 bytes for calls, so one approach would be to use that area as temporary spill space instead. It would need some surgery to make sure that the slot isn't live across a call though. I stuck to the "isFPCloseToIncomingSP - ..." style comment on the "do what the surrounding code does" principle. The FP case is already covered by several Systemz/frame-* tests, which fail without the PrologueEpilogueInserter change, so no new ones are needed. No behavioural change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185696 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b6566aee3037f2d6e6837a93e0f766972179ed74 |
05-Jul-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185689 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
25746ddd66651bdad159444d0331b7df4dc22842 |
04-Jul-2013 |
Nico Rieck <nico.rieck@gmail.com> |
Initialize object file info before output streamer r179494 switched to using the object file info to retrieve the default text section for some MC streamers. It is possible that initializing an MC streamer can request sections before the object file info is initialized when the AutoInitSections flag is set on the streamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185670 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f349a6e9e6ee0b589c403e0c5785266da121d05c |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes. These exception-related opcodes are not used any longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGDumper.cpp
|
1ab111ed01457887a8dece6fb36336aff41cc703 |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185618 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
918b7c82f8f53241a5bb354931abfe53634bfc4c |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify landing pad lowering. Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering landing pad arguments. These nodes were previously legalized into CopyFromReg nodes, but that never worked properly because the CopyFromReg node weren't guaranteed to be scheduled at the top of the basic block. This meant the exception pointer and selector registers could be clobbered before being copied to a virtual register. This patch copies the two physical registers to virtual registers at the beginning of the basic block, and lowers the landingpad instruction directly to two CopyFromReg nodes reading the *virtual* registers. This is safe because virtual registers don't get clobbered. A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185617 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
ef22e0e0b583e727f01ae70d51a143172eb31814 |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
FastISel can only apend to basic blocks. Compute the insertion point from the end of the basic block instead of skipping labels from the front. This caused failures in landing pads when live-in copies where inserted before instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c982e14458ab098dcc08da5a3e8a88f07018dfbd |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Live-in copies go *after* EH_LABELs. This will soon be tested by exception handling working at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185615 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
c93822901aef17aaf8bb1303f27b47025fd1d582 |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r185595-185596 which broke buildbots. Revert "Simplify landing pad lowering." Revert "Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
|
62204220e1dc2dc21256adf765728ae257b33eac |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes. These exception-related opcodes are not used any longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGDumper.cpp
|
9c0e9217325db888331c23ad7c332c09d64b02d4 |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify landing pad lowering. Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering landing pad arguments. These nodes were previously legalized into CopyFromReg nodes, but that never worked properly because the CopyFromReg node weren't guaranteed to be scheduled at the top of the basic block. This meant the exception pointer and selector registers could be clobbered before being copied to a virtual register. This patch copies the two physical registers to virtual registers at the beginning of the basic block, and lowers the landingpad instruction directly to two CopyFromReg nodes reading the *virtual* registers. This is safe because virtual registers don't get clobbered. A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185595 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f64765244512250b28b1fbe290b1b26d17e41dd4 |
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineBasicBlock::addLiveIn(). This function adds a live-in physical register to an MBB and ensures that it is copied to a virtual register immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185594 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
7c2f3e8944717239b6031ebc778de4547e1449e2 |
04-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Hoist all of the Entry.getLoc() calls int a single variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0d0782ae9325033176d1a9fc0912217b5c580cb5 |
04-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Make DotDebugLocEntry a class, reorder the members along with comments for them and update all uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185588 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4e976457eb2e777dcd515a7b82e62161552a2466 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Elaborate on comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3a1812d1fea48cac278afbc6bd5593e6bb07e2a4 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Add names to the header file since they help in documenting the API (and for consistency). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185585 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
08ebdc73de5e3396bc17b928ad16af523837e660 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Move typedefs inside the class that they belong to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185573 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
52f5a65f847c9eb2a80f4de0e5f21e711c4a7af4 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unused field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185523 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
6af85aec4a8fe01c6b534ef1120822fe792d1cb6 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Constify a few functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185520 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
32bdf82b9fbe88687be160863a6d221fe692c58b |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::const_iterator instead of SmallVector to avoid specifying the vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
78477ffdfd63ddf1ba22d9d2121c8f6ed9f9efa1 |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl instead of SmallVector as method argument to avoid specifying vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185513 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
f22fd3f7b557a967b1edc1fa9ae770006a39e97c |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185512 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
xecutionDepsFix.cpp
iveVariables.cpp
achineSink.cpp
asses.cpp
rologEpilogInserter.cpp
egisterScavenging.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
tackColoring.cpp
tackSlotColoring.cpp
|
40c744ee33e5a13466de2fff4e9c355b6ce0b999 |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185509 91177308-0d34-0410-b5e6-96231b3b80d8
exicalScopes.cpp
|
01eb99af2f2196241801b12f8ad841a2db346472 |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Introduce some typedefs for DenseMaps containing SmallVectors so the vector size doesn't have to repeated when creating iterators for the DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185508 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9f4c37915fbf11d16ed609ac016595387860ac3a |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Return SmallVectorImpl& instead of SmallVector& in a couple places to avoid having to specify the vector size in multiple places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185507 91177308-0d34-0410-b5e6-96231b3b80d8
exicalScopes.cpp
|
9f43ac6cd3bfd10afb77614766b5c874cb5c6073 |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& instead of SmallVector& to avoid needlessly respecifying the small vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2d785dbace6986f09a110ccb5b5cd65932b6b732 |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185504 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e717713547f1b1b61315cf1bed775ede3d231a4e |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Avoid doing a lot of computation when we have multiple ranges and avoid adding information for the debug_inlined section when it isn't going to be emitted anyhow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185500 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f53d643bd9f9e0d13214f78274fc021d6c03765d |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Move iterator to where it's used and update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185498 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c9c17a8e4f7d11061fef4e644ba870c2fb47118b |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Move instance variable before experimental section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185497 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
aa30a0cf9b646b533c60254bf8113fe5e163afd3 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Fix typo to make grep for DW_AT_comp_dir work without case-insensitive grep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185496 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
015343eb7ca02f8f31117889f46e0badc7eb9aba |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unnecessary forward declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185495 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
da965defb86fdc9430d40c291e770a6219698de6 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Add a helpful comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e4721495b68d770a529b6e1c6cc33655db29c0e2 |
03-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
addConstantValue, addConstantFPValue never returned anything but true, so remove the return value and propagate accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185490 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
0e6783feed2f0f572a002bda38707fcd3267916d |
03-Jul-2013 |
Manman Ren <mren@apple.com> |
Debug Info: use module flag to set up Dwarf version. Correctly handles ref_addr depending on the Dwarf version. Emit Dwarf with version from module flag. TODO: turn on/off features depending on the Dwarf version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d3b98530c55ab695ab02426a804ee0ca09f890b6 |
02-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185480 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
716a94f0c96d6bef575cd286bafb2cc507adc6b0 |
02-Jul-2013 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
[DebugInfo] Allow getDebugThreadLocalSymbol to return MCExpr This allows getDebugThreadLocalSymbol to return a generic MCExpr instead of just a MCSymbolRefExpr. This is in preparation for supporting debug info for TLS variables on PowerPC, where we need to describe the variable location using a more complex expression than just MCSymbolRefExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185460 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
18dbe5029f36a5a5d583295daa4ef6d6f5474c25 |
02-Jul-2013 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
[DebugInfo] Hold generic MCExpr in AddrPool This changes the AddrPool infrastructure to enable it to hold generic MCExpr expressions, not just MCSymbolRefExpr. This is in preparation for supporting debug info for TLS variables on PowerPC, where we need to describe the variable location using a more complex expression than just MCSymbolRefExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185459 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1f8aacd6afdc30b4d1cf1da3bf5e41c7874f89be |
02-Jul-2013 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
[DebugInfo] Introduce DIEExpr variant of DIEValue to hold MCExpr values This partially reverts r185202 and restores DIELabel to hold plain MCSymbol references. Instead, we add a new subclass DIEExpr of DIEValue that can hold generic MCExpr references. This is in preparation for supporting debug info for TLS variables on PowerPC, where we need to describe the variable location using a more complex expression than just MCSymbolRefExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185458 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
92879a8cb1490c90bf952a17a110dc45063832b0 |
02-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert (most of) r185393 and r185395. "Remove floating point computations form SpillPlacement.cpp." These commits caused test failures in lencod on clang-native-arm-lnt. I suspect these changes are only exposing an existing issue, but reverting anyway to keep the bots passing while we investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185447 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
pillPlacement.h
|
a3863ea2dacafc925a8272ebf9884fc64bef686c |
02-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove address spaces from MC. This is dead code since PIC16 was removed in 2010. The result was an odd mix, where some parts would carefully pass it along and others would assert it was zero (most of the object streamer for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185436 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
5bce67a95feb136389ca630cc5dd6a81e97ff1eb |
02-Jul-2013 |
Tim Northover <tnorthover@apple.com> |
DAGCombiner: fix use-counting issue when forming zextload DAGCombiner was counting all uses of a load node when considering whether it's worth combining into a zextload. Really, it wants to ignore the chain and just count real uses. rdar://problem/13896307 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8fed05ec1ba90c688d71323fe8a1c3070adf58cf |
02-Jul-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14728: DebugInfo: TLS variables with -gsplit-dwarf git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185398 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
7babb052a68a35a7b21906280e67f06502846f9d |
02-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak some comments that referred to the old bias computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185395 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
|
74d2a3e1a014b93e9037a7b04e85dc92bfb54fa7 |
02-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove floating point computations form SpillPlacement.cpp. Patch by Benjamin Kramer! Use the BlockFrequency class instead of floats in the Hopfield network computations. This rescales the node Bias field from a [-2;2] float range to two block frequencies BiasN and BiasP pulling in opposite directions. This construct has a more predictable behavior when block frequencies saturate. The per-node scaling factors are no longer necessary, assuming the block frequencies around a bundle are consistent. This patch can cause the register allocator to make different spilling decisions. The differences should be small. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185393 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
pillPlacement.h
|
a35ae962918258207f9092ccbdf4fffa1f2c70f1 |
01-Jul-2013 |
David Blaikie <dblaikie@gmail.com> |
PR16493: DebugInfo with TLS on PPC crashing due to invalid relocation Restrict the current TLS support to X86 ELF for now. Test that we don't produce it on PPC & we can flesh that test case out with the right thing once someone implements it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185389 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
781f5b3953a6ffcf878cebecf1f121a237eff5ba |
01-Jul-2013 |
Lang Hames <lhames@gmail.com> |
Make PBQP require/preserve MachineLoopInfo - the spiller requires it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185378 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
f807a6ee3a6c7365ffdf07510767b13a5a7df93c |
01-Jul-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix the build after r185363. Use llvm::next instead of raw next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185367 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
03fae50cfa5631349fbd47f4c232fc78f5b3b8af |
01-Jul-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR16508. When phis get lowered, destination copies are inserted using an iterator that is determined once for all phis in the block, which BuildMI interprets as a request to insert an instruction directly before the iterator. In the case of a cyclic phi, source copies may also be inserted directly before this iterator, which can cause source copies to be inserted before destination copies. The fix is to keep an iterator to the last phi and then advance it while lowering each phi in order to insert destination copies directly after the phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185363 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
48b4d4f6474ace31c05507f3988c55de9601cc5b |
01-Jul-2013 |
Michael Gottesman <mgottesman@apple.com> |
Added c++ mode selector to head of SelectionDAGBuilder.h so editors open it in c++ mode instead of c mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
04d5613162fb39649ab6a1e645864574d4836511 |
29-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
misched: Compress pairs returned by getUnderlyingObjectsForInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185266 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
59eaa3874663f80ce111a4781b8f1db82995210c |
28-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: PR14728: TLS support Based on GCC's output for TLS variables (OP_constNu, x@dtpoff, OP_lo_user), this implements debug info support for TLS in ELF. Verified that this output is correct/sufficient on Linux (using gold - if you're using binutils-ld, you'll need something with the fix for http://sourceware.org/bugzilla/show_bug.cgi?id=15685 in it). Support on non-ELF is sort of "arbitrary" at the moment - if Apple folks want to discuss (or just go ahead & implement) how this should work in MachO, etc, I'm open. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185203 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
argetLoweringObjectFileImpl.cpp
|
95e72c90e4e2ee64e12d898f6495e796ebcadaf8 |
28-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Pass MCSymbolRefExprs for labels instead of MCSymbols This is a precursor to adding debug info support for TLS which requires non-default relocations applied to TLS symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
1ca79907ef144358f16bb8abea849e806ca31134 |
28-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Revise r185189 to avoid subtle 'unsigned += bool' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1c736322a25d3a6fe4623daab7052e8b9d297223 |
28-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Simplify the AddressPool representation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185189 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
321d83ba9e6e4e99700dcfb96fdcebe758e51905 |
28-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: constify the AddressPool MCSymbol pointers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185188 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
dfccd9ee98cd6590bd82fa6edf24d510d953a2a0 |
28-Jun-2013 |
Lang Hames <lhames@gmail.com> |
Add missing case to switch statement - DAGTypeLegalizer::ExpandIntegerResult should expand ATOMIC_CMP_SWAP nodes the same way that it does for ATOMIC_SWAP. Since ATOMIC_LOADs on some targets (e.g. older ARM variants) get legalized to ATOMIC_CMP_SWAPs, the missing case had been causing i64 atomic loads to crash during isel. <rdar://problem/14074644> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
cbafae6d33031a72ba8219c28cb0e852511f79a3 |
28-Jun-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify. No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert. Also update testing cases to make them conform to the format of DI classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185135 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
|
88d93a7cc4546439c82490db20c71b4b702dcc7a |
27-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185072 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
d8026708ef9c1ebb326426d207cf79cba7ff09b3 |
26-Jun-2013 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Fixed a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184933 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
87070fe1073b1e95748d987af0810d02aac43603 |
26-Jun-2013 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Optimized integer vector multiplication operation by replacing it with shift/xor/sub when it is possible. Fixed a bug in SDIV, where the const operand is not a splat constant vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2560e242c87b205143ca5e0e87a216e06f51a434 |
25-Jun-2013 |
Manman Ren <mren@apple.com> |
Remove unused code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184866 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
75b51621540c23ddfc1e9ef6b4dc803453d9d122 |
25-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
BlockFrequency: Bump up the entry frequency a bit. This is a band-aid to fix the most severe regressions we're seeing from basing spill decisions on block frequencies, until we have a better solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184835 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockFrequencyInfo.cpp
|
fdfc81f142b3870c757bb9f06e440e843cb3a57f |
25-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
80-column and tab character fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184792 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/DwarfDebug.cpp
|
afbe0e266cc3bcb6dcb318166f4a2f998cefd9b1 |
24-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184788 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
f61dbc15750f0b1a9a089ac91e6f5e7235335c25 |
24-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Use const references instead of pointers to references that are never modified. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184781 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
f7b5e016363b664461f33a4a391b27bea637209d |
24-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Fix tail merging to assign the (more) correct BasicBlock when splitting. This makes it possible to write unit tests that are less susceptible to minor code motion, particularly copy placement. block-placement.ll covers this case with -pre-RA-sched=source which will soon be default. One incorrectly named block is already fixed, but without this fix, enabling new coalescing and scheduling would cause more failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184680 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
fe2e66a6dab6162fb10ed2d576cd122f34d2626f |
23-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: PR14404: Avoid truncating 64 bit values into 32 bits for ULEB128/SLEB128 generation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184669 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
e88939cfebbc98133553c6fc03a52b8fb1adbb70 |
22-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Support (using GNU extensions) for template template parameters and parameter packs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184643 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5b3fca50a08865f0db55fc92ad1c037a04e12177 |
22-Jun-2013 |
Chad Rosier <mcrosier@apple.com> |
The getRegForInlineAsmConstraint function should only accept MVT value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
529616299f109f58e2a8217a1a760ba961266459 |
22-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Prevent LiveRangeEdit from deleting bundled instructions. We have no targets on trunk that bundle before regalloc. However, we have been advertising regalloc as bundle safe for use with out-of-tree targets. We need to at least contain the parts of the code that are still unsafe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184620 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
1948910e3186d31bc0d213ecd0d7e87bb2c2760d |
22-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Don't lose unreferenced non-trivial by-value parameters A FastISel optimization was causing us to emit no information for such parameters & when they go missing we end up emitting a different function type. By avoiding that shortcut we not only get types correct (very important) but also location information (handy) - even if it's only live at the start of a function & may be clobbered later. Reviewed/discussion by Evan Cheng & Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2da863984bdd0123fa53ab3f5439d239a5a9e419 |
21-Jun-2013 |
Michael Liao <michael.liao@intel.com> |
Fix PR16360 When (srl (anyextend x), c) is folded into (anyextend (srl x, c)), the high bits are not cleared. Add 'and' to clear off them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184575 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c12c880998a0be9de2d20f7855029ef743570a06 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Update physreg live intervals during remat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184574 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
c6bae79adb6a58be629804d058abb5613e561b5a |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Added -precompute-phys-liveness for testing LiveIntervals updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184573 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
03dca5e4b6c41e1e7fa4edad3d7ff8d5f6de7008 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Handle more cases in LiveRangeEdit::eliminateDeadDefs. Live intervals for dead physregs may be created during coalescing. We need to update these in the event that their instruction goes away. crash.ll is the unit test that catches it when MI sched is enabled on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184572 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
f1f99f394f367845c4f4528d4d2bce42e65a5f50 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Refactor LiveRangeEdit::eliminateDeadDefs. I want to add logic to handle more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184571 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
005622ffae7e6386c27a65a8789bb8d0d773f5d8 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184570 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
ff197dfcf9ac50a62d21e0c30644e09ca3bb92f5 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Fix a -join-globalcopies bug; handle undef operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184569 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
0db6df0d963a8eee763fd878a72c3153501491c0 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Modify the -join-globalcopies option (off by default). Always coalesce in forward order to propagate rematerialization. I'm fixing this option so I can enable it by default soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184568 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
b5f906b98fe5c05c491c6cf2ec30fcf206b60b27 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Make rematerialization in the coalescer less sensitive to LRG order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184567 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
3bf23304ee80946409626cf64282a76c13a44352 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: cleanup DEBUG output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184565 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
1f8b48ab3262bd5623ecbda7b0c024884e8169d3 |
21-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Adjust regpressure limits for reserved regs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184564 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterClassInfo.cpp
egisterPressure.cpp
|
4532c280f540de22c83ca2525f1a9a7722b4d7e3 |
20-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: don't use location lists when the location covers the whole function anyway Fix up three tests - one that was relying on abbreviation number, another relying on a location list in this case (& testing raw asm, changed that to use dwarfdump on the debug_info now that that's where the location is), and another which was added in r184368 - exposing a bug in that fix that is exposed when we emit the location inline rather than through a location list. Fix that bug while I'm here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184387 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
228546b8cb53686f1cc8859ec39bbb11f5c15e90 |
20-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
This is now a duplicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184376 91177308-0d34-0410-b5e6-96231b3b80d8
argetOptionsImpl.cpp
|
59aa54073848645cd20c828dfb1088127c541b36 |
20-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Make the comparison operators non-member functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184373 91177308-0d34-0410-b5e6-96231b3b80d8
argetOptionsImpl.cpp
|
0159ae4295720c5ce8fc770ddb5fed67e90b8d3a |
19-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: PR14763/r183329 correct the location of indirect parameters We had been papering over a problem with location info for non-trivial types passed by value by emitting their type as references (this caused the debugger to interpret the location information correctly, but broke the type of the function). r183329 corrected the type information but lead to the debugger interpreting the pointer parameter as the value - the debug info describing the location needed an extra dereference. Use a new flag in DIVariable to add the extra indirection (either by promoting an existing DW_OP_reg (parameter passed in a register) to DW_OP_breg + 0 or by adding DW_OP_deref to an existing DW_OP_breg + n (parameter passed on the stack). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184368 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
ba54bca472a15d0657e1b88776f7069042b60b4e |
19-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
f9fd58a44bbc7d9371ce39eb20eec16b0f1f7395 |
19-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184352 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
ea44281d5da5096de50ce1cb358ff0c6f20e1a2a |
19-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184349 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
warfEHPrepare.cpp
LVMTargetMachine.cpp
asses.cpp
jLjEHPrepare.cpp
tackProtector.cpp
|
d626d33246c897a10d40e01b8658fa05c36b1e5f |
19-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't cache the TLI object since we have access to it through TargetMachine already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
a3fb49cd851cd3b593fc653dc3ba4434c2e1232f |
18-Jun-2013 |
Quentin Colombet <qcolombet@apple.com> |
During SelectionDAG building explicitly set a node to constant zero when the value is zero. This allows optmizations to kick in more easily. Fix some test cases so that they remain meaningful (i.e., not completely dead coded) when optimizations apply. <rdar://problem/14096009> superfluous multiply by high part of zero-extended value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184222 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
88f34b50d4ee5bab82822ec5ae1d8be8385ca8d6 |
18-Jun-2013 |
Timur Iskhodzhanov <timurrrr@google.com> |
Hopefully fix the MSVS build after r184105 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184178 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
99cb622041a0839c7dfcf0263c5102a305a0fdb5 |
18-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Use pointers to the MCAsmInfo and MCRegInfo. Someone may want to do something crazy, like replace these objects if they change or something. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184175 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineModuleInfo.cpp
|
4ca0ddaefa2bdea4803cd768e543904f575acdb6 |
18-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Simplify some of the code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184172 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
71b9d94d6ba2933df0f7936c44cdb344336d46ef |
17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: handle ReadAdvance latencies as used by Swift. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184135 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
a626f5072e6b3433392cc2be454727c7bb5e83b8 |
17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Give RegMax higher priority. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184133 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
f8e6d313410bcdd25d4ca9360790684e5a2021b8 |
17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Remove compareRPDelta. A complex, expensive heuristic with little value in the current design. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184132 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e0f6046241ae9bc2f6325142abdfd9cdb9032bab |
17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: fix a typo in RegPressure heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184131 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
07023fef3acd0d17af099f580d8d254e9d45eb87 |
17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Remove another heuristic that is sensitive to queue order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184130 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e52d502f040fe60587772d40c9f498c10e2cfbdc |
17-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Track multiple candidates with the same priority level. This eliminates the MultiPressure scheduling "reason". It was sensitive to queue order. We don't like being sensitive to queue order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184129 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
d10fa8b1caf010fe4943ae5526c2c3b921339f72 |
17-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Directly access objects which may change during compilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184121 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineRegisterInfo.cpp
|
4eed756153b84c211114a3e9186bf0cb55d4b394 |
17-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Switch spill weights from a basic loop depth estimation to BlockFrequencyInfo. The main advantages here are way better heuristics, taking into account not just loop depth but also __builtin_expect and other static heuristics and will eventually learn how to use profile info. Most of the work in this patch is pushing the MachineBlockFrequencyInfo analysis into the right places. This is good for a 5% speedup on zlib's deflate (x86_64), there were some very unfortunate spilling decisions in its hottest loop in longest_match(). Other benchmarks I tried were mostly neutral. This changes register allocation in subtle ways, update the tests for it. 2012-02-20-MachineCPBug.ll was deleted as it's very fragile and the instruction it looked for was gone already (but the FileCheck pattern picked up unrelated stuff). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184105 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
nlineSpiller.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
pillPlacement.cpp
plitKit.cpp
plitKit.h
tackSlotColoring.cpp
|
0187e7a9ba5c50b4559e0c2e0afceb6d5cd32190 |
16-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: remove target-specific Frame Index handling for DBG_VALUE MachineInstrs Frame index handling is now target-agnostic, so delete the target hooks for creation & asm printing of target-specific addressing in DBG_VALUEs and any related functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184067 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6d9dbd5526e3161db884fc4fe99c278bb59ccc19 |
16-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions Rather than using the full power of target-specific addressing modes in DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This reduces the complexity of debug info handling down to two representations of values (reg+offset and frame index+offset) rather than three or four. Ideally we could ensure that frame indicies had been eliminated by the time we reached an assembly or dwarf generation, but I haven't spent the time to figure out where the FIs are leaking through into that & whether there's a good place to convert them. Some FI+offset=>reg+offset conversion is done (see PrologEpilogInserter, for example) which is necessary for some SelectionDAG assumptions about registers, I believe, but it might be possible to make this a more thorough conversion & ensure there are no remaining FIs no matter how instruction selection is performed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184066 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
nlineSpiller.cpp
iveDebugVariables.cpp
rologEpilogInserter.cpp
egAllocFast.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f14b44c71b3a58c3aef8e277dd3817cb216b5661 |
15-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: print DBG_VALUE MachineInstrs with [] for deref and drop the offset when it's zero git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184045 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
aaaae516470f20a76950f434695b64c40a44e5de |
15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Missing NDEBUGs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184039 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
fa989e7d432d170b3f92cbd87e2610b03babaea7 |
15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: heuristics using the new latency and machine model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184038 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
b86a0cdb674549d8493043331cecd9cbf53b80da |
15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
Machine Model: Add MicroOpBufferSize and resource BufferSize. Replace the ill-defined MinLatency and ILPWindow properties with with straightforward buffer sizes: MCSchedMode::MicroOpBufferSize MCProcResourceDesc::BufferSize These can be used to more precisely model instruction execution if desired. Disabled some misched tests temporarily. They'll be reenabled in a few commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184032 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
achineTraceMetrics.cpp
cheduleDAGInstrs.cpp
argetInstrInfo.cpp
argetSchedule.cpp
|
bacb24975d7a8a6ccff0e16057a581b3831c4c7d |
15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Rename IssueCount to CurrMOps. "Counts" refer to scaled resource counts within a region. CurrMOps is simply the number of micro-ops to be issue in the current cycle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184031 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
63a8d824b0046439558777b039435b16e7b937ea |
15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Remove the temporary EnableCopyConstrain flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184030 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
2c465a35516ee453e2a759fa11ac86cdb95ec901 |
15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: added tracking of dependent latency for better heuristics. Heuristics compare the critical path in the scheduled code, called ExpectedLatency, with the latency of instructions remaining to be scheduled. There are two ways to look at remaining latency: (1) Dependent latency includes the latency between unscheduled and scheduled instructions. (2) Independent latency is simply the height (bottom-up) or depth (top-down) of instructions currently in the ready Q. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184029 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
eda39a9d691c4168cc8d1d0c0d03631281886ff1 |
15-Jun-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: DEBUG: print critical resource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184028 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
7e6d620336d75c75086905184c451c6a2a21d6a3 |
15-Jun-2013 |
Stephen Lin <stephenwlin@gmail.com> |
SelectionDAG: slightly refactor DAGCombiner::visitSELECT_CC to avoid redudant checks... This doesn't really effect performance due to all the relevant calls being transparent but is clearer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
702ff96ff3157e0761d206cca2dc0a4c3e7c13a9 |
15-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: Don't print the display name and colon prefix for DEBUG_VALUE comments if the display name is empty git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184026 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b05e4778f0871cbb02f61e4d55ad7375738a1d01 |
15-Jun-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Introduce getSelect usage and use more getSelectCC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
|
a553bede23578dbf5233a28b1e67183d0911096c |
14-Jun-2013 |
Stephen Lin <stephenwlin@gmail.com> |
SelectionDAG: minor fix to order of operands in comments to match the code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
89dbe9744255864445b1c9f9a613ae333d3f79c8 |
14-Jun-2013 |
Tim Northover <tnorthover@apple.com> |
Mark rematerialized super/sub registers as dead. When we're rematerializing into a not-quite-right register we already add the real definition as an imp-def, but we should also be marking the "official" register as dead, since nothing else is going to use it as a result of this remat. Not doing this can affect pressure tracking. rdar://problem/14158833 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184002 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
38103d1012cb8a51da8866134886a0a8f35f4e30 |
14-Jun-2013 |
Stephen Lin <stephenwlin@gmail.com> |
SelectionDAG: Fix incorrect condition checks in some cases of folding FADD/FMUL combinations; also improve accuracy of comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8a0d41e1a649c32e1f0e22c6c201a2e0d8463e30 |
14-Jun-2013 |
Derek Schuff <dschuff@google.com> |
Make PrologEpilogInserter save/restore all callee saved registers in functions which call __builtin_unwind_init() __builtin_unwind_init() is an undocumented gcc intrinsic which has this effect, and is used in libgcc_eh. Goes part of the way toward fixing PR8541. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183984 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
38084db681d99a7b167328cf5420c20f88036d1b |
14-Jun-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Move #include from .h to .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183960 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e5682816b7151b17331b0368c2c7bf19f6e3d661 |
13-Jun-2013 |
Dan Gohman <dan433584@gmail.com> |
Print ConstantPool entries initialized to Values with WriteAsOperand instead of operator<< so that functions are printed as just their name instead of as their entire definition, which is excessively verbose in this context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183871 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
1878f9a7874b1ff569d745c0269f49d3daf7203d |
12-Jun-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '100fbdd06be7590b23c4707a98cd605bdb519498' into merge_20130612
|
1d1862958cf644def478efed355f577855f3ba57 |
12-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183807 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
f0aefa858c1e3bc4585336846175869b5575bbdf |
11-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Remove a few fixmes, the only work we're doing is getting the string to return and this is done all over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183704 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
0fbaa378737e94afba25e88363b2c4d6b7208995 |
11-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Fix up comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183703 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
175a7809c82ff7f97f962510576bc7bbd5708c1b |
10-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183698 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
d32d7a541ad874c8951d5348abe7d40d841db9c9 |
10-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
IndentCount is only used within NDEBUG code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183695 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
a2f8d37fb791d197e7b0b8e6edfa6535f6b21602 |
09-Jun-2013 |
David Majnemer <david.majnemer@gmail.com> |
TargetLowering: Clean up method description comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183623 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
c0cc28301a7fa71ae895dd637058e0624f6bd399 |
08-Jun-2013 |
Quentin Colombet <qcolombet@apple.com> |
Reapply r183552. This time, use a standard type for the option to avoid template instantiation issue with non-standard type. Add a backend option to warn on a given stack size limit. Option: -mllvm -warn-stack-size=<limit> Output (if limit is exceeded): warning: Stack size limit exceeded (<actual size>) in <functionName>. The longer term plan is to hook that to a clang warning. PR:4072 <rdar://problem/13987214>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183595 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
95f24fbe4c0609ab30bbdb98c6d5c2155b35a584 |
08-Jun-2013 |
Quentin Colombet <qcolombet@apple.com> |
Revert commits related to stack warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183579 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
9a6b9bffa53bfa5e1a8373b31b2ddfa7b6bd7b30 |
07-Jun-2013 |
Quentin Colombet <qcolombet@apple.com> |
Add a backend option to warn on a given stack size limit. Option: -mllvm -warn-stack-size=<limit> Output (if limit is exceeded): warning: Stack size limit exceeded (<actual size>) in <functionName>. The longer term plan is to hook that to a clang warning. PR:4072 <rdar://problem/13987214> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183552 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
fcca6c690cc86123f175582772cb1554cc7e8d81 |
07-Jun-2013 |
Quentin Colombet <qcolombet@apple.com> |
Teach AsmPrinter how to print odd constants. Fix an assertion when the compiler encounters big constants whose bit width is not a multiple of 64-bits. Although clang would never generate something like this, the backend should be able to handle any legal IR. <rdar://problem/13363576> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183544 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
62ed8d3e35d25853e32db946a0a60da0bbf862e1 |
07-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Support OpenBSD's native frame protection conventions. OpenBSD's stack smashing protection differs slightly from other platforms: 1. The smash handler function is "__stack_smash_handler(const char *funcname)" instead of "__stack_chk_fail(void)". 2. There's a hidden "long __guard_local" object that gets linked into each executable and DSO. Patch by Matthew Dempsky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183533 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
f4a66d2005f585737cfe5e7dbe133fe9e9ec0b83 |
07-Jun-2013 |
Duncan Sands <baldrick@free.fr> |
Correct wrong register in this example, pointed out by Baoshan Pang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183495 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
babfebb4e804dbce12c7133860609aa8a2da48fd |
07-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix break in r183446 - helps to increment the iterator in a loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b20fdff6fe3ec55c75362f6ce14c91b1c9b016c7 |
06-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: simplify parameter ordering preservation Seems we emit the parameter ordering number (spuriously named 'arg number') in the debug info, so there's no need to search through the variable list to figure out the parameter ordering. This implementation does 'always' do the work, even in non-optimized debug info (the previous implementation checked the existence of the 'variables' list on the subprogram which is only present in optimized builds). No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183446 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6a2e7ac0b6647a409394e58b385e579ea62b5cba |
06-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Cache the TargetLowering info object as a pointer. Caching it as a pointer allows us to reset it if the TargetMachine object changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ResourcePriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
384ceb8446bebe4425e65d1035256eee3b4cfa6d |
06-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't cache the TargetLoweringInfo object inside of the FunctionLowering object. The TargetLoweringInfo object is owned by the TargetMachine. In the future, the TargetMachine object may change, which may also change the TargetLoweringInfo object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
08368387a450dc2b5681000e2728ec702a8f1197 |
06-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Add space to assert message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183346 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
032d62487c888fe1ce500dfe9e22ae76efbe18e5 |
05-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
PR15662: Optimized debug info produces out of order function parameters When a function is inlined we lazily construct the variables representing the function's parameters. After that, we add any remaining unused parameters. If the function doesn't use all the parameters, or uses them out of order, then the DWARF would produce them in that order, producing a parameter order that doesn't match the source. This fix causes us to always keep the arg variables at the start of the variable list & in the original order from the source. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
45c75443394b92a8ba8e2474a393039feb5b7d78 |
04-Jun-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Fix a defect in code-layout pass, improving Benchmarks/Olden/em3d/em3d by about 30% (4.58s vs 3.2s on an oldish Mac Tower). The corresponding src is excerpted bellow. The lopp accounts for about 90% of execution time. -------------------- cat -n test-suite/MultiSource/Benchmarks/Olden/em3d/make_graph.c 90 91 for (k=0; k<j; k++) 92 if (other_node == cur_node->to_nodes[k]) break; The defective layout is sketched bellow, where the two branches need to swap. ------------------------------------------------------------------------ L: ... if (cond) goto out-of-loop goto L While this code sequence is defective, I don't understand why it incurs 1/3 of execution time. CPU-event-profiling indicates the poor laoyout dose not increase in br-misprediction; it dosen't increase stall cycle at all, and it dosen't prevent the CPU detect the loop (i.e. Loop-Stream-Detector seems to be working fine as well)... The root cause of the problem is that the layout pass calls AnalyzeBranch() with basic-block which is not updated to reflect its current layout. rdar://13966341 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183174 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
7c2b4be2a718b994298803dd09e81e49a016ffb2 |
01-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move getRealLinkageName to a common place and remove all the duplicates of it. Also simplify code a bit while there. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183076 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
813419ed5a1712ec5b75f157c103e875400f5cc6 |
01-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Const-ify some printing and dumping code for DIEValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183057 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
|
06f5ebc5a1604b01689cf2d482dd05f956538af6 |
31-May-2013 |
Quentin Colombet <qcolombet@apple.com> |
Loop Strength Reduce: Scaling factor cost. Account for the cost of scaling factor in Loop Strength Reduce when rating the formulae. This uses a target hook. The default implementation of the hook is: if the addressing mode is legal, the scaling factor is free. <rdar://problem/13806271> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183045 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
52aaf6a4a9a32e4493f7cb01eb2c19dc5f795932 |
31-May-2013 |
Kai Nacke <kai.nacke@redstar.de> |
Remove useless code from transitioning to new EH scheme Removes all uses of the variable UsesNewEH. Simply return false in case that no resume instructions were found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183016 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
d01fb9e212d989ff14e84a332c5b18f8a23d4b35 |
30-May-2013 |
Tim Northover <tnorthover@apple.com> |
Fix rematerialization into physical registers. r182872 introduced a bug in how the register-coalescer's rematerialization handled defining a physical register. It relied on the output of the coalescer's setRegisters method to determine whether the replacement instruction needed an implicit-def. However, this value isn't necessarily the same as the CopyMI's actual destination register which is what the rest of the basic-block expects us to be defining. The commit changes the rematerializer to use the actual register attached to CopyMI in its decision. This will be tested soon by an X86 patch which moves everything to using MOV32r0 instead of other sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182925 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d2df98f3aad701512c6f14579a24672a49df1150 |
30-May-2013 |
Eric Christopher <echristo@gmail.com> |
Rename variable to be more descriptive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182903 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5592ba4775964ab5e15a4603249e6beadfa5ce7a |
30-May-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182902 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
6e0b2a0cb0d398f175a5294bf0ad5488c714e8c2 |
30-May-2013 |
Andrew Trick <atrick@apple.com> |
Order CALLSEQ_START and CALLSEQ_END nodes. Fixes PR16146: gdb.base__call-ar-st.exp fails after pre-RA-sched=source fixes. Patch by Xiaoyi Guo! This also fixes an unsupported dbg.value test case. Codegen was previously incorrect but the test was passing by luck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cc5a882c96af6e36bc029b7ff69f62f94e2d041d |
29-May-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't reach into the middle of TargetMachine and cache one of its ivars. Not only does this break encapsulation, it's gross. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182876 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
aae0fa998af0f65221d7b98630162be6d88f05dc |
29-May-2013 |
Tim Northover <tnorthover@apple.com> |
Teach ReMaterialization to be more cunning about subregisters This allows rematerialization during register coalescing to handle more cases involving operations like SUBREG_TO_REG which might need to be rematerialized using sub-register indices. For example, code like: v1(GPR64):sub_32 = MOVZ something v2(GPR64) = COPY v1(GPR64) should be convertable to: v2(GPR64):sub_32 = MOVZ something but previously we just gave up in places like this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182872 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
742671bf8e422aadcf3b7697a8844b9eb6f566f2 |
29-May-2013 |
Manman Ren <mren@apple.com> |
LTO+Debug Info: revert r182791. Since the testing case uses ref_addr, which requires version 3+ to work, we will solve the dwarf version issue first. This patch also causes failures in one of the bots. I will update the patch accordingly in my next attempt. rdar://13926659 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182867 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9174fd77e5e299fa3b1357a85ad82173217270b7 |
28-May-2013 |
Manman Ren <mren@apple.com> |
LTO+Debug Info: correctly emit inlined_subroutine when the inlined callee is from a different CU. We used to print out an error message and fail to generate inlined_subroutine. If we use ref_addr in the generated DWARF, the DWARF version should be 3 or above. rdar://13926659 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182791 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
520b6e3fa5c9c01ed66e70c925e78d518504a983 |
28-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
e4fae84b0b13bd5d66cf619fd2108dbb6064395d |
28-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove double semicolons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
|
b704d23062aa78b00999b75dcdcb628d4d84ee3f |
27-May-2013 |
Preston Gurd <preston.gurd@intel.com> |
Convert sqrt functions into sqrt instructions when -ffast-math is in effect. When -ffast-math is in effect (on Linux, at least), clang defines __FINITE_MATH_ONLY__ > 0 when including <math.h>. This causes the preprocessor to include <bits/math-finite.h>, which renames the sqrt functions. For instance, "sqrt" is renamed as "__sqrt_finite". This patch adds the 3 new names in such a way that they will be treated as equivalent to their respective original names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9edb37feb5984b25494651ee4307fd2284d3538b |
26-May-2013 |
Andrew Trick <atrick@apple.com> |
Fix PR16143: Insert DEBUG_VALUE before terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
dd0fb018a7cd2214c7bc5c6c767f626f99b47ba9 |
25-May-2013 |
Andrew Trick <atrick@apple.com> |
Track IR ordering of SelectionDAG nodes 3/4. Remove the old IR ordering mechanism and switch to new one. Fix unit test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/SDNodeOrdering.h
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
ac6d9bec671252dd1e596fa71180ff6b39d06b5d |
25-May-2013 |
Andrew Trick <atrick@apple.com> |
Track IR ordering of SelectionDAG nodes 2/4. Change SelectionDAG::getXXXNode() interfaces as well as call sites of these functions to pass in SDLoc instead of DebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
ea5db0c315f1ab8ee3be52e0e765c32d3efff024 |
25-May-2013 |
Andrew Trick <atrick@apple.com> |
Track IR ordering of SelectionDAG nodes 1/4. Use a field in the SelectionDAGNode object to track its IR ordering. This adds fields and utility classes without changing existing interfaces or functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
c6af2432c802d241c8fffbe0371c023e6c58844e |
25-May-2013 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182680 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGBuilder.cpp
argetRegisterInfo.cpp
|
e0b59774cba9eb89ffba114635f3a1fa075910b1 |
23-May-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR16110: Handle DBG_VALUE in ConnectedVNInfoEqClasses::Distribute(). Now that the LiveDebugVariables pass is running *after* register coalescing, the ConnectedVNInfoEqClasses class needs to deal with DBG_VALUE instructions. This only comes up when rematerialization during coalescing causes the remaining live range of a virtual register to separate into two connected components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182592 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
2db14ba90cf5696414e909468001a2f6c8f8f780 |
23-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
InlineSpiller: Store bucket pointers instead of iterators. Lets us use a SetVector instead of an explicit set + vector combination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182586 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
3d33184d9da02fb699827249e0631106252f72fa |
23-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Solidify the assumption that a DW_TAG_subprogram's type is a DW_TAG_subroutine_type There were bits & pieces of code lying around that may've given the impression that debug info metadata supported the possibility that a subprogram's type could be specified by a non-subroutine type describing the return type of a void function. This support was incomplete & unnecessary. Asserts & API have been changed to make the desired usage more clear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182532 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
62c320a755ac27ac2b7f64e927892249e0f486e0 |
23-May-2013 |
Chad Rosier <mcrosier@apple.com> |
Simplify logic now that r182490 is in place. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182531 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ranchFolding.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
fConversion.cpp
achineCopyPropagation.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
egisterScavenging.cpp
|
b018bab0b85c7b77ab7111946ea4b82bb6153a5c |
23-May-2013 |
Chad Rosier <mcrosier@apple.com> |
Simplify logic now that r182490 is in place. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182527 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5cc3c989fc4295103ee46a2697e82dc1c4453545 |
23-May-2013 |
Chad Rosier <mcrosier@apple.com> |
Simplify logic now that r182490 is in place. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182526 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
5da4e4f3b10148e811de82ec57b3f82c15411a81 |
22-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Unify formatting of debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182495 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
c2b7f5fa511420b99dd8238ab4ba769a6a6015a5 |
21-May-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Drop @llvm.annotation and @llvm.ptr.annotation intrinsics during codegen. The intrinsic calls are dropped, but the annotated value is propagated. Fixes PR 15253 Original patch by Zeng Bin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182387 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
|
f19b8b018be4b0478f741bf35287db3488fda8d6 |
21-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombine: Avoid an edge case where it tried to create an i0 type for (x & 0) == 0. Fixes PR16083. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
01cb18ea08aeb76726750914b1283c633b5a2d74 |
21-May-2013 |
Manman Ren <mren@apple.com> |
Dwarf: use a single line table to generate assembly when .loc is used. This is to fix PR15408 where an undefined symbol Lline_table_start1 is used. Since we do not generate the debug_line section when .loc is used, Lline_table_start1 is not emitted and we can't refer to it when calculating at_stmt_list for a compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182344 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7b72cc7782716f469eb1b0963423a5b414215705 |
21-May-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14606: Debug Info for namespace aliases/DW_TAG_imported_module This resolves the last of the PR14606 failures in the GDB 7.5 test suite by implementing an optional name field for DW_TAG_imported_modules/DIImportedEntities and using that to implement C++ namespace aliases (eg: "namespace X = Y;"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182328 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3b1040c703c5e76b85b4431f4c84ccc4aa9f8508 |
20-May-2013 |
Bill Wendling <isanbard@gmail.com> |
The DWARF EH pass doesn't need the TargetMachine, only the TargetLoweringBase like the other EH passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182321 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
asses.cpp
|
07418cde47c328f382144acd1972fabcf1529d11 |
20-May-2013 |
Bill Wendling <isanbard@gmail.com> |
No need to store the TargetMachine variable in this class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182317 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
225ed7069caae9ece32d8bd3d15c6e41e21cc04b |
18-May-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add LLVMContext argument to getSetCCResultType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
argetLoweringBase.cpp
|
9aa8fdfddb7a01f52d887176823dfc4e3f9a81a1 |
17-May-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Replace redundant code Use EVT::changeExtendedVectorElementTypeToInteger instead of doing the same thing that it does git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
63f3ca5da75a614c603c04757edeaac123879d39 |
17-May-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add missing -*- C++ -*- to headers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
df68803890ecae2e8cfabdaa9122cb2ccbf5b89c |
17-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Generate debug info for by-value struct args even if they are not used. radar://problem/13865940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182062 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6b67ffd68bb2e555b1b512a809f3c82c68f3debe |
16-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove addFrameMove. Now that we have good testing, remove addFrameMove and create cfi instructions directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182052 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
8401ed21aa7c8ca022aad4b83fc9c63c0b824720 |
16-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombine: Also shrink eq compares where the constant is exactly as large as the smaller type. if ((x & 255) == 255) before: movzbl %al, %eax cmpl $255, %eax after: cmpb $-1, %al git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182038 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
997fa623fc14122153c58ddda8c90aa30f192cc8 |
16-May-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add TargetRegisterInfo::getCoveringLanes(). This lane mask provides information about which register lanes completely cover super-registers. See the block comment before getCoveringLanes(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182034 91177308-0d34-0410-b5e6-96231b3b80d8
argetRegisterInfo.cpp
|
71da6755c8b0a7444be5531798556c00f4dad101 |
15-May-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix legalization of SETCC with promoted integer intrinsics If the input operands to SETCC are promoted, we need to make sure that we either use the promoted form of both operands (or neither); a mixture is not allowed. This can happen, for example, if a target has a custom promoted i1-returning intrinsic (where i1 is not a legal type). In this case, we need to use the promoted form of both operands. This change only augments the behavior of the existing logic in the case where the input types (which may or may not have already been legalized) disagree, and should not affect existing target code because this case would otherwise cause an assert in the SETCC operand promotion code. This will be covered by (essentially all of the) tests for the new PPCCTRLoops infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
c22cdb7203e4aad8e6491487f224efff7a3e58c0 |
15-May-2013 |
Derek Schuff <dschuff@google.com> |
Fix miscompile due to StackColoring incorrectly merging stack slots (PR15707) IR optimisation passes can result in a basic block that contains: llvm.lifetime.start(%buf) ... llvm.lifetime.end(%buf) ... llvm.lifetime.start(%buf) Before this change, calculateLiveIntervals() was ignoring the second lifetime.start() and was regarding %buf as being dead from the lifetime.end() through to the end of the basic block. This can cause StackColoring to incorrectly merge %buf with another stack slot. Fix by removing the incorrect Starts[pos].isValid() and Finishes[pos].isValid() checks. Just doing: Starts[pos] = Indexes->getMBBStartIdx(MBB); Finishes[pos] = Indexes->getMBBEndIdx(MBB); unconditionally would be enough to fix the bug, but it causes some test failures due to stack slots not being merged when they were before. So, in order to keep the existing tests passing, treat LiveIn and LiveOut separately rather than approximating the live ranges by merging LiveIn and LiveOut. This fixes PR15707. Patch by Mark Seaborn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181922 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
453f4f01302f00651aae2fc7658f6e23a2beadb0 |
15-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Use only explicit bool conversion operators BitVector/SmallBitVector::reference::operator bool remain implicit since they model more exactly a bool, rather than something else that can be boolean tested. The most common (non-buggy) case are where such objects are used as return expressions in bool-returning functions or as boolean function arguments. In those cases I've used (& added if necessary) a named function to provide the equivalent (or sometimes negative, depending on convenient wording) test. One behavior change (YAMLParser) was made, though no test case is included as I'm not sure how to reach that code path. Essentially any comparison of llvm::yaml::document_iterators would be invalid if neither iterator was at the end. This helped uncover a couple of bugs in Clang - test cases provided for those in a separate commit along with similar changes to `operator bool` instances in Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181868 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
4d7f2ce93860bb587412c0d5bb572e7bdf7eaa96 |
14-May-2013 |
Eric Christopher <echristo@gmail.com> |
Make getCompileUnit non-const and return the current DIE if it happens to be a compile unit. Noticed on inspection and tested via calling on a newly created compile unit. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181835 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
|
e4642bc096984c12c1ef129137e17fad61201118 |
14-May-2013 |
Kai Nacke <kai.nacke@redstar.de> |
Add bitcast to store of personality function. The personality function is user defined and may have an arbitrary result type. The code assumes always i8*. This results in an assertion failure if a different type is used. A bitcast to i8* is added to prevent this failure. Reviewed by: Renato Golin, Bob Wilson git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181802 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
dd29df06fa72de9e370cdd9d8e32ac5437a578c7 |
14-May-2013 |
Akira Hatanaka <ahatanaka@mips.com> |
StackColoring: don't clear an instruction's mem operand if the underlying object is a PseudoSourceValue and PseudoSourceValue::isConstant returns true (i.e., points to memory that has a constant value). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181751 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
17a692e7f196c15118e69d7012d110aa00a362ba |
14-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Assert that DIEEntries are constructed with non-null DIEs This just brings a crash a little further forward from DWARF emission to DIE construction to make errors easier to diagnose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181748 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
a753ff72b2dfcd9c09451a124373e0a8ed1a1d47 |
13-May-2013 |
Bob Wilson <bob.wilson@apple.com> |
Remove redundant variable introduced by r181682. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3778c04b2e3bc879cb7f175ba4d42f23fb9cef76 |
13-May-2013 |
Hao Liu <Hao.Liu@arm.com> |
Fix PR15950 A bug in DAG Combiner about undef mask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181682 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4a971705bc6030dc2e4338b3cd5cffa2e0f88b7b |
13-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the MachineMove class. It was just a less powerful and more confusing version of MCCFIInstruction. A side effect is that, since MCCFIInstruction uses dwarf register numbers, calls to getDwarfRegNum are pushed out, which should allow further simplifications. I left the MachineModuleInfo::addFrameMove interface unchanged since this patch was already fairly big. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181680 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfException.h
LVMTargetMachine.cpp
achineModuleInfo.cpp
|
03406c4f15b3bf0522763fe848cd40f9598b74e8 |
11-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
StringRefize some debug accel table bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181663 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
smPrinter/DwarfDebug.cpp
|
d84ccfaf50c7843f31ffc74a8a8e33f779453d6e |
11-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change getFrameMoves to return a const reference. To add a frame now there is a dedicated addFrameMove which also takes care of constructing the move itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181657 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
baf81af7591dedb2587bf8e439e07a97dbe454f9 |
11-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove more dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181656 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4de9d72883eebe4e86bffdaad89483dfe822e2a5 |
10-May-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14492: Debug Info: Support for values of non-integer non-type template parameters. This is only tested for global variables at the moment (& includes tests for the unnamed parameter case, since apparently this entire function was completely untested previously) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181632 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
768ebcdf631baa1b18dc65a5983a237b307a99c2 |
10-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Generate a correct constant for vector types when folding (xor (and)) into (and (not)). PR15948. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
58dcd200b7f0ea01160b6159e0363cc96b1b83d9 |
10-May-2013 |
Owen Anderson <resistor@mac.com> |
Teach SelectionDAG to constant fold all-constant FMA nodes the same way that it constant folds FADD, FMUL, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c496875f0c205ffadcec8060e1170e1c58e4eb55 |
09-May-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "Make sure debug info contains linkage names (DW_AT_MIPS_linkage_name)" temporarily while investigating gdb.cp/templates.exp. This reverts commit r181471. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181496 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
cc55d4528c9ff3a2e0b148fd311be8d912ad22f4 |
08-May-2013 |
Eric Christopher <echristo@gmail.com> |
Make sure debug info contains linkage names (DW_AT_MIPS_linkage_name) for constructors and destructors since the original declaration given by the AT_specification both won't and can't. Patch by Yacine Belkadi, I've cleaned up the testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181471 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
363160a6be82df343fa60aa09d9d8f8f44605529 |
08-May-2013 |
David Majnemer <david.majnemer@gmail.com> |
DAGCombiner: Simplify inverted bit tests Fold (xor (and x, y), y) -> (and (not x), y) This removes an opportunity for a constant to appear twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aa76a93cd35abd922b66825bb4e3e0b6e14ccfd5 |
08-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: Support DW_TAG_imported_declaration This provides basic functionality for imported declarations. For subprograms and types some amount of lazy construction is supported (so the definition of a function can proceed the using declaration), but it still doesn't handle declared-but-not-defined functions (since we don't generally emit function declarations). Variable support is really rudimentary at the moment - simply looking up the existing definition with no support for out of order (declaration, imported_module, then definition). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181392 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d1221e377d8e37e41539ed9f36b60b4cd48b6988 |
08-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Finish renaming constructImportedModuleDIE to constructImportedEntityDIE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181391 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9c57ad2381488b7cde7e3eb459d2ce3e447e93b7 |
08-May-2013 |
Eric Christopher <echristo@gmail.com> |
Pass the MDNode in and do the insertion at compile unit creation time instead of relying upon an extra call to finish initializing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181383 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
1db3d0820f8057dd03ade1585bfa5f2bf53cfe33 |
08-May-2013 |
Eric Christopher <echristo@gmail.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
20d9e41ddb3f531267680819b5cac4cac1c6b231 |
07-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Rename DIImportedModule to DIImportedEntity and allow imported declarations DIBuilder::createImportedDeclaration isn't fully plumbed through (note, lacking in AsmPrinter/DwarfDebug support) but this seemed like a sufficiently useful division of code to make the subsequent patch(es) easier to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181364 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e4496548155ba6606f107fbdc10ea17e58fd3401 |
07-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove exception handling support from the old JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181354 91177308-0d34-0410-b5e6-96231b3b80d8
argetOptionsImpl.cpp
|
798925bac73b9320e7b32001478921910ac781d2 |
07-May-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix vselect when getSetCCResultType returns a different type from the operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
498c91e341ff8cff835b053c25a76fe7c21b06a9 |
07-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: Fix for break due to r181271 Apparently we didn't keep an association of Compile Unit metadata nodes to DIEs so looking up that parental context failed & thus caused no DW_TAG_imported_modules to be emitted at the CU scope. Fix this by adding the mapping & sure up the test case to verify this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
664fbee9c888c7cd1e7ba7943e9cce96a104ea5e |
07-May-2013 |
Timur Iskhodzhanov <timurrrr@google.com> |
Fix the VS2010 build broken by r181271 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181296 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9dbeb69a345d12b15571769cfacf1d5e1a7ce378 |
03-May-2013 |
Stephen Hines <srhines@google.com> |
Update LLVM for merge to r180947. Change-Id: Ic9e7daa7ef3789298c49a7b308af92115f5d682d
ndroid.mk
smPrinter/Android.mk
|
d2e0f7ee15e3df5317f804d9355c2b714e30b5c9 |
07-May-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Support imported modules in lexical blocks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181271 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
30cb836a20259babf0cce7bd898bc70e4a8f5454 |
06-May-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unnecessary instance variable and rework logic accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181227 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
|
3bf2bcd96ce03a83967d9f256d23455e0e2ccefd |
06-May-2013 |
Eric Christopher <echristo@gmail.com> |
Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181226 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
2720248ae5b0201a7bdba57f3625869b578f2a5d |
06-May-2013 |
Michael Kuperstein <michael.m.kuperstein@intel.com> |
Fix slightly too aggressive conact_vector optimization. (Would sometimes optimize away conacts used to extend a vector with undef values) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9a28cc14a9bc52072649f63308c2a66c9eebe0d1 |
05-May-2013 |
Evan Cheng <evan.cheng@apple.com> |
Teach if-converter to avoid removing BBs whose addresses are takne. rdar://13782395 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181160 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e210df20d3b69beaa3e83a6088b6bafb9f00bcfe |
05-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
InlineSpiller: Remove quadratic behavior. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181149 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
46abfcf4187432da728cbe452c32143da077e07f |
05-May-2013 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
For ARM backend, fixed "byval" attribute support. Now even the small structures could be passed within byval (small enough to be stored in GPRs). In regression tests next function prototypes are checked: PR15293: %artz = type { i32 } define void @foo(%artz* byval %s) define void @foo2(%artz* byval %s, i32 %p, %artz* byval %s2) foo: "s" stored in R0 foo2: "s" stored in R0, "s2" stored in R2. Next AAPCS rules are checked: 5.5 Parameters Passing, C.4 and C.5, "ParamSize" is parameter size in 32bit words: -- NSAA != 0, NCRN < R4 and NCRN+ParamSize > R4. Parameter should be sent to the stack; NCRN := R4. -- NSAA != 0, and NCRN < R4, NCRN+ParamSize < R4. Parameter stored in GPRs; NCRN += ParamSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181148 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
5c332dbd30d9398ed25b30c3080506f7b8e92290 |
05-May-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Add ArrayRef constructor from None, and do the cleanups that this constructor enables Patch by Robert Wilhelm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181138 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
hrinkWrapping.cpp
|
38578c4919ea18ceb27e29988b2d857afe6215bf |
03-May-2013 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/master' into merge-20130502 Conflicts: lib/Support/Unix/Signals.inc unittests/Transforms/Utils/Cloning.cpp Change-Id: I027581a4390ec3ce4cd8d33da8b5f4c0c7d372c8
|
d4201b6e76bad9cb3fb8a20e3c04555d97deb0fd |
02-May-2013 |
Evan Cheng <evan.cheng@apple.com> |
TiedTo flag can now be placed on implicit operands. isTwoAddrUse() should look at all of the operands. Previously it was skipping over implicit operands which cause infinite looping when the two-address pass try to reschedule a two-address instruction below the kill of tied operand. I'm unable to come up with a reasonably sized test case. rdar://13747577 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180906 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f18a32eb128513239b516cd055baf9415d05f24f |
02-May-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert r180737. The companion patch was reverted, and this is not relevant right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180889 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
40be1e85665d10f5444186f0e7106e368dd735b8 |
01-May-2013 |
Filip Pizlo <fpizlo@apple.com> |
This patch breaks up Wrap.h so that it does not have to include all of the things, and renames it to CBindingWrapping.h. I also moved CBindingWrapping.h into Support/. This new file just contains the macros for defining different wrap/unwrap methods. The calls to those macros, as well as any custom wrap/unwrap definitions (like for array of Values for example), are put into corresponding C++ headers. Doing this required some #include surgery, since some .cpp files relied on the fact that including Wrap.h implicitly caused the inclusion of a bunch of other things. This also now means that the C++ headers will include their corresponding C API headers; for example Value.h must include llvm-c/Core.h. I think this is harmless, since the C API headers contain just external function declarations and some C types, so I don't believe there should be any nasty dependency issues here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180881 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
|
f0b0755b6ea0b5c55bbf51ddd29439c01c7102e5 |
01-May-2013 |
Chad Rosier <mcrosier@apple.com> |
[inline asm] Return an undef SDValue of the expected value type, rather than report a fatal error. This allows us to continue processing the translation unit. Test case to come on the clang side because we need an inline asm diagnostics handler in place. rdar://13446483 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180873 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b2ed5fac0693e949ffdbf45266f5d53839211b63 |
01-May-2013 |
Nadav Rotem <nrotem@apple.com> |
Optimize away nop CONCAT_VECTOR nodes. Optimize CONCAT_VECTOR nodes that merge EXTRACT_SUBVECTOR values that extract from the same vector. rdar://13402653 PR15866 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3484da9479a4daff3efc7febe004e1f4d69b3b4a |
01-May-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Only pass 'returned' to target-specific lowering code when the value of entire register is guaranteed to be preserved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180825 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAGBuilder.cpp
|
86a87d9ba1faf153e0e6eaddfd3e95595c83bcb1 |
01-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Temporarily revert "Change the informal convention of DBG_VALUE so that we can express a" because it breaks some buildbots. This reverts commit 180816. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180819 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
iveDebugVariables.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
a2b56692c8b824b8cc4a0927bb555f3718e9bee8 |
01-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Change the informal convention of DBG_VALUE so that we can express a register-indirect address with an offset of 0. It used to be that a DBG_VALUE is a register-indirect value if the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE is register-indirect if the first operand is a register and the second operand is an immediate. For plain registers use the combination reg, reg. rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180816 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
iveDebugVariables.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f13fc1b23ad40407d0ee4fd0ee807a40261d639e |
01-May-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: revert a minor heuristic that snuck in with -misched-vcopy. I'll fix the heuristic in a general way in a follow-up commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180815 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
db31bd31d62b5b85dddd5fbecae1a04a02201adc |
30-Apr-2013 |
Hal Finkel <hfinkel@anl.gov> |
LocalStackSlotAllocation improvements First, taking advantage of the fact that the virtual base registers are allocated in order of the local frame offsets, remove the quadratic register-searching behavior. Because of the ordering, we only need to check the last virtual base register created. Second, store the frame index in the FrameRef structure, and get the frame index and the local offset from this structure at the top of the loop iteration. This allows us to de-nest the loops in insertFrameReferenceRegisters (and I think makes the code cleaner). I also moved the needsFrameBaseReg check into the first loop over instructions so that we don't bother pushing FrameRefs for instructions that don't want a virtual base register anyway. Lastly, and this is the only functionality change, avoid the creation of single-use virtual base registers. These are currently not useful because, in general, they end up replacing what would be one r+r instruction with an add and a r+i instruction. Committing this removes the XFAIL in CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll Jim has okayed this off-list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180799 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
fa2eac54e690928592a2bd6c1f8ee0f9b1923d5e |
30-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Emit the TLS initialization function pointers into the correct section. The `llvm.tls_init_funcs' (created by the front-end) holds pointers to the TLS initialization functions. These need to be placed into the correct section so that they are run before `main()'. <rdar://problem/13733006> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3aa5394e5bbf267824e9d789ec8b1c27b85a8671 |
27-Apr-2013 |
Andrew Trick <atrick@apple.com> |
Generalize the MachineTraceMetrics public API. Naturally, we should be able to pass in extra instructions, not just extra blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180667 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
00297bad0d7458b5bcdfce3d3301957b0539b070 |
27-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Use the target triple from the target machine rather than the module to determine whether or not we're on a darwin platform for debug code emitting. Solves the problem of a module with no triple on the command line and no triple in the module using non-gdb ok features on darwin. Fix up the member-pointers test to check the correct things for cross platform (DW_FORM_flag is a good prefix). Unfortunately no testcase because I have no ideas how to test something without a triple and without a triple in the module yet check precisely on two platforms. Ideas welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180660 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
13131e62fc9a523b3cc8ad98cc9def97ff89391a |
26-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
Cleanup and document MachineLocation. Clarify documentation and API to make the difference between register and register-indirect addressed locations more explicit. Put in a comment to point out that with the current implementation we cannot specify a register-indirect location with offset 0 (a breg 0 in DWARF). No functionality change intended. rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180641 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
f1d9fe9d04ce93f6d5dcebbd2cb6a07414d7a029 |
26-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Micro-optimization TLVs probably won't be as common as the other types of variables. Check for them last before defaulting to "DATA". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180631 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
730a570c8c1b84f650ae92bacd61c88cfef9c6a4 |
26-Apr-2013 |
Silviu Baranga <silviu.baranga@arm.com> |
Re-write the address propagation code for pre-indexed loads/stores to take into account some previously misssed cases (PRE_DEC addressing mode, the offset and base address are swapped, etc). This should fix PR15581. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180609 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6242fda42ad13eebc908e744426ae7bc8cf8d1c3 |
26-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Canonicalize vector integer abs in the same way we do it for scalars. This already helps SSE2 x86 a lot because it lacks an efficient way to represent a vector select. The long term goal is to enable the backend to match a canonicalized pattern into a single instruction (e.g. vabs or pabs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4b5581530393e647d559360f8c6f229c05aca94f |
25-Apr-2013 |
Reid Kleckner <reid@kleckner.net> |
[mc-coff] Forward Linker Option flags into the .drectve section Summary: This is modelled on the Mach-O linker options implementation and should support a Clang implementation of #pragma comment(lib/linker). Reviewers: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D724 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180569 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
02066838b5cdf17277267e79ffbc9459a58cdd59 |
25-Apr-2013 |
Silviu Baranga <silviu.baranga@arm.com> |
Fix constant folding for one lane vector types. Constant folding one lane vector types not returns a vector instead of a scalar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a264a20277a4699cdc44092767228b76234016d9 |
25-Apr-2013 |
Andrew Trick <atrick@apple.com> |
Fix for r180193 - MI Sched: eliminate local vreg. Fixes PR15838. Need to check for blocks with nothing but dbg.value. I'm not sure how to force this situation with a unit test. I tried to reduce the test case in PR15838 (1k lines of metadata) but gave up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180227 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
2871ba90a3d3544fa1f136c7d4efbb619298d6e8 |
25-Apr-2013 |
Chad Rosier <mcrosier@apple.com> |
[inline asm] Fix a crasher for an invalid value type/register class. rdar://13731657 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e38afe1e335084134f7830ba6f2208e2ddde59b4 |
24-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: eliminate local vreg copies. For now, we just reschedule instructions that use the copied vregs and let regalloc elliminate it. I would really like to eliminate the copies on-the-fly during scheduling, but we need a complete implementation of repairIntervalsInRange() first. The general strategy is for the register coalescer to eliminate as many global copies as possible and shrink live ranges to be extended-basic-block local. The coalescer should not have to worry about resolving local copies (e.g. it shouldn't attemp to reorder instructions). The scheduler is a much better place to deal with local interference. The coalescer side of this equation needs work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180193 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e2326ad2c00fe3e8e21dbf312f1987ba92308733 |
24-Apr-2013 |
Andrew Trick <atrick@apple.com> |
Register Coalescing: add a flag to disable rescheduling. When MachineScheduler is enabled, this functionality can be removed. Until then, provide a way to disable it for test cases and designing MachineScheduler heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180192 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
811a372d4fbf505e3d5db3b1d18f1109de47e0a7 |
24-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MI Sched: regpressure tracing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180191 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
13367123a8682de6db3feee6c9b9a7cc19e4ae9c |
24-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180186 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ed5707baf9be36c0d06c278f589b6c55db8b96c0 |
23-Apr-2013 |
Owen Anderson <resistor@mac.com> |
DAGCombine should not aggressively fold SEXT(VSETCC(...)) into a wider VSETCC without first checking the target's vector boolean contents. This exposed an issue with PowerPC AltiVec where it appears it was setting the wrong vector boolean contents. The included change fixes the PowerPC tests, and was OK'd by Hal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
13aba14eb5c643234f5d756b94f30afb28f8cd5d |
23-Apr-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Add some constraints to use of 'returned': 1) Disallow 'returned' on parameter that is also 'sret' (no sensible semantics, as far as I can tell). 2) Conservatively disallow tail calls through 'returned' parameters that also are 'zext' or 'sext' (for consistency with treatment of other zero-extending and sign-extending operations in tail call position detection...can be revised later to handle situations that can be determined to be safe). This is a new attribute that is not yet used, so there is no impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180118 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
9a0e12a6ed7db1bf49e4676932427e91ae4eb9be |
23-Apr-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Remove unused DwarfSectionOffsetDirective string The value isn't actually used, and setting it emits a COFF specific directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180064 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
3e39731e88f2d4f597cebc74388fd6650ca4f604 |
23-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Move C++ code out of the C headers and into either C++ headers or the C++ files themselves. This enables people to use just a C compiler to interoperate with LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180063 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
|
2ad047e04dd4c19defade4799834efacb0024551 |
22-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Optimize MachineBasicBlock::getSymbol by caching the symbol. Since the symbol name computation is expensive, this helps save about 25% of the time spent in this function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180049 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
cde25b435a907e7741da0c0d18953850936277c4 |
22-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Clarify that llvm.used can contain aliases. Also add a check for llvm.used in the verifier and simplify clients now that they can assume they have a ConstantArray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180019 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
|
1b0cd2f2a69c2ee6dd82e5445728f1b93aef4f47 |
22-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180000 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6c3bb94445305f8ee0be6d3c9457a411bf22b3eb |
22-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Update comment. Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
c462db6d66e683fb837c03d661483106a869a407 |
22-Apr-2013 |
David Blaikie <dblaikie@gmail.com> |
Revert "Revert "PR14606: debug info imported_module support"" This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even though the debug info was clearly invalid on all of them, but this ought to fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179996 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0cb1019e9cd41237408eae09623eb9a34a4cbe0c |
22-Apr-2013 |
Jim Grosbach <grosbach@apple.com> |
Legalize vector truncates by parts rather than just splitting. Rather than just splitting the input type and hoping for the best, apply a bit more cleverness. Just splitting the types until the source is legal often leads to an illegal result time, which is then widened and a scalarization step is introduced which leads to truly horrible code generation. With the loop vectorizer, these sorts of operations are much more common, and so it's worth extra effort to do them well. Add a legalization hook for the operands of a TRUNCATE node, which will be encountered after the result type has been legalized, but if the operand type is still illegal. If simple splitting of both types ends up with the result type of each half still being legal, just do that (v16i16 -> v16i8 on ARM, for example). If, however, that would result in an illegal result type (v8i32 -> v8i8 on ARM, for example), we can get more clever with power-two vectors. Specifically, split the input type, but also widen the result element size, then concatenate the halves and truncate again. For example on ARM, To perform a "%res = v8i8 trunc v8i32 %in" we transform to: %inlo = v4i32 extract_subvector %in, 0 %inhi = v4i32 extract_subvector %in, 4 %lo16 = v4i16 trunc v4i32 %inlo %hi16 = v4i16 trunc v4i32 %inhi %in16 = v8i16 concat_vectors v4i16 %lo16, v4i16 %hi16 %res = v8i8 trunc v8i16 %in16 This allows instruction selection to generate three VMOVN instructions instead of a sequences of moves, stores and loads. Update the ARMTargetTransformInfo to take this improved legalization into account. Consider the simplified IR: define <16 x i8> @test1(<16 x i32>* %ap) { %a = load <16 x i32>* %ap %tmp = trunc <16 x i32> %a to <16 x i8> ret <16 x i8> %tmp } define <8 x i8> @test2(<8 x i32>* %ap) { %a = load <8 x i32>* %ap %tmp = trunc <8 x i32> %a to <8 x i8> ret <8 x i8> %tmp } Previously, we would generate the truly hideous: .syntax unified .section __TEXT,__text,regular,pure_instructions .globl _test1 .align 2 _test1: @ @test1 @ BB#0: push {r7} mov r7, sp sub sp, sp, #20 bic sp, sp, #7 add r1, r0, #48 add r2, r0, #32 vld1.64 {d24, d25}, [r0:128] vld1.64 {d16, d17}, [r1:128] vld1.64 {d18, d19}, [r2:128] add r1, r0, #16 vmovn.i32 d22, q8 vld1.64 {d16, d17}, [r1:128] vmovn.i32 d20, q9 vmovn.i32 d18, q12 vmov.u16 r0, d22[3] strb r0, [sp, #15] vmov.u16 r0, d22[2] strb r0, [sp, #14] vmov.u16 r0, d22[1] strb r0, [sp, #13] vmov.u16 r0, d22[0] vmovn.i32 d16, q8 strb r0, [sp, #12] vmov.u16 r0, d20[3] strb r0, [sp, #11] vmov.u16 r0, d20[2] strb r0, [sp, #10] vmov.u16 r0, d20[1] strb r0, [sp, #9] vmov.u16 r0, d20[0] strb r0, [sp, #8] vmov.u16 r0, d18[3] strb r0, [sp, #3] vmov.u16 r0, d18[2] strb r0, [sp, #2] vmov.u16 r0, d18[1] strb r0, [sp, #1] vmov.u16 r0, d18[0] strb r0, [sp] vmov.u16 r0, d16[3] strb r0, [sp, #7] vmov.u16 r0, d16[2] strb r0, [sp, #6] vmov.u16 r0, d16[1] strb r0, [sp, #5] vmov.u16 r0, d16[0] strb r0, [sp, #4] vldmia sp, {d16, d17} vmov r0, r1, d16 vmov r2, r3, d17 mov sp, r7 pop {r7} bx lr .globl _test2 .align 2 _test2: @ @test2 @ BB#0: push {r7} mov r7, sp sub sp, sp, #12 bic sp, sp, #7 vld1.64 {d16, d17}, [r0:128] add r0, r0, #16 vld1.64 {d20, d21}, [r0:128] vmovn.i32 d18, q8 vmov.u16 r0, d18[3] vmovn.i32 d16, q10 strb r0, [sp, #3] vmov.u16 r0, d18[2] strb r0, [sp, #2] vmov.u16 r0, d18[1] strb r0, [sp, #1] vmov.u16 r0, d18[0] strb r0, [sp] vmov.u16 r0, d16[3] strb r0, [sp, #7] vmov.u16 r0, d16[2] strb r0, [sp, #6] vmov.u16 r0, d16[1] strb r0, [sp, #5] vmov.u16 r0, d16[0] strb r0, [sp, #4] ldm sp, {r0, r1} mov sp, r7 pop {r7} bx lr Now, however, we generate the much more straightforward: .syntax unified .section __TEXT,__text,regular,pure_instructions .globl _test1 .align 2 _test1: @ @test1 @ BB#0: add r1, r0, #48 add r2, r0, #32 vld1.64 {d20, d21}, [r0:128] vld1.64 {d16, d17}, [r1:128] add r1, r0, #16 vld1.64 {d18, d19}, [r2:128] vld1.64 {d22, d23}, [r1:128] vmovn.i32 d17, q8 vmovn.i32 d16, q9 vmovn.i32 d18, q10 vmovn.i32 d19, q11 vmovn.i16 d17, q8 vmovn.i16 d16, q9 vmov r0, r1, d16 vmov r2, r3, d17 bx lr .globl _test2 .align 2 _test2: @ @test2 @ BB#0: vld1.64 {d16, d17}, [r0:128] add r0, r0, #16 vld1.64 {d18, d19}, [r0:128] vmovn.i32 d16, q8 vmovn.i32 d17, q9 vmovn.i16 d16, q8 vmov r0, r1, d16 bx lr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179989 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
1e48093df8971ba188d943d71eb7cdb1fb65aa42 |
21-Apr-2013 |
Jim Grosbach <grosbach@apple.com> |
Tidy up comment grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
8b71994fde0f0fcdf7a8260dc773fb7376b1231f |
20-Apr-2013 |
Tim Northover <Tim.Northover@arm.com> |
Remove unused ShouldFoldAtomicFences flag. I think it's almost impossible to fold atomic fences profitably under LLVM/C++11 semantics. As a result, this is now unused and just cluttering up the target interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179940 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringBase.cpp
|
6265d5c91a18b2fb6499eb581c488315880c044d |
20-Apr-2013 |
Tim Northover <Tim.Northover@arm.com> |
Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179939 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGDumper.cpp
|
456ca048af35163b9f52187e92a23ee0a9f059e8 |
20-Apr-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Add CodeGen support for functions that always return arguments via a new parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179925 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAGBuilder.cpp
|
5c34e08b9fff9d4df2421e4f41ff15b85f638dd1 |
20-Apr-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Allow tail call opportunity detection through nested and/or multiple iterations of extractelement/insertelement indirection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179924 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
462123f66159a8c7ff34b87cb269955252be3ec0 |
20-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Simplify the code in FastISel::tryToFoldLoad, add an assertion and fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179908 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
75299e3a95c0cfcade8515c603e7802351a11bee |
20-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Move TryToFoldFastISelLoad to FastISel, where it belongs. In general, I'm trying to move as much FastISel logic as possible out of the main path in SelectionDAGISel - intermixing them just adds confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179902 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
2a8bea7a8eba9bfa05dcc7a87e9152a0043841b2 |
20-Apr-2013 |
Michael Liao <michael.liao@intel.com> |
ArrayRefize getMachineNode(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a58d67af29d38fa37c94f59af37db9df75f349be |
19-Apr-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MRI::verifyUseLists() function. This checks the sanity of the register use lists in the MI intermediate representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179895 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
achineVerifier.cpp
|
03494e05e8aa1b919b5a8a6277d7ffec5d1bfbb5 |
19-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Use dbgs() consistently for -debug printouts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179894 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
41201ed06fa4fb246f5a7e9e2b62168814eca6ff |
19-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "PR14606: debug info imported_module support" This reverts commit r179836 as it seems to have caused test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179840 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bcb81360a26cba066fae3acbe25b8ac161af6881 |
19-Apr-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14606: debug info imported_module support Adding another CU-wide list, in this case of imported_modules (since they should be relatively rare, it seemed better to add a list where each element had a "context" value, rather than add a (usually empty) list to every scope). This takes care of DW_TAG_imported_module, but to fully address PR14606 we'll need to expand this to cover DW_TAG_imported_declaration too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179836 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5bd0767a040eae0d8f153c46238849e64e166018 |
19-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Add some more stats for fast isel vs. SelectionDAG, w.r.t lowering function arguments in entry BBs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
df39be6cb4eb44011db3d3e86f8fe463f81ce127 |
17-Apr-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Add support for subsections to the ELF assembler. Fixes PR8717. Differential Revision: http://llvm-reviews.chandlerc.com/D598 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179725 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
604b3573f955d61ba87215c25ba2f52477c71ecc |
15-Apr-2013 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Replace uses of the deprecated std::auto_ptr with OwningPtr. This is a rework of the broken parts in r179373 which were subsequently reverted in r179374 due to incompatibility with C++98 compilers. This version should be ok under C++98. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179520 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
420820056d42c93ea64cd86a95848bf4e0040670 |
14-Apr-2013 |
Nadav Rotem <nrotem@apple.com> |
Document the decision to assume that the cost of floats is twice as much as integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179478 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
baedcd79773919f2a7c7c4dcdc37f49a807a73f3 |
13-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: DEBUG formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179452 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
6a22dba4854a8b3d7427f8493f663c1b52df4477 |
13-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched cleanup. If an instruction has no valid sched class, do not attempt to check for a variant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179451 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
4392f0f407fe4e2a9ec53b2560a1cbf86357c190 |
13-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: schedule physreg copies. The register allocator expects minimal physreg live ranges. Schedule physreg copies accordingly. This is slightly tricky when they occur in the middle of the scheduling region. For now, this is handled by rescheduling the copy when its associated instruction is scheduled. Eventually we may instead bundle them, but only if we can preserve the bundles as parallel copies during regalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179449 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
9eb366acba65b5779d2129db3a6fb6a0414572d4 |
12-Apr-2013 |
Nadav Rotem <nrotem@apple.com> |
CostModel: increase the default cost of supported floating point operations from 1 to two. Fixed a few tests that changes because now the cost of one insert + a vector operation on two doubles is lower than two scalar operations on doubles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179413 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
3389e10d675f7723d3ab24deda60dfba568b42c0 |
12-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert broken pieces of r179373. You can't copy an OwningPtr, and move semantics aren't available in C++98. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179374 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
200241e4de11981523b3d14f3acab6129efed701 |
12-Apr-2013 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Replace uses of the deprecated std::auto_ptr with OwningPtr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179373 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
|
33a47d66e9f9126017d051bfba35cb9be6609b3e |
12-Apr-2013 |
Nadav Rotem <nrotem@apple.com> |
Don't disable block layout when forcing block alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179355 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
07706e5506fb1bf494667e9fd16795b6c0b4d0fb |
12-Apr-2013 |
Nadav Rotem <nrotem@apple.com> |
Add a flag to align all basic blocks in the function. When debugging performance regressions we often ask ourselves if the regression that we see is due to poor isel/sched/ra or due to some micro-architetural problem. When comparing two code sequences one good way to rule out front-end bottlenecks (and other the issues) is to force code alignment. This pass adds a flag that forces the alignment of all of the basic blocks in the program. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179353 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
fdca22129033ff830a8a9574f0e24a49caedfa96 |
11-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add braces around || in && to pacify GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179275 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
9af7014019c971368d541870b108aef1f12a24ba |
11-Apr-2013 |
Hal Finkel <hfinkel@anl.gov> |
Manually remove successors in if conversion when CopyAndPredicateBlock is used In the simple and triangle if-conversion cases, when CopyAndPredicateBlock is used because the to-be-predicated block has other predecessors, we need to explicitly remove the old copied block from the successors list. Normally if conversion relies on TII->AnalyzeBranch combined with BB->CorrectExtraCFGEdges to cleanup the successors list, but if the predicated block contained an un-analyzable branch (such as a now-predicated return), then this will fail. These extra successors were causing a problem on PPC because it was causing later passes (such as PPCEarlyReturm) to leave dead return-only basic blocks in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179227 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
5ed028385c39f3de4570fa6f77c734d968d26902 |
10-Apr-2013 |
Andrew Trick <atrick@apple.com> |
Generalize the PassConfig API and remove addFinalizeRegAlloc(). The target hooks are getting out of hand. What does it mean to run before or after regalloc anyway? Allowing either Pass* or AnalysisID pass identification should make it much easier for targets to use the substitutePass and insertPass APIs, and create less need for badly named target hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179140 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
e0828ec6027e43724a7c5c76a3409344198dac71 |
09-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
The .dwo section shouldn't contain the unrelocated values (and therefore not at all) of the pc or statement list. We also don't need to emit the compilation dir so save so space and time and don't bother. Fix up the testcase accordingly and verify that we don't emit the attributes or the items that they use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179114 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6fac1fbf30e41d33506b5bc66aa480ac7de7531d |
09-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Fold a shuffle on CONCAT_VECTORS into a new CONCAT_VECTORS if possible. This pattern occurs in SROA output due to the way vector arguments are lowered on ARM. The testcase from PR15525 now compiles into this, which is better than the code we got with the old scalarrepl: _Store: ldr.w r9, [sp] vmov d17, r3, r9 vmov d16, r1, r2 vst1.8 {d16, d17}, [r0] bx lr Differential Revision: http://llvm-reviews.chandlerc.com/D647 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179106 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9a9e73b47d139ecb6bfc3c934352ab7c7ee9af44 |
07-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
DW_FORM_sec_offset should be a relocation on platforms that use a relocation across sections. Do this for DW_AT_stmt list in the skeleton CU and check the relocations in the debug_info section. Add a FIXME for multiple CUs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178969 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6e01dcbb7306514f11834f1e8d7d642013ea349b |
06-Apr-2013 |
Nadav Rotem <nrotem@apple.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178949 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
5044a9395a6f19c37989d877a7cbbe21dd84c5b7 |
06-Apr-2013 |
Manman Ren <mren@apple.com> |
Dwarf: use utostr on CUID to append to SmallString. We used to do "SmallString += CUID", which is incorrect, since CUID will be truncated to a char. rdar://problem/13573833 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178941 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2e80991a7712d51f7637513703fc896f93eea252 |
06-Apr-2013 |
Hal Finkel <hfinkel@anl.gov> |
Reapply r178845 with fix - Fix bug in PEI's virtual-register scavenging This fixes PEI as previously described, but correctly handles the case where the instruction defining the virtual register to be scavenged is the first in the block. Arnold provided me with a bugpoint-reduced test case, but even that seems too large to use as a regression test. If I'm successful in cleaning it up then I'll commit that as well. Original commit message: This change fixes a bug that I introduced in r178058. After a register is scavenged using one of the available spills slots the instruction defining the virtual register needs to be moved to after the spill code. The scavenger has already processed the defining instruction so that registers killed by that instruction are available for definition in that same instruction. Unfortunately, after this, the scavenger needs to iterate through the spill code and then visit, again, the instruction that defines the now-scavenged register. In order to avoid confusion, the register scavenger needs the ability to 'back up' through the spill code so that it can again process the instructions in the appropriate order. Prior to this fix, once the scavenger reached the just-moved instruction, it would assert if it killed any registers because, having already processed the instruction, it believed they were undefined. Unfortunately, I don't yet have a small test case. Thanks to Pranav Bhandarkar for diagnosing the problem and testing this fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178919 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
13bbe1f52e8d57151e2730db49094e1c62a4c793 |
05-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the target options specified on a function to reset the back-end. During LTO, the target options on functions within the same Module may change. This would necessitate resetting some of the back-end. Do this for X86, because it's a Friday afternoon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178917 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringBase.cpp
argetOptionsImpl.cpp
|
b6cfeb63f8192724362565567a4cb4aa642baa1d |
05-Apr-2013 |
Hal Finkel <hfinkel@anl.gov> |
Revert r178845 - Fix bug in PEI's virtual-register scavenging Reverting because this breaks one of the LTO builders. Original commit message: This change fixes a bug that I introduced in r178058. After a register is scavenged using one of the available spills slots the instruction defining the virtual register needs to be moved to after the spill code. The scavenger has already processed the defining instruction so that registers killed by that instruction are available for definition in that same instruction. Unfortunately, after this, the scavenger needs to iterate through the spill code and then visit, again, the instruction that defines the now-scavenged register. In order to avoid confusion, the register scavenger needs the ability to 'back up' through the spill code so that it can again process the instructions in the appropriate order. Prior to this fix, once the scavenger reached the just-moved instruction, it would assert if it killed any registers because, having already processed the instruction, it believed they were undefined. Unfortunately, I don't yet have a small test case. Thanks to Pranav Bhandarkar for diagnosing the problem and testing this fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178916 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
afe2f43e4ea0a514413bc742fc03ef5c675ae86a |
05-Apr-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix bug in PEI's virtual-register scavenging This change fixes a bug that I introduced in r178058. After a register is scavenged using one of the available spills slots the instruction defining the virtual register needs to be moved to after the spill code. The scavenger has already processed the defining instruction so that registers killed by that instruction are available for definition in that same instruction. Unfortunately, after this, the scavenger needs to iterate through the spill code and then visit, again, the instruction that defines the now-scavenged register. In order to avoid confusion, the register scavenger needs the ability to 'back up' through the spill code so that it can again process the instructions in the appropriate order. Prior to this fix, once the scavenger reached the just-moved instruction, it would assert if it killed any registers because, having already processed the instruction, it believed they were undefined. Unfortunately, I don't yet have a small test case. Thanks to Pranav Bhandarkar for diagnosing the problem and testing this fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178845 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
614dacc9102ed3bf3fe4c985b5bc12857a26bae2 |
05-Apr-2013 |
Andrew Trick <atrick@apple.com> |
RegisterPressure heuristics currently require signed comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178823 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
2182977ff2cc8ff1259e3a2c3528651496d818d4 |
05-Apr-2013 |
Andrew Trick <atrick@apple.com> |
Disable DFSResult for ConvergingScheduler. For now, just save the compile time since the ConvergingScheduler heuristics don't use this analysis. We'll probably enable it later after compile-time investigation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178822 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
11189f7a014c04a1fe4366ec4bf9a6187d98986a |
05-Apr-2013 |
Andrew Trick <atrick@apple.com> |
MachineScheduler: format DEBUG output. I'm getting more serious about tuning and enabling on x86/ARM. Start by making the trace readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178821 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
6bf4f676413b8f7d97aaff289997aab344180957 |
05-Apr-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
CostModel: Add parameter to instruction cost to further classify operand values On certain architectures we can support efficient vectorized version of instructions if the operand value is uniform (splat) or a constant scalar. An example of this is a vector shift on x86. We can efficiently support for (i = 0 ; i < ; i += 4) w[0:3] = v[0:3] << <2, 2, 2, 2> but not for (i = 0; i < ; i += 4) w[0:3] = v[0:3] << x[0:3] This patch adds a parameter to getArithmeticInstrCost to further qualify operand values as uniform or uniform constant. Targets can then choose to return a different cost for instructions with such operand values. A follow-up commit will test this feature on x86. radar://13576547 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178807 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
624a93ee47fd05adbad4ea22b50c554ca23ac0ef |
05-Apr-2013 |
Manman Ren <mren@apple.com> |
Debug Info: revert 178722 for now. There is a difference for FORM_ref_addr between DWARF 2 and DWARF 3+. Since Eric is against guarding DWARF 2 ref_addr with DarwinGDBCompat, we are still in discussion on how to handle this. The correct solution is to update our header to say version 4 instead of version 2 and update tool chains as well. rdar://problem/13559431 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178806 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
2e892e4e27ecb6b1af757796841db5ff18df99a9 |
05-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178804 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5622eaeffef44dd09a1dd061299d6c02d9ad4099 |
04-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Formatting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178771 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
e3d75ee2a1c8ea11fd01fc49055d08f2da7f5668 |
04-Apr-2013 |
Manman Ren <mren@apple.com> |
Debug Info: according to DWARF 2, FORM_ref_addr the same size as an address on the target system. It was hard-coded to 4 bytes before. I can't get llvm to generate a ref_addr on a reasonably sized testing case. rdar://problem/13559431 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178722 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
cd7a1558edd0bdae770c57b82b32291e54e014b2 |
03-Apr-2013 |
Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
Fix PR15632: No support for ppcf128 floating-point remainder on PowerPC. For this we need to use a libcall. Previously LLVM didn't implement libcall support for frem, so I've added it in the usual straightforward manner. A test case from the bug report is included. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
0c5cdc5c6e12aea4f68d267b4c279f0d01389c1a |
03-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Fix grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178624 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
3dcb538661317926e90c7a21cec92c7d871f13b9 |
03-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Remove ZeroOrMore from the option description. We don't need it here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2ccdbc6675fd5bafb6da65dfca850b6e2587f9f3 |
03-Apr-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow MachineTraceMetrics to be used when the model has no resources. It it still possible to extract information from itineraries, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178582 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
achineTraceMetrics.cpp
|
423d6744123e4886f9f79f6273fa345b9cce51a8 |
02-Apr-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't attempt MTM heuristics without a scheduling model present. This should fix the PPC buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178558 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
8396e130427999c57422e52af3913eb8182847e5 |
02-Apr-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count processor resources individually in MachineTraceMetrics. The new instruction scheduling models provide information about the number of cycles consumed on each processor resource. This makes it possible to estimate ILP more accurately than simply counting instructions / issue width. The functions getResourceDepth() and getResourceLength() now identify the limiting processor resource, and return a cycle count based on that. This gives more precise resource information, particularly in traces that use one resource a lot more than others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178553 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
e737018a86fa3da37f74ec1757603f933efcf5aa |
02-Apr-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
DAGCombiner: Merge store/loads when we have extload/truncstores This is helps on architectures where i8,i16 are not legal but we have byte, and short loads/stores. Allowing us to merge copies like the one below on ARM. copy(char *a, char *b, int n) { do { int t0 = a[0]; int t1 = a[1]; b[0] = t0; b[1] = t1; radar://13536387 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f28a29b776b7dc2b97d09c75d69494f862c216b3 |
01-Apr-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
Merge load/store sequences with adresses: base + index + offset We would also like to merge sequences that involve a variable index like in the example below. int index = *idx++ int i0 = c[index+0]; int i1 = c[index+1]; b[0] = i0; b[1] = i1; By extending the parsing of the base pointer to handle dags that contain a base, index, and offset we can handle examples like the one above. The dag for the code above will look something like: (load (i64 add (i64 copyfromreg %c) (i64 signextend (i8 load %index)))) (load (i64 add (i64 copyfromreg %c) (i64 signextend (i32 add (i32 signextend (i8 load %index)) (i32 1))))) The code that parses the tree ignores the intermediate sign extensions. However, if there is a sign extension it needs to be on all indexes. (load (i64 add (i64 copyfromreg %c) (i64 signextend (add (i8 load %index) (i8 1)))) vs (load (i64 add (i64 copyfromreg %c) (i64 signextend (i32 add (i32 signextend (i8 load %index)) (i32 1))))) radar://13536387 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178483 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0b68b758bbb6718fc67423109eeb9df64c711a37 |
30-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombine: visitXOR can replace a node without returning it, bail out in that case. Fixes the crash reported in PR15608. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178429 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f7cef7081b2e09b48d47263e391db2390dddf5e8 |
30-Mar-2013 |
Eric Christopher <echristo@gmail.com> |
Use SmallVectorImpl instead of SmallVector at the uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178386 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
2df938ad713140c352b2d81b49490e337c018891 |
29-Mar-2013 |
Eric Christopher <echristo@gmail.com> |
Use 12 as the magic number for our abbreviation data and our die values. A lot of DIEs have 10 attributes in C++ code (example clang), none had more than 12. Seems like a good default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178366 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
c126c3232a7c6c2e2a2ec9477252f1372b14f728 |
29-Mar-2013 |
Eric Christopher <echristo@gmail.com> |
Move the construction of the skeleton compile unit after the entire original compile unit has been constructed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
74a4533a4290b7c6f1fe04a30ca13ec25c529e0a |
29-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove the old CodePlacementOpt pass. It was superseded by MachineBlockPlacement and disabled by default since LLVM 3.1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178349 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
odePlacementOpt.cpp
asses.cpp
argetLoweringBase.cpp
|
975ee54731476ff6541fc42f6a8cd706f3d33f58 |
29-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
Fix a typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178346 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
7ae3bb83c278e991940d022b7b48d996da408abf |
29-Mar-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add a preemptive fix for the case where we fail to materialize an immediate in a register. I don't believe this should ever fail, but I see no harm in trying to make this code bullet proof. I've added an assert to ensure my assumtion is correct. If the assertion fires something is wrong and we should fix it, rather then just silently fall back to SelectionDAG isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
26998ee794e9b6f9b0bc27d1e273b6b78afce57d |
27-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix target-customized spilling in the register scavenger This is a follow-up to r178073 (which should actually make target-customized spilling work again). I still don't have a regression test for this (but it would be good to have one; Thumb 1 and Mips16 use this callback as well). Patch by Richard Sandiford. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178137 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
df23a60fa6ce053511388e1bccca5900757e1aac |
26-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix the register scavenger for targets that provide custom spilling As pointed out by Richard Sandiford, my recent updates to the register scavenger broke targets that use custom spilling (because the new code assumed that if there were no valid spill slots, than spilling would be impossible). I don't have a test case, but it should be possible to create one for Thumb 1, Mips 16, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178073 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
8846129f6eb58982a2cac22306c8c9b586084475 |
26-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Update PEI's virtual-register-based scavenging to support multiple simultaneous mappings The previous algorithm could not deal properly with scavenging multiple virtual registers because it kept only one live virtual -> physical mapping (and iterated through operands in order). Now we don't maintain a current mapping, but rather use replaceRegWith to completely remove the virtual register as soon as the mapping is established. In order to allow the register scavenger to return a physical register killed by an instruction for definition by that same instruction, we now call RS->forward(I) prior to eliminating virtual registers defined in I. This requires a minor update to forward to ignore virtual registers. These new features will be tested in forthcoming commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178058 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
b4f98ea1213c866f39aa5b341ec0116f9c2335d7 |
26-Mar-2013 |
Michael Liao <michael.liao@intel.com> |
Enhance folding of (extract_subvec (insert_subvec V1, V2, IIdx), EIdx) - Handle the case where the result of 'insert_subvect' is bitcasted before 'extract_subvec'. This removes the redundant insertf128/extractf128 pair on unaligned 256-bit vector load/store on vectors of non 64-bit integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177945 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1cd1d02141788b212e185d190b4c358e47cc74b4 |
25-Mar-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Disable some unsafe-fp-math DAG-combine transformation after legalization. For instance, following transformation will be disabled: x + x + x => 3.0f * x; The problem of these transformations is that it introduces a FP constant, which following Instruction-Selection pass cannot handle. Reviewed by Nadav, thanks a lot! rdar://13445387 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177933 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
57d76078ae8ecd16b995cc6a9f9bc57bdde4a20e |
25-Mar-2013 |
Eric Christopher <echristo@gmail.com> |
Couple more sets of tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177920 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
259021a5621fd3837db79934ea5880cb846bfc44 |
25-Mar-2013 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177898 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
6a19f7b9de706f6ce895580a8e55996f3f9162e7 |
25-Mar-2013 |
Duncan Sands <baldrick@free.fr> |
Teach cmake about the new Erlang GC files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177869 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
|
477de3a7859104d7c41a36628169e13e524e980a |
25-Mar-2013 |
Yiannis Tsiouris <gtsiour@softlab.ntua.gr> |
Add a GC plugin for Erlang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177867 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ErlangGCPrinter.cpp
rlangGC.cpp
|
7834c7143384bfde38e39e01158546304ca4f0c2 |
23-Mar-2013 |
Owen Anderson <resistor@mac.com> |
Remove the type legality check from the SelectionDAGBuilder when it lowers @llvm.fmuladd to ISD::FMA nodes. Performing this check unilaterally prevented us from generating FMAs when the incoming IR contained illegal vector types which would eventually be legalized to underlying types that *did* support FMA. For example, an @llvm.fmuladd on an OpenCL float16 should become a sequence of float4 FMAs, not float4 fmul+fadd's. NOTE: Because we still call the target-specific profitability hook, individual targets can reinstate the old behavior, if desired, by simply performing the legality check inside their callback hook. They can also perform more sophisticated legality checks, if, for example, some illegal vector types can be productively implemented as FMAs, but not others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177820 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0e8fc6f87a5e0173c0c3ab1cfe4ca611bdee6aca |
23-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Fix comparison of mixed signedness 177774 broke the lld-x86_64-darwin11 builder; error: error: comparison of integers of different signs: 'int' and 'size_type' (aka 'unsigned long') for (SI = 0; SI < Scavenged.size(); ++SI) ~~ ^ ~~~~~~~~~~~~~~~~ Fix this by making SI also unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177780 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
dc3beb90178fc316f63790812b22201884eaa017 |
23-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Allow the register scavenger to spill multiple registers This patch lets the register scavenger make use of multiple spill slots in order to guarantee that it will be able to provide multiple registers simultaneously. To support this, the RS's API has changed slightly: setScavengingFrameIndex / getScavengingFrameIndex have been replaced by addScavengingFrameIndex / isScavengingFrameIndex / getScavengingFrameIndices. In forthcoming commits, the PowerPC backend will use this capability in order to implement the spilling of condition registers, and some special-purpose registers, without relying on r0 being reserved. In some cases, spilling these registers requires two GPRs: one for addressing and one to hold the value being transferred. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177774 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
9b294d4056f47bac5985de89c847aa1a04d38bf0 |
22-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Remove ScavengedRC from RegisterScavenging ScavengedRC was a dead private variable (set, but not otherwise used). No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177708 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
26c417bb588a3e5f9957cf5ba2a034b92513ec15 |
21-Mar-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix missing std::. Not sure how this compiles for anyone else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177620 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
93c1fd49d2ca49447e092c4c1c4d5de1005e9e71 |
21-Mar-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Make variable name more explicit and eliminate redundant lookup in SDNodeOrdering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeOrdering.h
|
7745175be32cd54e4aa6c9cce6f642f59a34a80f |
20-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
When computing the demanded bits of Load SDNodes, make sure that we are looking at the loaded-value operand and not the ptr result (in case of pre-inc loads). rdar://13348420 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
61aba54f2c0f432179dfaa758bdb2bf1b9929814 |
20-Mar-2013 |
Christian Konig <christian.koenig@amd.com> |
Revert "pre-RA-sched: fix TargetOpcode usage" This reverts commit 06091513c283c863296f01cc7c2e86b56bb50d02. The code is obviously wrong, but the trivial fix causes inefficient code generation on X86. Somebody with more knowledge of the code needs to take a look here. Signed-off-by: Christian König <christian.koenig@amd.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
fa963a885c074b3b0d6cc2466036297c476f7103 |
20-Mar-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Move SDNode order propagation to SDNodeOrdering, which also fixes a missed case of order propagation during isel. Thanks Owen for the suggestion! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177525 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SDNodeOrdering.h
electionDAG/SelectionDAGISel.cpp
|
06091513c283c863296f01cc7c2e86b56bb50d02 |
20-Mar-2013 |
Christian Konig <christian.koenig@amd.com> |
pre-RA-sched: fix TargetOpcode usage TargetOpcodes need to be treaded as Machine- and not ISD-Opcodes. Signed-off-by: Christian König <christian.koenig@amd.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177518 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d73dc544f5e37e6d58befc71e57da3c132804543 |
20-Mar-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Propagate DAG node ordering during type legalization and instruction selection A node's ordering is only propagated during legalization if (a) the new node does not have an ordering (is not a CSE'd node), or (b) the new node has an ordering that is higher than the node being legalized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGISel.cpp
|
2d4629c5d7dcc6582fa7b85a517744f1a3654eba |
19-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge_2013_03_18
|
f31034db8c12197d00b3e356e1d2a702c2339d49 |
19-Mar-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Move #include of BitVector from .h to .cpp file. Also remove unneeded #include and forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177357 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
|
c2248b0e7895446cccf934b57c6aa3aa712e20d1 |
19-Mar-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Add some constantness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177356 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
a12c674ee579685e982db008f546681a10cc49a6 |
18-Mar-2013 |
Hans Wennborg <hans@hanshq.net> |
Fix integer comparison in DIEInteger::BestForm. The always-true "(int)Int == (signed)Int" comparison was found while experimenting with a potential new Clang warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
87294b65475ffd4238396dba77d4bbf038b22c4e |
18-Mar-2013 |
Anton Korobeynikov <asl@math.spbu.ru> |
Windows TLS: Section name prefix to ensure correct order The linker sorts the .tls$<xyz> sections by name, and we need to make sure any extra sections we produce (e.g. for weak globals) always end up between .tls$AAA and .tls$ZZZ, even if the name starts with e.g. an underscore. Patch by David Nadlinger! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177256 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
51f6747b23bf7c85e90f816bf9bfae3a1d4fd058 |
16-Mar-2013 |
Andrew Trick <atrick@apple.com> |
Change the default latency for implicit defs. Implicit defs are not currently positional and not modeled by the per-operand machine model. Unfortunately, we treat defs that are part of the architectural instruction description, like flags, the same as other implicit defs. Really, they should have a fixed MachineInstr layout and probably shouldn't be "implicit" at all. For now, we'll change the default latency to be the max operand latency. That will give flag setting operands full latency for x86 folded loads. Other kinds of "fake" implicit defs don't occur prior to regalloc anyway, and we would like them to go away postRegAlloc as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177227 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
0cc52c67dbc2e073e3f7f34e05e3e7cd17ba9745 |
14-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Move estimateStackSize from ARM into MachineFrameInfo This is a generic function (derived from PEI); moving it into MachineFrameInfo eliminates a current redundancy between the ARM and AArch64 backends, and will allow it to be used by the PowerPC target code. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177111 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
3080d23fde4981835d8a7faf46c152441fadb11f |
14-Mar-2013 |
Hal Finkel <hfinkel@anl.gov> |
Provide the register scavenger to processFunctionBeforeFrameFinalized Add the current PEI register scavenger as a parameter to the processFunctionBeforeFrameFinalized callback. This change is necessary in order to allow the PowerPC target code to set the register scavenger frame index after the save-area offset adjustments performed by processFunctionBeforeFrameFinalized. Only after these adjustments have been made is it possible to estimate the size of the stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177108 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4cb1f5f4064f2eec1420dc30bf32ac54bd40e222 |
13-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Reset some of the target options which affect code generation. This doesn't reset all of the target options within the TargetOptions object. This is because some of those are ABI-specific and must be determined if it's okay to change those on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4945246327db36405447bc67c14bf26aaeb120e4 |
13-Mar-2013 |
Stephen Hines <srhines@google.com> |
Fix ifdef-related differences from upstream LLVM. Change-Id: I207500ca8b24afaa976077771cacb20d28a8a31a
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
4c6f895205993b2e724a6025a34d0601135e8b18 |
13-Mar-2013 |
Manman Ren <mren@apple.com> |
No functionality change. Use unreachable in getCUOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176963 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b1e052aa1b9e52d12831f86a1ee0fcf0c4030f1b |
13-Mar-2013 |
Manman Ren <mren@apple.com> |
No functionality change. Use unreachable in getCompileUnit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
e8a3cc68782cc5d43d7b8e24c4afa94448905349 |
13-Mar-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check register classes also when changing them. We have the same assertion in createVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176959 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
bc3e96f17bb278358cd3976f35b87591a392f5af |
12-Mar-2013 |
Manman Ren <mren@apple.com> |
Debug Info: use DW_FORM_ref_addr instead of DW_FORM_ref4 if the referenced DIE belongs to a different compile unit. DW_FORM_ref_addr should be used for cross compile-unit reference. When compiling a large application, we got a dwarfdump verification error where abstract_origin points to nowhere. This error can't be reproduced on any testing case in MultiSource. We may have other cases where we use DW_FORM_ref4 unconditionally. rdar://problem/13370501 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176882 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1a5c0510ecb029b7e5d04249cdd4e50b97bf1c3f |
12-Mar-2013 |
Richard Relph <Richard.Relph@amd.com> |
Avoid generating ISD::SELECT for vector operands to SIGN_EXTEND git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176881 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c0ec8a4f4db3c579dfc8c219dc39014f34260b42 |
12-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove support for versioned debug info. Versioned debug info support has been a burden to maintain & also compromised current debug info verification by causing test cases testing old debug info to remain rather than being updated to the latest. It also makes it hard to add or change the metadata schema by requiring various backwards-compatibility in the DI* hierarchy. So it's being removed in preparation for new changes to the schema to tidy up old/unnecessary fields and add new fields needed for new debug info (well, new to LLVM at least). The more surprising part of this is the changes to DI*::Verify - this became necessary due to the changes to AsmWriter. AsmWriter was relying on the version test to decide which bits of metadata were actually debug info when printing the comment annotations. Without the version information the tag numbers were too common & it would print debug info on random metadata that happened to start with an integer that matched a tag number. Instead this change makes the Verify functions more precise (just adding "number of operands" checks - not type checking those operands yet) & relies on that to decide which metadata is debug info metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176838 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
33cdfe9f1943418604be5c800800394ae809fc4c |
11-Mar-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Fix a crasher newly introduced in r176659/r176649, where fast-isel tries to lower an expect intrinsic that is a constant expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
760fa5dc8022dcf6982969c26ef566dfbeea979c |
10-Mar-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Cleanup #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176787 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
24babfd2346a663fa694fcfe4eb69822268035c4 |
09-Mar-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove wrong and unnecessary assertion. PHIs are allowed to have multiple operand pairs per predecessor, and this code works just fine when it happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176734 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
fa785cb22d50c657eb08c762d627cd6aa96982f3 |
08-Mar-2013 |
Jan Wen Voung <jvoung@google.com> |
Disable statistics on Release builds and move tests that depend on -stats. Summary: Statistics are still available in Release+Asserts (any +Asserts builds), and stats can also be turned on with LLVM_ENABLE_STATS. Move some of the FastISel stats that were moved under DEBUG() back out of DEBUG(), since stats are disabled across the board now. Many tests depend on grepping "-stats" output. Move those into a orig_dir/Stats/. so that they can be marked as unsupported when building without statistics. Differential Revision: http://llvm-reviews.chandlerc.com/D486 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
778ef97c76af82ef9e312529e6bd9d71d3c040ae |
08-Mar-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rewrite the physreg part of findLastUseBefore(). To find the last use of a register unit, start from the bottom and scan upwards until a user is found. <rdar://problem/13353090> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176706 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7a58099f0a4c9503f400f6b81590a5f6b73d4b97 |
08-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove default from fully covered switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
03abf2f2aa77ddd23b74e431005bf773ce1cf0aa |
08-Mar-2013 |
Tom Stellard <thomas.stellard@amd.com> |
LegalizeDAG: Respect the result of TLI.getBooleanContents() when expanding SETCC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176695 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3ef5383b3537a420c5e2ab3e657c378e5185549d |
08-Mar-2013 |
Tom Stellard <thomas.stellard@amd.com> |
DAGCombiner: Use correct value type for checking legality of BR_CC v3 LegalizeDAG.cpp uses the value of the comparison operands when checking the legality of BR_CC, so DAGCombiner should do the same. v2: - Expand more BR_CC value types for NVPTX v3: - Expand correct BR_CC value types for Hexagon, Mips, and XCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176694 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fff2d3aed9d50780d9d07859b03120dcd712d96e |
08-Mar-2013 |
Andrew Trick <atrick@apple.com> |
Add -verify-misched option. This verifies live intervals both before and after scheduling. It's useful for anyone hacking on live interval update. Note that we don't yet pass verification all the time. We don't yet handle updating nonallocatable live intervals perfectly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176685 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e36b47e17be0e3289890f33fe8aaecfc231d83a0 |
08-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert r176154 in favor of a better approach. Code generation makes some basic assumptions about the IR it's been given. In particular, if there is only one 'invoke' in the function, then that invoke won't be going away. However, with the advent of the `llvm.donothing' intrinsic, those invokes may go away. If all of them go away, the landing pad no longer has any users. This confuses the back-end, which asserts. This happens with SjLj exceptions, because that's the model that modifies the IR based on there being invokes, etc. in the function. Remove any invokes of `llvm.donothing' during SjLj EH preparation. This will give us a CFG that the back-end won't be confused about. If all of the invokes in a function are removed, then the SjLj EH prepare pass won't insert the bogus code the relies upon the invokes being there. <rdar://problem/13228754&13316637> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
c9efaeb53b5b4b325fdb45767eacd7970ee629c5 |
08-Mar-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a getPassName() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176669 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
6ffcd5efe15156e2a71bd1a33f5f8e27de894ea3 |
08-Mar-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename isEarlierInSameTrace to isUsefulDominator. In very rare cases caused by irreducible control flow, the dominating block can have the same trace head without actually being part of the trace. As long as such a dominator still has valid instruction depths, it is OK to use it for computing instruction depths. Rename the function to avoid lying, and add a check that instruction depths are computed for the dominator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176668 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
4fde76db466a749200af555b0f400af873111767 |
07-Mar-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Seriously, add support for the expect intrinsic. rdar://13370942 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176659 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
33947b4391458ed3ba2d7e7c741968325cbffa1d |
07-Mar-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add support for the expect intrinsic. rdar://13370942 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3853f74aba301ef08b699bac2fa8e53230714a58 |
07-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ArrayRefize some code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
877fcf52d17f1cadc38112ca988cdd4e666bac24 |
07-Mar-2013 |
Andrew Trick <atrick@apple.com> |
pre-RA-sched debug-only fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176638 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
ccd38f4efb7f1a4457234d95e30fec5bcc738700 |
07-Mar-2013 |
Andrew Trick <atrick@apple.com> |
pre-RA-sched assertion fix. This bug was exposed by r176037. rdar:13370002 [pre-RA-sched] assertion: released too many times I tracked this down to an earlier hack that is no longer applicable and interfered with normal scheduler logic. With the changes in r176037, it was causing an instruction to be scheduled multiple times. I have an external test case that I tried hard to reduce and failed. I can't even reproduce with llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
4d895455fe1bcc0bbfe1a0f18c01246694f64a9c |
07-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
No need to go through int64 and APInt when generating a new constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
34fd0d2b93edb3ddefe5c5766073273f86b23b78 |
07-Mar-2013 |
Jim Grosbach <grosbach@apple.com> |
SDAG: Handle scalarizing an extend of a <1 x iN> vector. Just scalarize the element and rebuild a vector of the result type from that. rdar://13281568 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
3de61b4c0144748e4b9157e2c22fe4ea685981a2 |
07-Mar-2013 |
Manman Ren <mren@apple.com> |
Debug Info: store the files and directories for each compile unit. We now emit a line table for each compile unit. To reduce the prologue size of each line table, the files and directories used by each compile unit are stored in std::map<unsigned, std::vector< > > instead of std::vector< >. The prologue for a lto'ed image can be as big as 93K. Duplicating 93K for each compile unit causes a huge increase of debug info. With this patch, each prologue will only emit the files required by the compile unit. rdar://problem/13342023 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176605 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2123c1c0de9e6006dfffe9123b4b992703202e3e |
06-Mar-2013 |
Stephen Hines <srhines@google.com> |
Update build rules for LLVM merge to version 176139. Change-Id: Ibb71ad9a6a2ed05dbf87f249ac42b1355e3fa41a
ndroid.mk
|
5adb136be579e8fff3734461580cb34d1d2983b8 |
06-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge commit 'b3201c5cf1e183d840f7c99ff779d57f1549d8e5' into merge_20130226 Conflicts: include/llvm/Support/ELF.h lib/Support/DeltaAlgorithm.cpp Change-Id: I24a4fbce62eb39d924efee3c687b55e1e17b30cd
|
69d37fa6351d5fe2a97ea24a2d0d667a92f14a9c |
05-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove unused #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176467 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
asses.cpp
rologEpilogInserter.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egisterCoalescer.cpp
tackProtector.cpp
argetLoweringObjectFileImpl.cpp
woAddressInstructionPass.cpp
|
b804a1b1783e99ec12a093767027269a373189d3 |
02-Mar-2013 |
Eli Bendersky <eliben@google.com> |
Remove duplicate line and move another closer to its actual use git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c3c3810f514af7e08f84ef76b0c304ec264ee021 |
01-Mar-2013 |
Akira Hatanaka <ahatanaka@mips.com> |
Set properties for f128 type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
argetLoweringBase.cpp
|
7590022f4079dcd956b99e2f10a028f2158ece53 |
01-Mar-2013 |
Chad Rosier <mcrosier@apple.com> |
Generate an error message instead of asserting or segfaulting when we can't handle indirect register inputs. rdar://13322011 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a6b20ced765b67a85d9219d0c8547fc9c133e14f |
01-Mar-2013 |
Michael Liao <michael.liao@intel.com> |
Fix PR10475 - ISD::SHL/SRL/SRA must have either both scalar or both vector operands but TLI.getShiftAmountTy() so far only return scalar type. As a result, backend logic assuming that breaks. - Rename the original TLI.getShiftAmountTy() to TLI.getScalarShiftAmountTy() and re-define TLI.getShiftAmountTy() to return target-specificed scalar type or the same vector type as the 1st operand. - Fix most TICG logic assuming TLI.getShiftAmountTy() a simple scalar type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
argetLoweringBase.cpp
|
838038d3e16d0c319c94fec246d1141b27e0046a |
01-Mar-2013 |
Andrew Trick <atrick@apple.com> |
Scheduler diagnostics. Print the register name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176316 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
bf32b7f8446334b4a8fab0cc4153ed02046271b2 |
01-Mar-2013 |
Andrew Trick <atrick@apple.com> |
Instructions schedulers should report correct height/depth. We avoided computing DAG height/depth during Node printing because it shouldn't depend on an otherwise valid DAG. But this has become far too annoying for the common case of a valid DAG where we want to see valid values. If doing the computation on-the-fly turns out to be a problem in practice, then I'll add a mode to the diagnostics to only force it when we're likely to have a valid DAG, otherwise explicitly print INVALID instead of bogus numbers. For now, just go for it all the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176314 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
6437d38a0deb0cd51607dd624a70d093ae347156 |
01-Mar-2013 |
Eli Bendersky <eliben@google.com> |
A small refactoring + adding comments. SelectionDAGIsel::LowerArguments needs a function, not a basic block. So it makes sense to pass it the function instead of extracting a basic-block from the function and then tossing it. This is also more self-documenting (functions have arguments, BBs don't). In addition, added comments to a couple of Select* methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
8611d4449a77ca05e808823bc966573a85da00cb |
28-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Cost model support for lowered math builtins. We make the cost for calling libm functions extremely high as emitting the calls is expensive and causes spills (on x86) so performance suffers. We still vectorize important calls like ceilf and friends on SSE4.1. and fabs. Differential Revision: http://llvm-reviews.chandlerc.com/D466 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176287 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
0a4da5f0fe70d0da620e504863f24881a5f9f7cb |
28-Feb-2013 |
Eli Bendersky <eliben@google.com> |
Put some per-instruction statistics of fast isel under NDEBUG, together with other per-instruction statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a8ada25afdb74a1cc53c183348ad9a424501dc96 |
28-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unnecessary check against isGlobalVariable. We check it a few lines above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176224 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
8d45a98eb14338428155be70681a42dccc03a5ce |
28-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Rework comment slightly and fix a few typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176223 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
f686cfb33b232db5f9a671ddaf1265b42c7180d5 |
28-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unnecessary cast to void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176222 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
21a08a1189df7922de3a89432cf896ed681db5d5 |
28-Feb-2013 |
Manman Ren <mren@apple.com> |
Debug Info: for static member variables, always put AT_MIPS_linkage_name to the definition DIE (TAG_variable), and put AT_MIPS_linkage_name to TAG_member when DarwinGDBCompat is true. Darwin GDB needs AT_MIPS_linkage_name at both places to work. Follow-up patch to r176143. rdar://problem/13291234 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176220 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
139f50a1a8d985bd950d88cef54a7ee560de9cb9 |
27-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
Silence the unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176218 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
07cd932c93fc3d552763f3eddced138bffdd9bd9 |
27-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
The FastISEL should be fast. But when we record statistics we use atomic operations to increment the counters. This patch disables the counters on non-debug builds. This reduces the runtime of SelectionDAGISel::SelectCodeCommon by ~5%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7dbd34b199be8d053240a67cc1e81a04096af1c2 |
27-Feb-2013 |
Michael Ilseman <milseman@apple.com> |
Reverted: r176136 - Have a way for a target to opt-out of target-independent fast isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5e5974f51ad079a3ed890ca8be1d3f50150320ad |
27-Feb-2013 |
Manman Ren <mren@apple.com> |
SelectionDAG: If llvm.donothing has a landingpad, we should clear CurrentCallSite to avoid an assertion failure: assert(MMI.getCurrentCallSite() == 0 && "Overlapping call sites!"); rdar://problem/13228754 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176154 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
06df83c25a7b07b3a19a40bd680c0a205bcc0b9a |
27-Feb-2013 |
Manman Ren <mren@apple.com> |
Debug Info: for static member variables, add AT_MIPS_linkage_name to the definition DIE, to make old GDB happy. We have a regression for old GDB when Clang uses DW_TAG_member to declare static members inside a class, instead of DW_TAG_variable. This patch will fix this regression. rdar://problem/13291234 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176143 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
bdc98d3510c1b3d32679ed3188becdc6d6dfd545 |
27-Feb-2013 |
Michael Ilseman <milseman@apple.com> |
Have a way for a target to opt-out of target-independent fast isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d61c840fcda18675c131bf86bb6d4498fcb6c272 |
26-Feb-2013 |
Manman Ren <mren@apple.com> |
Revert r176120 as it caused a failure at static-member.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176129 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
6fe26103d71263124e3cc56c0a349cb1391208a1 |
26-Feb-2013 |
Manman Ren <mren@apple.com> |
Debug Info: for static member variables, move AT_MIPS_linkage_name from TAG_member inside a class to the specification DIE. Having AT_MIPS_linkage_name on TAG_member caused old gdb (GNU 6.3.50) to error out. Also gcc 4.7 has AT_MIPS_linkage_name on the specification DIE. rdar://problem/13291234 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176120 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
ffa1dbadaf73d5b80a2bdf421c16cba29aea80a3 |
25-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
Fix wording. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176055 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fd3417d288c22673ec6d76dc4695989bb544373f |
25-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add X86FastIsel::FastLowerArguments to handle functions with 6 or fewer scalar integer (i32 or i64) arguments. It completely eliminates the need for SDISel for trivial functions. Also, add the new llc -fast-isel-abort-args option, which is similar to -fast-isel-abort option, but for formal argument lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176052 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
029f4fd2ff539ed143b83c140349df2c064965d2 |
25-Feb-2013 |
Andrew Trick <atrick@apple.com> |
pre-RA-sched fix: only reevaluate physreg interferences when necessary. Fixes rdar:13279013: scheduler was blowing up on select instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176037 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
50e75bfc29269def44981ab5f109334d95f55007 |
25-Feb-2013 |
Matt Beaumont-Gay <matthewbg@google.com> |
'Hexadecimal' has two 'a's and only one 'i'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176031 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7e6ffac9ab0af2a54036c978822ad40492246622 |
25-Feb-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Fix spelling noticed by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
af23f8e403d68e3f96eb5eb63e50e3aec4ea01c9 |
25-Feb-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Fix the root cause of PR15348 by correctly handling alignment 0 on memory intrinsics in the SDAG builder. When alignment is zero, the lang ref says that *no* alignment assumptions can be made. This is the exact opposite of the internal API contracts of the DAG where alignment 0 indicates that the alignment can be made to be anything desired. There is another, more explicit alignment that is better suited for the role of "no alignment at all": an alignment of 1. Map the intrinsic alignment to this early so that we don't end up generating aligned DAGs. It is really terrifying that we've never seen this before, but we suddenly started generating a large number of alignment 0 memcpys due to the new code to do memcpy-based copying of POD class members. That patch contains a bug that rounds bitfield alignments down when they are the first field. This can in turn produce zero alignments. This fixes weird crashes I've seen in library users of LLVM on 32-bit hosts, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
cc6137e30b40ddf3cdbbb6ebbe01e5b5c76da2e2 |
24-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add a use of an otherwise unused variable to remove a warning in non-Asserts builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175981 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
eb1b7254cf1ce480c423c2ae0ff1b68c6ada6180 |
24-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
TwoAddressInstructionPass::tryInstructionTransform() only potentially returns true when shouldOnlyCommute is false, so we can remove code that checks otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175980 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c5a6349ae84309534e0ade8c7c7ddada808e7729 |
24-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
TwoAddrInstructionPass::tryInstructionTransform() has a case where it calls itself recursively with a new instruction that has not been finalized, in order to determine whether to keep the instruction. On 'make check' and test-suite the only cases where the recursive invocation made any transformations were simple instruction commutations, so I am restricting the recursive invocation to do only this. The other cases wouldn't work correctly when updating LiveIntervals, since the new instructions don't have slot indices and LiveIntervals hasn't yet been updated. If the other transformations were actually triggering in any test case it would be possible to support it with a lot of effort, but since they don't it's not worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175979 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
1ea93c79bc8b044935f867b334668623c587f5a8 |
24-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
TargetInstrInfo::commuteInstruction() doesn't actually return a new instruction unless it was requested to with an optional parameter that defaults to false, so we don't need to handle that case in TwoAddressInstructionPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175974 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
79f5ab1931e5abf6e9c304db25e50d592dd8f5b8 |
23-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Make some fixes for LiveInterval repair with debug info. Debug value MachineInstrs don't have a slot index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175961 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
lotIndexes.cpp
|
b4bd022731b28a80f59818870cc7df5d4771d793 |
23-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix a bug with the LiveIntervals updating in the two-address pass found by running ASCI_Purple/SMG2000 in the test-suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175957 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4c57942608094a74543920b7c809e442fa90dd72 |
23-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Make TwoAddressInstructionPass::sink3AddrInstruction() LiveIntervals-aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175956 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
80885e524ffceaba5ed237338a10f807895e9f8e |
23-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Make rescheduleMIBelowKill() and rescheduleKillAboveMI() LiveIntervals-aware in TwoAddressInstructionPass. The code in rescheduleMIBelowKill() is a bit tricky, since multiple instructions need to be moved down, one-at-a-time, in reverse order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175955 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3ce51a970fd545c1ef45f580c84b64d764fb9a64 |
23-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Use getSplitDebugFilename when constructing the skeleton cu and update testcase accordingly to give the correct name to the cu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175934 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d99a5a3ab4d47c6532bcf17a01677b1730599057 |
23-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
SelectionDAG compile time improvement. One of the phases of SelectionDAG is LegalizeVectors. We don't need to sort the DAG and copy nodes around if there are no vector ops. Speeds up the compilation time of SelectionDAG on a big scalar workload by ~8%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175929 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
b704ffbb46cae716dc51bd8e6ba425c0a4949a47 |
22-Feb-2013 |
Pete Cooper <peter_cooper@apple.com> |
Fix isa<> check which could never be true. It was incorrectly checking a Function* being an IntrinsicInst* which isn't possible. It should always have been checking the CallInst* instead. Added test case for x86 which ensures we only get one constant load. It was 2 before this change. rdar://problem/13267920 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175853 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a931a12e04b856421977c86d94789cd8b47d6ad3 |
21-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Stop relying on physical register kill flags in isKilled() in the two-address pass. One of the callers of isKilled() can cope with overapproximation of kills and the other can't, so I added a flag to indicate this. In theory this could pessimize code slightly, but in practice most physical register uses are kills, and most important kills of physical registers are the only uses of that register prior to register allocation, so we can recognize them as kills even without kill flags. This is relevant because LiveIntervals gets rid of all kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175821 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b489e29976afed1a015eecd00c5726fe565b038c |
21-Feb-2013 |
Lang Hames <lhames@gmail.com> |
Re-apply r175688, with the changes suggested by Jakob in PR15320. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175809 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
|
700ed80d3da5e98e05ceb90e9bfb66058581a6db |
21-Feb-2013 |
Eli Bendersky <eliben@google.com> |
Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo to TargetFrameLowering, where it belongs. Incidentally, this allows us to delete some duplicated (and slightly different!) code in TRI. There are potentially other layering problems that can be cleaned up as a result, or in a similar manner. The refactoring was OK'd by Anton Korobeynikov on llvmdev. Note: this touches the target interfaces, so out-of-tree targets may be affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175788 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
601158a18e325879b224bd1979d824407ed98bc7 |
21-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make RAFast::UsedInInstr indexed by register units. This fixes some problems with too conservative checking where we were marking all aliases of a register as used, and then also checking all aliases when allocating a register. <rdar://problem/13249625> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175782 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
f6c80bde655c1f08f7a42a55150727b0a7fad65d |
21-Feb-2013 |
Lang Hames <lhames@gmail.com> |
Revert r175688 - It broke a test case (see PR15320). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175765 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
|
f31bd0f7d92fdab64a478ccf6497e887d454d4af |
21-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Make the post-legalize vector op optimization more aggressive. A legal BUILD_VECTOR goes in and gets constant folded into another legal BUILD_VECTOR so we don't lose any legality here. The problematic PPC optimization that made this check necessary was fixed recently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
197a60a66612ab274a734066962a10126a11fb53 |
21-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Don't rely on the isDead() MachineOperand flag when updating LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175732 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
a566d63b61f2a29e89696abba1729ac53b9843e6 |
21-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Use getInterval() instead of getOrCreateInterval(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175731 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
17cec5a68523fe346fb752b1661cc8e640dd520b |
21-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Make another kill check LiveIntervals-aware. This brings the number of remaining failures in 'make check' without LiveVariables down to 39, with 1 unexpectedly passing test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175727 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3a9805f26ead8746cb56645cb909a7b64d165b83 |
21-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Split part of isKilled() into a separate function for use elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175726 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
214df4285a974c61450477cbcf5c4a196d574a6a |
21-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Update isKilledAt in TwoAddressInstructionPass.cpp to use LiveIntervals when available. With this commit there are no longer any assertion or verifier failures when running 'make check' without LiveVariables. There are still 56 failing tests with codegen differences and 1 unexpectedly passing test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175719 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
9bd7c3cc1306b6b2abc472d1e6ca2f7d0f3f3fbb |
21-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't allocate memory in LiveInterval::join(). Rewrite value numbers directly in the 'Other' LiveInterval which is moribund anyway. This avoids allocating the OtherAssignments vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175690 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
100c93c850911a33a4de59103beafd204d9fd150 |
21-Feb-2013 |
Lang Hames <lhames@gmail.com> |
Kill of TransferDeadFlag - Dead copies and subreg-to-reg instructions should just be turned into kills on the spot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175688 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
|
beda6ab879e35b6f7d998da980b30e3844d3bbeb |
21-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Copy single reaching defs directly into the LiveInterval. When findReachingDefs() finds that only one value can reach the basic block, just copy the work list of visited blocks directly into the live interval. Sort the block list and use a LiveRangeUpdater to make the bulk add fast. When multiple reaching defs are found, transfer the work list to the updateSSA() work list as before. Also use LiveRangeUpdater in updateLiveIns() following updateSSA(). This makes live interval analysis more than 3x faster on one huge test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175685 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.cpp
iveRangeCalc.h
|
6189288766d9cf2e1cf82c1b41655e33754da83b |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Only use LiveIntervals in TwoAddressInstructionPass, not a mix of Liveintervals and SlotIndexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175674 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c5b6135fb55362f5c052625043ebf3286f799f86 |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Find anchoring end points for repairIntervalsInRange and repairIndexesInRange automatically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175673 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
lotIndexes.cpp
woAddressInstructionPass.cpp
|
0e827ebc783ded58c11aeb0d66bed43e214de2de |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Make repairIntervalsInRange() more robust. There are now no longer any liveness- related failures when running 'make check' without LiveVariables with the verifier enabled. Some of the remaining failures elsewhere may still be fallout from incorrect updating of LiveIntervals or the few missing cases left in the two-address pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175672 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c46e2df74cf75a33742f57d2b4d6c6fcf73bced9 |
20-Feb-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
DAGCombiner: Fold pointless truncate, bitcast, buildvector series (2xi32) (truncate ((2xi64) bitcast (buildvector i32 a, i32 x, i32 b, i32 y))) can be folded into a (2xi32) (buildvector i32 a, i32 b). Such a DAG would cause uneccessary vdup instructions followed by vmovn instructions. We generate this code on ARM NEON for a setcc olt, 2xf64, 2xf64. For example, in the vectorized version of the code below. double A[N]; double B[N]; void test_double_compare_to_double() { int i; for(i=0;i<N;i++) A[i] = (double)(A[i] < B[i]); } radar://13191881 Fixes bug 15283. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3450f800aa65c91f0496816ba6061a422a74c1fe |
20-Feb-2013 |
Jim Grosbach <grosbach@apple.com> |
Update TargetLowering ivars for name policy. http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly ivars should be camel-case and start with an upper-case letter. A few in TargetLowering were starting with a lower-case letter. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175667 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringBase.cpp
|
d983d4c6ed5ef69ca2d2e07350cc346245f35b87 |
20-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use LiveRangeUpdater instead of mergeIntervalRanges. Performance is the same, but LiveRangeUpdater has a more flexible interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175645 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
1a41f32546019340f27a6f3854f3a73163a25dfe |
20-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a LiveRangeUpdater class. Adding new segments to large LiveIntervals can be expensive because the LiveRange objects after the insertion point may need to be moved left or right. This can cause quadratic behavior when adding a large number of segments to a live range. The LiveRangeUpdater class allows the LIveInterval to be in a temporary invalid state while segments are being added. It maintains an internal gap in the LiveInterval when it is shrinking, and it has a spill area for new segments when the LiveInterval is growing. The behavior is similar to the existing mergeIntervalRanges() function, except it allocates less memory for the spill area, and the algorithm is turned inside out so the loop is driven by the clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175644 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
eedff3547de6428798d0bd62c40fba3f93820922 |
20-Feb-2013 |
Michael Liao <michael.liao@intel.com> |
Fix PR15267 - When extloading from a vector with non-byte-addressable element, e.g. <4 x i1>, the current logic breaks. Extend the current logic to fix the case where the element type is not byte-addressable by loading all bytes, bit-extracting/packing each element. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
ad4da0fc321230261b4d0387f0ec216eb8aa50ca |
20-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move the SplatByte helper to APInt and generalize it a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
fdf45175a8444c421c03627c139777d1de48e516 |
20-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Fully qualify llvm::next to avoid ambiguity when building as C++11. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175608 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
woAddressInstructionPass.cpp
|
9030fc22dd73684901ecb749c9688e289bd1a777 |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add support to the two-address pass for updating LiveIntervals in many of the common transformations. This includes updating repairIntervalsInRange() to handle more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175604 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
woAddressInstructionPass.cpp
|
6cf93d740a600024f2de924614a4d4d0dc1cb852 |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Move the computation of the IsEarlyClobber flag into its own loop, since the correct value is needed in every iteration of the loop for updating LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175603 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
349cf349987a65be89078913e34126898bcdd138 |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add SlotIndexes::repairIndexesInRange(), which repairs SlotIndexes after adding and removing instructions. The implementation seems more complicated than it needs to be, but I couldn't find something simpler that dealt with all of the corner cases. Also add a call to repairIndexesInRange() from repairIntervalsInRange(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175601 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
lotIndexes.cpp
|
767e04307f70cad9e2ba46b3812504ee1d8c1721 |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Remove verification after PHIElimination when using LiveIntervals, and move it after the two-address pass. The remaining problems in 'make check' are occurring later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175598 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
woAddressInstructionPass.cpp
|
2650a82cc4166237f698e3bbc315739e43180431 |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Avoid recomputing an inserted instruction's SlotIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175597 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
4f659eccafe34efea2a4ba6e57ad09977e9157c2 |
20-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add preservation of SlotIndexes to PHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175596 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
751bc8d4c9ee4298449fed264571ffc162852e06 |
20-Feb-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Fix #includes, so we include only what we really need. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
|
da5f1ed6406442735fbb4421f8a22bc8a41d4c57 |
19-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert that the target provided hints are in the allocation order. Target implementations of getRegAllocationHints() should use the provided allocation order, and they can never return hints outside the order. This is already documented in TargetRegisterInfo.h. <rdar://problem/13240556> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175540 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
|
063337309e71683fc57c049c10d03d4f8a2ce356 |
19-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix GCMetadaPrinter::finishAssembly not executed, patch by Yiannis Tsiouris. Due to the execution order of doFinalization functions, the GC information were deleted before AsmPrinter::doFinalization was executed. Thus, the GCMetadataPrinter::finishAssembly was never called. The patch fixes that by moving the code of the GCInfoDeleter::doFinalization to Printer::doFinalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175528 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
LVMTargetMachine.cpp
|
261abf5f4011e5b1e8949d7404190a4f4eaff8d8 |
19-Feb-2013 |
Craig Topper <craig.topper@gmail.com> |
More const correcting of stack coloring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175490 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
04fbcb59432c085bb284501dcea9693f435a417b |
19-Feb-2013 |
Craig Topper <craig.topper@gmail.com> |
Const-correct the stack coloring code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175488 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
cede03886712e18b697f9ec91311d4a8df60c734 |
19-Feb-2013 |
Craig Topper <craig.topper@gmail.com> |
Avoid extra DenseMap lookups in StackColoring::calculateLocalLiveness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175487 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
cbc6d797054a2bf2a641031f270d38804a6f2295 |
19-Feb-2013 |
Craig Topper <craig.topper@gmail.com> |
Make the dump() function const and reduce the number of hash lookups it performs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175485 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
252d798fc302ed78bc4b11e66a2382015a25c6e0 |
19-Feb-2013 |
Craig Topper <craig.topper@gmail.com> |
Use a reference into the BlockLiveness DenseMap to avoid repeated hash lookups in collectMarkers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175484 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
98fbe27ac8f0766ea94b89b8c03418131b72bea4 |
18-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Support for HiPE-compatible code emission, patch by Yiannis Tsiouris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175457 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b875acda987650d1d734b8bc6e76283950529f84 |
18-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Remove a redundant call to the setHasMSInlineAsm function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175456 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3ef669c7175f959c39b7652f10c2b6ed9d8f83ae |
18-Feb-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[ms-inline asm] Fix undefined behavior to reset hasMSInlineAsm in advance of SelectAllBasicBlocks(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
680c98f6323dde0eae566710ea49497e16499653 |
17-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Remove use of reverse iterators in repairIntervalsInRange(). While they were arguably better than forward iterators for this use case, they are confusing and there are some implementation problems with reverse iterators and MI bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175393 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
|
7324d4e593ee2611ee6b272c03b15541fe2df62e |
17-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Use ArrayRef instead of a reference to a SmallVectorImpl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175385 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0c222835982bae5e4831e16090f6ce594ef541a6 |
17-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix a conversion from a forward iterator to a reverse iterator in MachineBasicBlock::SplitCriticalEdge. Since this is an iterator rather than an instr_iterator, the isBundled() check only passes if getFirstTerminator() returned end() and the garbage memory happens to lean that way. Multiple successors can be present without any terminator instructions in the case of exception handling with a fallthrough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175383 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
f0b2535344e8c9e2912da78010918a44c5a18cab |
17-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add support for updating the LiveIntervals of registers used by 'exotic' terminators that actually have register uses when splitting critical edges. This commit also introduces a method repairIntervalsInRange() on LiveIntervals, which allows for repairing LiveIntervals in a small range after an arbitrary target hook modifies, inserts, and removes instructions. It's pretty limited right now, but I hope to extend it to support all of the things that are done by the convertToThreeAddress() target hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175382 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
|
eb4774a972af4bdd36d8795625c8c5d96ca507d1 |
16-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace erase loop with std::remove_if. This avoids unnecessary copies. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175367 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
81474e98e10565e2ee0ad257ddc9469217520711 |
16-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace loop with std::find. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175366 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
631dd86804c3e74652d555b82ffe2f4750c81d68 |
16-Feb-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
LegalizeDAG.cpp doesn't need DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175365 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b717a5084722a5cad843444a8b1b4bf53f1c6325 |
16-Feb-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Use const reference instead of vector object when passing an argument to updateScheduledPressure method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175362 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
b56606274d43c7a3e01b18a08d1115fbf2889996 |
16-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Do not omit the frame pointer if we have ms-inline assembly. If the frame pointer is omitted, and any stack changes occur in the inline assembly, e.g.: "pusha", then any C local variable or C argument references will be incorrect. I pass no judgement on anyone who would do such a thing. ;) rdar://13218191 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175334 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
789cb5df9ca61f8a3794a4fbde7cc020fd00a02a |
15-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the 'target-features' and 'target-cpu' attributes to reset the subtarget features. If two functions require different features (e.g., `-mno-sse' vs. `-msse') then we want to honor that, especially during LTO. We can do that by resetting the subtarget's features depending upon the 'target-feature' attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175314 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
86cdbc9c29a572d422815f55fd89ff7510d1e3e8 |
15-Feb-2013 |
Paul Redmond <paul.redmond@intel.com> |
enable SDISel sincos optimization for GNU environments - add sincos to runtime library if target triple environment is GNU - added canCombineSinCosLibcall() which checks that sincos is in the RTL and if the environment is GNU then unsafe fpmath is enabled (required to preserve errno) - extended sincos-opt lit test Reviewed by: Hal Finkel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
argetLoweringBase.cpp
|
74b3c8da4800c7e8ba8f019879db29738ecc5f74 |
15-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make helpers static. Add missing include so LLVMInitializeObjCARCOpts gets C linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175264 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
|
6cc4b8d1eb2adf547807044e0a97f3a255733784 |
14-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
Dont merge consecutive loads/stores into vectors when noimplicitfloat is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
39125d9a3a319b6dfd1fba639cd7df2fa1465a8e |
14-Feb-2013 |
Owen Anderson <resistor@mac.com> |
Add some legality checks for SETCC before introducing it in the DAG combiner post-operand legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175149 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1f258a6d53b29f6dfb60436da4aa76e996644d84 |
14-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
RegisterCoalescer::reMaterializeTrivialDef() can constrain the destination register class to match the defining instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175130 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
1d4673228143965fafbcb679417f5a9be53d0a2a |
14-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix RegisterCoalescer::rematerializeTrivialDef() so that it works on flipped CoalescerPairs. Also, make it take a CoalescerPair directly like other methods of RegisterCoalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175123 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
c5f147459b1704e25df4ff888729dd5d22d73381 |
14-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix some issues with rematerialization in RegisterCoalescer when the destination of the copy is a subregister def. The current code assumes that it can do a full def of the destination register, but it is not checking that the def operand is read-undef. It also doesn't clear the subregister index of the destination in the new instruction to reflect the full subregister def. These issues were found running 'make check' with my next commit that enables rematerialization in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175122 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
f098620095727dd2a823a94a3a8d47108361ad83 |
13-Feb-2013 |
Manman Ren <mren@apple.com> |
Clean up LDV, no functionality change. Remove dead functions: renameRegister Move private member variables from LDV to Impl Remove ssp/uwtable from testing case git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175072 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
iveDebugVariables.h
|
ecb8c2ba6029f02b01b20b110cc1b3b3ea2e1f1c |
13-Feb-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: HazardRecognizers are created for each DAG. Free them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175067 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
b3cecdfcf9a0b736d3c0f6f5abffb41ecda3577c |
13-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175024 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
4be3853fd0a0e3b37a27afe05327e638e680c463 |
13-Feb-2013 |
Manman Ren <mren@apple.com> |
Debug Info: LiveDebugVarible can remove DBG_VALUEs, make sure we emit them back. RegisterCoalescer used to depend on LiveDebugVariable. LDV removes DBG_VALUEs without emitting them at the end. We fix this by removing LDV from RegisterCoalescer. Also add an assertion to make sure we call emitDebugValues if DBG_VALUEs are removed at runOnMachineFunction. rdar://problem/13183203 Reviewed by Andy & Jakob git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175023 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
iveDebugVariables.h
egisterCoalescer.cpp
|
87d0b9ed1462705dd9bf1cb7f67d0bf03af776c8 |
12-Feb-2013 |
Guy Benyei <guy.benyei@intel.com> |
Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
argetInstrInfo.cpp
|
c5ef7eee3c412b0f334e395b0cf7c363200c2f79 |
12-Feb-2013 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
Allow optionally generating pubnames section in DWARF info. Introduce option "generate-dwarf-pubnames" to control it, set to "false" by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
91231a6dc7c10e05934f2cf141a2d66b604a528f |
12-Feb-2013 |
Sergei Larin <slarin@codeaurora.org> |
Equal treatment of labels and other terminators in MI DAG construction. MI sched DAG construction allows targets to include terminators into scheduling DAG. Extend this functionality to labels as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174977 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
5c97450df748819381daa4c4d400c39b0d7378ae |
12-Feb-2013 |
Paul Redmond <paul.redmond@intel.com> |
PR14562 - Truncation of left shift became undef DAGCombiner::ReduceLoadWidth was converting (trunc i32 (shl i64 v, 32)) into (shl i32 v, 32) into undef. To prevent this, check the shift count against the final result size. Patch by: Kevin Schoedel Reviewed by: Nadav Rotem git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174972 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4930e7266b7643410cfbbed5ef6e4d3b19178918 |
12-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Don't consider definitions by other PHIs live-in when trimming a PHI source's live range after inserting a copy at the end of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174945 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
8d49134eeaa36953410c2fba65f7237fb3f079e7 |
12-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174944 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
5758a711f4e593d1daff3bae0fa9d694e5980719 |
12-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add a hidden option to PHIElimination to split all critical edges. This is particularly useful for catching issues with architectures that have exotic terminators like MIPS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174938 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
dd58fa4869f9bff909720aaa428487a20fab1391 |
12-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add blocks to the LiveIntervalAnalysis RegMaskBlocks array when splitting a critical edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174936 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
dbf10c4349bb746e6120ff1195c1ce7e21bebf93 |
12-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix the updating of LiveIntervals after splitting a critical edge. PHI operand live ranges should always be extended, and the only successor that should be considered for extension of other ranges is the target of the split edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174935 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
b0fde6dc029a33945bfeea7082a03940f664943c |
12-Feb-2013 |
Pete Cooper <peter_cooper@apple.com> |
Check type for legality before forming a select from loads. Sorry for the lack of a test case. I tried writing one for i386 as i know selects are illegal on this target, but they are actually considered legal by isel and expanded later. I can't see any targets to trigger this, but checking for the legality of a node before forming it is general goodness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8597c14e9b32259cc7cfd752d95fd71e7aaba0ec |
11-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add support for updating LiveIntervals to MachineBasicBlock::SplitCriticalEdge(). This is currently a bit hairier than it needs to be, since depending on where the split block resides the end ListEntry of the split block may be the end ListEntry of the original block or a new entry. Some changes to the SlotIndexes updating should make it possible to eliminate the two cases here. This also isn't as optimized as it could be. In the future Liveinterval should probably get a flag that indicates whether the LiveInterval is within a single basic block. We could ignore all such intervals when splitting an edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174870 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
cbe3f5e1622b5f809bc04d61da125801e4658a73 |
11-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Update SlotIndexes after updateTerminator() possibly removes instructions. I am really trying to avoid piping SlotIndexes through to RemoveBranch() and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174869 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
f64c889cc94417322b0ff8ad1c61939183bf3c38 |
11-Feb-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert "Rename LLVMContext diagnostic handler types and functions." This reverts my commit 171047. Now that I've removed my misguided attempt to support backend warnings, these diagnostics are only about inline assembly. It would take quite a bit more work to generalize them properly, so I'm just reverting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174860 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
092e5e75661fdd5d54a748fb00fab59d21031268 |
11-Feb-2013 |
Evan Cheng <evan.cheng@apple.com> |
Currently, codegen may spent some time in SDISel passes even if an entire function is successfully handled by fast-isel. That's because function arguments are *always* handled by SDISel. Introduce FastLowerArguments to allow each target to provide hook to handle formal argument lowering. As a proof-of-concept, add ARMFastIsel::FastLowerArguments to handle functions with 4 or fewer scalar integer (i8, i16, or i32) arguments. It completely eliminates the need for SDISel for trivial functions. rdar://13163905 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174855 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
5f352cc6e49d714bd5c14c952aa5c394fc9897bf |
11-Feb-2013 |
Evan Cheng <evan.cheng@apple.com> |
Remove unnecessary code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f5844a75154e73a2302767eeecf3b3401e157bb3 |
11-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix the unused but nearly correct method SlotIndexes::insertMBBInMaps() and add support for updating SlotIndexes to MachineBasicBlock::SplitCriticalEdge(). This calls renumberIndexes() every time; it should be improved to only renumber locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174851 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
36f54480f83d47404aceea5d41f8f6b95da2d00b |
11-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Abstract the liveness checking in PHIElimination::SplitPHIEdges() to support both LiveVariables and LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174850 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
b7cfac32f32f17e64a5addfdb833702160650f14 |
10-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Add support for updating LiveIntervals to PHIElimination. If LiveIntervals are present, it currently verifies them with the MachineVerifier, and this passed all of the test cases in 'make check' (when accounting for existing verifier errors). There were some assertion failures in the two-address pass, but they also happened on code without phis and look like they are caused by different kill flags from LiveIntervals. The only part that doesn't work is the critical edge splitting heuristic, because there isn't currently an efficient way to update LiveIntervals after splitting an edge. I'll probably start by implementing the slow fallback and test that it works before tackling the fast path for single-block ranges. The existing code that updates LiveVariables is fairly slow as it is. There isn't a command-line option for enabling this; instead, just edit PHIElimination.cpp to require LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174831 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
d7c7a686ac18f8f3c035d158d8b713077be83ea4 |
10-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174830 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
02513c05c6333e2f7418b1327eded162b2791828 |
10-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Remove ancient references to 'atomic' phis in PHIElimination that don't really make sense anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174829 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
fe0fd35d5339467fedd59f0cf5bdadb163a8d766 |
10-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Make LiveVariables an instance variable of PHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174828 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
7dcb23a0522eb23c3a50f6c8249f10ccdf214993 |
09-Feb-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unneeded "TargetMachine.h" #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174817 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
smPrinter/ARMException.cpp
smPrinter/DwarfException.cpp
smPrinter/Win64Exception.cpp
argetRegisterInfo.cpp
|
f2d89ff5c82c78f6160a9a8611c525771fdd2033 |
09-Feb-2013 |
Manman Ren <mren@apple.com> |
Dwarf: do not use line_table_start in at_stmt_list since we do not always emit line table entries in assembly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174785 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ec7b25d753867f43e2fbd00e58daf75e29783bd4 |
09-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the old liveness algorithm. This is part of the plan to delete LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174783 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ea871523ecaa99a8fd7f12b5f57e2ee19743362d |
09-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Turn on -new-live-intervals by default. This uses a liveness algorithm that does not depend on data from the LiveVariables analysis, it is the first step towards removing LiveVariables completely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174774 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
58446916b71c4ff79962081ea7c4df078c388b0e |
08-Feb-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>" This reverts r171041. This was a nice idea that didn't work out well. Clang warnings need to be associated with warning groups so that they can be selectively disabled, promoted to errors, etc. This simplistic patch didn't allow for that. Enhancing it to provide some way for the backend to specify a front-end warning type seems like overkill for the few uses of this, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174748 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
089a5f8a8c5e24f996dd41419de2c7bc7b42ea29 |
08-Feb-2013 |
Hal Finkel <hfinkel@anl.gov> |
DAGCombiner: Constant folding around pre-increment loads/stores Previously, even when a pre-increment load or store was generated, we often needed to keep a copy of the original base register for use with other offsets. If all of these offsets are constants (including the offset which was combined into the addressing mode), then this is clearly unnecessary. This change adjusts these other offsets to use the new incremented address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8f637adbd383afc2defb5d3f75433b6f2c25d527 |
08-Feb-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert 172027 and 174336. Remove diagnostics about over-aligned stack objects. Aside from the question of whether we report a warning or an error when we can't satisfy a requested stack object alignment, the current implementation of this is not good. We're not providing any source location in the diagnostics and the current warning is not connected to any warning group so you can't control it. We could improve the source location somewhat, but we can do a much better job if this check is implemented in the front-end, so let's do that instead. <rdar://problem/13127907> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174741 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
fb55a8fd7c38aa09d9c243d48a8a72d890f36a3d |
08-Feb-2013 |
Arnold Schwaighofer <aschwaighofer@apple.com> |
ARM cost model: Address computation in vector mem ops not free Adds a function to target transform info to query for the cost of address computation. The cost model analysis pass now also queries this interface. The code in LoopVectorize adds the cost of address computation as part of the memory instruction cost calculation. Only there, we know whether the instruction will be scalarized or not. Increase the penality for inserting in to D registers on swift. This becomes necessary because we now always assume that address computation has a cost and three is a closer value to the architecture. radar://13097204 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174713 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
7a0103c30d2f423c78527aeeeebc7915e3bc9ee9 |
07-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
"Clean up" line section symbol emission by emitting the section syms before constructing the compile units so we're not emitting section references to sections not there already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174663 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
01776a5a9480243f95fff50c96e3f35fad41e4cb |
06-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Clean up multiple skeleton compile units if we have multiple compile units coming in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174548 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
231b83d8fd3ce86fb5cd154d50dd3f920ca0d71f |
06-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174547 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
607acd66f400045919b1067432927a53484eaec1 |
06-Feb-2013 |
Evan Cheng <evan.cheng@apple.com> |
Tweak check to avoid integer overflow (for insanely large alignments) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9c5861fdbd5e30df55cb7cd9a0edda8d92494100 |
06-Feb-2013 |
Manman Ren <mren@apple.com> |
Attempt to recover gdb bot after r174445. Failure: undefined symbol 'Lline_table_start0'. Root-cause: we use a symbol subtraction to calculate at_stmt_list, but the line table entries are not dumped in the assembly. Fix: use zero instead of a symbol subtraction for Compile Unit 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174479 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
43213cf1ac05b4198fcf9fa85d7da85477daafd1 |
05-Feb-2013 |
Manman Ren <mren@apple.com> |
Dwarf: support for LTO where a single object file can have multiple line tables We generate one line table for each compilation unit in the object file. Reviewed by Eric and Kevin. rdar://problem/13067005 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174445 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b48783b09127136c98cc6b0399be757728504e56 |
05-Feb-2013 |
Owen Anderson <resistor@mac.com> |
Reapply r174343, with a fix for a scary DAG combine bug where it failed to differentiate between the alignment of the base point of a load, and the overall alignment of the load. This caused infinite loops in DAG combine with the original application of this patch. ORIGINAL COMMIT LOG: When the target-independent DAGCombiner inferred a higher alignment for a load, it would replace the load with one with the higher alignment. However, it did not place the new load in the worklist, which prevented later DAG combines in the same phase (for example, target-specific combines) from ever seeing it. This patch corrects that oversight, and updates some tests whose output changed due to slightly different DAGCombine outputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174431 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e6dc59891fc53d65b3f6d19772d26e23e0cc1cac |
05-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove liveout lists from MachineRegisterInfo. All targets are now adding return value registers as implicit uses on return instructions, and there is no longer a need for the live out lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174417 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
achineRegisterInfo.cpp
|
b45e4deb102d47602f5b941da7f412ecc9a867e9 |
05-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove special-casing of return blocks for liveness. Now that return value registers are return instruction uses, there is no need for special treatment of return blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174416 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
iveVariables.cpp
ostRASchedulerList.cpp
egAllocFast.cpp
|
eb260b252749470654ef0655aa1d1334a4c0d983 |
05-Feb-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r174343, "When the target-independent DAGCombiner inferred a higher alignment for a load," It caused hangups in compiling clang/lib/Parse/ParseDecl.cpp and clang/lib/Driver/Tools.cpp in stage2 on some hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
31fb5dafce280ddcc945e2136d11e5c69a3d3493 |
05-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Construct a skeleton cu for each compile unit in the module, not just for the first compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174352 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
208cc6f48975320da1a71cf7f7eff497f4f43b75 |
05-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Add support for emitting a stub DW_AT_GNU_dwo_id as part of the DWARF5 split dwarf proposal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174350 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
429f7ef0c116c0504052b9a6655ef4d973177e9d |
05-Feb-2013 |
Owen Anderson <resistor@mac.com> |
When the target-independent DAGCombiner inferred a higher alignment for a load, it would replace the load with one with the higher alignment. However, it did not place the new load in the worklist, which prevented later DAG combines in the same phase (for example, target-specific combines) from ever seeing it. This patch corrects that oversight, and updates some tests whose output changed due to slightly different DAGCombine outputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174343 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
91b978e15774039f991cf91048dc4cc74726744b |
05-Feb-2013 |
Manman Ren <mren@apple.com> |
[Stack Alignment] emit warning instead of a hard error Per discussion in rdar://13127907, we should emit a hard error only if people write code where the requested alignment is larger than achievable and assumes the low bits are zeros. A warning should be good enough when we are not sure if the source code assumes the low bits are zeros. rdar://13127907 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174336 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
4969310052f45b1e2e5d21735e38641a20be0e21 |
04-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors. This required disabling a PowerPC optimization that did the following: input: x = BUILD_VECTOR <i32 16, i32 16, i32 16, i32 16> lowered to: tmp = BUILD_VECTOR <i32 8, i32 8, i32 8, i32 8> x = ADD tmp, tmp The add now gets folded immediately and we're back at the BUILD_VECTOR we started from. I don't see a way to fix this currently so I left it disabled for now. Fix some trivially foldable X86 tests too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
98b93e5a94f69f6c7b12152a98455f501db1895d |
02-Feb-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
rdar://13126763 Fix a bug in DAGCombine. The symptom is mistakenly optimizing expression "x + x*x" into "x * 3.0". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7650d9b893b83b6261d1bbc892464aa9d61cc23f |
02-Feb-2013 |
Manman Ren <mren@apple.com> |
Correct indentation for dumping LexicalScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174237 91177308-0d34-0410-b5e6-96231b3b80d8
exicalScopes.cpp
|
945e828003b746f6bbe86390940cf1433d18b0a1 |
02-Feb-2013 |
Manman Ren <mren@apple.com> |
[Dwarf] avoid emitting multiple AT_const_value for static memebers. Testing case is reduced from MultiSource/BenchMarks/Prolangs-C++/deriv1. rdar://problem/13071590 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174235 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5882e566a560691bef3eb817f6390ee93242b6a6 |
01-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
Fix errant fallthrough in the generation of the lifetime markers. Found by Alexander Kornienko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174207 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5fb7947ed16a57a9c0b71ac70905454d82d25696 |
01-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
Use a continue to simplify loop and reduce indentation. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174198 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3ab115ce8f5262608630d67c28707dbd24361d03 |
31-Jan-2013 |
Chad Rosier <mcrosier@apple.com> |
Add braces, so my head doesn't explode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174088 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
2d95e43fd877f81f419485baed3bd559de55e4c4 |
31-Jan-2013 |
Lang Hames <lhames@gmail.com> |
When lowering memcpys to loads and stores, make sure we don't promote alignments past the natural stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174085 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8b15d74434dfde5ea9227b985c2c934f62bf03a7 |
31-Jan-2013 |
Manman Ren <mren@apple.com> |
[Dwarf] early exit to avoid creating dangling DIEs We used to create children DIEs for a scope, then check whether ScopeDIE is null. If ScopeDIE is null, the children DIEs will be dangling. Other DIEs can link to those dangling DIEs, which are not emitted at all, causing dwarf error. The current testing case is 4k lines, from MultiSource/BenchMark/McCat/09-vor. rdar://problem/13071959 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174084 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
108fb3202af6f500073cdbb7be32c25d7a273a2e |
31-Jan-2013 |
Chad Rosier <mcrosier@apple.com> |
[PEI] Pass the frame index operand number to the eliminateFrameIndex function. Each target implementation was needlessly recomputing the index. Part of rdar://13076458 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174083 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
f662a59b8b031bd43e43e0282b58bef920f0793d |
29-Jan-2013 |
Weiming Zhao <weimingz@codeaurora.org> |
Add a special handling case for untyped CopyFromReg node in GetCostForDef() of ScheduleDAGRRList git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173833 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
aaf2e639ecf2e5a1647e6d59ef53dc76da0a6102 |
29-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
Support artificial parameters in function types. Provides the functionality for Clang change r172911 - I just had this still lying around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173820 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
f1af1feeee0f0ec797410762c006211f9c1e2a0f |
29-Jan-2013 |
Edwin Vane <edwin.vane@intel.com> |
Fixing warnings revealed by gcc release build Fixed set-but-not-used warnings. Reviewer: gribozavr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173810 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
4c6a2ba4e01ef75837bb39808a3935bd8687ce67 |
29-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: cleanup code. Use isBoundaryNode(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173775 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
8688a58c53b46d2dda9bf50dafd5195790a7ed58 |
29-Jan-2013 |
Evan Cheng <evan.cheng@apple.com> |
Teach SDISel to combine fsin / fcos into a fsincos node if the following conditions are met: 1. They share the same operand and are in the same BB. 2. Both outputs are used. 3. The target has a native instruction that maps to ISD::FSINCOS node or the target provides a sincos library call. Implemented the generic optimization in sdisel and enabled it for Mac OSX. Also added an additional optimization for x86_64 Mac OSX by using an alternative entry point __sincos_stret which returns the two results in xmm0 / xmm1. rdar://13087969 PR13204 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGDumper.cpp
argetLoweringBase.cpp
|
5ff776bfde2dd5d993e51f8f78904ce331b5528c |
28-Jan-2013 |
Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
This patch addresses bug 15031. The common code in the post-RA scheduler to break anti-dependencies on the critical path contained a flaw. In the reported case, an anti-dependency between the overlapping registers %X4 and %R4 exists: %X29<def> = OR8 %X4, %X4 %R4<def>, %X3<def,dead,tied3> = LBZU 1, %X3<kill,tied1> The unpatched code breaks the dependency by replacing %R4 and its uses with %R3, the first register on the available list. However, %R3 and %X3 overlap, so this creates two overlapping definitions on the same instruction. The fix is straightforward, preventing selection of a register that overlaps any other defined register on the same instruction. The test case is reduced from the bug report, and verifies that we no longer produce "lbzu 3, 1(3)" when breaking this anti-dependency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173706 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
498703bcfb274f3911a1fdbfb818b526338249ad |
28-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173698 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
24c4898973a074713201fb9351d302b9f7733e92 |
28-Jan-2013 |
Michael Gottesman <mgottesman@apple.com> |
Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173647 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
|
0fef46f50e116e9aa0811ba8eb605d82ab64faed |
27-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Legalizer: Reword comment again, per Duncan's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
022688c260f472b4befcd974a6c907c6830f308e |
27-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Legalizer: Add an assert and tweak a comment to clarify the assumptions this code makes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
914f8c4825140a97219e94b815beb2bc77395d10 |
27-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
When the legalizer is splitting vector shifts, the result may not have the right shift amount type. Fix that by adding a cast to the shift expander. This came up with vector shifts on sse-less X86 CPUs. <2 x i64> = shl <2 x i64> <2 x i64> -> i64,i64 = shl i64 i64; shl i64 i64 -> i32,i32,i32,i32 = shl_parts i32 i32 i64; shl_parts i32 i32 i64 Now we cast the last two i64s to the right type. Fixes the crash in PR14668. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
b74564a15ac6bfa85c9597bed842b686be1a1a62 |
25-Jan-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Use const reference instead of vector copying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173497 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
ea387fc3b8cf12c3c6ad218b81eca156e8173bba |
25-Jan-2013 |
Preston Gurd <preston.gurd@intel.com> |
This patch aims to reduce compile time in LegalizeTypes by using SmallDenseMap, with an initial number of elements, instead of DenseMap, which has zero initial elements, in order to avoid the copying of elements when the size changes and to avoid allocating space every time LegalizeTypes is run. This patch will not affect the memory footprint, because DenseMap will increase the element size to 64 when the first element is added. Patch by Wan Xiaofei. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173448 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
|
c855423ff2a18e2168324ac5902cfe862cd4b54f |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: Print block name. No functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173433 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
3084979ff27f48487c7421536144c41a36cae997 |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MachineScheduler support for viewGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173432 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
c6ada8e5f38168f13830e448f2b9e2d8e3eac72b |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
ScheduleDAG: colorize the DOT graph and improve formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173431 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
|
a5a73ad15905c18843a8312bb3f20f5c501744de |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
ScheduleDAG: Added isBoundaryNode to conveniently detect a common corner case. This fixes DAG subtree analysis at the boundary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173427 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
988d06b0e574d8e50b043fd74dbf91c1dc403542 |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
SchedDFS: Complete support for nested subtrees. Maintain separate per-node and per-tree book-keeping. Track all instructions above a DAG node including nested subtrees. Seperately track instructions within a subtree. Record subtree parents. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173426 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
4e1fb1894048455d49d62543b3f83672b27b0000 |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: Improve the interface to SchedDFS analysis (subtrees). Allow the strategy to select SchedDFS. Allow the results of SchedDFS to affect initialization of the scheduler state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173425 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
bfb8223e2b2a55c3ac6c73be0ac99bbce17cb097 |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
SchedDFS: Initial support for nested subtrees. This is mostly refactoring, along with adding an instruction count within the subtrees and ensuring we only look at data edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173420 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
178f7d08a41f2e9432b96cd27f0c8ea42fa0ac9e |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MISched: Add SchedDFSResult to ScheduleDAGMI to formalize the interface and allow other strategies to select it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173413 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
b12a77199245a72c24dadbc039ed263d68d8e91a |
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
SchedDFS: Refactor and tweak the subtree selection criteria. For sanity, create a root when NumDataSuccs >= 4. Splitting large subtrees will no longer be detrimental after my next checkin to handle nested tree. A magic number of 4 is fine because single subtrees seldom rejoin more than this. It makes subtrees easier to visualize and heuristics more sane. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173399 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
dd4fc446b52cf9e617846c77e2c46e827f1d533e |
25-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating duplicate CFG edges in the IfConversion pass. Patch by Stefan Hepp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173395 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
db4170697f866dc8620946c77828ef0804996c3d |
24-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MachineScheduler: enable biasCriticalPath for all DAGs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173318 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
66658dd9a1ffe00a5f6e0afca7afb16ec6704ed3 |
24-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: Added biasCriticalPath. Allow schedulers to order DAG edges by critical path. This makes DFS-based heuristics more stable and effective. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173317 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
e4957fb9b77a4fbdf711b9e5a722d107d86ccc50 |
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add the heuristic to differentiate SSPStrong from SSPRequired. The requirements of the strong heuristic are: * A Protector is required for functions which contain an array, regardless of type or length. * A Protector is required for functions which contain a structure/union which contains an array, regardless of type or length. Note, there is no limit to the depth of nesting. * A protector is required when the address of a local variable (i.e., stack based variable) is exposed. (E.g., such as through a local whose address is taken as part of the RHS of an assignment or a local whose address is taken as part of a function argument.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173231 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
114baee1fa017daefad2339c77b45b9ca3d79a41 |
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add the IR attribute 'sspstrong'. SSPStrong applies a heuristic to insert stack protectors in these situations: * A Protector is required for functions which contain an array, regardless of type or length. * A Protector is required for functions which contain a structure/union which contains an array, regardless of type or length. Note, there is no limit to the depth of nesting. * A protector is required when the address of a local variable (i.e., stack based variable) is exposed. (E.g., such as through a local whose address is taken as part of the RHS of an assignment or a local whose address is taken as part of a function argument.) This patch implements the SSPString attribute to be equivalent to SSPRequired. This will change in a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173230 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
0a29cb045444c13160e90fe7942a9d7c720185ed |
22-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Make APFloat constructor require explicit semantics. Previously we tried to infer it from the bit width size, with an added IsIEEE argument for the PPC/IEEE 128-bit case, which had a default value. This default value allowed bugs to creep in, where it was inappropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173138 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
3aef70314b053a1df4f85ca4a6f3890d06ebbdd6 |
09-Jan-2013 |
Stephen Hines <srhines@google.com> |
Update LLVM for merge to r171905. Android.mk lib/Analysis/Android.mk lib/CodeGen/Android.mk lib/CodeGen/MachineScheduler.cpp - specify std::pop_heap() lib/IR/Android.mk - new from lib/VMCore lib/MC/Android.mk lib/MC/MCAssembler.cpp - put back pointer param (from reference). lib/Support/DeltaAlgorithm.cpp - iterator -> const_iterator ! lib/TableGen/Android.mk lib/Target/ARM/ARMJITInfo.cpp - Removed unused legacy JIT changes lib/Target/ARM/Android.mk lib/Target/ARM/AsmParser/Android.mk lib/Target/ARM/Disassembler/Android.mk lib/Target/ARM/MCTargetDesc/Android.mk lib/Target/Android.mk lib/Target/Mips/Android.mk lib/Target/Mips/Disassembler/Android.mk lib/Target/Mips/MCTargetDesc/Android.mk lib/Target/X86/Android.mk lib/Target/X86/AsmParser/Android.mk lib/Target/X86/Disassembler/Android.mk lib/Transforms/IPO/Android.mk lib/Transforms/Instrumentation/Android.mk lib/Transforms/Scalar/Android.mk lib/Transforms/Utils/Android.mk lib/Transforms/Vectorize/Android.mk lib/VMCore/Android.mk - moved to lib/IR llvm-gen-intrinsics.mk - new Intrinsics.td location utils/TableGen/Android.mk Change-Id: Ifebdb1716c372fd917a844c44be9d10df66434b0
ndroid.mk
achineScheduler.cpp
|
059800f9e3fee2852672f846d91a2da14da7783a |
21-Jan-2013 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/master' into merge-llvm Conflicts: lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp lib/MC/MCAssembler.cpp lib/Support/Atomic.cpp lib/Support/Memory.cpp lib/Target/ARM/ARMJITInfo.cpp Change-Id: Ib339baf88df5b04870c8df1bedcfe1f877ccab8d
|
afe77f33b2a361ed0d001596dcdde0e16d57abee |
21-Jan-2013 |
Michael Ilseman <milseman@apple.com> |
Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it. A SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's desirable properties. Essentially, SparseMultiSet provides multiset behavior by storing its dense data in doubly linked lists that are inlined into the dense vector. This allows it to provide good data locality as well as vector-like constant-time clear() and fast constant time find(), insert(), and erase(). It also allows SparseMultiSet to have a builtin recycler rather than keeping SparseSet's behavior of always swapping upon removal, which allows it to preserve more iterators. It's often a better alternative to a SparseSet of a growable container or vector-of-vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173064 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
0c8607ba6a21578996a7532b9390afba13bd2087 |
20-Jan-2013 |
Nadav Rotem <nrotem@apple.com> |
Revert 172708. The optimization handles esoteric cases but adds a lot of complexity both to the X86 backend and to other backends. This optimization disables an important canonicalization of chains of SEXT nodes and makes SEXT and ZEXT asymmetrical. Disabling the canonicalization of consecutive SEXT nodes into a single node disables other DAG optimizations that assume that there is only one SEXT node. The AVX mask optimizations is one example. Additionally this optimization does not update the cost model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172968 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
14268416720155d63f190a6143ee40b3b850e409 |
20-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
The last of PR14471 - emission of constant floats git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172941 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
0969ddf601c7cf9da2b01fe227005951c6af0cac |
18-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Split out DW_OP_addr for the split debug info DWARF5 proposal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172857 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
1b0c54f1c5dd61e56cb7cbc435fcb3319cff628f |
18-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use AttributeSet accessor methods instead of Attribute accessor methods. Further encapsulation of the Attribute object. Don't allow direct access to the Attribute object as an aggregate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172853 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1a17bd21ff64968817dedb6cd2b7c809cee90804 |
18-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove unused parameter. Also use the AttributeSet query methods instead of the Attribute query methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172852 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAGBuilder.cpp
|
6d49b680be6e24b547e6910c2b64914913915084 |
18-Jan-2013 |
Daniel Dunbar <daniel@zuster.org> |
[MC/Mach-O] Implement integrated assembler support for linker options. - Also, fixup syntax errors in LangRef and missing newline in the MCAsmStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172837 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6c327f92a562d9d280bdbc3bde3c0ce269a4c65c |
17-Jan-2013 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Optimization for the following SIGN_EXTEND pairs: v8i8 -> v8i64, v8i8 -> v8i32, v4i8 -> v4i64, v4i16 -> v4i64 for AVX and AVX2. Bug 14865. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172708 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
446b88fb81e14f5fa6f98ca924c83edc856cade7 |
17-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Fix the assembly and dissassembly of DW_FORM_sec_offset. Found this by changing both the string of the dwo_name to be correct and the type of the statement list. Testcases all around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172699 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
|
d96c72a14cf327af98cbc7d3491f7a2248f5137d |
17-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Add the DW_AT_GNU_addr_base for the skeleton cu. Add support for emitting the dwarf32 version of DW_FORM_sec_offset and correct disassembler support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172698 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
|
5ed625c3cff2511469e9b3c5131c29fd89ddd482 |
17-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move MachineTraceMetrics.h into include/llvm/CodeGen. Let targets use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172688 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
achineTraceMetrics.cpp
achineTraceMetrics.h
tackColoring.cpp
|
02c6325a4592fefebc837b677eaf87dc532ecb7c |
17-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Provide a place for targets to insert ILP optimization passes. Move the early if-conversion pass into this group. ILP optimizations usually need to find the right balance between register pressure and ILP using the MachineTraceMetrics analysis to identify critical paths and estimate other costs. Such passes should run together so they can share dominator tree and loop info analyses. Besides if-conversion, future passes to run here here could include expression height reduction and ARM's MLxExpansion pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172687 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
6b6061f01171bd3d4e32022efa45428d4f9941ee |
16-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Define metadata interfaces for describing a static data member of a class. Emit static data member declarations and definitions through correctly. Part of PR14471. Patch by Paul Robinson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172590 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
72f7bfbf0e02bb11d3e7cca1f9598c5f9d9fa2ca |
16-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Split address information for DWARF5 split dwarf proposal. This involves using the DW_FORM_GNU_addr_index and a separate .debug_addr section which stays in the executable and is fully linked. Sneak in two other small changes: a) Print out the debug_str_offsets.dwo section. b) Change form we're expecting the entries in the debug_str_offsets.dwo section to take from ULEB128 to U32. Add tests for all of this in the fission-cu.ll test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172578 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
89e88e30bff4a5f4303dc9e44d3faa89b81af5a8 |
14-Jan-2013 |
Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
This patch addresses an incorrect transformation in the DAG combiner. The included test case is derived from one of the GCC compatibility tests. The problem arises after the selection DAG has been converted to type-legalized form. The combiner first sees a 64-bit load that can be converted into a pre-increment form. The original load feeds into a SRL that isolates the upper 32 bits of the loaded doubleword. This looks like an opportunity for DAGCombiner::ReduceLoadWidth() to replace the 64-bit load with a 32-bit load. However, this transformation is not valid, as the replacement load is not a pre-increment load. The pre-increment load produces an extra result, which feeds a subsequent add instruction. The replacement load only has one result value, and this value is propagated to all uses of the pre- increment load, including the add. Because the add is looking for the second result value as its operand, it ends up attempting to add a constant to a token chain, resulting in a crash. So the patch simply disables this transformation for any load with more than two result values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4dc478308f0de13d9ce20915193ac8c3318c5bd6 |
12-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
When lowering an inreg sext first shift left, then right arithmetically. Shifting right two times will only yield zero. Should fix SingleSource/UnitTests/SignlessTypes/factor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172322 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
6d6132986d2ef14bbf9d76f5acbf2a0bace32d69 |
12-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Limit the search space in RAGreedy::tryEvict(). When tryEvict() is looking for a cheaper register in the allocation order, skip the tail of too expensive registers when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172281 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.h
egAllocGreedy.cpp
|
c7a275245f501e2f68a55af05c75bc9b6b50ec84 |
12-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Precompute some information about register costs. Remember the minimum cost of the registers in an allocation order and the number of registers at the end of the allocation order that have the same cost per use. This information can be used to limit the search space for RAGreedy::tryEvict() when looking for a cheaper register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172280 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
66de2af815f97e484c1940ff157ffbb809931b20 |
11-Jan-2013 |
Nadav Rotem <nrotem@apple.com> |
PPC: Implement efficient lowering of sign_extend_inreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172269 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
8ecd3be1f3687222bfed627219844557024fcec1 |
11-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove some accidentaly duplicated code. This needs urgent cleanup :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172248 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
69e42dbd006c0afb732067ece7327988b1e24c01 |
11-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Split TargetLowering into a CodeGen and a SelectionDAG part. This fixes some of the cycles between libCodeGen and libSelectionDAG. It's still a complete mess but as long as the edges consist of virtual call it doesn't cause breakage. BasicTTI did static calls and thus broke some build configurations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172246 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
MakeLists.txt
warfEHPrepare.cpp
fConversion.cpp
achineBlockPlacement.cpp
achineLICM.cpp
electionDAG/TargetLowering.cpp
jLjEHPrepare.cpp
tackProtector.cpp
argetLoweringBase.cpp
|
3e40d927a775994d8f4c2d30695be69c248fa16c |
11-Jan-2013 |
Nadav Rotem <nrotem@apple.com> |
ARM Cost Model: Modify the target independent cost model to ask the target if it supports the different CAST types. We didn't do this on X86 because of the different register sizes and types, but on ARM this makes sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172245 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
fffe3634933471ee9805412ffa221080c9e9e8fd |
11-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
For inline asm: - recognize string "{memory}" in the MI generation - mark as mayload/maystore when there's a memory clobber constraint. PR14859. Patch by Krzysztof Parzyszek git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172228 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
eed4e0193ff04ba27bfb6d0d4201505f03d99a7c |
11-Jan-2013 |
Andrew Trick <atrick@apple.com> |
Follow-up typo correction from building the wrong branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172224 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e9ccacd376b2a271434e739f0b7d468cc691723b |
11-Jan-2013 |
Andrew Trick <atrick@apple.com> |
Fix typo from r170452. Affects -enable-misched heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172223 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
5f2801bd653f82927ddd7612cb149e78a8509ed4 |
11-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Simplify writing floating types to assembly. This removes previous special cases for each floating-point type in favour of a shared codepath. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172189 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4ff23d09fa49d4ad68b4613114a743771df21df3 |
10-Jan-2013 |
Evan Cheng <evan.cheng@apple.com> |
PR14896: Handle memcpy from constant string where the memcpy size is larger than the string size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
81bfd711de84310232354dcc971b8ec45206716a |
10-Jan-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unneeded includes from FunctionLoweringInfo.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4aebce83212d7271454c8767085645fe11054b44 |
10-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow hasProperty() to be called on bundle-internal instructions. When calling hasProperty() on an instruction inside a bundle, it should always behave as if IgnoreBundle was passed, and just return properties for the current instruction. Only attempt to aggregate bundle properties whan asked about the bundle header. The assertion fires on existing ARM test cases without this fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172082 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b11f05043465bceae4853a3bd2c01d7d664cc5e3 |
10-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Support headerless bundles in MachineInstr::hasProperty(). This function can still work without a BUNDLE header instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172029 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
86441169da23959c81d8648c3dfdc7a0bb8d2225 |
10-Jan-2013 |
Manman Ren <mren@apple.com> |
Stack Alignment: throw error if we can't satisfy the minimal alignment requirement when creating stack objects in MachineFrameInfo. Add CreateStackObjectWithMinAlign to throw error when the minimal alignment can't be achieved and to clamp the alignment when the preferred alignment can't be achieved. Same is true for CreateVariableSizedObject. Will not emit error in CreateSpillStackObject or CreateStackObject. As long as callers of CreateStackObject do not assume the object will be aligned at the requested alignment, we should not have miscompile since later optimizations which look at the object's alignment will have the correct information. rdar://12713765 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172027 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
14925e6b885f8bd8cf448627386d412831f4bf1b |
09-Jan-2013 |
Nadav Rotem <nrotem@apple.com> |
ARM Cost model: Use the size of vector registers and widest vectorizable instruction to determine the max vectorization factor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172010 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
78ec0255d9ab184af7799c14d93879e5f21b9007 |
09-Jan-2013 |
Evan Cheng <evan.cheng@apple.com> |
Fix a DAG combine bug visitBRCOND() is transforming br(xor(x, y)) to br(x != y). It cahced XOR's operands before calling visitXOR() but failed to update the operands when visitXOR changed the XOR node. rdar://12968664 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171999 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ebed123c5c2d10bb2aceb272f25644f685ebcd09 |
09-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't print bundle flags. The bundle flags are used by MachineBasicBlock::print(), they don't need to clutter up individual MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171986 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
25377c8c6dafd094f17833f2c37daff0b77a16fc |
09-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't require BUNDLE headers in MachineInstr::getBundleSize(). It is possible to build MI bundles that don't begin with a BUNDLE header. Add support for such bundles, counting all instructions inside the bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171985 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
12cd49ae1d3c8f45f3e41b6cce681b667b99ef07 |
09-Jan-2013 |
Sergei Larin <slarin@codeaurora.org> |
Fix a typo in MachineInstr::unbundleFromSucc() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171983 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2c8cf4b404e549482f593f62f9e27e0bab4a8b3f |
09-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Refactor to expose RTLIB calls to targets. fp128 is almost but not quite completely illegal as a type on AArch64. As a result it needs to have a register class (for argument passing mainly), but all operations need to be lowered to runtime calls. Currently there's no way for targets to do this (without duplicating code), as the relevant functions are hidden in SelectionDAG. This patch changes that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
1ced208be9cab0f994c5df9000da36bc313b2507 |
09-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Last in the series of removing unnecessary '0' arguments for address space. Reordered the EmitULEB128IntValue arguments to make this easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171949 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfDebug.cpp
smPrinter/OcamlGCPrinter.cpp
|
47579cf390c42e0577519e0a2b6044baece9df00 |
09-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: add an ILP window property to machine model. This was an experimental option, but needs to be defined per-target. e.g. PPC A2 needs to aggressively hide latency. I converted some in-order scheduling tests to A2. Hal is working on more test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171946 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
68ca56285f9b6e82eb16ff8ea02a301f2c489fae |
09-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
These functions have default arguments of 0 for the last arg. Use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171933 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/OcamlGCPrinter.cpp
|
ca1dd05c3c12e857614ae6837f90894396225dd6 |
09-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
These functions have default arguments of 0 for the last arg. Use them and add one where it seemed obvious that we wanted one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171932 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
83be7b0dd3ae9a3cb22d36ae4c1775972553b94b |
09-Jan-2013 |
Nadav Rotem <nrotem@apple.com> |
Cost Model: Move the 'max unroll factor' variable to the TTI and add initial Cost Model support on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171928 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
|
b6714227eda5d499f7667fc865f931126a8dc488 |
08-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Move the string pools down into the units. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171905 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
24d315dc053e8130593a8053bd6dc0245632f5f3 |
08-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Add fp128 rtlib function names to LLVM git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
90f011e0baa68ea02b80e8b913f7120537ce05aa |
08-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Allow the asm printer to print fp128 values properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171866 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
40b2c32475572d33ede7cf202f2d49cab9b43bb4 |
08-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Sink a function that refers to the SelectionDAG into that library in the one file where it is called as a static function. Nuke the declaration and the definition in lib/CodeGen, along with the include of SelectionDAG.h from this file. There is no dependency edge from lib/CodeGen to lib/CodeGen/SelectionDAG, so it isn't valid for a routine in lib/CodeGen to reference the DAG. There is a dependency from lib/CodeGen/SelectionDAG on lib/CodeGen. This breaks one violation of this layering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171842 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/LegalizeDAG.cpp
|
9a1e0e252a7ede548acaac98cf304d4bb135fb97 |
08-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Remove the llvm-local DW_TAG_vector_type tag and add a test to make sure that vector types do work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
682106050979f0d48fcf17338c99e91672352789 |
08-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pack MachineOperand bitfields better. Previously, 4 bits were unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171814 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b2c79f2f630ed3e7da31ff8adb3014fb0ab47412 |
08-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pack MachineInstr fields better. This shrinks MachineInstr to 64 bytes (from 72). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171813 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ff34845f78ec5c20ccd8b5ec715d505eba9f66af |
07-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Whitespace and 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171803 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
3cc42205600b2d3865efd1585d79663c41e048f1 |
07-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Add more comments to what's going on here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171780 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
dd8e9f395e881972b320d947de88102a0be04b70 |
07-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Add support for separating strings for the split debug info DWARF5 proposal. This leaves the strings in the skeleton die as strp, but in all dwo files they're accessed now via DW_FORM_GNU_str_index. Add support for dumping these sections and modify the fission-cu.ll testcase to have the correct strings and form. Fix a small bug in the fixed form sizes routine that involved out of array accesses for the table and add a FIXME in the extractFast routine to fix this up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
56d433dffe02e14cafaab44d2628e20dc0bf26fe |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Sink AddrMode back into TargetLowering, removing one of the most peculiar headers under include/llvm. This struct still doesn't make a lot of sense, but it makes more sense down in TargetLowering than it did before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171739 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
electionDAG/DAGCombiner.cpp
|
e4ba75f43e2ab1480d119d2d4eb878256274e0fb |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the SCEV expander and LoopStrengthReduce to use TargetTransformInfo rather than TargetLowering, removing one of the primary instances of the layering violation of Transforms depending directly on Target. This is a really big deal because LSR used to be a "special" pass that could only be tested fully using llc and by looking at the full output of it. It also couldn't run with any other loop passes because it had to be created by the backend. No longer is this true. LSR is now just a normal pass and we should probably lift the creation of LSR out of lib/CodeGen/Passes.cpp and into the PassManagerBuilder. =] I've not done this, or updated all of the tests to use opt and a triple, because I suspect someone more familiar with LSR would do a better job. This change should be essentially without functional impact for normal compilations, and only change behvaior of targetless compilations. The conversion required changing all of the LSR code to refer to the TTI interfaces, which fortunately are very similar to TargetLowering's interfaces. However, it also allowed us to *always* expect to have some implementation around. I've pushed that simplification through the pass, and leveraged it to simplify code somewhat. It required some test updates for one of two things: either we used to skip some checks altogether but now we get the default "no" answer for them, or we used to have no information about the target and now we do have some. I've also started the process of removing AddrMode, as the TTI interface doesn't use it any longer. In some cases this simplifies code, and in others it adds some complexity, but I think it's not a bad tradeoff even there. Subsequent patches will try to clean this up even further and use other (more appropriate) abstractions. Yet again, almost all of the formatting changes brought to you by clang-format. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171735 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
62fdfb5fa7efdfd61339e4abe6fd87e60e939e58 |
07-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14759: Debug info support for C++ member pointers. This works fine with GDB for member variable pointers, but GDB's support for member function pointers seems to be quite unrelated to DW_TAG_ptr_to_member_type. (see GDB bug 14998 for details) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171698 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
be04929f7fd76a921540e9901f24563e51dc1219 |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move TargetTransformInfo to live under the Analysis library. This no longer would violate any dependency layering and it is in fact an analysis. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171686 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
aeef83c6afa1e18d1cf9d359cc678ca0ad556175 |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Switch TargetTransformInfo from an immutable analysis pass that requires a TargetMachine to construct (and thus isn't always available), to an analysis group that supports layered implementations much like AliasAnalysis does. This is a pretty massive change, with a few parts that I was unable to easily separate (sorry), so I'll walk through it. The first step of this conversion was to make TargetTransformInfo an analysis group, and to sink the nonce implementations in ScalarTargetTransformInfo and VectorTargetTranformInfo into a NoTargetTransformInfo pass. This allows other passes to add a hard requirement on TTI, and assume they will always get at least on implementation. The TargetTransformInfo analysis group leverages the delegation chaining trick that AliasAnalysis uses, where the base class for the analysis group delegates to the previous analysis *pass*, allowing all but tho NoFoo analysis passes to only implement the parts of the interfaces they support. It also introduces a new trick where each pass in the group retains a pointer to the top-most pass that has been initialized. This allows passes to implement one API in terms of another API and benefit when some other pass above them in the stack has more precise results for the second API. The second step of this conversion is to create a pass that implements the TargetTransformInfo analysis using the target-independent abstractions in the code generator. This replaces the ScalarTargetTransformImpl and VectorTargetTransformImpl classes in lib/Target with a single pass in lib/CodeGen called BasicTargetTransformInfo. This class actually provides most of the TTI functionality, basing it upon the TargetLowering abstraction and other information in the target independent code generator. The third step of the conversion adds support to all TargetMachines to register custom analysis passes. This allows building those passes with access to TargetLowering or other target-specific classes, and it also allows each target to customize the set of analysis passes desired in the pass manager. The baseline LLVMTargetMachine implements this interface to add the BasicTTI pass to the pass manager, and all of the tools that want to support target-aware TTI passes call this routine on whatever target machine they end up with to add the appropriate passes. The fourth step of the conversion created target-specific TTI analysis passes for the X86 and ARM backends. These passes contain the custom logic that was previously in their extensions of the ScalarTargetTransformInfo and VectorTargetTransformInfo interfaces. I separated them into their own file, as now all of the interface bits are private and they just expose a function to create the pass itself. Then I extended these target machines to set up a custom set of analysis passes, first adding BasicTTI as a fallback, and then adding their customized TTI implementations. The fourth step required logic that was shared between the target independent layer and the specific targets to move to a different interface, as they no longer derive from each other. As a consequence, a helper functions were added to TargetLowering representing the common logic needed both in the target implementation and the codegen implementation of the TTI pass. While technically this is the only change that could have been committed separately, it would have been a nightmare to extract. The final step of the conversion was just to delete all the old boilerplate. This got rid of the ScalarTargetTransformInfo and VectorTargetTransformInfo classes, all of the support in all of the targets for producing instances of them, and all of the support in the tools for manually constructing a pass based around them. Now that TTI is a relatively normal analysis group, two things become straightforward. First, we can sink it into lib/Analysis which is a more natural layer for it to live. Second, clients of this interface can depend on it *always* being available which will simplify their code and behavior. These (and other) simplifications will follow in subsequent commits, this one is clearly big enough. Finally, I'm very aware that much of the comments and documentation needs to be updated. As soon as I had this working, and plausibly well commented, I wanted to get it committed and in front of the build bots. I'll be doing a few passes over documentation later if it sticks. Commits to update DragonEgg and Clang will be made presently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171681 91177308-0d34-0410-b5e6-96231b3b80d8
asicTargetTransformInfo.cpp
MakeLists.txt
odeGen.cpp
LVMTargetMachine.cpp
electionDAG/TargetLowering.cpp
|
e4b4edd72ae596ac8d1fdbc6e77f61e331f6775d |
05-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Funnel the actual TargetTransformInfo pass from the SelectionDAGISel pass into the SelectionDAG itself rather than snooping on the implementation of that pass as exposed by the TargetMachine. This removes the last direct client of the ScalarTargetTransformInfo class outside of the TTI pass implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
00ece1b846536cb2ba4efefa6e6194c7030e4c63 |
05-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
Emit DW_TAG_formal_parameter for unnamed parameters. This change essentially reverts r87069 which came without a test case. It causes no regressions in the GDB 7.5 test suite & fixes 25 xfails (commit to the test suite to follow). If anyone can present a test case that demonstrates why this check is necessary I'd be happy to account for it in one way or another. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171609 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
84be3d5a73313eb19f2f9e0512153cd2e6f46c54 |
05-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't call destructors on MachineInstr and MachineOperand. The series of patches leading up to this one makes llc -O0 run 8% faster. When deallocating a MachineFunction, there is no need to visit all MachineInstr and MachineOperand objects to deallocate them. All their memory come from a BumpPtrAllocator that is about to be purged, and they have empty destructors anyway. This only applies when deallocating the MachineFunction. DeleteMachineInstr() should still be used to recycle MI memory during the codegen passes. Remove the LeakDetector support for MachineInstr. I've never seen it used before, and now it definitely doesn't work. With this patch, leaked MachineInstrs would be much less of a problem since all of their memory will be reclaimed by ~MachineFunction(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171599 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
achineRegisterInfo.cpp
|
f1d015f3429f611c423f943c75f86e6823810dc3 |
05-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use ArrayRecycler for MachineInstr operand lists. Instead of an std::vector<MachineOperand>, use MachineOperand arrays from an ArrayRecycler living in MachineFunction. This has several advantages: - MachineInstr now has a trivial destructor, making it possible to delete them in batches when destroying MachineFunction. This will be enabled in a later patch. - Bypassing malloc() and free() can be faster, depending on the system library. - MachineInstr objects and their operands are allocated from the same BumpPtrAllocator, so they will usually be next to each other in memory, providing better locality of reference. - Reduce MachineInstr footprint. A std::vector is 24 bytes, the new operand array representation only uses 8+4+1 bytes in MachineInstr. - Better control over operand array reallocations. In the old representation, the use-def chains would be reordered whenever a std::vector reached its capacity. The new implementation never changes the use-def chain order. Note that some decisions in the code generator depend on the use-def chain orders, so this patch may cause different assembly to be produced in a few cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171598 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
|
bced5cd924e47818d67e33b3ae1550ab96fc239a |
05-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineRegisterInfo::moveOperands(). This function works like memmove() for MachineOperands, except it also updates any use-def chains containing the moved operands. The use-def chains are updated without affecting the order of operands in the list. That isn't possible when using the removeRegOperandFromUseList() and addRegOperandToUseList() functions. Callers to follow soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171597 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
73a853f05c913f6127e93cf0df3ba6398bcfc213 |
04-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move an assertion so it doesn't dereference end(). The R600 target has test cases that exercises this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171538 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
8cab6edf4fa46d9bd06ff3ce0e1dd4557be58b65 |
04-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Add a name for the anonymous type we're creating for subrange types and a FIXME for what we should be doing. Should solve the immediacy of PR12069 where our debug info is crashing another tool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171536 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
b9d1005e96681b5c8cc1ed959fa129de62933020 |
04-Jan-2013 |
Pedro Artigas <partigas@apple.com> |
small fixes to enable the reuse of the pass manager across multiple modules git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171475 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
251ed7f3e59a857dd92bda1ba4f9305f33deb67b |
03-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR14732 by handling all kinds of IMPLICIT_DEF live ranges. Most IMPLICIT_DEF instructions are removed by the ProcessImplicitDefs pass, and a few are reinserted by PHIElimination when a PHI argument is <undef>. RegisterCoalescer was assuming that all IMPLICIT_DEF live ranges look like those created by PHIElimination, and that their live range never leaves the basic block. The PR14732 test case does tricks with PHI nodes that causes a longer IMPLICIT_DEF live range to appear. This happens very rarely, but RegisterCoalescer should be able to handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171435 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d40758b24ebab5777131533d9369e707fc852594 |
02-Jan-2013 |
Tom Stellard <thomas.stellard@amd.com> |
DAGCombiner: Avoid generating illegal vector INT_TO_FP nodes DAGCombiner::reduceBuildVecConvertToConvertBuildVec() was making two mistakes: 1. It was checking the legality of scalar INT_TO_FP nodes and then generating vector nodes. 2. It was passing the result value type to TargetLoweringInfo::getOperationAction() when it should have been passing the value type of the first operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
smPrinter/ARMException.cpp
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/DIE.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
smPrinter/Win64Exception.cpp
ranchFolding.cpp
allingConvLower.cpp
warfEHPrepare.cpp
CMetadata.cpp
CStrategy.cpp
ntrinsicLowering.cpp
exicalScopes.cpp
iveDebugVariables.cpp
iveIntervalAnalysis.cpp
ocalStackSlotAllocation.cpp
achineBasicBlock.cpp
achineBranchProbabilityInfo.cpp
achineFunction.cpp
achineFunctionPass.cpp
achineInstr.cpp
achineModuleInfo.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.cpp
rologEpilogInserter.cpp
seudoSourceValue.cpp
egAllocFast.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGVLIW.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
tackColoring.cpp
tackProtector.cpp
tackSlotColoring.cpp
ailDuplication.cpp
argetLoweringObjectFileImpl.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
58a2cbef4aac9ee7d530dfb690c78d6fc11a2371 |
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Resort the #include lines in include/... and lib/... with the utils/sort_includes.py script. Most of these are updating the new R600 target and fixing up a few regressions that have creeped in since the last time I sorted the includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171362 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6eb7a4270bc411342f459bc574f8fe4ef5eeff28 |
30-Dec-2012 |
Hal Finkel <hfinkel@anl.gov> |
Support ppcf128 in SelectionDAG::getConstantFP Fixes pr14751. Patch by Kai; Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
98281a20503896349bd152e2dfe87435d3a6aada |
30-Dec-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
convert a bunch of callers from DataLayout::getIndexedOffset() to GEP::accumulateConstantOffset(). The later API is nicer than the former, and is correct regarding wrap-around offsets (if anyone cares). There are a few more places left with duplicated code, which I'll remove soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171259 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8b62abdd7b9c8fc5d78dad86093f4afdfeba949d |
30-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the Function::getRetAttributes method in favor of using the AttributeSet accessor method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
39cd0c8e477255a7296b2bd1dc67193f8d38c003 |
30-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove Function::getParamAttributes and use the AttributeSet accessor methods instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
831737d329a727f53a1fb0572f7b7a8127208881 |
30-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the Function::getFnAttributes method in favor of using the AttributeSet directly. This is in preparation for removing the use of the 'Attribute' class as a collection of attributes. That will shift to the AttributeSet class instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171253 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
odePlacementOpt.cpp
achineBlockPlacement.cpp
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
tackProtector.cpp
ailDuplication.cpp
|
444b4bf5c84c80833ff283244de0885124091a13 |
27-Dec-2012 |
Nadav Rotem <nrotem@apple.com> |
Refactor DAGCombinerInfo. Change the different booleans that indicate if we are before or after different runs of DAGCo, with the CombineLevel enum. Also, added a new API for checking if we are running before or after the LegalizeVectorOps phase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
64f824c9d181c8ee78cba5b00fa7be0e5a0900a5 |
27-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
For the dwarf5 split debug info code split out the string section per compile unit/skeleton compile unit. Update tests accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171133 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
04de315694d441de4dbdf52b3ff41b2fe6803646 |
25-Dec-2012 |
Bob Wilson <bob.wilson@apple.com> |
Rename LLVMContext diagnostic handler types and functions. These are now generally used for all diagnostics from the backend, not just for inline assembly, so this drops the "InlineAsm" from the names. No functional change. (I've left aliases for the old names but only for long enough to let me switch over clang to use the new ones.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171047 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
a0be09f511c68a88ee95b73c8f0ebd78156a559e |
24-Dec-2012 |
Bob Wilson <bob.wilson@apple.com> |
Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368> When the backend is used from clang, it should produce proper diagnostics instead of just printing messages to errs(). Other clients may also want to register their own error handlers with the LLVMContext, and the same handler should work for warnings in the same way as the existing emitError methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171041 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
037435d114f77d96417ec0151443056accb0c050 |
22-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove a special case that doesn't seem necessary any longer. Back when this exception was added, it was skipping a lot more code, but now it just looks like a premature optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170989 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
021e3b6444e9179751002db7b20de96455e03171 |
22-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use getNumOperands() instead of Operands.size(). The representation of the Operands array is going to change soon so it can be allocated from a BumpPtrAllocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170988 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
38b06020dbd804f01ee3802779a52c05cffdf87d |
21-Dec-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Remove duplicate includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170902 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
hrinkWrapping.cpp
tackColoring.cpp
|
ab37b2c4bb23ab80f92429b59d812ed491c14ea6 |
21-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Add targets to skip running the GC passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170836 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
56706db45bbc7be0c087451ca9f1d258324df4b2 |
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Require the two-argument MI::addOperand(MF, MO) for dangling instructions. Instructions that are inserted in a basic block can still be decorated with addOperand(MO). Make the two-argument addOperand() function contain the actual implementation. This function will now always have a valid MF reference that it can use for memory allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170798 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
be06aacaa9a270384599bbfa850b967e9996b9fb |
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MF argument to MI::copyImplicitOps(). This function is often used to decorate dangling instructions, so a context reference is required to allocate memory for the operands. Also add a corresponding MachineInstrBuilder method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170797 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9500e5d07ac9b94c8fed74150e444778a0dcb036 |
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use two-arg addOperand(MF, MO) internally in MachineInstr when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170796 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
|
72c1655e0af6c87ffe687bed1f4ed263b1165c06 |
20-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Whitespace and 80-column cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2e5d870b384f7cc20ba040e827d54fa473f60800 |
20-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Start splitting out the debug string section handling by moving it into the DwarfUnits class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170770 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
54c1902919b502d7b549f9e967e8d9b6921fabf9 |
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove two dead functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170766 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5d3cfa6d1f6d3069893d50af39511cbf5576be91 |
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MachineInstrBuilder for PHI nodes in SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7f6ece8a93021fb42a5f2e42507c9b2681e32f32 |
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MachineInstrBuilder in InstrEmitter. This is supposed to be a mechanical change with no functional effects. InstrEmitter can generate all types of MachineOperands which revealed that MachineInstrBuilder was missing a few methods, added by this patch. Besides providing a context pointer to MI::addOperand(), MachineInstrBuilder seems like a better fit for this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
7b79b9862c9e6fc31ec072acb09171fd6ec7b0e0 |
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MachineInstrBuilder in a few CodeGen passes. This automatically passes a context pointer to MI->addOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170711 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
achineSSAUpdater.cpp
ostRASchedulerList.cpp
egAllocFast.cpp
ailDuplication.cpp
|
99d8e76d44bcf72aef1a90df545c302172006768 |
20-Dec-2012 |
Bob Wilson <bob.wilson@apple.com> |
Do not introduce vector operations in functions marked with noimplicitfloat. <rdar://problem/12879313> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
344df79cc073032cfc35cd00406907d67b537087 |
19-Dec-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Add a missing 'else'. Found by grep '} if' No testcase because it is apparently not so trivial to construct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170595 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
6eebe47060eec7e3a4ae95d4b4835869108f9c07 |
19-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Split out abbreviations for the skeleton info from the rest of the abbreviations. Part of implementing split dwarf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
37a942cd52725b1d390989a8267a764b42fcb5d3 |
19-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the explicit MachineInstrBuilder(MI) constructor. Use the version that also takes an MF reference instead. It would technically be possible to extract an MF reference from the MI as MI->getParent()->getParent(), but that would not work for MIs that are not inserted into any basic block. Given the reasonably small number of places this constructor was used at all, I preferred the compile time check to a run time assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170588 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
c698d3a2a40f0909d16cbe857685f0f22cb9ae43 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change AsmOperandInfo::ConstraintVT to MVT, instead of EVT. Accordingly, add MVT::getVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
b9e12e519e01078663941ddfbecccf1432c1120c |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Split the usage of 'EVT PartVT' into 'MVT PartVT' and 'EVT PartEVT'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170540 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8963fecc86def73634dabf7545322287aa6ae9f8 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change RegVT in BitTestBlock and RegsForValue, to contain MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
e5c65911a659e49320d214bf0702793ad37b5ed5 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getTypeForExtArgOrReturn to take and return MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ee211d2b8da98a549f7c68401aba866fa2a0eee2 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change a parameter of TargetLowering::getVectorTypeBreakdown to MVT, from EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
dfcf33a287d1756721f1f735af687595ce2f5a21 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::RegisterTypeForVT to contain MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
ff01277841b824128c74cdb66f74d8082d75e3f6 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::TransformToType to contain MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170534 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0340557fb830e3669c4c48a2cd99d7703bdda452 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::findRepresentativeClass to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
319bb399233d3ee67233aa29235c8ad2148fb77d |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getTypeToPromoteTo to take and return MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
|
fdbeb057b8a844b641f323fd27a61ffcb32b43da |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::isCondCodeLegal to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
9c5ab9355e00686e120e12952908ea8ad981d776 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getCondCodeAction to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
88ef514cc63c3f22f78eaf4dd295d349b4070819 |
19-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getTruncStoreAction to take MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170510 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
|
4b977312c7a9c078211de83771b40a1561deb047 |
19-Dec-2012 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Optimized load + SIGN_EXTEND patterns in the X86 backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170506 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bf5a2c6a39f2a98a83f5fb668b8b35156b693471 |
19-Dec-2012 |
Nadav Rotem <nrotem@apple.com> |
After reducing the size of an operation in the DAG we zero-extend the reduced bitwidth op back to the original size. If we reduce ANDs then this can cause an endless loop. This patch changes the ZEXT to ANY_EXTEND if the demanded bits are equal or smaller than the size of the reduced operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170505 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
034b94b17006f51722886b0f2283fb6fb19aca1f |
19-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170502 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.h
ranchFolding.cpp
odePlacementOpt.cpp
achineBlockPlacement.cpp
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
tackProtector.cpp
ailDuplication.cpp
|
85022561f9c78446bbc5f745cd9b58f4e5dc92ec |
19-Dec-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove more of 'else's after 'returns'. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170497 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a1b3c03777f33665d6a70607610ee80e47a40c63 |
19-Dec-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove a bunch of 'else's after 'returns' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
40b4a81ab007c11c2d4227b4f6a949720ba2adff |
19-Dec-2012 |
Craig Topper <craig.topper@gmail.com> |
Teach SimplifySetCC that comparing AssertZext i1 against a constant 1 can be rewritten as a compare against a constant 0 with the opposite condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170495 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2e4b639790a166e55a0bf14fac54ca6ce583e459 |
19-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use bidirectional bundle flags to simplify important functions. The bundle_iterator::operator++ function now doesn't need to dig out the basic block and check against end(). It can use the isBundledWithSucc() flag to find the last bundled instruction safely. Similarly, MachineInstr::isBundled() no longer needs to look at iterators etc. It only has to look at flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170473 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
582abddeee6bd49762d562d3e641a4e290d464be |
19-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify bundle flag consistency when setting them. Now that the bundle flag aware APIs are all in place, it is possible to continuously verify the flag consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170465 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9466bdebb7a239c0f469ae5c9aa1b94d2e2700f9 |
18-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify bundle flags for consistency in MachineVerifier. The new bidirectional bundle flags are redundant, so inadvertent bundle tearing can be detected in the machine code verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170463 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
bd7b36e780f99b808f8e334e26f3dae1bc7e8175 |
18-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't allow the automatically updated MI flags to be set directly. The bundle-related MI flags need to be kept in sync with the neighboring instructions. Don't allow the bulk flag-setting setFlags() function to change them. Also don't copy MI flags when cloning an instruction. The clone's bundle flags will be set when it is explicitly inserted into a bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170459 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9b04104a5e9fb51b24b7aeb55912d319802049b2 |
18-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tighten up the splice() API for bundled instructions. Remove the instr_iterator versions of the splice() functions. It doesn't seem useful to be able to splice sequences of instructions that don't consist of full bundles. The normal splice functions that take MBB::iterator arguments are not changed, and they can move whole bundles around without any problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170456 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
04f52e1300f4eff5b5e5280fbf032f571854a539 |
18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: add dependence to ExitSU to model live-out latency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170454 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
e3eddaec4a173c7b9c56aff455d74e4fb2f95daf |
18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: Cleanup, redundant statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170453 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
44fd0bcc40e04cf9aaaf0f33744ae4decbb656c3 |
18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: Heuristics, compare latency more precisely. It matters more for some targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170452 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
9c676c2941343aa5c3f933eb0dd97b22cca3d6f4 |
18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: Remove SchedRemainder::IsResourceLimited. I don't know how to compute it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170451 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
d453960f92993600c56e5b4c004cadca9d4f7dc8 |
18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: cleanup, use the proper iterator type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170450 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
071966f6bf2a535b318995cfa5d0f5b641fb4e14 |
18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: minor improvement, initialize remaining resources before the first scheduling decision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170449 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
edc3503ca5a4ab9133dd825dce4abd46bc4a3e08 |
18-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tighten the insert() API for bundled instructions. The normal insert() function takes an MBB::iterator position, and inserts a stand-alone MachineInstr as before. The insert() function that takes an MBB::instr_iterator position can insert instructions inside a bundle, and will now update the bundle flags correctly when that happens. When the insert position is between two bundles, it is unclear whether the instruction should be appended to the previous bundle, prepended to the next bundle, or stand on its own. The MBB::insert() function doesn't bundle the instruction in that case, use the MIBundleBuilder class for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170437 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
ca2dd36c395f5ead63572d45a2106b9d34d8ca90 |
18-Dec-2012 |
Hal Finkel <hfinkel@anl.gov> |
Check multiple register classes for inline asm tied registers A register can be associated with several distinct register classes. For example, on PPC, the floating point registers are each associated with both F4RC (which holds f32) and F8RC (which holds f64). As a result, this code would fail when provided with a floating point register and an f64 operand because it would happen to find the register in the F4RC class first and return that. From the F4RC class, SDAG would extract f32 as the register type and then assert because of the invalid implied conversion between the f64 value and the f32 register. Instead, search all register classes. If a register class containing the the requested register has the requested type, then return that register class. Otherwise, as before, return the first register class found that contains the requested register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
9f4692d2953b47e9037ccfe5709a6e75de3911d4 |
18-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tighten up the erase/remove API for bundled instructions. Most code is oblivious to bundles and uses the MBB::iterator which only visits whole bundles. MBB::erase() operates on whole bundles at a time as before. MBB::remove() now refuses to remove bundled instructions. It is not safe to remove all instructions in a bundle without deleting them since there is no way of returning pointers to all the removed instructions. MBB::remove_instr() and MBB::erase_instr() will now update bundle flags correctly, lifting individual instructions out of bundles while leaving the remaining bundle intact. The MachineInstr convenience functions are updated so eraseFromParent() erases a whole bundle as before eraseFromBundle() erases a single instruction, leaving the rest of its bundle. removeFromParent() refuses to operate on bundled instructions, and removeFromBundle() lifts a single instruction out of its bundle. These functions will no longer accidentally split or coalesce bundles - bundle flags are updated to preserve the existing bundling, and explicit bundleWith* / unbundleFrom* functions should be used to change the instruction bundling. This API update is still a work in progress. I am going to update APIs first so they maintain bundle flags automatically when possible. Then I'll add stricter verification of the bundle flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170384 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
|
3d170e64ca1af491e2aa58f882f93b8e8111eef8 |
17-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Revert/correct some FastISel changes in r170104 (EVT->MVT for TargetLowering::getRegClassFor). Some isSimple() guards were missing, or getSimpleVT() were hoisted too far, resulting in asserts on valid LLVM assembly input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a1032b7e4c405474f8a26c731873d413b1f1d25b |
17-Dec-2012 |
Craig Topper <craig.topper@gmail.com> |
Add debug prints for when optimizeLoadInstr folds a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170298 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
0641bd7399c8c3269779b0ba2de47d02524725ba |
16-Dec-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Declare class DwarfDebug before use instead of relying on a forward declaration from some other unrelated header. Patch by Kai. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170284 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
2c3a4641a7785da78839caf574277df9cd93b52c |
16-Dec-2012 |
Reed Kotler <rkotler@mips.com> |
This patch is needed to make c++ exceptions work for mips16. Mips16 is really a processor decoding mode (ala thumb 1) and in the same program, mips16 and mips32 functions can exist and can call each other. If a jal type instruction encounters an address with the lower bit set, then the processor switches to mips16 mode (if it is not already in it). If the lower bit is not set, then it switches to mips32 mode. The linker knows which functions are mips16 and which are mips32. When relocation is performed on code labels, this lower order bit is set if the code label is a mips16 code label. In general this works just fine, however when creating exception handling tables and dwarf, there are cases where you don't want this lower order bit added in. This has been traditionally distinguished in gas assembly source by using a different syntax for the label. lab1: ; this will cause the lower order bit to be added lab2=. ; this will not cause the lower order bit to be added In some cases, it does not matter because in dwarf and debug tables the difference of two labels is used and in that case the lower order bits subtract each other out. To fix this, I have added to mcstreamer the notion of a debuglabel. The default is for label and debug label to be the same. So calling EmitLabel and EmitDebugLabel produce the same result. For various reasons, there is only one set of labels that needs to be modified for the mips exceptions to work. These are the "$eh_func_beginXXX" labels. Mips overrides the debug label suffix from ":" to "=." . This initial patch fixes exceptions. More changes most likely will be needed to DwarfCFException to make all of this work for actual debugging. These changes will be to emit debug labels in some places where a simple label is emitted now. Some historical discussion on this from gcc can be found at: http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00623.html http://gcc.gnu.org/ml/gcc-patches/2008-11/msg01273.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170279 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
b1e66d0c4fed6f162424fd5257cedf0d2e705152 |
15-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
To simplify some code move the unit emission into the holders. Make emitDIE public accordingly. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170258 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
cf6b8ad784c7e5e64beb9e26c43176eb38b1b68b |
15-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Use begin and end label names from the section for info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170257 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
702474dbb2d4fbaf7b93bcccd71b7b80a8ec2817 |
14-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getLoadExtAction to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
caf946edf3478fcd00a572de380d9bf0fc00fd26 |
14-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the new MI bundling API in MachineInstrBundle itself. The new API is higher level than just manipulating the bundle flags directly, and the setIsInsideBundle() function will disappear soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170159 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
01bc2b39a4cbe76537e11411038bb834bceaf8a0 |
13-Dec-2012 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: add support to mark member variables as artificial This is the LLVM portion of r170154. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
009e1e21d4e4d26d4aeaeeb5063c0b4470572ef7 |
13-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::setTypeAction to take an MVT, instead fo EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
860e7cdab9d5eceda5ac52ae0ddfb4bdab0067f2 |
13-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getRepRegClassFor to take an MVT, instead of EVT. Accordingly, change RegDefIter to contain MVTs instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170140 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
a61b17c18a67f1b3faef2f2108379c4337ce9bb7 |
13-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getRegClassFor to take an MVT, instead of EVT. Accordingly, add helper funtions getSimpleValueType (in parallel to getValueType) in SDValue, SDNode, and TargetLowering. This is the first, in a series of patches. This is the second attempt. In the first attempt (r169837), a few getSimpleVT() were hoisted too far, detected by bootstrap failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170104 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ResourcePriorityQueue.cpp
electionDAG/SelectionDAGBuilder.cpp
|
44fedbad3a3f57aa27ae2b5ac82b21679bf7fe00 |
13-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Use default label name for a section in emitting abbreviation section to help prep some code to be split about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170088 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9a65a01eeb97cdc10ca6b97ade3f9f8aba11fa9f |
13-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in DAGCombiner::MatchBSwapHWord. Make sure the node has operands before referencing them. rdar://12868039 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170078 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5399d2502acaf96fe8420e61913e77f0b23650ff |
12-Dec-2012 |
Pedro Artigas <partigas@apple.com> |
Make the MCStreamer have a reset method and call that after finalization of the asm printer, also changed MCContext to a single reset only method for simplicity as requested on the list git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170041 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
|
a16e49d56f6349c12da2b561da00c22e13eda09b |
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix a logic bug in inline expansion of memcpy / memset with an overlapping load / store pair. It's not legal to use a wider load than the size of the remaining bytes if it's the first pair of load / store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
946a3a9f22c967d5432eaab5fa464b91343477cd |
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Sorry about the churn. One more change to getOptimalMemOpType() hook. Did I mention the inline memcpy / memset expansion code is a mess? This patch split the ZeroOrLdSrc argument into two: IsMemset and ZeroMemset. The first indicates whether it is expanding a memset or a memcpy / memmove. The later is whether the memset is a memset of zero. It's totally possible (likely even) that targets may want to do different things for memcpy and memset of zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7d34267df63e23be1957f738de783c145febb7af |
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
- Rename isLegalMemOpType to isSafeMemOpType. "Legal" is a very overloade term. Also added more comments to explain why it is generally ok to return true. - Rename getOptimalMemOpType argument IsZeroVal to ZeroOrLdSrc. It's meant to be true for loaded source (memcpy) or zero constants (memset). The poor name choice is probably some kind of legacy issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
981b96376a99dacced70cc9b1e870968f426331a |
12-Dec-2012 |
Manman Ren <mren@apple.com> |
DAGCombine: clamp hi bit in APInt::getBitsSet to avoid assertion rdar://12838504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
61f4dfe3693bf68b20748d82ac4dd9bf2f356699 |
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Avoid using lossy load / stores for memcpy / memset expansion. e.g. f64 load / store on non-SSE2 x86 targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169944 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e07f85eb76a0254d3adbdf8b5d61ff5c07858cef |
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Replace TargetLowering::isIntImmLegal() with ScalarTargetTransformInfo::getIntImmCost() instead. "Legal" is a poorly defined term for something like integer immediate materialization. It is always possible to materialize an integer immediate. Whether to use it for memcpy expansion is more a "cost" conceern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169929 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0b944ee36f85ff0af849f35dfb59dced15dcde5a |
11-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Update some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169907 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8293b7b8b1c4372095f86097da33f6cc63330289 |
11-Dec-2012 |
Joel Jones <joel_k_jones@apple.com> |
Add comment for load folding git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169880 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
34525f9ac098c1c6bc9002886d6da3039a284fd2 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Revert EVT->MVT changes, r169836-169851, due to buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169854 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/ResourcePriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/TargetLowering.cpp
|
05749cff9b045505f08313b4c2d1bd9a4fb84970 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change RegVT in BitTestBlock and RegsForValue, to contain MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
47fd10f2fc45d280308b77ed4eda16f3c9c88248 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getTypeForExtArgOrReturn to take and return MVTs, instead of EVTs. Accordingly, add bitsLT (and similar) to MVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1d367e9bccf1f374a92c4337251ea541118fdcc9 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change a parameter of TargetLowering::getVectorTypeBreakdown to MVT, from EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
2d916231ff503b995bf3b65a338c9bf0d84ee7c7 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::RegisterTypeForVT to contain MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169848 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
235c75cc2190c40f5785059ec1767e44da5c5401 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::TransformToType to contain MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
bade0345d190427a08b2b947bc94f4d8ca5d7717 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::findRepresentativeClass to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
bb2543bb0e38495cd655be3eadcb9dd008ac56d2 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getTypeToPromoteTo to take and return MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169844 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
|
204301f0459c1deb6c535723760c848ba2fcd42b |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::isCondCodeLegal to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
aff674331ebb54e74baa88532ee587d741a430a2 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getCondCodeAction to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169842 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
3166283ac169e86e9718bee69850b94c1bc27727 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getTruncStoreAction to take MVTs, instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169841 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
|
ffa03b7981e322d6c9ba8b9cc18cae282ce3b587 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getLoadExtAction to take an MVT, instead of EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
968947766b17bc1a6f27e556f9f340de2504e92d |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::setTypeAction to take an MVT, instead fo EVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169839 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
aa7744d75fc1769ccc12c65c07bb5b82afa58330 |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getRepRegClassFor to take an MVT, instead of EVT. Accordingly, change RegDefIter to contain MVTs instead of EVTs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169838 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
8163ca76f0b0d336c5436364ffb3b85be1162e7a |
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getRegClassFor to take an MVT, instead of EVT. Accordingly, add helper funtions getSimpleValueType (in parallel to getValueType) in SDValue, SDNode, and TargetLowering. This is the first, in a series of patches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169837 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ResourcePriorityQueue.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1c49fda408ae5ba90fdaf1b274edd1119aea58b7 |
11-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a miscompile in the DAG combiner. Previously, we would incorrectly try to reduce the width of this load, and would end up transforming: (truncate (lshr (sextload i48 <ptr> as i64), 32) to i32) to (truncate (zextload i32 <ptr+4> as i64) to i32) We lost the sext attached to the load while building the narrower i32 load, and replaced it with a zext because lshr always zext's the results. Instead, bail out of this combine when there is a conflict between a sextload and a zext narrowing. The rest of the DAG combiner still optimize the code down to the proper single instruction: movswl 6(...),%eax Which is exactly what we wanted. Previously we read past the end *and* missed the sign extension: movl 6(...), %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169802 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
425e951734c3a0615e22ec94ffa51cc16ce6e483 |
11-Dec-2012 |
Chad Rosier <mcrosier@apple.com> |
Fall back to the selection dag isel to select tail calls. This shouldn't affect codegen for -O0 compiles as tail call markers are not emitted in unoptimized compiles. Testing with the external/internal nightly test suite reveals no change in compile time performance. Testing with -O1, -O2 and -O3 with fast-isel enabled did not cause any compile-time or execution-time failures. All tests were performed on my x86 machine. I'll monitor our arm testers to ensure no regressions occur there. In an upcoming clang patch I will be marking the objc_autoreleaseReturnValue and objc_retainAutoreleaseReturnValue as tail calls unconditionally. While it's theoretically true that this is just an optimization, it's an optimization that we very much want to happen even at -O0, or else ARC applications become substantially harder to debug. Part of rdar://12553082 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169796 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
0e3e9b79f6e471b46438251249f18121408e5189 |
11-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Refactor out the abbreviation handling into a separate class that controls each of the abbreviation sets (only a single one at the moment) and computes offsets separately as well for each set of DIEs. No real function change, ordering of abbreviations for the skeleton CU changed but only because we're computing in a separate order. Fix the testcase not to care. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169793 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
376642ed620ecae05b68c7bc81f79aeb2065abe0 |
11-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Some enhancements for memcpy / memset inline expansion. 1. Teach it to use overlapping unaligned load / store to copy / set the trailing bytes. e.g. On 86, use two pairs of movups / movaps for 17 - 31 byte copies. 2. Use f64 for memcpy / memset on targets where i64 is not legal but f64 is. e.g. x86 and ARM. 3. When memcpy from a constant string, do *not* replace the load with a constant if it's not possible to materialize an integer immediate with a single instruction (required a new target hook: TLI.isIntImmLegal()). 4. Use unaligned load / stores more aggressively if target hooks indicates they are "fast". 5. Update ARM target hooks to use unaligned load / stores. e.g. vld1.8 / vst1.8. Also increase the threshold to something reasonable (8 for memset, 4 pairs for memcpy). This significantly improves Dhrystone, up to 50% on ARM iOS devices. rdar://12760078 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
07f6a4fde0a1b081fbefd986345c9b2f4f85e88a |
10-Dec-2012 |
Lang Hames <lhames@gmail.com> |
Defer call to InitSections until after MCContext has been initialized. If InitSections is called before the MCContext is initialized it could cause duplicate temporary symbols to be emitted later (after context initialization resets the temporary label counter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169785 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
617d18385f7fc33082c91710676a01ed528555af |
10-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Rearrange vars and make comments more obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169780 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
642630ef2baeeb84763bc30dbc2e8b154d54d200 |
10-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Remove blank line at top of file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9171fb9cfb25b2e2db64131c15b497de459f69fc |
10-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Fix a coding style nit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169776 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f45d11b56bffeaec94291f330dc9f7f7aae5a741 |
10-Dec-2012 |
Tom Stellard <thomas.stellard@amd.com> |
LegalizeDAG: Allow type promotion of scalar loads git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8b7f16e9719a64973e3b4d35e122222c26839c44 |
10-Dec-2012 |
Tom Stellard <thomas.stellard@amd.com> |
LegalizeDAG: Allow type promotion for scalar stores git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169772 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4daaed1c7077deb185628a86252afdbbbaf5d3db |
10-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Use the somewhat semantic term "split dwarf" it more matches what's going on and makes a lot of the terminology in comments make more sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169758 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9ec87b3c86151d065b58a1f4f94c37034aae97da |
10-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Delete the FissionCU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169757 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
28bd25a06ba3f3fa493fde97344e095b6987988c |
10-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Reorder fission variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169756 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f21831073ca474601620d1a29258176b0deaedb2 |
10-Dec-2012 |
Hal Finkel <hfinkel@anl.gov> |
Use GetUnderlyingObjects in misched misched used GetUnderlyingObject in order to break false load/store dependencies, and the -enable-aa-sched-mi feature similarly relied on GetUnderlyingObject in order to ensure it is safe to use the aliasing analysis. Unfortunately, GetUnderlyingObject does not recurse through phi nodes, and so (especially due to LSR) all of these mechanisms failed for induction-variable-dependent loads and stores inside loops. This change replaces uses of GetUnderlyingObject with GetUnderlyingObjects (which will recurse through phi and select instructions) in misched. Andy reviewed, tested and simplified this patch; Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169744 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
48b509c77318cc6e753513ca5dcdd67e18094235 |
10-Dec-2012 |
Craig Topper <craig.topper@gmail.com> |
Teach DAG combine to handle vector add/sub with vectors of all 0s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5a0f372feb994a07ce40687c5ecff2e2c792bf24 |
09-Dec-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove extra blank line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9472b4fbf96fb840eb416acd00bbee173c62e8da |
08-Dec-2012 |
Craig Topper <craig.topper@gmail.com> |
Teach DAG combine to handle vector logical operations with vectors of all 1s or all 0s. These cases can show up when vectors are split for legalizing. Fix some tests that were dependent on these cases not being combined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169684 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fad649a5b173f8cfdbbbbde8649ed66afd1129c1 |
07-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add higher-level API for dealing with bundled MachineInstrs. This is still a work in progress. The purpose is to make bundling and unbundling operations explicit, and to catch errors where bundles are broken or created inadvertently. The old IsInsideBundle flag is replaced by two MI flags: BundledPred which has the same meaning as IsInsideBundle, and BundledSucc which is set on instructions that are bundled with a successor. Having two flags provdes redundancy to detect when a bundle is inadvertently torn by a splice() or insert(), and it makes it possible to write bundle iterators that don't need to peek at adjacent instructions. The new flags can't be manipulated directly (once setIsInsideBundle is gone). Instead there are MI functions to make and break bundle bonds. The setIsInsideBundle function will be removed in a future commit. It should be replaced by bundleWithPred(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169583 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
873a1dd7d679ac9a9a92a93a4d2bbb157878efb4 |
06-Dec-2012 |
Pedro Artigas <partigas@apple.com> |
fixed valgrind issues of prior commit, this change applies r169456 changes back to the tree with fixes. on darwin no valgrind issues exist in the tests that used to fail. original change description: change MCContext to work on the doInitialization/doFinalization model reviewed by Evan Cheng <evan.cheng@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169553 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
2766a47310b05228e9bbc536d9f3a593fc31cd12 |
06-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Replace r169459 with something safer. Rather than having computeMaskedBits to understand target implementation of any_extend / extload, just generate zero_extend in place of any_extend for liveouts when the target knows the zero_extend will be implicit (e.g. ARM ldrb / ldrh) or folded (e.g. x86 movz). rdar://12771555 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
dde785cd70a4a7418f310a0d86afcbfe3dd8dbfe |
06-Dec-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix a bug in the code that merges consecutive stores. Previously we did not check if loads that happen in between stores alias with the first store in the chain, only with the second store onwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6afe478e005bf9f112b32b7ec25879475adc1915 |
06-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
s/getLowerBoundDefault/getDefaultLowerBound/ for consistency. Also put the more natural check first in the if-then statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169486 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
222c2fd60d0cbe676f3f316a4d62a75762a83c40 |
06-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Handle non-default array bounds. Some languages, e.g. Ada and Pascal, allow you to specify that the array bounds are different from the default (1 in these cases). If we have a lower bound that's non-default, then we emit the lower bound. We also calculate the correct upper bound in those cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
c7078924f044584d9e9b277862d34d5b43ff2b1e |
06-Dec-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r169456, "change MCContext to work on the doInitialization/doFinalization model" It broke many builders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169462 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
8a7186dbc2df4879f511b2ae6f2bce25ad37d965 |
06-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Let targets provide hooks that compute known zero and ones for any_extend and extload's. If they are implemented as zero-extend, or implicitly zero-extend, then this can enable more demanded bits optimizations. e.g. define void @foo(i16* %ptr, i32 %a) nounwind { entry: %tmp1 = icmp ult i32 %a, 100 br i1 %tmp1, label %bb1, label %bb2 bb1: %tmp2 = load i16* %ptr, align 2 br label %bb2 bb2: %tmp3 = phi i16 [ 0, %entry ], [ %tmp2, %bb1 ] %cmp = icmp ult i16 %tmp3, 24 br i1 %cmp, label %bb3, label %exit bb3: call void @bar() nounwind br label %exit exit: ret void } This compiles to the followings before: push {lr} mov r2, #0 cmp r1, #99 bhi LBB0_2 @ BB#1: @ %bb1 ldrh r2, [r0] LBB0_2: @ %bb2 uxth r0, r2 cmp r0, #23 bhi LBB0_4 @ BB#3: @ %bb3 bl _bar LBB0_4: @ %exit pop {lr} bx lr The uxth is not needed since ldrh implicitly zero-extend the high bits. With this change it's eliminated. rdar://12771555 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
486a7ad94fc948a0f52c32c860cdb2b166741249 |
06-Dec-2012 |
Pedro Artigas <partigas@apple.com> |
change MCContext to work on the doInitialization/doFinalization model reviewed by Evan Cheng <evan.cheng@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169456 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
22af4bc07bb81c22b15d7a63fb566efcab913bd9 |
06-Dec-2012 |
Andrew Trick <atrick@apple.com> |
RegPressureTracker::dump(): Remove unnecessary argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169443 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
f3329c419b1010089e8aaf3d43b811ba12d94c8a |
05-Dec-2012 |
Andrew Trick <atrick@apple.com> |
RegisterPressureTracker: fix findUseBetween to handle DebugValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169427 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
f54f61538688eff25f392c2062b3a654394333aa |
05-Dec-2012 |
Andrew Trick <atrick@apple.com> |
RegisterPressureTracker: unify virtual registers and physical regunits. Now that live register units are tracked individually, the code can be simplified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169426 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
553c42cefc9abe1f10ee33d34a12498b8ac12fe6 |
05-Dec-2012 |
Andrew Trick <atrick@apple.com> |
RegisterPresssureTracker: Track live physical register by unit. This is much simpler to reason about, more efficient, and fixes some corner cases involving implicit super-register defs. Fixed rdar://12797931. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169425 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
b47a4f7a0a780eb256cf090e01c5a002fff6684e |
05-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused MachineInstr constructors. A MachineInstr can only ever be constructed by CreateMachineInstr() and CloneMachineInstr(), and those factories don't use the removed constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169395 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d1abec365aa89a8497d9b615ccb4b21c72da9447 |
05-Dec-2012 |
Pedro Artigas <partigas@apple.com> |
- Added calls to doInitialization/doFinalization to immutable passes - fixed ordering of calls to doFinalization to be the reverse of the pass run order due to potential dependencies - fixed machine module info to operate in the doInitialization/doFinalization model, also fixes some FIXMEs reviewed by Evan Cheng <evan.cheng@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169391 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
17cf53519905acb69c567173bedd2df1c8e45523 |
05-Dec-2012 |
Andrew Trick <atrick@apple.com> |
Added RegisterPressureTracker::dump() for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169359 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
f7999fe1cb2c2bdb0a4080efabb4743719ce45ca |
04-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Speed up the AllocationOrder class a bit. Allow the central functions to be inlined, and use the argumentless isHint() function when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169319 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
llocationOrder.h
egAllocGreedy.cpp
|
836cfc46b38969acc2f74af099b51d0b567f498d |
04-Dec-2012 |
David Blaikie <dblaikie@gmail.com> |
Comment change made in r169304 as requested by Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169315 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9493dae613847b01b79914502f337814fe3e00ac |
04-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Use the 'count' attribute to calculate the upper bound of an array. The count attribute is more accurate with regards to the size of an array. It also obviates the upper bound attribute in the subrange. We can also better handle an unbound array by setting the count to -1 instead of the lower bound to 1 and upper bound to 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169312 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
b36c531653913cdea211a25d45350e8b5bfbd262 |
04-Dec-2012 |
David Blaikie <dblaikie@gmail.com> |
Reapply r160148 (reverted in r163570) fixing spurious breakpoints in modern GDB This reapplies the fix for PR13303 now with more justification. Based on my execution of the GDB 7.5 test suite this results in: expected passes: 16101 -> 20890 (+30%) unexpected failures: 4826 -> 637 (-77%) There are 23 checks that used to pass and now fail. They are all in gdb.reverse. Investigating a few looks like they were accidentally passing due to extra breakpoints being set by this bug. They're generally due to the difference in end location between gcc and clang, the test suite is trying to set breakpoints on the closing '}' that clang doesn't associate with any instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169304 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a1514e24cc24b050f53a12650e047799358833a1 |
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort includes for all of the .h files under the 'lib' tree. These were missed in the first pass because the script didn't yet handle include guards. Note that the script is now able to handle all of these headers without manual edits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169224 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.h
llocationOrder.cpp
llocationOrder.h
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.h
riticalAntiDepBreaker.h
rologEpilogInserter.h
egAllocBase.h
electionDAG/InstrEmitter.h
electionDAG/LegalizeTypes.h
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAGBuilder.h
|
a7645a3c66668da5e2bc772a8e5ab03dc301610c |
04-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Add a 'count' field to the DWARF subrange. The count field is necessary because there isn't a difference between the 'lo' and 'hi' attributes for a one-element array and a zero-element array. When the count is '0', we know that this is a zero-element array. When it's >=1, then it's a normal constant sized array. When it's -1, then the array is unbounded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169218 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
f94e8c4cafc6a2ce7ff5c0c46084d3c38c2921f6 |
04-Dec-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Simplify code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ResourcePriorityQueue.cpp
|
69261a644298bff1497d46c8cd38d688670f307b |
04-Dec-2012 |
Manman Ren <mren@apple.com> |
Stack Alignment: when creating stack objects in MachineFrameInfo, make sure the alignment is clamped to TargetFrameLowering.getStackAlignment if the target does not support stack realignment or the option "realign-stack" is off. This will cause miscompile if the address is treated as aligned and add is replaced with or in DAGCombine. Added a bool StackRealignable to TargetFrameLowering to check whether stack realignment is implemented for the target. Also added a bool RealignOption to MachineFrameInfo to check whether the option "realign-stack" is on. rdar://12713765 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169197 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
46608c0f648af75dd7260c3d881ca17353bb5982 |
04-Dec-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Use dyn_cast instead of isa and cast. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
46f6fe7a45964a4aa1c6a0f52b9991af8c30cb0b |
04-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove VirtRegMap::getRegAllocPref(). Now that there can be multiple hint registers from targets, it doesn't make sense to have a function that returns 'the' preferred register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169190 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
980bddfb1c26e2e9374d1645f9ae26c44742606f |
04-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MRI::getSimpleHint() instead of getRegAllocPref() in remaining cases. Targets can provide multiple hints now, so getRegAllocPref() doesn't make sense any longer because it only returns one preferred register. Replace it with getSimpleHint() in the remaining heuristics. This function only git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169188 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
irtRegMap.cpp
|
dc8126bbb89cda8c87bf324e3495ceb3164ae7cb |
04-Dec-2012 |
Manman Ren <mren@apple.com> |
Stack Alignment: move functions from header file MachineFrameInfo.h. No functional change for this commit. The follow-up patch will add more stuff to these functions. rdar://12713765 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169186 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
fc6374439edf2f74da4026f4cea8e341d092be5c |
04-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add VirtRegMap::hasKnownPreference(). Virtual registers with a known preferred register are prioritized by RAGreedy. This function makes the condition explicit without depending on getRegAllocPref(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169179 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
irtRegMap.cpp
|
fc29db1214736d6ed84d60707db28de346af3feb |
03-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the new getRegAllocationHints() hook from AllocationOrder. This simplifies the hinting code quite a bit while making the targets easier to write at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169173 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
llocationOrder.h
|
49eb628c21b358380b76df82aa3dfe0baab4c6ec |
03-Dec-2012 |
Pedro Artigas <partigas@apple.com> |
moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo reviewed by Evan Cheng <evan.cheng@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169164 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
7eafc3e7be067709c6fcdae7b7fc4994c7ec2377 |
03-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a new hook for providing register allocator hints more flexibly. The TargetRegisterInfo::getRegAllocationHints() function is going to replace the existing mechanisms for providing target-dependent hints to the register allocator: ResolveRegAllocHint() and getRawAllocationOrder(). The new hook is more flexible because it allows the target to provide multiple preferred candidate registers for each virtual register, and it is easier to use because targets are not required to return a reference to a constant array like getRawAllocationOrder(). An optional VirtRegMap argument can be used to provide target-dependent hints that depend on the provisional assignments of other virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169154 91177308-0d34-0410-b5e6-96231b3b80d8
argetRegisterInfo.cpp
|
d4a05e0c2c871a0acbadfe572abbdb99158871bd |
03-Dec-2012 |
Eli Bendersky <eliben@google.com> |
Fix PR12942: Allow two CUs to be generated from the same source file. Thanks Eric for the review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169142 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
nalysis.cpp
smPrinter/ARMException.cpp
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/DIE.cpp
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
smPrinter/Win64Exception.cpp
ranchFolding.cpp
allingConvLower.cpp
odePlacementOpt.cpp
riticalAntiDepBreaker.cpp
FAPacketizer.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
arlyIfConversion.cpp
xecutionDepsFix.cpp
xpandISelPseudos.cpp
xpandPostRAPseudos.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
nlineSpiller.cpp
nterferenceCache.cpp
ntrinsicLowering.cpp
LVMTargetMachine.cpp
exicalScopes.cpp
iveDebugVariables.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveIntervalUnion.cpp
iveRangeEdit.cpp
iveRegMatrix.cpp
iveStackAnalysis.cpp
iveVariables.cpp
ocalStackSlotAllocation.cpp
achineBasicBlock.cpp
achineBlockFrequencyInfo.cpp
achineBlockPlacement.cpp
achineBranchProbabilityInfo.cpp
achineCSE.cpp
achineCopyPropagation.cpp
achineFunction.cpp
achineFunctionPrinterPass.cpp
achineInstr.cpp
achineInstrBundle.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSSAUpdater.cpp
achineScheduler.cpp
achineSink.cpp
achineTraceMetrics.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIEliminationUtils.cpp
asses.cpp
eepholeOptimizer.cpp
ostRASchedulerList.cpp
rologEpilogInserter.cpp
seudoSourceValue.cpp
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterClassInfo.cpp
egisterCoalescer.cpp
egisterPressure.cpp
egisterScavenging.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ResourcePriorityQueue.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGVLIW.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
hrinkWrapping.cpp
jLjEHPrepare.cpp
piller.cpp
tackColoring.cpp
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
argetFrameLoweringImpl.cpp
argetInstrInfo.cpp
argetLoweringObjectFileImpl.cpp
argetRegisterInfo.cpp
argetSchedule.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
a569a80e58fd89f08600b002f2e46b60ed2ba554 |
02-Dec-2012 |
Nadav Rotem <nrotem@apple.com> |
Allow merging multiple store sequences on the same chain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169111 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
657b75b9946eae763725b413841dfd01ed12a051 |
01-Dec-2012 |
Andrew Trick <atrick@apple.com> |
misched: Fix RegisterPressureTracker handling of DebugVals. Assertion failed: (TopRPTracker.getPos() == RegionBegin && "bad initial Top tracker"). rdar://12790302. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169072 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
cheduleDAGInstrs.cpp
|
177d87ac8d974529b07430b2088f699ed279cd1d |
01-Dec-2012 |
Andrew Trick <atrick@apple.com> |
misched: Fix the DAG builder to handle an undef operand at ExitSU. Assertion failed: (VNI && "No value to read by operand") rdar://12790267. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169071 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
30fe61aa35ff12cdcbf5f94d8e3ab9a2d964654e |
01-Dec-2012 |
Andrew Trick <atrick@apple.com> |
misched: Fix LiveInterval update to better handle DebugVal. Assertion failed: (itr != mi2iMap.end() && "Instruction not found in maps.") rdar://12777252. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169070 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
67bdd42d1e538ce16e3bed98534d3fff0b4530fc |
01-Dec-2012 |
Andrew Trick <atrick@apple.com> |
misched: fix RegionBegin when DebugValues get shuffled to the top. assert (RemainingInstrs == 0 && "Instruction count mismatch!") rdar://12776937. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169069 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
8c3dccde92e50f5be7d14cef2a6db34ea6ae2bc0 |
01-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify REG_SEQUENCE lowering. The TwoAddressInstructionPass takes the machine code out of SSA form by expanding REG_SEQUENCE instructions into copies. It is no longer necessary to rewrite the registers used by a REG_SEQUENCE instruction because the new coalescer algorithm can do it now. REG_SEQUENCE is just converted to a sequence of sub-register copies now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169067 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
98e237fc69236f89ec35d6b69b264241af1e8107 |
01-Dec-2012 |
Eric Christopher <echristo@gmail.com> |
Add some first skeleton work for the DWARF5 Fission proposal. Emit part of the compile unit CU and start separating out information into the various sections that will be pulled out later. WIP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169061 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3e77747eba2173521d027033952b9a25785c7409 |
01-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert COPY instructions into KILLs if they have implicit defs. MachineCopyPropagation doesn't understand super-register liveness well enough to be able to remove implicit defs of super-registers. This fixes a problem in ARM/2012-01-26-CopyPropKills.ll that is exposed by an future TwoAddressInstructionPass change. The KILL instructions are removed before the machine code is emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169060 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
08510b14d4fe5d9b1a979fbee8a7aad11dbc6cea |
30-Nov-2012 |
Bill Wendling <isanbard@gmail.com> |
Replace r168930 with a more reasonable patch. The original patch removed a bunch of code that the SjLjEHPrepare pass placed into the entry block if all of the landing pads were removed during the CodeGenPrepare class. The more natural way of doing things is to run the CGP *before* we run the SjLjEHPrepare pass. Make it so! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169044 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
5cf823cd82778e3193a18feffeee69b2beb92c68 |
29-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
More comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168952 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
db62a883a78cef4ff63a699452368fefa4b3fefd |
29-Nov-2012 |
Justin Holewinski <jholewinski@nvidia.com> |
Cleanup recent addition of DAGTypeLegalizer::SplitVecOp_VSELECT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
5175fd990c898a49708d60b84e7838bead48f2cd |
29-Nov-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
misched: Recompute priority queue when DFSResults are updated. This was found by MSVC10's STL debug mode on a test from the test suite. Sadly std::is_heap isn't standard so there is no way to assert this without writing our own heap verify, which looks like overkill to me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168885 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
7f128ea00c5358729906a9b98f844e887a1c3d73 |
29-Nov-2012 |
Justin Holewinski <jholewinski@nvidia.com> |
Teach the legalizer how to handle operands for VSELECT nodes If we need to split the operand of a VSELECT, it must be the mask operand. We split the entire VSELECT operand with EXTRACT_SUBVECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
3d200255d5b93344c1ab0a5ba4b47a52cfa5893e |
29-Nov-2012 |
Justin Holewinski <jholewinski@nvidia.com> |
Allow targets to prefer TypeSplitVector over TypePromoteInteger when computing the legalization method for vectors For some targets, it is desirable to prefer scalarizing <N x i1> instead of promoting to a larger legal type, such as <N x i32>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168882 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
39b5c0c049a19c7a7feffc9506da07923cc136e4 |
29-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MCPhysReg for RegisterClassInfo allocation orders. This saves a bit of memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168852 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
llocationOrder.cpp
llocationOrder.h
riticalAntiDepBreaker.cpp
egAllocFast.cpp
egisterClassInfo.cpp
|
89bea17af235ea3a69485e73e54e71053c1bd936 |
29-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid rewriting instructions twice. This could cause miscompilations in targets where sub-register composition is not always idempotent (ARM). <rdar://problem/12758887> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168837 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
90e11dc8ada81015becd6f613152131e5c28a29d |
29-Nov-2012 |
Nadav Rotem <nrotem@apple.com> |
When combining consecutive stores allow loads in between the stores, if the loads do not alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cbefa15de4821975bb99fc6d74b3bdb42b2df45c |
28-Nov-2012 |
Stephen Hines <srhines@google.com> |
Remove TARGET_BUILD_VARIANT dependency from external/llvm. Bug: 7172695 Change-Id: I73aedcbefd36360fc68ba428be39cbab86eeee71
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
|
1ead68d769f27f6d68d4aaeffe4199fa2cacbc95 |
28-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the LiveRegMatrix analysis available to targets. No functional change, just moved header files. Targets can inject custom passes between register allocation and rewriting. This makes it possible to tweak the register allocation before rewriting, using the full global interference checking available from LiveRegMatrix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168806 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
nlineSpiller.cpp
nterferenceCache.h
iveDebugVariables.cpp
iveIntervalAnalysis.cpp
iveIntervalUnion.cpp
iveIntervalUnion.h
iveRangeEdit.cpp
iveRegMatrix.cpp
iveRegMatrix.h
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
piller.cpp
plitKit.cpp
irtRegMap.cpp
irtRegMap.h
|
8b1496c922b6a21296f7d42172df45bf205d5419 |
28-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Analysis that partitions the DAG into subtrees. This is a simple, cheap infrastructure for analyzing the shape of a DAG. It recognizes uniform DAGs that take the shape of bottom-up subtrees, such as the included matrix multiplication example. This is useful for heuristics that balance register pressure with ILP. Two canonical expressions of the heuristic are implemented in scheduling modes: -misched-ilpmin and -misched-ilpmax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168773 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
53e98a2c4aa7065f4136c5263b14192036c1e056 |
28-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: rename ScheduleDAGILP to ScheduleDFS to prepare for other heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168772 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
8f82a0867343058f4e01d640abbfae76af6886b4 |
28-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: better alias analysis. This fixes a hole in the "cheap" alias analysis logic implemented within the DAG builder itself, regardless of whether proper alias analysis is enabled. It now handles this pattern produced by LSR+CodeGenPrepare. %sunkaddr1 = ptrtoint * %obj to i64 %sunkaddr2 = add i64 %sunkaddr1, %lsr.iv %sunkaddr3 = inttoptr i64 %sunkaddr2 to i32* store i32 %v, i32* %sunkaddr3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168768 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
b422104f35b93b262cad8c2b8ba8c2f55ef6c1e4 |
28-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Debug output fix. Use an always valid iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168767 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
fa2d98632c77e5d9c305e97e5fa25d06f579127b |
28-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move the guts of TargetInstrInfoImpl into the TargetInstrInfo class. The *Impl class no longer serves a purpose now that the super-class implementation is in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168759 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
argetInstrInfo.cpp
argetInstrInfoImpl.cpp
|
11fad6ec660d2131e040ebdecc4433b359d05e5f |
28-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move Target{Instr,Register}Info.cpp into lib/CodeGen. The Target library is not allowed to depend on the large CodeGen library, but the TRI and TII classes provide abstract interfaces that require both caller and callee to link to CodeGen. The implementation files for these classes provide default implementations of some of the hooks. These methods may need to reference CodeGen, so they belong in that library. We already have a number of methods implemented in the TargetInstrInfoImpl sub-class because of that. I will merge that class into the parent next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168758 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
argetInstrInfo.cpp
argetRegisterInfo.cpp
|
18bb0545ff79b85ef424e95e2170e3a06f11b735 |
28-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
Revert r168630, r168631, and r168633 as these are causing nightly test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168751 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
egAllocBase.cpp
egAllocFast.cpp
egAllocPBQP.cpp
|
b6dc8655e193fa92c6d9233ad5f53ec21d4348cf |
27-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Attempt to make the comments for dwarf debug look more like the coding standard would like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4288502af9de9978283a83918301038a32512a66 |
27-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Reapply section moving, make sure string section is output last. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
39834da697e5a6d0198a6a802133ce351c871904 |
27-Nov-2012 |
Manman Ren <mren@apple.com> |
CSE: allow PerformTrivialCoalescing to check copies across basic block boundaries. Given the following case: BB0 %vreg1<def> = SUBrr %vreg0, %vreg7 %vreg2<def> = COPY %vreg7 BB1 %vreg10<def> = SUBrr %vreg0, %vreg2 We should be able to CSE between SUBrr in BB0 and SUBrr in BB1. rdar://12462006 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168717 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
9e3c3886d0b42b80f9eb38067fa85d96c75a4ec5 |
27-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove duplicated #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168712 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
dba37a3c43b79be8a54d5e07ff390b621da5958d |
27-Nov-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
Never use .lcomm on platforms where it does not accept an alignment argument. Instead, use a pair of .local and .comm directives. This avoids spurious differences between binaries built by the integrated assembler vs. those built by the external assembler, since the external assembler may impose alignment requirements on .lcomm symbols where the integrated assembler does not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168704 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fcdbecbbaf110c6dff371655d6aaa8f58b2a22f3 |
27-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Revert rearrangement of debug info sections to unblock the bots and O0 + debug codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168680 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
df22702db0b74c14782e00e36e9e9c5df56182b6 |
27-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168670 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
388ffa7f663393ed91b1a07237d1c34710daeaa1 |
27-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168664 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
a823f18af4c9c2de5118c8ed52374664a7dfd463 |
27-Nov-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
llvm/CodeGen: Remove empty files in r168659. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168663 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopRanges.cpp
|
07cde58fa02da9fba16d47b645f3d8f541144648 |
27-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unused forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168660 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
af650354a1de1254c0937a9f6e9c88f447ad3889 |
27-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unused MachineLoopRanges analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168659 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
iveIntervalUnion.cpp
iveIntervalUnion.h
achineLoopRanges.cpp
|
4d265332341360a7cb5b15e2c2f0c675a7fed766 |
27-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Make comment names match function names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168644 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
74802f7e43dada1411dd456e998e7650c360e1cf |
27-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Add in sections for the fission case (no change so incorrect) and add a TODO for starting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168643 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8ba01175cce553091b7367c4edb758b32266cc15 |
27-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Reorder section output ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bdab800b02d8a3fca276d2df2119e036a023c9df |
27-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8d20b5f9ff609e70fae5c865931ab0f29e639d9c |
27-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
Add an assertion to ensure freezeReservedRegs() is only ever called once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168633 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
728aede2e9b436c7c3748379f01aa7ca42cd917e |
27-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
Now that the X86 Maximal Stack Alignment Check pass has been removed (i.e., r168627), we no longer need to call the freezeReservedRegs() function a second time. Previously, this pass was conservatively adding the FP to the set of reserved registers, requiring the second update to the reserved registers. rdar://12719844 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168631 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
egAllocPBQP.cpp
|
216532ac0a7b333e814cc86b7c91358db6a7e819 |
27-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
Now that the X86 Maximal Stack Alignment Check pass has been removed (i.e., r168627), we no longer need to call the freezeReservedRegs() function a second time. Previously, this pass was conservatively adding the FP to the set of reserved registers, requiring the second update to the reserved registers. rdar://12719844 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168630 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
|
bb8ddc7e4ff1f06c7289865bbf9e1fa4632d1c8e |
26-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Don't use iterator after being erased. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168622 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
ec66ac5318f8546fcb002e1f26063144e224f279 |
26-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unneeded #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168608 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
327e4cba0929f65bf32ecbbc9dc664793e5b51f7 |
25-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Refactor to make helper method static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168557 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
c1aa638fff4d253286c601ae9fdf9e98d4bb1a3d |
25-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove duplicate check of LimitFloatPrecision. It was already checked earlier before IsExp10 could be set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
915562e7620ef8a307c20df95bfb07f8514cf413 |
25-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Factor common code out of individual if blocks into common tail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
134f78cf4166841227ad125363066507f484ad5d |
25-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove redundant calls to getCurDebugLoc in visitIntrinsicCall. It's already called at the start of the function and captured in a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
538cd48455e78bb3f1bf3573ebb2ea266a21cd24 |
24-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Refactor a bit to make some helper methods static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
b315772cc9d52fef49bbe9b4e8d5e1bdf618755a |
24-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Factor some common code out of individual if blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5d1e089eaa4ab0080da4e5f61379bba596a4f2b5 |
23-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Refactor a bit to make some helper functions static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
d5f03186e5b5c20225ba05d4506100ad763c79a1 |
23-Nov-2012 |
Patrik Hägglund <patrik.h.hagglund@ericsson.com> |
Cleanup: Simplify loop end logic in computeRegisterProperties(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168507 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
9f696c815719ceabbba8443e8039827ebcdebe44 |
22-Nov-2012 |
Eli Bendersky <eliben@google.com> |
Fix 80-col violation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168498 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
b47ec4087cc1d4cdc647cce7acf03b5c34f91722 |
22-Nov-2012 |
Lang Hames <lhames@gmail.com> |
llvm.fmuladd.* lowering should be checking isOperationLegalOrCustom, rather than isOperationLegal. Thanks to Craig Topper for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4117bec41b955f4b6d22e600f4a04d968201701d |
22-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Pull some code out into functions to make rearranging them a bit easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168481 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8b4310b8061d3d5ef26a4a313f53804a8ad02fc9 |
21-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168402 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
7ee5f5d61f18deda7412fdff4c2729c59a436b27 |
21-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Update for some of the coding standard before rearranging functions around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168401 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b8a101f39a05818138795c929d984ad5714f91dd |
21-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Update some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
e6ad6acb1922f54d0eac34fe6b60bca601401e23 |
21-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Update and add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168399 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
c82fbf4cb19223ce483a249f6940bcf5e7067193 |
21-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168398 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
7dc68db9f006959775b0689b31a36e4be4930126 |
21-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Remove constness from this, it modifies the output stream as does everything else underneath. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168395 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
fbd19750383cf6a74ac8bfbca09956a0d7945143 |
20-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Remove unused function argument, add a bit to the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168387 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
aaa50b9bc5e8707015ff31dce0a3665600f6b440 |
20-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168384 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
dcc675a4ac735fd6cec66eaf481458fccfd5e96c |
20-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168383 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
310f248c22c5a20eaa4de1e612af3338a89144f3 |
20-Nov-2012 |
Tim Northover <Tim.Northover@arm.com> |
Fix physical register liveness calculations: + Take account of clobbers + Give outputs priority over inputs since they happen later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168360 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstrBundle.cpp
|
c4639d6ec2cf1e66d0bbc22db9ec530419b18784 |
19-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Remove a function argument and propagate const around accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168338 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0f1c7f6216c4dfdd4593bef077f7e1e082b624f9 |
19-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Whitespace and 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168337 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
239938ff77ef43c753881b030438f89a3dfc72c4 |
19-Nov-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make AsmPrinter::EmitTTypeReference() more robust - put the zero GV check inside, so we won't forget it at the caller side. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168328 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfException.cpp
|
2386fc8daa682c7b6c2479cd9c9c3113581c41db |
19-Nov-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out type info emission into separate routine. It turned out that ARM wants different layout of type infos. This is yet another patch in attempt to fix PR7187 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
97c3472bf915ce9124f682f6c8ce9e4baff7c284 |
19-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Move section label emission to module end. Nothing should be depending on them being emitted before the text and/or data sections and testing didn't uncover any. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168321 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e42561ad0c98b132515db89f2994c96d93e9587b |
19-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle mixed normal and early-clobber defs on inline asm. PR14376. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168320 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
8f54a53f0ed2091e05d5ca87d239487da292cbbc |
19-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Move else onto line with preceding closing brace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168294 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
e1f663933a59a04c6c01f12e140088cf2370b1f4 |
17-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Broaden isSchedulingBoundary to check aliases of SP. On PPC the stack pointer is X1, but ADJCALLSTACK writes R1. Fixes PR14315: Register regmask dependency problem with misched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168248 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
43147afd71f6da4e7369a4ab9c681e5b4e0cf8c7 |
17-Nov-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Mark FP_EXTEND form v2f32 to v2f64 as "expand" for ARM NEON. Patch by Pete Couperus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
cdf493dd0b74fa8a784bd1ea690351e0f4b608ad |
16-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Use array_pod_sort instead of std::sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168203 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
08ac4691c61c4fab449ecf34913fa8ac9fde3517 |
16-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove conditions from 'else if' that were guaranteed by preceding 'if'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
df0ea8dcad612185a23b12e9ddf894b9ce744561 |
16-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Factor out the final FADD that's common to multiple code paths in the visitLog* functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9bd4dd742e20e99e8bc31c510ee790c95f680993 |
16-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Factor some common code to reduce compile size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
846ce8ea67362d8b6d93ebae66f23e3c68dce9df |
15-Nov-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Mark FP_ROUND for converting NEON v2f64 to v2f32 as expand. Add a missing case to vector legalization so this actually works. Patch by Pete Couperus. Fixes PR12540. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
f38aa4272c2fcebae4ad10b21ea29874d0edef80 |
15-Nov-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
Use std::stable_sort instead of std::sort when sorting stack slots to guarantee deterministic code generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168074 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
4823be3be1d87632fbd51ce8e51a58ee5e44b115 |
15-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
[reg scavenger] Fix the isUsed/isAliasUsed functions so as to not report a false positive. In this particular case, R6 was being spilled by the register scavenger when it was in fact dead. The isUsed function reported R6 as used because the R6_R7 alias was reserved (due to the fact that we've reserved R7 as the FP). The solution is to only check if the original register (i.e., R6) isReserved and not the aliases. The aliases are only checked to make sure they're available. The test case is derived from one of the nightly tester benchmarks and is rather intractable and difficult to reproduce, so I haven't included it. rdar://12592448 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168054 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
009cf9e9a3a386f89db2686a105736481aed10ca |
15-Nov-2012 |
Sergei Larin <slarin@codeaurora.org> |
Fix indeterminism in MI scheduler DAG construction. Similarly to several recent fixes throughout the code replace std::map use with the MapVector. Add find() method to the MapVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168051 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
490104720db9e1e0eb9cc27e88e2d7288ac27ff0 |
15-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Add llvm.ceil, llvm.trunc, llvm.rint, llvm.nearbyint intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c6d6aeb95feca2efc6ee652555dbb29f0a3d41c8 |
15-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Fix an obvious merge bug in -join-globalcopies (disabled). Jakub Staszak spotted this in review. I don't notice these things until I manually rerun benchmarks. But reducing unit tests is a very high priority. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168021 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
8762a6bc2b83dfc11e784772311ad0b8fa5211e2 |
14-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Use reserve() to avoid vector reallocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167991 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
39c71da6db9f52cf48430282a27384563a77793e |
14-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
canJoinPhys method doesn't modify CoalescerPair. Make it const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167972 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
984639b7a4b2e2f15d82d64623a634b4772f022f |
14-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167970 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
062a6c8380efc74233d05ec895def51b01aa2f8f |
14-Nov-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix really stupid ARM EHABI info generation bug: we should not emit eh table and handler data if there are no landing pads in the function. Patch by Logan Chien with some cleanups from me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167945 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
|
32631d1a5a18cb997ea7ad4f103938470aecc146 |
14-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Add newlines to end of debug messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167913 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
8e2b8ae3b11b9778da5cb54d330e984b33979bf9 |
14-Nov-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Handle DAG CSE adding new uses during ReplaceAllUsesWith. Fixes PR14333. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167912 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
25efd6d556718295a63d37f5294985746af354f6 |
14-Nov-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use TARGET2 relocation for TType references on ARM. Do some cleanup of the code while here. Inspired by patch by Logan Chien! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167904 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfException.cpp
argetLoweringObjectFileImpl.cpp
|
242343d1ab0d6b10221569fd2c504842a561f0e7 |
14-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Revert "Use the 'count' attribute instead of the 'upper_bound' attribute." temporarily as it is breaking the gdb bots. This reverts commit r167806/e7ff4c14b157746b3e0228d2dce9f70712d1c126. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167886 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
a6aae0273af9963eaf58aa548f7a918f100e67c7 |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Revert -join-splitedges to a boolean cmd line option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167880 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
3106aa125eb2756083e950362b6769b87cb3430a |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
The MachineScheduler does not currently require JoinSplitEdges. This option will eventually either be enabled unconditionally or replaced by a more general live range splitting optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167879 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
4de5872dede6e3dd80f7ab3df5df4fe0e33e3b2e |
13-Nov-2012 |
Michael J. Spencer <bigcheesegs@gmail.com> |
[MC][COFF] Emit weak symbols to the correct section. Patch by Dmitry Puzirev! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167877 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
b64e2115de3b293ef706b75f040277477c949208 |
13-Nov-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
Do not consider a machine instruction that uses and defines the same physical register as candidate for common subexpression elimination in MachineCSE. This fixes a bug on PowerPC in MultiSource/Applications/oggenc/oggenc caused by MachineCSE invalidly merging two separate DYNALLOC insns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167855 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
2344abc939b29ab80bbd247995a0ceb2efa5938b |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Fix -join-splitedges: my previous "cleanup" broke it. Working on reducing unit tests. This won't be enabled unless a subtarget enables misched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167851 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
b2df01ab2a311688c9c4ca4eb8a93ae1bf40d468 |
13-Nov-2012 |
Duncan Sands <baldrick@free.fr> |
Codegen support for arbitrary vector getelementptrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ad1cc1d1bfc0accd3f1af5c02ac367ff46a4bfdf |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Allow subtargets to enable misched and dependent options. This allows me to begin enabling (or backing out) misched by default for one subtarget at a time. To run misched we typically want to: - Disable SelectionDAG scheduling (use the source order scheduler) - Enable more aggressive coalescing (until we decide to always run the coalescer this way) - Enable MachineScheduler pass itself. Disabling PostRA sched may follow for some subtargets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167826 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
asses.cpp
egisterCoalescer.cpp
electionDAG/SelectionDAGISel.cpp
|
265058d9239e6867d06dc8aa40db5f33390abd17 |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Added RegisterCoalescer support for joining global copies first. This adds the -join-globalcopies option which can be enabled by default once misched is also enabled. Ideally, the register coalescer would be able to split local live ranges in a way that produces copies that can be easily resolved by the scheduler. Until then, this heuristic should be good enough to at least allow the scheduler to run after coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167825 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
cf6b6131dd0da37903a6e3a5173ea12aa8263713 |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Don't consider artificial edges weak edges. For now be more conservative in case other out-of-tree schedulers rely on the old behavior of artificial edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167808 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
|
e7ff4c14b157746b3e0228d2dce9f70712d1c126 |
13-Nov-2012 |
Bill Wendling <isanbard@gmail.com> |
Use the 'count' attribute instead of the 'upper_bound' attribute. If we have a type 'int a[1]' and a type 'int b[0]', the generated DWARF is the same for both of them because we use the 'upper_bound' attribute. Instead use the 'count' attrbute, which gives the correct number of elements in the array. <rdar://problem/12566646> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167806 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
f546ac5f9bdedc7d1ae49238c65a93201d0e4f05 |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Cleanup the main RegisterCoalescer loop. Block priorities still apply outside loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167793 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
43736c7cfaea3b0c3e2660b9cd5c01e306f7c0df |
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Cleanup -join-splitedges. Make the loop more obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167785 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
f5b6dcd3929fe04c81aca1d69f69bbc530de148f |
12-Nov-2012 |
Eric Christopher <echristo@gmail.com> |
Add an option to enable prototype "fission" capabilities and debug changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167765 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3c9e55867e2c8ae7a9e528bce865ebfa963f30a9 |
12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
Added a temporary option to avoid critical edges splitting. This teaches the register coalescer to be less prone to split critical edges. I am currently benchmarking this with the new (post-coalescer) scheduler. I plan to enable this by default and remove the option as soon as misched is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167758 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
a7d2d564d918a9cb9105d3b2b4176b45af36a20e |
12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: rename interfaceto avoid gcc warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167753 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
6996fd0b543cf8bd4a0d4e09e80a168f0ae052c5 |
12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Target-independent support for MacroFusion. Uses the infrastructure from r167742 to support clustering instructure that the target processor can "fuse". e.g. cmp+jmp. Next step: target hook implementations with test cases, and enable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167744 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
9b5caaa9c452f262a52dd5ac7ebbc722da5a63de |
12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Target-independent support for load/store clustering. This infrastructure is generally useful for any target that wants to strongly prefer two instructions to be adjacent after scheduling. A following checkin will add target-specific hooks with unit tests. Then this feature will be enabled by default with misched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167742 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
ae692f2baedf53504af2715993b166950e185a55 |
12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Infrastructure for weak DAG edges. This adds support for weak DAG edges to the general scheduling infrastructure in preparation for MachineScheduler support for heuristics based on weak edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167738 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGVLIW.cpp
|
722c9a7925d1a66569513a1894fdd230962fa3f9 |
09-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix assertions in updateRegMaskSlots(). The RegMaskSlots contains 'r' slots while NewIdx and OldIdx are 'B' slots. This broke the checks in the assertions. This fixes PR14302. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167625 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b754687fd7391213f455ffa52d1bcfbe11052bc0 |
09-Nov-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence GCC warning about falling off the end of a non-void function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167618 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
3b87f6204fe094610282eea4c8ad7ea4e331d8db |
07-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Heuristics based on the machine model. misched is disabled by default. With -enable-misched, these heuristics balance the schedule to simultaneously avoid saturating processor resources, expose ILP, and minimize register pressure. I've been analyzing the performance of these heuristics on everything in the llvm test suite in addition to a few other benchmarks. I would like each heuristic check to be verified by a unit test, but I'm still trying to figure out the best way to do that. The heuristics are still in considerable flux, but as they are refined we should be rigorous about unit testing the improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167527 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
881a05b46c28299046bd0dc3d0b8c6677e68a4d7 |
07-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: handle on-the-fly regpressure queries better for 2-addr instructions without relying on liveintervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167526 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
168c190c581d21d50edefeedebe38400a12845e1 |
07-Nov-2012 |
Bill Wendling <isanbard@gmail.com> |
Add comment describing what's going on here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167525 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a4c769311877916cc73994d318d5e962228bf3cd |
07-Nov-2012 |
Bill Wendling <isanbard@gmail.com> |
When we're updating the subprogram scope DIE, we want to determine if we're updating an abstract DIE or not. If we are, then we use that. Its children will be added on later, as well as the object pointer attribute. Otherwise, this function may be called with a concrete DIE twice and adding the children and object pointer attribute to it twice. <rdar://problem/12401423&12600340> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167524 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7979b24e5cd4a99db6af3fcd66d9f514f02d11db |
06-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
[regallocfast] Make sure the MachineRegisterInfo is aware of clobbers from a register masks. This is an obvious and necessary fix for a soon to be committed patch. No test case possible at this time. Reviewed by Jakob. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167498 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
8d4abb2446f80986ad5136bbec30c5da18cd6f4b |
06-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: TargetSchedule interface for machine resources. Expose the processor resources defined by the machine model to the scheduler and other clients through the TargetSchedule interface. Normalize each resource count with respect to other kinds of resources. This allows scheduling heuristics to balance resources against other kinds of resources and latency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167444 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
2276453e2be12badb07f84f8be9cf89626da48b6 |
06-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Rename RemainingCount to avoid confusion with remaining resources. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167443 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
a78d3228e8b2a14915ea9908dbaaf2c934803e11 |
06-Nov-2012 |
Andrew Trick <atrick@apple.com> |
ScheduleDAG interface. Added OrderKind to distinguish nonregister dependencies. This is in preparation for adding "weak" DAG edges, but generally simplifies the design. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167435 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
efcc1aec6459c356c6516e28be29acaa51e876fa |
03-Nov-2012 |
Owen Anderson <resistor@mac.com> |
Be careful not to optimize a SELECT_CC into a SETCC post-legalization if the SETCC node would be illegal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167344 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0a1544d2fd63d8101dc7d50974e65c95a0f6f98d |
02-Nov-2012 |
Manman Ren <mren@apple.com> |
OutputArg: added an index of the original argument to match the change to InputArg in r165616. This will enable us to get the actual type for both InputArg and OutputArg. rdar://9932559 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
426c2bf5cdd2173e4a33aea8cb92cf684a724f4b |
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the majority of the next patch in the address space series: r165941: Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. Despite this commit log, this change primarily changed stuff outside of VMCore, and those changes do not carry any tests for correctness (or even plausibility), and we have consistently found questionable or flat out incorrect cases in these changes. Most of them are probably correct, but we need to devise a system that makes it more clear when we have handled the address space concerns correctly, and ideally each pass that gets updated would receive an accompanying test case that exercises that pass specificaly w.r.t. alternate address spaces. However, from this commit, I have retained the new C API entry points. Those were an orthogonal change that probably should have been split apart, but they seem entirely good. In several places the changes were very obvious cleanups with no actual multiple address space code added; these I have not reverted when I spotted them. In a few other places there were merge conflicts due to a cleaner solution being implemented later, often not using address spaces at all. In those cases, I've preserved the new code which isn't address space dependent. This is part of my ongoing effort to clean out the partial address space code which carries high risk and low test coverage, and not likely to be finished before the 3.2 release looms closer. Duncan and I would both like to see the above issues addressed before we return to these changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167222 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
achineFunction.cpp
electionDAG/SelectionDAG.cpp
argetLoweringObjectFileImpl.cpp
|
ece6c6bb6329748b92403c06ac87f45c43485911 |
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the series of commits starting with r166578 which introduced the getIntPtrType support for multiple address spaces via a pointer type, and also introduced a crasher bug in the constant folder reported in PR14233. These commits also contained several problems that should really be addressed before they are re-committed. I have avoided reverting various cleanups to the DataLayout APIs that are reasonable to have moving forward in order to reduce the amount of churn, and minimize the number of commits that were reverted. I've also manually updated merge conflicts and manually arranged for the getIntPtrType function to stay in DataLayout and to be defined in a plausible way after this revert. Thanks to Duncan for working through this exact strategy with me, and Nick Lewycky for tracking down the really annoying crasher this triggered. (Test case to follow in its own commit.) After discussing with Duncan extensively, and based on a note from Micah, I'm going to continue to back out some more of the more problematic patches in this series in order to ensure we go into the LLVM 3.2 branch with a reasonable story here. I'll send a note to llvmdev explaining what's going on and why. Summary of reverted revisions: r166634: Fix a compiler warning with an unused variable. r166607: Add some cleanup to the DataLayout changes requested by Chandler. r166596: Revert "Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! r166591: Delete a directory that wasn't supposed to be checked in yet. r166578: Add in support for getIntPtrType to get the pointer type based on the address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167221 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
|
607ebde651f18d68e45724c6e3b3544d4786879f |
01-Nov-2012 |
Owen Anderson <resistor@mac.com> |
Add a few more simple fast-math constant propagations and cancellations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167200 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
21caa9ef03e3f2d4e860c8fc3cd53015c42934bf |
01-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Exploit the new identity composition in composeSubRegIndices(). The static compose() function in RegisterCoalescer was doing the exact same thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167198 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
b4c9d9c51fcb8a4cad2336b1ad9d225f504bbc4c |
31-Oct-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace some instances of UniqueVector with SetVector, which is slightly cheaper. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bab24216cc77477d475e9d2ae18e275c5b2054a3 |
31-Oct-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Change signature of function RAFast::spillAll to avoid conversion between type MachineInstr* and MachineBasicBlock::iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167088 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
dc6d846df56f83be4c7045ccc9092f8a8343360b |
31-Oct-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Check that iterator I is not the end iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167086 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
daeec8fad3a3038247df1e5081b74454e7ee9315 |
30-Oct-2012 |
Chad Rosier <mcrosier@apple.com> |
[inline asm] Get the mayLoad/mayStore directly from the MIOp_ExtraInfo operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
dfa4cecb1e549d96f800f7ebc793a342d8df1244 |
30-Oct-2012 |
Chad Rosier <mcrosier@apple.com> |
Add a comment for r167040. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167046 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3d71688476951d56ac00a81b17c2f83fd781b208 |
30-Oct-2012 |
Chad Rosier <mcrosier@apple.com> |
[inline asm] Implement mayLoad and mayStore for inline assembly. In general, the MachineInstr MayLoad/MayLoad flags are based on the tablegen implementation. For inline assembly, however, we need to compute these based on the constraints. Revert r166929 as this is no longer needed, but leave the test case in place. rdar://12033048 and PR13504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167040 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
cheduleDAGInstrs.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e0aae5b4f30ce283b7023daf3a41a6bd0e1e117e |
30-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Fix grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167029 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e669c930a61dd56891df2f9822966ecb173c8072 |
29-Oct-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
In various places throughout the code generator, there were special checks to avoid performing compile-time arithmetic on PPCDoubleDouble. Now that APFloat supports arithmetic on PPCDoubleDouble, those checks are no longer needed, and we can treat the type like any other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
573303e62a913ec881fde3434d7babed0bd4da33 |
29-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Completely disallow partial copies in adjustCopiesBackFrom(). Partial copies can show up even when CoalescerPair.isPartial() returns false. For example: %vreg24:dsub_0<def> = COPY %vreg31:dsub_0; QPR:%vreg24,%vreg31 Such a partial-partial copy is not good enough for the transformation adjustCopiesBackFrom() needs to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166944 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
7ed4f94c1337b931524af99eb1aac72563888239 |
29-Oct-2012 |
Duncan Sands <baldrick@free.fr> |
Remove a wrapper around getIntPtrType added to GVN by Hal in commit 166624 (the wrapper returns a vector of integers when passed a vector of pointers) by having getIntPtrType itself return a vector of integers in this case. Outside of this wrapper, I didn't find anywhere in the codebase that was relying on the old behaviour for vectors of pointers, so give this a whirl through the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166939 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
a836563e3208ad0b74019dc33ad361d3eb72f178 |
29-Oct-2012 |
Preston Gurd <preston.gurd@intel.com> |
This patch addresses a problem with the Post RA scheduler generating an incorrect instruction sequence due to it not being aware that an inline assembly instruction may reference memory. This patch fixes the problem by causing the scheduler to always assume that any inline assembly code instruction could access memory. This is necessary because the internal representation of the inline instruction does not include any information about memory accesses. This should fix PR13504. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166929 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
8a5ec5d41590118c5d2d5a86213bef0a80255b2e |
29-Oct-2012 |
Lang Hames <lhames@gmail.com> |
Remove unused typedef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166910 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
163f67f4d98aab114cb9b04efd086f54f7688d0c |
27-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never attempt to join an early-clobber def with a regular kill. This fixes PR14194. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166880 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
96e6da4841368bbb3ae73736dc523c5b1d48b1c4 |
27-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reduce indentation with early exit. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166829 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0de4fd23a7da25b2cf902ed488d8c58e3e9c13e0 |
27-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also make the current basic block a class member. Don't pass it around everywhere as a function argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166828 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
002ef57e843c9ae204f37209d8378bf95f67fd95 |
27-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the Processed set a class member. Don't pass it everywhere as an argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166820 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
6db893660ff92d4433350b5c084d123a50f4f122 |
26-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix whitespace and function names to be coding standardy. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166814 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f4a5a613faa1a0eca6b884a6dfe83e8b1eb957b2 |
26-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the canCombineSubRegIndices() target hook. The new coalescer can already do all of this, so there is no need to duplicate the efforts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166813 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
af8082206beb2a9ddaa7380e735d1ae1c221bce6 |
26-Oct-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Make sure I is not the end iterator when isInsideBundle is called. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166784 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
0bd10f2af37e694f08f41199f4c6792c494430d9 |
26-Oct-2012 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Remove GC roots that reference dead objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166763 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
6b0db5f372057745c5e4a99d70401dc2615cc084 |
26-Oct-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166750 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
3c5e22db7ac9763b376626f1126136e51fba6577 |
25-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop running the machine code verifier unconditionally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166646 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
b52fb876171e3670e7307fda4459ca005d49d9f5 |
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add some cleanup to the DataLayout changes requested by Chandler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b8bce928f4ffdf50eff69334f3e25b27848536b6 |
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
2f87640b86315beab8a5671cc23f524e59c58bd3 |
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Delete a directory that wasn't supposed to be checked in yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
aa76e9e2cf50af190de90bc778b7f7e42ef9ceff |
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in support for getIntPtrType to get the pointer type based on the address space. This checkin also adds in some tests that utilize these paths and updates some of the clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166578 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
|
1a5cc710ee78bf55c3799b49c6fd37619d2dbb7b |
24-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Teach DAG combine to fold (buildvec (Xint2fp x)) to (Xint2fp (buildvec x)) - If more than 1 elemennts are defined and target supports the vectorized conversion, use the vectorized one instead to reduce the strength on conversion operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
adf38913f815a2a453d4783e88b1528473b4740d |
24-Oct-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Keep coding standard. Don't evaluate getNumOperands() every time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fac14ab1795cfce21e4e5e51c711a11f6181074b |
24-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Clean up code and put transformation on (build_vec (ext x)) into a helper func git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ee0ce15ce14474bdae1a9bad7a5a1d457ad8d959 |
23-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
Make the indirect branch optimization deterministic. No functionality change. Patch by Daniel Reynaud. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c1f7ae15bb970b347ddeb80d4474f7e7f2099a60 |
23-Oct-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Per the C++ standard, we need to include the definition of llvm::Calculate in every TU where it's implicitly instantiated, even if there's an implicit instantiation for the same types available in another TU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166470 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
56acf63e35440068935bca999d19a81f76e876d6 |
21-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't crash when the Assignments vector is empty. Reported by Vincent Lejeune using an out-of-tree target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166398 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
63a4c24616fafa2b86d6391308ffd93e012115e4 |
20-Oct-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Symbol hygiene: Make sure declarations and definitions match, make helper functions static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166376 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionPrinterPass.cpp
electionDAG/ScheduleDAGFast.cpp
|
cfc6cb0c61ef78aad2f63b634b0a6f377361858b |
20-Oct-2012 |
Shuxin Yang <shuxin.llvm@gmail.com> |
1. Remove noreturn attribute from __builtin_debugtrap(). (The change at Clang side was committed in r166345) 2. Cosmetic change in order to conform to coding standards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a04a4a79ea365d1ba96ed4b5861e879b267162e2 |
19-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
revert r166264 because the LTO build is still failing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166340 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
970755e5197afb42a76a24a74cd6dc17721daf50 |
19-Oct-2012 |
Shuxin Yang <shuxin.llvm@gmail.com> |
This patch is to fix radar://8426430. It is about llvm support of __builtin_debugtrap() which is supposed to consistently raise SIGTRAP across all systems. In contrast, __builtin_trap() behave differently on different systems. e.g. it raises SIGTRAP on ARM, and SIGILL on X86. The purpose of __builtin_debugtrap() is to consistently provide "trap" functionality, in the mean time preserve the compatibility with on gcc on __builtin_trap(). The X86 backend is already able to handle debugtrap(). This patch is to: 1) make front-end recognize "__builtin_debugtrap()" (emboddied in the one-line change to Clang). 2) In DAG legalization phase, by default, "debugtrap" will be replaced with "trap", which make the __builtin_debugtrap() "available" to all existing ports without the hassle of changing their code. 3) If trap-function is specified (via -trap-func=xyz to llc), both __builtin_debugtrap() and __builtin_trap() will be expanded into the function call of the specified trap function. This behavior may need change in the future. The provided testing-case is to make sure 2) and 3) are working for ARM port, and we already have a testing case for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
725f1d12801109a3b1d081a6e1c9e44426b2cf34 |
19-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
recommit the patch that makes LSR and LowerInvoke use the TargetTransform interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166264 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
9aecdb51c743f13f88748ef3c539a3e6e6df9e99 |
19-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Simplify condition checking as CONCAT assume all inputs of the same type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
83ba06afa8503dc97a0aa5ec033022286959956c |
18-Oct-2012 |
Sebastian Pop <spop@codeaurora.org> |
Clear unknown mem ops when merging stack slots (pr14090) When merging stack slots, if StackColoring::remapInstructions gets a value back from GetUnderlyingObject that it does not know about or is not itself a stack slot, clear the memory operand in case it aliases the merged slot. This prevents the introduction of incorrect aliasing information. Author: Matthew Curtis <mcurtis@codeaurora.org> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166216 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
bf0683f0f75dfb92e73b09718ed278eeab8ba9d2 |
18-Oct-2012 |
Sebastian Pop <spop@codeaurora.org> |
Change MachineFrameInfo::StackObject::Alloca from Value* to AllocaInst* This more accurately reflects what is actually being stored in the field. No functionality change intended. Author: Matthew Curtis <mcurtis@codeaurora.org> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166215 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
1c5bf3f429927c31b9ffc1308ea1ada7a58ee1c0 |
18-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
In SimplifySelectOps we pulled two loads through a select node despite the fact that one was dependent on the other. rdar://12513091 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3b9a911efcf280950f878a050728450423875639 |
18-Oct-2012 |
Bob Wilson <bob.wilson@apple.com> |
Temporarily revert the TargetTransform changes. The TargetTransform changes are breaking LTO bootstraps of clang. I am working with Nadav to figure out the problem, but I am reverting it for now to get our buildbots working. This reverts svn commits: 165665 165669 165670 165786 165787 165997 and I have also reverted clang svn 165741 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166168 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
07edaf3801f7169477bab6d33cad86209ea8f558 |
18-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Revert part of r166049 back and enable test case in r166125. - Folding (trunc (concat ... X )) to (concat ... (trunc X) ...) is valid when '...' are all 'undef's. - r166125 relies on this transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166155 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4031e9018b071d25e5fc905aa38a943fcd9facb6 |
18-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Revert r166049 - In general, it's unsafe for this transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166135 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
13429e224cb165dae658ae4ea3ef67d69c1860fa |
17-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Teach DAG combine to fold (extract_subvec (concat v1, ..) i) to v_i - If the extracted vector has the same type of all vectored being concatenated together, it should be simplified directly into v_i, where i is the index of the element being extracted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4b1aa961fdbb75035a963f8c6a01c8c5f1dc3f16 |
17-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch MRI::UsedPhysRegs to a register unit bit vector. This is a more compact, less redundant representation, and it avoids scanning long lists of aliases for ARM D-registers, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166124 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
d4f759696d1bd0ba7c0e6eefd7ed8b556840419a |
17-Oct-2012 |
Evan Cheng <evan.cheng@apple.com> |
Add a really faster pre-RA scheduler (-pre-RA-sched=linearize). It doesn't use any scheduling heuristics nor does it build up any scheduling data structure that other heuristics use. It essentially linearize by doing a DFA walk but it does handle glues correctly. IMPORTANT: it probably can't handle all the physical register dependencies so it's not suitable for x86. It also doesn't deal with dbg_value nodes right now so it's definitely is still WIP. rdar://12474515 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
9aa6e0a134358c681cc5918ec65b1ec9726b778e |
17-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Merge MRI::isPhysRegOrOverlapUsed() into isPhysRegUsed(). All callers of these functions really want the isPhysRegOrOverlapUsed() functionality which also checks aliases. For historical reasons, targets without register aliases were calling isPhysRegUsed() instead. Change isPhysRegUsed() to also check aliases, and switch all isPhysRegOrOverlapUsed() callers to isPhysRegUsed(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166117 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
rologEpilogInserter.cpp
|
fdd6fa89b960088b368231ec08e56a0c0b1e6930 |
17-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Better handling of invalid latencies in the machine model git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166107 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
d7ea7d5cd7518788dea698d38023959480c8263a |
17-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a SparseSet instead of a BitVector for UsedInInstr in RAFast. This is just as fast, and it makes it possible to avoid leaking the UsedPhysRegs BitVector implementation through MachineRegisterInfo::addPhysRegsUsed(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166083 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
320db3f8052c9f506d9ea043ba5da534df40aa08 |
17-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid rematerializing a redef immediately after the old def. PR14098 contains an example where we would rematerialize a MOV8ri immediately after the original instruction: %vreg7:sub_8bit<def> = MOV8ri 9; GR32_ABCD:%vreg7 %vreg22:sub_8bit<def> = MOV8ri 9; GR32_ABCD:%vreg7 Besides being pointless, it is also wrong since the original instruction only redefines part of the register, and the value read by the new instruction is wrong. The problem was the LiveRangeEdit::allUsesAvailableAt() didn't special-case OrigIdx == UseIdx and found the wrong SSA value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166068 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
cdcdfd2cab67366b1debbe36bf46c29f7fecda67 |
17-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r166046 "Switch back to the old coalescer for now to fix the 32 bit bit" A fix for PR14098, including the test case is in the next commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166067 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
272ea0323999890d8bcf75b873a1c8ab2cdcba0d |
16-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Teach DAG combine to fold (trunc (fptoXi x)) to (fptoXi x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166049 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6f7cccd2e28bf544609ee8fdbfac4a24e9f37ff6 |
16-Oct-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Switch back to the old coalescer for now to fix the 32 bit bit llvm+clang+compiler-rt bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166046 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
b52ba9f8a896b6717d6395ad59f6550e1fa475b0 |
16-Oct-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Issue: Stack is formed improperly for long structures passed as byval arguments for EABI mode. If we took AAPCS reference, we can found the next statements: A: "If the argument requires double-word alignment (8-byte), the NCRN (Next Core Register Number) is rounded up to the next even register number." (5.5 Parameter Passing, Stage C, C.3). B: "The alignment of an aggregate shall be the alignment of its most-aligned component." (4.3 Composite Types, 4.3.1 Aggregates). So if we have structure with doubles (9 double fields) and 3 Core unused registers (r1, r2, r3): caller should use r2 and r3 registers only. Currently r1,r2,r3 set is used, but it is invalid. Callee VA routine should also use r2 and r3 regs only. All is ok here. This behaviour is guessed by rounding up SP address with ADD+BFC operations. Fix: Main fix is in ARMTargetLowering::HandleByVal. If we detected AAPCS mode and 8 byte alignment, we waste odd registers then. P.S.: I also improved LDRB_POST_IMM regression test. Since ldrb instruction will not generated by current regression test after this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166018 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
27c28cef11da5373d9a146060f9c10a3c6ab58e3 |
16-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added handleMove support for updating all kill flags, not just for allocatable regs. This is a medium term workaround until we have a more robust solution in the form of a register liveness utility for postRA passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166001 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineScheduler.cpp
|
feab72c20acc97f8942148189c06e443b29df841 |
16-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused BitVectors from getAllocatableSet(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165999 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
achineSink.cpp
achineVerifier.cpp
|
14d1dd95c7c969e07defebb6fe65df2fae1b30cf |
16-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove RegisterClassInfo::isReserved() and isAllocatable(). Clients can use the equivalent functions in MRI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165990 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
llocationOrder.cpp
riticalAntiDepBreaker.cpp
egAllocFast.cpp
egisterCoalescer.cpp
egisterPressure.cpp
|
790047620a8f31cee1841c06c9e5e7688166ad93 |
16-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove LIS::isAllocatable() and isReserved() helpers. All callers can simply use the corresponding MRI functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165985 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
egAllocPBQP.cpp
|
fb9ebbf236974beac31705eaeb9f50ab585af6ab |
15-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch most getReservedRegs() clients to the MRI equivalent. Using the cached bit vector in MRI avoids comstantly allocating and recomputing the reserved register bit vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165983 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
iveVariables.cpp
achineCSE.cpp
achineCopyPropagation.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
egAllocPBQP.cpp
egisterClassInfo.cpp
egisterScavenging.cpp
irtRegMap.cpp
|
e4f273908bd37df5f0f6b2c575dcb2af99f6b85b |
15-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Freeze the reserved registers as soon as isel is complete. Also provide an MRI::getReservedRegs() function to access the frozen register set, and isReserved() and isAllocatable() methods to test individual registers. The various implementations of TRI::getReservedRegs() are quite complicated, and many passes need to look at the reserved register set. This patch makes it possible for these passes to use the cached copy in MRI, avoiding a lot of malloc traffic and repeated calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165982 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
702cc91aa1bd41540e8674921ae7ac89a4ff061f |
15-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165960 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
10ad98bbbb00d67d4272e8f29186a65e2a75215e |
15-Oct-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make sure we iterate over newly created instructions. Fixes pr13625. Testcase to follow in one sec. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165951 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
1e94e98b0ec44c5b04eaa8c9e7fb6d7669b3cdea |
15-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: ILP scheduler for experimental heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165950 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
2c39b15073db81d93bb629303915b7d7e5d088dc |
15-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165941 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
achineFunction.cpp
electionDAG/SelectionDAG.cpp
argetLoweringObjectFileImpl.cpp
|
3756e70af69096a82b367ee9667e7720ca2201e4 |
14-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the bitwise XOR operator from the Attributes class. Replace it with the equivalent from the builder class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165893 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
d86296a4aea7ebac9c8ef8ba92642b64545dec95 |
13-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Drop <def,dead> flags when merging into an unused lane. The new coalescer can merge a dead def into an unused lane of an otherwise live vector register. Clear the <dead> flag when that happens since the flag refers to the full virtual register which is still live after the partial dead def. This fixes PR14079. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165877 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
af8969076083396f06431971cce867ea11fb968c |
13-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow for loops in LiveIntervals::pruneValue(). It is possible that the live range of the value being pruned loops back into the kill MBB where the search started. When that happens, make sure that the beginning of KillMBB is also pruned. Instead of starting a DFS at KillMBB and skipping the root of the search, start a DFS at each KillMBB successor, and allow the search to loop back to KillMBB. This fixes PR14078. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165872 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ad5e969ba945c46aef58ae26b77f80cd99c8f3fb |
12-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a transposed algorithm for handleMove(). Completely update one interval at a time instead of collecting live range fragments to be updated. This avoids building data structures, except for a single SmallPtrSet of updated intervals. Also share code between handleMove() and handleMoveIntoBundle(). Add support for moving dead defs across other live values in the interval. The MI scheduler can do that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165824 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
795f951c6d5c60a10ffc8e0fdfa22b7c3b499f35 |
12-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix coalescing with IMPLICIT_DEF values. PHIElimination inserts IMPLICIT_DEF instructions to guarantee that all PHI predecessors have a live-out value. These IMPLICIT_DEF values are not considered to be real interference when coalescing virtual registers: %vreg1 = IMPLICIT_DEF %vreg2 = MOV32r0 When joining %vreg1 and %vreg2, the IMPLICIT_DEF instruction and its value number should simply be erased since the %vreg2 value number now provides a live-out value for the PHI predecesor block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165813 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
7bbb9c7b4a21364c5b92e60520babf326beff3d8 |
12-Oct-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
Fix big-endian codegen bug in DAGTypeLegalizer::ExpandRes_BITCAST On PowerPC, a bitcast of <16 x i8> to i128 may run through a code path in ExpandRes_BITCAST that attempts to do an intermediate bitcast to a <4 x i32> vector, and then construct the Hi and Lo parts of the resulting i128 by pairing up two of those i32 vector elements each. The code already recognizes that on a big-endian system, the first two vector elements form the Hi part, and the final two vector elements form the Lo part (vice-versa from the little-endian situation). However, we also need to take endianness into account when forming each of those separate pairs: on a big-endian system, vector element 0 is the *high* part of the pair making up the Hi part of the result, and vector element 1 is the low part of the pair. The code currently always uses vector element 0 as the low part and vector element 1 as the high part, as is appropriate for little-endian platforms only. This patch fixes this by swapping the vector elements as they are paired up as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165802 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
d36696c4e0ccd10a91bad2e3383c50347e2ea5ec |
12-Oct-2012 |
Evan Cheng <evan.cheng@apple.com> |
Legalizer optimize a pair of div / mod to a call to divrem libcall if they are not legal. However, it should use a div instruction + mul + sub if divide is legal. The rem legalization code was missing a check and incorrectly uses a divrem libcall even when div is legal. rdar://12481395 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ed84062812c7b8a82d0e8128a22aa1aa07a14d79 |
12-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
Remove unnecessary classof()'s isa<> et al. automatically infer when the cast is an upcast (including a self-cast), so these are no longer necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165767 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
fb384d61c78b60787ed65475d8403aee65023962 |
11-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Revert 165732 for further review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165747 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
achineFunction.cpp
electionDAG/SelectionDAG.cpp
argetLoweringObjectFileImpl.cpp
|
f3840d2c16a4ec4c879a8ded402835746de380f8 |
11-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
achineFunction.cpp
electionDAG/SelectionDAG.cpp
argetLoweringObjectFileImpl.cpp
|
ebba49395c189364c9ef77fb4c432856330ceca1 |
11-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass an explicit operand number to addLiveIns. Not all instructions define a virtual register in their first operand. Specifically, INLINEASM has a different format. <rdar://problem/12472811> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165721 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
be9262b8c7d32b416893368061281f827b489b18 |
11-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Follow the same routine to add target float expansion hook git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
4903c15b7d92802a4f0f28928a89bb4c0d5e212f |
11-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Handle "transient" non-instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165701 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
argetSchedule.cpp
|
e3d0e86919730784faaddcb5d9b0257c39b0804b |
11-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a new interface to allow IR-level passes to access codegen-specific information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165665 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
d6458a0aa12ef831ff45d1ce55a89a70ed091cbe |
10-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in support for expansion of all of the comparison operations to the absolute minimum required set. This allows a backend to expand any arbitrary set of comparisons as long as a minimum set is supported. The minimum set of required instructions is ISD::AND, ISD::OR, ISD::SETO(or ISD::SETOEQ) and ISD::SETUO(or ISD::SETUNE). Everything is expanded into one of two patterns: Pattern 1: (LHS CC1 RHS) Opc (LHS CC2 RHS) Pattern 2: (LHS CC1 LHS) Opc (RHS CC2 RHS) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165655 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9d796db3e746c31dbdb605510c53b3da98d71b38 |
10-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Add alternative support for FP_ROUND from v2f32 to v2f64 - Due to the current matching vector elements constraints in ISD::FP_EXTEND, rounding from v2f32 to v2f64 is scalarized. Add a customized v2f32 widening to convert it into a target-specific X86ISD::VFPEXT to work around this constraints. This patch also reverts a previous attempt to fix this issue by recovering the scalarized ISD::FP_EXTEND pattern and thus significantly reduces the overhead of supporting non-power-2 vector FP extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
661afe75e81431a66de3ed8e22d5aa91443367b3 |
10-Oct-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Issue description: SchedulerDAGInstrs::buildSchedGraph ignores dependencies between FixedStack objects and byval parameters. So loading byval parameters from stack may be inserted *before* it will be stored, since these operations are treated as independent. Fix: Currently ARMTargetLowering::LowerFormalArguments saves byval registers with FixedStack MachinePointerInfo. To fix the problem we need to store byval registers with MachinePointerInfo referenced to first the "byval" parameter. Also commit adds two new fields to the InputArg structure: Function's argument index and InputArg's part offset in bytes relative to the start position of Function's argument. E.g.: If function's argument is 128 bit width and it was splitted onto 32 bit regs, then we got 4 InputArg structs with same arg index, but different offset values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7d2f2496c1d263eecdc104fd72e847a31d8695b9 |
10-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the final bits of Attributes being declared in the Attribute namespace. Use the attribute's enum value instead. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165610 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
8a8cf9617cdc735f0425e828bb7a6f401c0cf0f6 |
10-Oct-2012 |
Lang Hames <lhames@gmail.com> |
My earlier "fix" for PBQP (see r165201) was incorrect. The real issue was that checkRegMaskInterference only initializes the bitmask on the first interference. This fixes PR14027 and (re)fixes PR13945. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165608 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
82d46aec62f127856f4bfeb30f80aa12dd74bae0 |
10-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: fall-back to a target hook for instr bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165606 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
412cd2f81374865dfa708bef6d5b896ca10dece0 |
10-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Use the TargetSchedModel interface wherever possible. Allows the new machine model to be used for NumMicroOps and OutputLatency. Allows the HazardRecognizer to be disabled along with itineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165603 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
argetSchedule.cpp
|
c0dfffa448ad7ab647779bc3e7f2aee5c76cb31b |
10-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Add computeInstrLatency to TargetSchedModel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165566 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
42bb106118db51393c2524c8b0c7f7ba6674cfd7 |
10-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Allow flags to disable hasInstrSchedModel/hasInstrItineraries for external users of TargetSchedule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165564 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
714973e459d6611dd3e67f77968aba55528664b4 |
10-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Remove LoopDependencies heuristic. This wasn't contributing anything significant to postRA heuristics except compile time (by my measurements) and will be replaced by a more general heuristic for cross-region dependencies within the scheduler itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165563 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
3e2d76c946ba753c2b11af192a52e25b6f9b46ff |
09-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Use the attribute enums to query if a parameter has an attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7d661468682c333739a6f6ab7dc337463573c354 |
09-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in the first step of the multiple pointer support. This adds in support to the data layout for specifying a per address space pointer size. The next step is to update the optimizers to allow them to optimize the different address spaces with this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165505 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6765834754cbb3cb0f15b4b15e98c5e73fa50066 |
09-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Create enums for the different attributes. We use the enums to query whether an Attributes object has that attribute. The opaque layer is responsible for knowing where that specific attribute is stored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165488 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
ranchFolding.cpp
odePlacementOpt.cpp
achineBlockPlacement.cpp
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
tackProtector.cpp
ailDuplication.cpp
|
2d65efed5357ff1768e0462feffc910809ed1b62 |
09-Oct-2012 |
Eric Christopher <echristo@gmail.com> |
Fix up comment to be more clear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
ad6aedc7d980d407da4452ff3ed4592d3df1a3f7 |
09-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
Refactor the AddrMode class out of TLI to its own header file. This class is used by LSR and a number of places in the codegen. This is the first step in de-coupling LSR from TLI, and creating a new interface in between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6be75ae196e0138048f685d4df7128d24245be5e |
09-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't crash on extra evil irreducible control flow. When the CFG contains a loop with multiple entry blocks, the traces computed by MachineTraceMetrics don't always have the same nice properties. Loop back-edges are normally excluded from traces, but MachineLoopInfo doesn't recognize loops with multiple entry blocks, so those back-edges may be included. Avoid asserting when that happens by adding an isEarlierInSameTrace() function that accurately determines if a dominating block is part of the same trace AND is above the currrent block in the trace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165434 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
c56e3f0cdde9b5e3f8222ece7b5968ae9961955e |
08-Oct-2012 |
Eric Christopher <echristo@gmail.com> |
Fixup comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165427 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
02c1a64efe95e5fcdb0123d3f03a605801abbec4 |
08-Oct-2012 |
Eric Christopher <echristo@gmail.com> |
Fixup comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165426 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
39817f9d393fdc29ec35fc8626d8b372415df414 |
08-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: remove the unused getSpecialAddressLatency hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165418 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
a98f600a64b7b70754df58926ce8d60feeb9ce29 |
08-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: remove forceUnitLatencies. Defaults are handled by the default SchedModel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165417 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.h
|
30c6ec21990aff1f46465e411e5af622d7256c68 |
08-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: avoid scheduling an instruction twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165416 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
smPrinter/ARMException.cpp
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
smPrinter/Win64Exception.cpp
allingConvLower.cpp
ntrinsicLowering.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineModuleInfo.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGVLIW.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/TargetLowering.cpp
electionDAG/TargetSelectionDAGInfo.cpp
jLjEHPrepare.cpp
tackProtector.cpp
argetLoweringObjectFileImpl.cpp
|
87802d52e1e873592c6fe39827081b492bd318cc |
08-Oct-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove unused MachineInstr constructors that don't take a DebugLoc argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165382 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
14ce91cc2720da9547bff1ac199697b6d157d348 |
07-Oct-2012 |
Craig Topper <craig.topper@gmail.com> |
Fix indentation. Remove 'else' after return. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165381 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a4b5050cf5af18ac18565073fecbfcb95f93556b |
05-Oct-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused but set variable flagged by GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ebd7eabca4c090175b71f221e880f8bd937a4523 |
05-Oct-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code, don't or a bool with an uint64_t. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ea2c50c0416555a91cf963618f07c90a4c791708 |
05-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
When merging connsecutive stores, use vectors to store the constant zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165267 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0313ced016f3777e806ca2e42a746d3162174c47 |
04-Oct-2012 |
Eric Christopher <echristo@gmail.com> |
Update this a bit more to represent how the prologue should work: a) frame setup instructions define the prologue b) we shouldn't change our location mid-stream Add a test to make sure that the stack adjustment stays within the prologue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e6521b57cc475e3606fd90e48363cc27aa17cc80 |
04-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Get MCSchedModel directly from the subtarget. Not all targets have itineraries, but the subtarget always has an MCSchedModel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165236 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
f43fe1d163b34e1de5d045773728c571b59d1cdd |
04-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch MachineTraceMetrics to the new TargetSchedModel interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165235 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
442c59f0a2fc3e596d0ce1f13b4a6849b2f46cc4 |
04-Oct-2012 |
Lang Hames <lhames@gmail.com> |
Fix reg mask slot test, and preserve LiveIntervals and VirtRegMap in the PBQP allocator. Fixes PR13945. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165201 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
72fd0a9448a9d9eced8f475741e4a1ee543253e0 |
04-Oct-2012 |
Andrew Trick <atrick@apple.com> |
Enable -schedmodel, but prefer itineraries until we have more benchmark data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165188 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
4c230b3338bc527fa62de1ea574019261316fcfb |
03-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Update to use the predicate methods to query if an attribute exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
2e7d38192de6ccdc54cf138fabdf00b81a6cd11d |
03-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix a cycle in the DAG. In this code we replace multiple loads with a single load and multiple stores with a single load. We create the wide loads and stores (and their chains) before we remove the scalar loads and stores and fix the DAG chain. We attempted to merge loads with a different chain. When that happened, the assumption that it is safe to RAUW broke and a cycle was introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c653de6c0f3722154a41cbb57c213a0cdd789419 |
03-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
A DAGCombine optimization for mergeing consecutive stores to memory. The optimization is not profitable in many cases because modern processors perform multiple stores in parallel and merging stores prior to merging requires extra work. We handle two main cases: 1. Store of multiple consecutive constants: q->a = 3; q->4 = 5; In this case we store a single legal wide integer. 2. Store of multiple consecutive loads: int a = p->a; int b = p->b; q->a = a; q->b = b; In this case we load/store either ilegal vector registers or legal wide integer registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
541a858f1a4e65a714fe54293d43d0861cd12b8f |
03-Oct-2012 |
Silviu Baranga <silviu.baranga@arm.com> |
Fixed a bug in the ExecutionDependencyFix pass that caused dependencies to not propagate through implicit defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165102 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
76ad43c6e1619ed4c087b8ccb2cd573eb9d7093e |
03-Oct-2012 |
Eric Christopher <echristo@gmail.com> |
Revert 165051-165049 while looking into the foreach.m failure in more detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165099 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0d141f867d49dadc2f7580b149464f1e8e095f03 |
03-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
The early if conversion pass is ready to be used as an opt-in. Enable the pass by default for targets that request it, and change the -enable-early-ifcvt to the opposite -disable-early-ifcvt. There are still some x86 regressions when enabling early if-conversion because of the missing machine models. Disable the pass for x86 until machine models are added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165075 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
394820b8e159a39a9a07aac9722ad8738680037d |
03-Oct-2012 |
Eric Christopher <echristo@apple.com> |
Revert "Don't use a debug location for frame setup instructions in the" This reverts 165055 and 165052 temporarily while I look at debugger failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165071 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6c0c6d613ac3223fdf515c1616331bdeb2a4f1a4 |
03-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the old coalescer algorithm. The new algorithm has been enabled by default for almost a week now and seems to be stable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165062 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d4919a988d1e2d62b5c108bbb98a1633edee76db |
03-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle reserved registers more accurately in handleMove(). Reserved register live ranges look like a set of dead defs - any uses of reserved registers are ignored. Instead of skipping the updating of reserved register operands entirely, just ignore the use operands and treat the def operands normally. No test case, handleMove() is not commonly used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165060 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
27cb347d0e765175efb2c4d388bcbba84cf1b95e |
02-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure the whole live range is covered when values are pruned twice. JoinVals::pruneValues() calls LIS->pruneValue() to avoid conflicts when overlapping two different values. This produces a set of live range end points that are used to reconstruct the live range (with SSA update) after joining the two registers. When a value is pruned twice, the set of end points was insufficient: v1 = DEF v1 = REPLACE1 v1 = REPLACE2 KILL v1 The end point at KILL would only reconstruct the live range from REPLACE2 to KILL, leaving the range REPLACE1-REPLACE2 dead. Add REPLACE2 as an end point in this case so the full live range is reconstructed. This fixes PR13999. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165056 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
55c86c67ee7ac8596c439d41b93851e7ad024c43 |
02-Oct-2012 |
Eric Christopher <echristo@apple.com> |
80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165054 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9fd304672cec6cd31b1978408a0a0dc375f96969 |
02-Oct-2012 |
Eric Christopher <echristo@apple.com> |
Don't use a debug location for frame setup instructions in the prologue. Also skip frame setup instructions when looking for the first location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165052 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
96bd4418b2320dec7cf9573c4f1da0a0ef31465e |
02-Oct-2012 |
Eric Christopher <echristo@apple.com> |
Remove the SavePoint infrastructure from fast isel, replace with just an insert point from the MachineBasicBlock and let the location be updated as we access it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165049 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
48da0be8b5821dddbb5233ad9cb198369031684b |
02-Oct-2012 |
Duncan Sands <baldrick@free.fr> |
Fix PR13991: legalizing an overflowing multiplication operation is harder than the add/sub case since in the case of multiplication you also have to check that the operation in the larger type did not overflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165017 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
554c6762e8cbc0a2fd6b61201254ba37df57e8db |
30-Sep-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Use dyn_cast instead of isa and cast. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164924 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
73fab91f2cd5fa3dbe4593506ac4a31aa3faf897 |
30-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Revert r164910 because it causes failures to several phase2 builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e5f163a3b98a531c3ff35da0e97e7364c0e04b95 |
30-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
A DAGCombine optimization for merging consecutive stores. This optimization is not profitable in many cases because moden processos can store multiple values in parallel, and preparing the consecutive store requires some work. We only handle these cases: 1. Consecutive stores where the values and consecutive loads. For example: int a = p->a; int b = p->b; q->a = a; q->b = b; 2. Consecutive stores where the values are constants. Foe example: q->a = 4; q->b = 5; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164910 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
454627252b1cc43e81949d41eb20e9ea9560da58 |
29-Sep-2012 |
Duncan Sands <baldrick@free.fr> |
Speculatively revert commit 164885 (nadav) in the hope of ressurecting a pile of buildbots. Original commit message: A DAGCombine optimization for merging consecutive stores. This optimization is not profitable in many cases because moden processos can store multiple values in parallel, and preparing the consecutive store requires some work. We only handle these cases: 1. Consecutive stores where the values and consecutive loads. For example: int a = p->a; int b = p->b; q->a = a; q->b = b; 2. Consecutive stores where the values are constants. Foe example: q->a = 4; q->b = 5; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164890 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0eb5dadf657d38da9a8c7fe44c660bcfb6933038 |
29-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Tidy up to match coding standards. Remove 'else' after 'return' and moving operators to end of preceding line. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164887 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
32b7343a96feb052e8afa0c99fb3bfcac617f0a5 |
29-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Replace a couple if/elses around similar calls with conditional operators on the varying arguments. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
72f7b0811efef58080a909abbc14d74c40c0867d |
29-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
A DAGCombine optimization for merging consecutive stores. This optimization is not profitable in many cases because moden processos can store multiple values in parallel, and preparing the consecutive store requires some work. We only handle these cases: 1. Consecutive stores where the values and consecutive loads. For example: int a = p->a; int b = p->b; q->a = a; q->b = b; 2. Consecutive stores where the values are constants. Foe example: q->a = 4; q->b = 5; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
83ef63efced9a957fe370134314645d2188c7203 |
28-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove <def,read-undef> flags from partial redefinitions. The new coalescer can turn a full virtual register definition into a partial redef by merging another value into an unused vector lane. Make sure to clear the <read-undef> flag on such defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164807 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
5cf178f281b5bc52b61d4288a309a7d35ec3cc06 |
27-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable the new coalescer algorithm by default. The new coalescer is better at merging values into unused vector lanes, improving NEON code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164794 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
657720bc6ed1f214c4e7f45f80dcc15b2e168288 |
27-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't dereference begin() on an empty vector. The fix is obvious and the only test case I have is horrible, so I am not including it. The problem shows up when self-hosting clang on i386 with -new-coalescer enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164793 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
ddc26d89362330995f59ad29eb8bb439a817050b |
27-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid dereferencing a NULL pointer. Fixes PR13943. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164778 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
94c22716d60ff5edf6a98a3c67e0faa001be1142 |
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
7e2c793a2b5c746344652b6579e958ee42fafdcc |
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo 'iff' => 'if' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
2c189061184925c6a8ecbb5a19e648b230a41c0e |
26-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the `hasFnAttr' method from Function. The hasFnAttr method has been replaced by querying the Attributes explicitly. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164725 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
odePlacementOpt.cpp
achineBlockPlacement.cpp
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
tackProtector.cpp
ailDuplication.cpp
|
4bb51cc83badd77bdc482b0594b72cb177f052f6 |
26-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164666 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
|
f18eb5887f913bd9aa372005599d7375333cdce2 |
26-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Generate an error message instead of asserting or segfaulting when we have a scalar-to-vector conversion that we cannot handle. For instance, when an invalid constraint is used in an inline asm statement. <rdar://problem/12284092> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164662 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1293130f4f53e736678c45e712802f0dd087c80b |
26-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Generate an error message instead of asserting or segfaulting when we have a scalar-to-vector conversion that we cannot handle. For instance, when an invalid constraint is used in an inline asm statement. <rdar://problem/12284092> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164657 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1a37d7e807ad6cc71fe3cffdf6674644c46a60eb |
25-Sep-2012 |
Sebastian Pop <spop@codeaurora.org> |
TargetLowering interface to set/get minimum block entries for jump tables. Provide interface in TargetLowering to set or get the minimum number of basic blocks whereby jump tables are generated for switch statements rather than an if sequence. getMinimumJumpTableEntries() defaults to 4. setMinimumJumpTableEntries() allows target configuration. This patch changes the default for the Hexagon architecture to 5 as it improves performance on some benchmarks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164628 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
e9525d862454674ce87a9da52b2d05915a142206 |
25-Sep-2012 |
Jim Grosbach <grosbach@apple.com> |
Mark jump tables in code sections with DataRegion directives. Even out-of-line jump tables can be in the code section, so mark them as data-regions for those targets which support the directives. rdar://12362871&12362974 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164571 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7b451cf35613cd4dbed1cd2053464b28974571fc |
22-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Have the DbgVariable "isArtificial" and "isObjectPointer" not care about it being an argument variable so that we can decide that captured block and lambda vars that don't happen to be arguments could be an argument pointer. Add the object pointer for one case onto the subprogram die. rdar://12001329 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164419 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bb36a438722d4d56febc07c6472c8446bb6faafe |
21-Sep-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix a significant recent(?) regression. StackSlotColoring no longer did anything because LiveStackAnalysis was not preserved by VirtRegWriter. This caused big stack usage regression in some cases. rdar://12340383 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164408 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
egAllocGreedy.cpp
tackSlotColoring.cpp
irtRegMap.cpp
|
ef99fe8efaa6cb74c66e570a6ef467debca92911 |
21-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class. Now with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164370 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e6e2d8cd90ceb5190aa646dc06584027f7d492d0 |
21-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ignore PHI-defs for -new-coalescer interference checks. A PHI can't create interference on its own. If two live ranges interfere at a PHI, they must also interfere when leaving one of the PHI predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164330 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
2df8ac84ae8317b6a96f19bbc984d2bd02cff087 |
21-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extend -new-coalescer SSA update to handle mapped values as well. The old-fashioned many-to-one value mapping doesn't always work when merging vector lanes. A value can map to multiple different values, and it can even be necessary to insert new PHIs. When a value number is defined by a copy from a value number that required SSa update, include the live range of the copied value number in the SSA update as well. It is not necessarily a copy of the original value number any longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164329 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
|
d57ae39a885649cf4d86e50e11fd2c453eae78d5 |
21-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Only emit DW_AT_object_pointer if this is a definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164326 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
4aa189909a194b4b858aefa0c186fa6504845bfd |
20-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert r164308 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164309 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
f2e89e00b4c4ecfa5a092a479ccab1ed8677eede |
20-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164308 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
6dfabb6cc72118e046d2a466aa6adcec4c4923db |
20-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e603fe46649aee6f6aeca1668f0b617818af1e1d |
20-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Convert some attribute existence queries over to use the predicate methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164268 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
e853d2e2508e21b5c3156c7d8b6e6902a7d2604a |
20-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Add predicates for queries on whether an attribute exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d40d4c34f72d1eda3cd9ba0f3dbf2d43b726f06c |
19-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Resolve conflicts involving dead vector lanes for -new-coalescer. A common coalescing conflict in vector code is lane insertion: %dst = FOO %src = BAR %dst:ssub0 = COPY %src The live range of %src interferes with the ssub0 lane of %dst, but that lane is never read after %src would have clobbered it. That makes it safe to merge the live ranges and eliminate the COPY: %dst = FOO %dst:ssub0 = BAR This patch teaches the new coalescer to resolve conflicts where dead vector lanes would be clobbered, at least as long as the clobbered vector lanes don't escape the basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164250 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d8f39afb4755743bdf92c869d87a86dc4f17e56b |
19-Sep-2012 |
Andrew Trick <atrick@apple.com> |
comment typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164180 91177308-0d34-0410-b5e6-96231b3b80d8
iveRegMatrix.h
|
3918cade8f7c0a9ff4e3c5799a55846d8f6e3fd4 |
18-Sep-2012 |
Andrew Trick <atrick@apple.com> |
TargetSchedule: cleanup computeOperandLatency logic & diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164154 91177308-0d34-0410-b5e6-96231b3b80d8
argetSchedule.cpp
|
781ab4777f683099b919597431022c77854ed415 |
18-Sep-2012 |
Andrew Trick <atrick@apple.com> |
misched: Make ScheduleDAGInstrs use the TargetSchedule interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164153 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
536a88ad5bf160232205192a7ce72e50bfadbded |
18-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
When creating MCAsmBackend pass the CPU string as well. In X86AsmBackend store this and use it to not emit long nops when the CPU is geode which doesnt support them. Fixes PR11212. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164132 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
34301ceca8913f3126339f332d3dc6f2d7ac0d78 |
18-Sep-2012 |
Andrew Trick <atrick@apple.com> |
TargetSchedModel API. Implement latency lookup, disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164098 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
argetSchedule.cpp
|
c2945e44d5d485ce080a09900fbd5245e01165fc |
18-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164090 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeOrdering.h
|
fe257cc8af0859b0a92a6ba195382e1f9e1ea9aa |
18-Sep-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix some funky indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
87f7864c6d81ae134335b8271ac12c937c81dffc |
18-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Merge into undefined lanes under -new-coalescer. Add LIS::pruneValue() and extendToIndices(). These two functions are used by the register coalescer when merging two live ranges requires more than a trivial value mapping as supported by LiveInterval::join(). The pruneValue() function can remove the part of a value number that is going to conflict in join(). Afterwards, extendToIndices can restore the live range, using any new dominating value numbers and updating the SSA form. Use this complex value mapping to support merging a register into a vector lane that has a conflicting value, but the clobbered lane is undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164074 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
|
98279e8d65fe5c86d0370b3e2a62f244985bec33 |
18-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop adding <imp-def> operands when expanding REG_SEQUENCE. These extra operands are not needed by register allocators using VirtRegRewriter, and RAFast don't need them any longer. By omitting the <imp-def> operands, it becomes possible for the new register coalescer to track which lanes are valid and which are undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164073 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
e1b53287179b4b9b5c3c549586f688d3fa2ae8ef |
18-Sep-2012 |
Andrew Trick <atrick@apple.com> |
Revert r164061-r164067. Most of the new subtarget emitter. I have to work out the Target/CodeGen header dependencies before putting this back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164072 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
argetSchedule.cpp
|
12886db4a7af74f17281695320c40248cb263f55 |
18-Sep-2012 |
Andrew Trick <atrick@apple.com> |
TargetSchedModel API. Implement latency lookup, disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164065 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
argetSchedule.cpp
|
8dcc99496d9e32e13e30d6579b7af05f19e7c8d8 |
17-Sep-2012 |
Michael Ilseman <milseman@apple.com> |
Increase the static sizes of some SmallSets. finalizeBundle() is very frequently called for some backends, and growing into an std::set is overkill for these numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164044 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
2b9430243373768d5baba046a8c344cce96749a5 |
17-Sep-2012 |
Michael Ilseman <milseman@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164043 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
bb7300224738e65f9a9945dc7df2f360b1d4feb6 |
17-Sep-2012 |
Michael Liao <michael.liao@intel.com> |
Fix PR13859 - Preserve the original NOutVT during casting from vector to integer by extracting vector elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164042 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
a52c3acc14062a7c2220cedb9f75531bf730eda8 |
17-Sep-2012 |
Tom Stellard <thomas.stellard@amd.com> |
Add a MachinePostDominator pass This is used in the AMDIL and R600 backends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164029 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
achinePostDominators.cpp
|
a26cadc58d32a739ccf99423922bfc542c1026b1 |
17-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Disable the protection from escaped allocas in an attempt to find violating passes. This may break the buildbots. I plan to revert it in a few hours. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164024 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
1d2b45f1670a76e61d997de865d154ee77d01ea4 |
16-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Fix bad comment. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c722ae7a2b470e544ce570692ef3b109449d69ec |
16-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add alternative coalescing algorithm under a flag. The live range of an SSA value forms a sub-tree of the dominator tree. That means the live ranges of two values overlap if and only if the def of one value lies within the live range of the other. This can be used to simplify the interference checking a bit: Visit each def in the two registers about to be joined. Check for interference against the value that is live in the other register at the def point only. It is not necessary to scan the set of overlapping live ranges, this interference check can be done while computing the value mapping required for the final live range join. The new algorithm is prepared to handle more complicated conflict resolution - We can allow overlapping live ranges with different values as long as the differing lanes are undef or unused in the other register. The implementation in this patch doesn't do that yet, it creates code that is nearly identical to the old algorithm's, except: - The new stripCopies() function sees through multiple copies while the old RegistersDefinedFromSameValue() only can handle one. - There are a few rare cases where the new algorithm can erase an IMPLICIT_DEF instuction that RegistersDefinedFromSameValue() couldn't handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163991 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
86a1c32e67b23c5e9e42dff9eb86e99ba15bb42f |
15-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163974 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
iveIntervalUnion.h
irtRegMap.h
|
ab9baf7ff4b58b3905bccad68c8d2ab59ea4202b |
15-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't depend on kill flags in removeCopyByCommutingDef(). Kill flags are removed more and more aggressively during the register allocation passes, it is better to get information from LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163972 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
99ab6c6035aec3c0e9b0cc5b76a4666fc5fd7b7b |
14-Sep-2012 |
Andrew Trick <atrick@apple.com> |
TargetSchedModel interface. To be implemented... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163934 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
argetSchedule.cpp
|
d039b383e76e6658846dca9eee3fe7f221a2f938 |
14-Sep-2012 |
Andrew Trick <atrick@apple.com> |
misched: add a hook for custom DAG postprocessing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163915 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
74b4762234eaeff94058999758a83acc0b54cba6 |
14-Sep-2012 |
Duncan Sands <baldrick@free.fr> |
Remove silly dead store. Patch by Ettl Martin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163882 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
ffaf69b8b118808ca35ab84d477fd2e4e54cce90 |
14-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Fix both the test for zero and what we do if we have a zero for umulo legalization. Fixes PR13839 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
331f64cd0dc1249d0708af63b4d13509850c234e |
14-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Reformat, remove a couple unused variables and move some variables closer to where they're needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163855 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
092122f124b6589a3a432473c1047bf5834df3c1 |
13-Sep-2012 |
Michael Liao <michael.liao@intel.com> |
Enhance type legalization on bitcast from vector to integer - Find a legal vector type before casting and extracting element from it. - As the new vector type may have more than 2 elements, build the final hi/lo pair by BFS pairing them from bottom to top. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
18e2c290940b67c9dc1196e3c2234e7a20f60ae4 |
13-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Rename the flag which protects from escaped allocas, which may come from bugs in user code or in the compiler. Also, dont assert if the protection is not enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163807 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
91a7e0184a4f7976ef11cb48697d2782fc1b9be7 |
13-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix a dagcombine optimization. The optimization attempts to optimize a bitcast of fneg to integers by xoring the high-bit. This fails if the source operand is a vector because we need to negate each of the elements in the vector. Fix rdar://12281066 PR13813. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163802 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
faf31d01db913b477b749c9f11f18a9471c0a672 |
13-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163801 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
0cd19b93017fcaba737b15ea4da39c460feb5670 |
13-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Stack Coloring: We have code that checks that all of the uses of allocas are within the lifetime zone. Sometime legitimate usages of allocas are hoisted outside of the lifetime zone. For example, GEPS may calculate the address of a member of an allocated struct. This commit makes sure that we only check (abort regions or assert) for instructions that read and write memory using stack frames directly. Notice that by allowing legitimate usages outside the lifetime zone we also stop checking for instructions which use derivatives of allocas. We will catch less bugs in user code and in the compiler itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163791 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
e521278f00cf5f4ea0cc4aac126df30924d3e705 |
13-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Recommit, with fixes: Add some support for dealing with an object pointer on arguments. Part of rdar://9797999 which now supports adding the object pointer attribute to the subprogram as it should. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163754 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6c7ccaa3fd1d6e96d0bf922554b09d2b17c3b0e3 |
12-Sep-2012 |
Michael Liao <michael.liao@intel.com> |
Fix PR11985 - BlockAddress has no support of BA + offset form and there is no way to propagate that offset into machine operand; - Add BA + offset support and a new interface 'getTargetBlockAddress' to simplify target block address forming; - All targets are modified to use new interface and X86 backend is enhanced to support BA + offset addressing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163743 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGDumper.cpp
|
045ca86bb3494e60ec2be72cabb5683fe204d066 |
12-Sep-2012 |
Owen Anderson <resistor@mac.com> |
Remove an overly-aggressive assertion. The code following this assertion already knows how to handle the case where DstRC was NULL, so it's not actually protecting us from anything, and this pattern can come up when using unknown_class operands in the SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163736 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
01b50ca5b397128d43167d617ba849d4a83282f1 |
12-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163735 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
fd1cd572211aae8f73dc073c004b865054a34604 |
12-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Revert "Add some support for dealing with an object pointer on arguments." This should be done on the subprogram, not the variable itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163734 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
67c8978617c3bce9d07210f93f6c64c715f77695 |
12-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Fix a couple of Doxygen comment issues pointed out by -Wdocumentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163721 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
789efbad2a7b2c7693a3aee7b6d08806c361538f |
12-Sep-2012 |
Kristof Beyls <kristof.beyls@arm.com> |
Fix constant folding through bitcasts by no longer relying on undefined behaviour (converting NaN values between float and double). SelectionDAG::getConstantFP(double Val, EVT VT, bool isTarget); should not be used when Val is not a simple constant (as the comment in SelectionDAG.h indicates). This patch avoids using this function when folding an unknown constant through a bitcast, where it cannot be guaranteed that Val will be a simple constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d76f6eadc8c8511e1c5cd089a8a54e429c19aa60 |
12-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a flag to disable the code that looks for allocas which escaped the lifetime regions. This is useful for debugging. No testcase because without this check we fail on assertions when finding escaped allocas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163702 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
c4f70d437df505e128e0debdf0c5f4ab5010e1b5 |
12-Sep-2012 |
James Molloy <james.molloy@arm.com> |
Add a function computeRegisterLiveness() to MachineBasicBlock. This uses analyzePhysReg() from r163694 to heuristically try and determine the liveness state of a physical register upon arrival at a particular instruction in a block. The search for liveness is clipped to a specific number of instructions around the target MachineInstr, in order to avoid degenerating into an O(N^2) algorithm. It tries to use various clues about how instructions around (both before and after) a given MachineInstr use that register, to determine its state at the MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163695 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
b17cf29784ad526f3adfc20c5aa1b0de5c57033e |
12-Sep-2012 |
James Molloy <james.molloy@arm.com> |
Add an analyzePhysReg() function to MachineOperandIteratorBase that analyses an instruction's use of a physical register, analogous to analyzeVirtReg. Rename RegInfo to VirtRegInfo so as not to be confused with the new PhysRegInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163694 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
achineInstrBundle.cpp
|
dba5de5246f84fe50aef79e464e5aecdf5607ab4 |
12-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Enable stack-coloring, in hope that the recent fixes will enable correct dragonegg self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163687 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
6d742cc61eb9c933a36f0bc96631fae95c6d3d2e |
12-Sep-2012 |
Lang Hames <lhames@gmail.com> |
Make findLastUseBefore handle reg-unit liveness. findLastUseBefore was previous considering virtreg liveness only, leading to incorrect live intervals for reg units when instrs with physreg operands were moved up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163685 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0a16da445740ca6fcd7a7ca571c1917e77315904 |
12-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Stack coloring: remove lifetime intervals which contain escaped allocas. The input program may contain intructions which are not inside lifetime markers. This can happen due to a bug in the compiler or due to a bug in user code (for example, returning a reference to a local variable). This commit adds checks that all of the instructions in the function and invalidates lifetime ranges which do not contain all of the instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163678 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
2c57a334d762275a0ba478b7c39f384992bcdf6a |
12-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Add some support for dealing with an object pointer on arguments. Part of rdar://9797999 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163667 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b720be6a50f4e1b3280d2b029ee38dda14577525 |
12-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)" No functional change. Update r163339. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163653 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineLoopInfo.cpp
achineScheduler.cpp
ostRASchedulerList.cpp
egisterPressure.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
coreboardHazardRecognizer.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
lotIndexes.cpp
plitKit.cpp
irtRegMap.cpp
|
a7b159ccdd3531853dc49dd91cf8948ce382e1c1 |
11-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Split the parsing of IR asm strings into GCC and MS variants. Add support in the EmitMSInlineAsmStr() function for handling integer consts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163645 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
1eba4a7a28f7e0156725518783dc35137869a670 |
11-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Dragonegg selfhost exposed additional cases where alloca usage moved outside of lifetime markers. Disabling the pass for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163623 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
50bdea299c9c1d4b2d0535a7cc874490ac49fe67 |
11-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Enable stack coloring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163617 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
8754bbbe672450689a5bdc8a198af90144e56f31 |
11-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Stack Coloring: Dont crash on dbg values which use stack frames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163616 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
68aeecc773d36c4be9adf32d1f09ec739574c880 |
11-Sep-2012 |
Stephen Hines <srhines@google.com> |
Merge up through LLVM r163557. Updated Android.mk source files for Analysis, CodeGen, Target/Mips, Transforms/Instrumentation, and Transforms/Utils. Change-Id: I232a895e3ad9ec0c4a66f4308a11bb794b67940f
ndroid.mk
|
dd201ff1dcbc138cde07fb86896d491134987a2e |
11-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Teach DAG combiner to constant fold FABS of a BUILD_VECTOR of ConstantFPs. Factor similar code out of FNEG DAG combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
78e5efe1b202f71975ad93f33b1fda21d83fd1fb |
11-Sep-2012 |
Andrew Trick <atrick@apple.com> |
Reorganize MachineScheduler interfaces and publish them in the header. The Hexagon target decided to use a lot of functionality from the target-independent scheduler. That's fine, and other targets should be able to do the same. This reorg and API update makes that easy. For the record, ScheduleDAGMI was not meant to be subclassed. Instead, new scheduling algorithms should be able to implement MachineSchedStrategy and be done. But if need be, it's nice to be able to extend ScheduleDAGMI, so I also made that easier. The target scheduler is somewhat more apt to break that way though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163580 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
1c4ad5ef4fab105f0c8af7edd026e00502fb6279 |
11-Sep-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge-2012_09_10 Conflicts: lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp lib/Support/DynamicLibrary.cpp lib/Support/LockFileManager.cpp Change-Id: I91e94c3a7a76e19c688307c5a480a640a3bd2b7e
|
09e475091921aef0f1f1253f774689d00da78bf4 |
11-Sep-2012 |
Eric Christopher <echristo@apple.com> |
Revert r160148 it seems to cause more problems than it should right now. We'll fix PR13303 a different way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163570 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4984e01fd5d671db17fdbebcd84d618837ad13bf |
11-Sep-2012 |
Eric Christopher <echristo@apple.com> |
80-col fixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163569 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.h
|
edf8bc8c88ba0edd5c502957dd11402dbd66f58d |
11-Sep-2012 |
Eric Christopher <echristo@apple.com> |
80-col fixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163568 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5c38de99f104daaf1624b28def2c8375a702466d |
11-Sep-2012 |
Eric Christopher <echristo@apple.com> |
No reason to construct this twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
24f5fddbdff3d54d822555ae792a7f3bb22e342f |
10-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Properly emit the asm directives when the AsmPrinterVariant and InlineAsmVariant don't match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163550 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
2de0572caec55e3779857cae0bbcd962af2e495d |
10-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove redundant semicolons which are null statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163547 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
tackColoring.cpp
|
8631a90f46f4dada3b2082d81d17846210cfd7d8 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Disable stack coloring because it makes dragonegg fail bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163545 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
3b132fab0bebe7186348d7ab0e2663c9fddab3bb |
10-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Pass the correct AsmVariant to the PrintAsmOperand() function and update the printOperand() function accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163544 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
b6d52a5b4aa56292ad4085e87b9e5e618f795a1e |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Enable stack coloring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163539 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
6165dba25f3374ce340b420ab9a360623c26fdc3 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Stack Coloring: Handle the case where END markers come before BEGIN markers properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163530 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
10def396cba31bc2358a92bc5d714fceb17cbbd3 |
10-Sep-2012 |
Michael Ilseman <milseman@apple.com> |
Fold multiply by 0 or 1 when in UnsafeFPMath mode in SelectionDAG::getNode(). This folding happens as early as possible for performance reasons, and to make sure it isn't foiled by other transforms (e.g. forming FMAs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
06b9690463e994e026d529701b19cb8e970b5c62 |
10-Sep-2012 |
Michael Ilseman <milseman@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163518 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8cd08bf4ac67b9d711fd1f72e6f5e00425d8c6ad |
10-Sep-2012 |
James Molloy <james.molloy@arm.com> |
Fix an assertion failure when optimising a shufflevector incorrectly into concat_vectors, and a followup bug with SelectionDAG::getNode() creating nodes with invalid types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
ff1b63172d22c148c9180a546262f61a8c334974 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Minor cleanup. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163510 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
9438d1e3514ab8801e9c488d9723241af7f4dc91 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Stack Coloring: Debug prints to print the slot number and not the array index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163509 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
a7de8a61dfae69885203137f3c712ab3d0cd75a4 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Stack Coloring: When searching for disjoint regions, do not compare intervals twice or to theirself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163508 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
e47feeb823ebf496e82db6a666d4c0fbaeb158b4 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Stack Coloring: Add support for multiple regions of the same slot, within a single basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163507 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
8cc14949053ea4fcba34afc68b30137eff408d66 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix a typo in the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163496 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
0aa52ee04e3060974474f6b3f824517c088f07d8 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Add an assertion that the frame index is indeed inside the declared lifetime region. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163495 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
9a2ae00c85c553108f3d57b134f0aceef5ae3372 |
10-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Teach the DAGBuilder about lifetime markers which are generated from PHINodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
956342b2104c734d4d6b758a58a799ccd3beb63d |
10-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Teach DAG combiner to constant fold fneg of a BUILD_VECTOR of constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163483 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
11b450589978a39e59b77cd074dcda9d5697f174 |
09-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
LiveVariables: Compute a set of defs and kills to speed up updating LV during critical edge splitting. Previously we checked if the register is def'd in a block via the def/use list a nd walked the list of kills to check if the register is killed in a block. Both of these checks can be made much cheaper by walking the block first and recording all defs and kills. This reduces the compile time of the test case from PR13651 from 40s to 15s at -O2. The compile time is still dominated by LV updating but now the main culprit is SparseBitVector's slowness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163478 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
a9e37c5eaf79c3a32f2921536fb7e12514e86fb2 |
07-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix alignment of .comm and .lcomm on mingw32. For some reason .lcomm uses byte alignment and .comm log2 alignment so we can't use the same setting for both. Fix this by reintroducing the LCOMM enum. I verified this against mingw's gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163420 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
26c5d5f0a93640008ccd01554b9c26e1e42dc892 |
07-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
Fix indent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163416 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
c53ade2889c85207e064e4c3d049383ffffb3319 |
07-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
Update function names to conform to guidelines. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163401 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
39646d96e76aea5d20bffb386233a0dbb5932a21 |
07-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
MC: Overhaul handling of .lcomm - Darwin lied about not supporting .lcomm and turned it into zerofill in the asm parser. Push the zerofill-conversion down into macho-specific code. - This makes the tri-state LCOMMType enum superfluous, there are no targets without .lcomm. - Do proper error reporting when trying to use .lcomm with alignment on a target that doesn't support it. - .comm and .lcomm alignment was parsed in bytes on COFF, should be power of 2. - Fixes PR13755 (.lcomm crashes on ELF). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163395 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1fdaee9995f1bf1553cecd4da62daba91fd4fa1f |
07-Sep-2012 |
Michael Liao <michael.liao@intel.com> |
Stop emitting lifetime region info when stack coloring is not enabled in O0 - this should fix PR13780 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
77e300e8f0b8db8eec448cae9c87d7c5bfad9757 |
06-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "ifndef NDEBUG" No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163339 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineLoopInfo.cpp
achineScheduler.cpp
ostRASchedulerList.cpp
egisterPressure.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
coreboardHazardRecognizer.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
lotIndexes.cpp
plitKit.cpp
irtRegMap.cpp
|
45c5c57179e8b4938042431f8e12c9bfad67b3c8 |
06-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow overlaps between virtreg and physreg live ranges. The RegisterCoalescer understands overlapping live ranges where one register is defined as a copy of the other. With this change, register allocators using LiveRegMatrix can do the same, at least for copies between physical and virtual registers. When a physreg is defined by a copy from a virtreg, allow those live ranges to overlap: %CL<def> = COPY %vreg11:sub_8bit; GR32_ABCD:%vreg11 %vreg13<def,tied1> = SAR32rCL %vreg13<tied0>, %CL<imp-use,kill> We can assign %vreg11 to %ECX, overlapping the live range of %CL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163336 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveRegMatrix.cpp
egisterCoalescer.h
|
e617ccb80da76821379bbff4a2fdcd09e8401e8b |
06-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle overlapping regunit intervals in LiveIntervals::addKillFlags(). We will soon allow virtual register live ranges to overlap regunit live ranges when the physreg is defined as a copy of the virtreg: %EAX = COPY %vreg5 FOO %vreg5 BAR %EAX<kill> There is no real interference since %vreg5 and %EAX have the same value where they overlap. This patch prevents addKillFlags from adding virtreg kill flags to FOO where the assigned physreg is overlapping the virtual register live range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163335 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
f9dff0e0e4e8aa9fd99c5f069e431fe6de98c1c9 |
06-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear kill flags while computing live ranges. Kill flags are difficult to maintain, and liveness queries are better handled by live intervals. Kill flags are reinserted after register allocation by addKillFlags(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163334 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.cpp
|
5177b3a8c48adec2acf284fcb8e00775a705a7e2 |
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Dont cast away const needlessly. Found by gcc48 -Wcast-qual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163324 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
79cb162e5d7aeaa3602bf4a7afa253232f461b33 |
06-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Disable stack coloring by default in order to resolve the i386 failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163316 91177308-0d34-0410-b5e6-96231b3b80d8
tackColoring.cpp
|
e757640df0615510dbc42921cf6271aa76c405ee |
06-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix a few old-GCC warnings. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163309 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
c05d30601ced172b55be81bb529df6be91d6ae15 |
06-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
achineFunction.cpp
asses.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
tackColoring.cpp
|
366df7945f0e65052d2e1df701ae1fd16b943642 |
06-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Use the asm dialect from the MI to set the parser dialect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163273 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
2f1d8154795ad82e500fda27d75ec1449e7a0648 |
06-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
Cleanup a few magic numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163263 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAGBuilder.cpp
|
59324297650c12a8dccf1a7ad650a9e895fdc17e |
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Stop casting away const qualifier needlessly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163258 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineVerifier.cpp
asses.cpp
electionDAG/SelectionDAGDumper.cpp
electionDAG/TargetLowering.cpp
|
77fffa6fdd389ad6d70a42b36c1c36c768c2de41 |
06-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] We only need one bit to represent the AsmDialect in the MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163257 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAGBuilder.cpp
|
2943e378048636691eda1b1b4e437eea9da4a839 |
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Constify this properly. Found by gcc48 -Wcast-qual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
141e99745adbd3ba9fa7315af3384c1d08c4c20c |
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Constify SDNodeIterator an stop its only non-const user being cast stripped of its constness. Found by gcc48 -Wcast-qual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
576cd11ab8035d4240f7e6ea8d7c6c2e45154f86 |
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Propagate the asm dialect into the MachineInstr representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163243 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAGBuilder.cpp
|
15d0c81b2496a025af30a78e3a36fd7f05b165ef |
05-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Remove unused typedefs gcc4.8 warns about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163225 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
3d5e161fe45f9553009c0377a5689324aab1c64a |
05-Sep-2012 |
Silviu Baranga <silviu.baranga@arm.com> |
Fixed the DAG combiner to better handle the folding of AND nodes for vector types. The previous code was making the assumption that the length of the bitmask returned by isConstantSplat was equal to the size of the vector type. Now we first make sure that the splat value has at least the length of the vector lane type, then we only use as many fields as we have available in the splat value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ec90cc8b0fc4d1dfb641ca1a7853f1bb334a00bd |
05-Sep-2012 |
Logan Chien <tzuhsiang.chien@gmail.com> |
Reorder the comments of EmitExceptionTable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.h
|
f6dc792df1452f015bc56590b77af9cb0d7b33d9 |
05-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert vextracti128/vextractf128 intrinsics to extract_subvector at DAG build time. Similar was previously done for vinserti128/vinsertf128. Add patterns for folding these extract_subvectors with stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163192 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f363ebdb037d9071abae5ca8af7f3b3cd84327e3 |
05-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Search the whole instruction for tied operands. Implicit uses can be dynamically tied to defs. This will soon be used for predicated instructions on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163177 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4f1a56ce3c08763c89e9cf50e9503a87247ac4e9 |
04-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163154 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
99c416c9f7e8a9d7d1038d03cafebec730280398 |
04-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Actually use the MachineOperand field for isRegTiedToDefOperand(). The MachineOperand::TiedTo field was maintained, but not used. This patch enables it in isRegTiedToDefOperand() and isRegTiedToUseOperand() which are the actual functions use by the register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163153 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
daddf07497af2849868105264bd5f95c362041e5 |
04-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move tie checks into MachineVerifier::visitMachineOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163152 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
9c130672761e006c47ea23b34a7bd414f2cd8368 |
04-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow tied uses and defs in different orders. After much agonizing, use a full 4 bits of precious MachineOperand space to encode this. This uses existing padding, and doesn't grow MachineOperand beyond its current 32 bytes. This allows tied defs among the first 15 operands on a normal instruction, just like the current MCInstrDesc constraint encoding. Inline assembly needs to be able to tie more than the first 15 operands, and gets special treatment. Tied uses can appear beyond 15 operands, as long as they are tied to a def that's in range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163151 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2e2efd960056bbb7e4bbd843c8de55116d52aa7d |
04-Sep-2012 |
Preston Gurd <preston.gurd@intel.com> |
Generic Bypass Slow Div - CodeGenPrepare pass for identifying div/rem ops - Backend specifies the type mapping using addBypassSlowDivType - Enabled only for Intel Atom with O2 32-bit -> 8-bit - Replace IDIV with instructions which test its value and use DIVB if the value is positive and less than 256. - In the case when the quotient and remainder of a divide are used a DIV and a REM instruction will be present in the IR. In the non-Atom case they are both lowered to IDIVs and CSE removes the redundant IDIV instruction, using the quotient and remainder from the first IDIV. However, due to this optimization CSE is not able to eliminate redundant IDIV instructions because they are located in different basic blocks. This is overcome by calculating both the quotient (DIV) and remainder (REM) in each basic block that is inserted by the optimization and reusing the result values when a subsequent DIV or REM instruction uses the same operands. - Test cases check for the presents of the optimization when calculating either the quotient, remainder, or both. Patch by Tyler Nowicki! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f68b87f5fc1985c897e7a84ee040bcfff75b4959 |
03-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
IRBuilderify the SjlLjEHPrepare pass. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163115 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
7b23d0838551ee16cbd49692df1eb0598b8a48f2 |
03-Sep-2012 |
Lang Hames <lhames@gmail.com> |
When updating live range endpoints, make sure to preserve the early clobber bit. Fixs PR13719. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163107 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ee77da6b28d7f56e4e531ae8b4f8093de760a2e5 |
02-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163094 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
f55ef64544f8ba81e50154a98f144f7b7783ed40 |
02-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Generate better select code by allowing the target to use scalar select, and not sign-extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163086 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
d906017c1a8b5c7c49f1bc21c13e8b85306298b8 |
02-Sep-2012 |
Pete Cooper <peter_cooper@apple.com> |
Only legalise a VSELECT in to bitwise operations if the vector mask bool is zeros or all ones. A vector bool with just ones isn't suitable for masking with. No test case unfortunately as i couldn't find a target which fit all the conditions needed to hit this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163075 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
0fc44aba18ed2f557805ce84fe597356f026f202 |
01-Sep-2012 |
Pete Cooper <peter_cooper@apple.com> |
Revert "Take account of boolean vector contents when promoting a build vector from i1 to some other type. rdar://problem/12210060" This reverts commit 5dd9e214fb92847e947f9edab170f9b4e52b908f. Thanks to Duncan for explaining how this should have been done. Conflicts: test/CodeGen/X86/vec_select.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
e2ac55242179382ba86215206072ea0d9be4ff5d |
01-Sep-2012 |
Logan Chien <tzuhsiang.chien@gmail.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163059 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
58d5729540bec7c6f7aef19a9a6a179123deab47 |
01-Sep-2012 |
Owen Anderson <resistor@mac.com> |
Teach DAG combine a number of tricks to simplify FMA expressions in fast-math mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163051 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b79bff50bdf68615dfa1ddd2239c8d093e155e1f |
01-Sep-2012 |
Michael Liao <michael.liao@intel.com> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163049 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
94083149fd6891c8a72472cf1814fa6600a75979 |
31-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::tieOperands, remove setIsTied(). Manage tied operands entirely internally to MachineInstr. This makes it possible to change the representation of tied operands, as I will do shortly. The constraint that tied uses and defs must be in the same order was too restrictive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163021 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/InstrEmitter.cpp
|
89b2ff0b5c9383ed574205b1e9a42089ee9e6861 |
31-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Use CloneMachineInstr to make a new MI in commuteInstruction to make the code tolerant of instructions with more than two input operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163000 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
908c0c01f634798a4c1b335a6aca0870ad1fce77 |
31-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't enforce ordered inline asm operands. I was too optimistic, inline asm can have tied operands that don't follow the def order. Fixes PR13742. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162998 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
5dd9e214fb92847e947f9edab170f9b4e52b908f |
31-Aug-2012 |
Pete Cooper <peter_cooper@apple.com> |
Take account of boolean vector contents when promoting a build vector from i1 to some other type. rdar://problem/12210060 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
43da6c7f13aedcc11530f9d81dbbb2ee07ad226a |
31-Aug-2012 |
Owen Anderson <resistor@mac.com> |
Teach the DAG combiner to turn chains of FADDs (x+x+x+x+...) into FMULs by constants. This is only enabled in unsafe FP math mode, since it does not preserve rounding effects for all such constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162956 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e757f00446fb3c80a96d729f0530b87e9148db7f |
30-Aug-2012 |
Nadav Rotem <nrotem@apple.com> |
Currently targets that do not support selects with scalar conditions and vector operands - scalarize the code. ARM is such a target because it does not support CMOV of vectors. To implement this efficientlyi, we broadcast the condition bit and use a sequence of NAND-OR to select between the two operands. This is the same sequence we use for targets that don't have vector BLENDs (like SSE2). rdar://12201387 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
e941df5e354ff7d327bab8e59af687ec90fdd149 |
30-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use MCInstrDesc flags for implicit operands. When a MachineInstr is constructed, its implicit operands are added first, then the explicit operands are inserted before the implicits. MCInstrDesc has oprand flags like early clobber and operand ties that apply to the explicit operands. Don't look at those flags when the implicit operands are first added in the explicit operands's positions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162910 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6b1e1d8b3d8d5a1b299d3c2897db9bf122b02c00 |
30-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Add FMA to switch statement in VectorLegalizer::LegalizeOp so that it can be expanded when it isn't legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162894 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
3b9dfc9bf79f1134336fa704c54e411a24856d1d |
30-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Add support for FMA to WidenVectorResult. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
492d76b02ec5dd84fa59f79ce83cd3e5ae6603fe |
30-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify the order of tied operands in inline asm. When there are multiple tied use-def pairs on an inline asm instruction, the tied uses must appear in the same order as the defs. It is possible to write an LLVM IR inline asm instruction that breaks this constraint, but there is no reason for a front end to emit the operands out of order. The gnu inline asm syntax specifies tied operands as a single read/write constraint "+r", so ouf of order operands are not possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162878 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
66390805ad58871cde3f5ccd72a7dcac9b1cd4d8 |
30-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Set the isTied flags when building INLINEASM MachineInstrs. For normal instructions, isTied() is set automatically by addOperand(), based on MCInstrDesc, but inline asm has tied operands outside the descriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
f036f7a1e79910bf5b5b6f37d2e512b4f01155a0 |
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename hasVolatileMemoryRef() to hasOrderedMemoryRef(). Ordered memory operations are more constrained than volatile loads and stores because they must be ordered with respect to all other memory operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162861 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
cheduleDAGInstrs.cpp
|
0d7585839540abb9ab661a741dc3e0c2c860bceb |
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't move normal loads across volatile/atomic loads. It is technically allowed to move a normal load across a volatile load, but probably not a good idea. It is not allowed to move a load across an atomic load with Ordering > Monotonic, and we model those with MOVolatile as well. I recently removed the mayStore flag from atomic load instructions, so they don't need a pseudo-opcode. This patch makes up for the difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162857 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
90a4f78d3b23576da92a60a731cb34767fd75db8 |
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify the consistency of inline asm operands. The operands on an INLINEASM machine instruction are divided into groups headed by immediate flag operands. Verify this structure. Extract verifyTiedOperands(), and only call it for non-inlineasm instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162849 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
17dd9a992aa499d79ccfa8b477ed4a225d1e39b6 |
29-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Clean this up slightly, doesn't really fall through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162848 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
ca71c5debe0467646ca1f359073948d5353393a0 |
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify the tied operand flags. WHen running with -verify-machineinstrs, check that tied operands come in matching use/def pairs, and that they are consistent with MCInstrDesc when it applies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162816 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
699ac049517285d978ed607b2735976c5ae97ac0 |
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Maintain a vaild isTied bit as operands are added and removed. The isTied bit is set automatically when a tied use is added and MCInstrDesc indicates a tied operand. The tie is broken when one of the tied operands is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162814 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4ba6916a98fffd9dedac5945ac51d40c8948069e |
28-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a MachineOperand::isTied() flag. While in SSA form, a MachineInstr can have pairs of tied defs and uses. The tied operands are used to represent read-modify-write operands that must be assigned the same physical register. Previously, tied operand pairs were computed from fixed MCInstrDesc fields, or by using black magic on inline assembly instructions. The isTied flag makes it possible to add tied operands to any instruction while getting rid of (some of) the inlineasm magic. Tied operands on normal instructions are needed to represent predicated individual instructions in SSA form. An extra <tied,imp-use> operand is required to represent the output value when the instruction predicate is false. Adding a predicate to: %vreg0<def> = ADD %vreg1, %vreg2 Will look like: %vreg0<tied,def> = ADD %vreg1, %vreg2, pred:3, %vreg7<tied,imp-use> The virtual register %vreg7 is the value given to %vreg0 when the predicate is false. It will be assigned the same physreg as %vreg0. This commit adds the isTied flag and sets it based on MCInstrDesc when building an instruction. The flag is not used for anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162774 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
190e342cbcb1456ebb21b53a35cfefa99435bd65 |
28-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't allow TargetFlags on MO_Register MachineOperands. Register operands are manipulated by a lot of target-independent code, and it is not always possible to preserve target flags. That means it is not safe to use target flags on register operands. None of the targets in the tree are using register operand target flags. External targets should be using immediate operands to annotate instructions with operand modifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162770 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
36d29bc72345d882623b001c2692b9246a19688a |
28-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove extra MayLoad/MayStore flags from atomic_load/store. These extra flags are not required to properly order the atomic load/store instructions. SelectionDAGBuilder chains atomics as if they were volatile, and SelectionDAG::getAtomic() sets the isVolatile bit on the memory operands of all atomic operations. The volatile bit is enough to order atomic loads and stores during and after SelectionDAG. This means we set mayLoad on atomic_load, mayStore on atomic_store, and mayLoad+mayStore on the remaining atomic read-modify-write operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1d522388bfa642d710618edd3f4e9fe6471cf674 |
28-Aug-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Fix bug 13532. In SelectionDAGLegalize::ExpandLegalINT_TO_FP, expand INT_TO_FP nodes without using any f64 operations if f64 is not a legal type. Patch by Stefan Kristiansson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1144af3c9b4da48cd581156e05b24261c8de366a |
25-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix integer undefined behavior due to signed left shift overflow in LLVM. Reviewed offline by chandlerc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAG.cpp
|
baa74e4b35d96ee154c68fa6d204d854cb45f969 |
24-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid including explicit uses when counting SDNode imp-uses. It is legal to have a register node as an explicit operand, it shouldn't be counted as an implicit use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
1a710fdde197b00107ef55df51054925b9a5d2a2 |
24-Aug-2012 |
Manman Ren <mren@apple.com> |
BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle the case of multiple edges from one block to another. A simple example is a switch statement with multiple values to the same destination. The definition of an edge is modified from a pair of blocks to a pair of PredBlock and an index into the successors. Also set the weight correctly when building SelectionDAG from LLVM IR, especially when converting a Switch. IntegersSubsetMapping is updated to calculate the weight for each cluster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162572 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
d62cdbe700ab288e9ad447824066edb7d17167d9 |
23-Aug-2012 |
Stephen Hines <srhines@google.com> |
Add new files for Mips + fixups for merge to upstream r162314. Change-Id: Ib545c0c991575c14b0b74e3b8fd4cc8c789b25d0
ndroid.mk
|
31675153bd2d7617db8cb6aeb58054934c7b9f73 |
24-Aug-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge_2 Conflicts: lib/Target/ARM/ARMCodeEmitter.cpp Change-Id: I6702d340c733e9721499b5d85b13b96ad9c14eb5
|
873cf0a0d7906083578d9b793008348750636138 |
24-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Use DW_FORM_flag_present to save space in debug information if we're not in darwin gdb compat mode. Fixes rdar://10975088 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162526 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
cbbd5b1d86e0d06c804f4cdd61e0676b2d2f5c85 |
24-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Remove the DW_AT_MIPS_linkage name attribute when we don't need it output (we're emitting a specification already and the information isn't changing) and we're not in old gdb compat mode. Saves 1% on the debug information for a build of llvm. Fixes rdar://11043421 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162493 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
20f47ab7688ba1e5e4c6af4be47c2f07ee4e9ab6 |
24-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Turn these two options in to trinary state so that they can be turned on and off separate from the platform if you're on darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162487 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c1610fa3c43befd489cd41e358bfa48323594266 |
24-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Add a flag to DwarfDebug to allow it to communicate whether or not we're using the darwin old gdb compat mode for emitting dwarf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162486 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9d9f5a5855a711b1154e178e26f3766dc21d846a |
23-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162438 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9eb1a94c2020b4d6ba53962745eef19559b39a9f |
23-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Only emit the __debug_inlined section if we're trying to be compatible with older gdbs on darwin. rdar://10975874 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162436 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
360f0062bc83610e944123ee30eb057c325dfbf7 |
23-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Emit pubtypes only when going for darwin gdb compatibility. rdar://10393214 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162434 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
10cb744f194dc2a0ce0c3d52965aafb2b190068b |
23-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Add an option for darwin gdb compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ffd2526fa4e2d78564694b4797b96236c9ba9d85 |
23-Aug-2012 |
Andrew Trick <atrick@apple.com> |
Simplify the computeOperandLatency API. The logic for recomputing latency based on a ScheduleDAG edge was shady. This bypasses the problem by requiring the client to provide operand indices. This ensures consistent use of the machine model's API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162420 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
argetInstrInfoImpl.cpp
|
986d76d7b3844b9a2f3d01a48975952749267a93 |
22-Aug-2012 |
David Blaikie <dblaikie@gmail.com> |
Tidy up a few more uses of MF.getFunction()->getName(). Based on CR feedback from r162301 and Craig Topper's refactoring in r162347 here are a few other places that could use the same API (& in one instance drop a Function.h dependency). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162367 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
arlyIfConversion.cpp
xpandPostRAPseudos.cpp
iveDebugVariables.cpp
iveIntervalAnalysis.cpp
achineFunction.cpp
rocessImplicitDefs.cpp
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egisterCoalescer.cpp
tackSlotColoring.cpp
|
05d96f98cbd96dab7f4ea1ea4ebe4285597e7e88 |
22-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce duplicated hash map lookups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162362 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
trongPHIElimination.cpp
|
fdeb9fe5e08146d9cb953000cb893eda80329a08 |
22-Aug-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Rejected 169195. As Duncan commented, bitcasting to proper type is wrong approach. We need to insert some valid TRANCATE node here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162354 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
96601ca332ab388754ca4673be8973396fea2ddd |
22-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162347 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
xpandPostRAPseudos.cpp
fConversion.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineLICM.cpp
achineScheduler.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
hrinkWrapping.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
cb1f68d7c8bea99530ba55813c2b4ddd14556286 |
22-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Initialize SelectionDAGBuilder's Context in 'init', not in its constructor. The SelectionDAG's 'init' has not been called when the SelectionDAGBuilder is constructed (in SelectionDAGISel's constructor), so this was previously always initialized with 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162333 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
79c78de3785a24cb6994038f0e8df92bded548e6 |
21-Aug-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary cast that was also unnecessarily casting away constness. Even looking at the revision history I couldn't quite piece together why this cast was ever written in the first place, but I assume it was because of some change in the inheritance, perhaps this function was reimplemented in a derived type & this caller was meant to get the base version (& it wasn't virtual)? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162301 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
35907e98626b33f6406dc498201fc59ced282c8a |
21-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
Add support for the --param ssp-buffer-size= driver option. PR9673 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162284 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
990ca5517fd6666d4049b6b8281d9df99da11637 |
21-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a quadratic algorithm in MachineBranchProbabilityInfo. The getSumForBlock function was quadratic in the number of successors because getSuccWeight would perform a linear search for an already known iterator. This patch was originally committed as r161460, but reverted again because of assertion failures. Now that duplicate Machine CFG edges have been eliminated, this works properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162233 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineBranchProbabilityInfo.cpp
|
e7fdef420d0c8a825555d246da259342c48bd527 |
20-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't add CFG edges for redundant conditional branches. IR that hasn't been through SimplifyCFG can look like this: br i1 %b, label %r, label %r Make sure we don't create duplicate Machine CFG edges in this case. Fix the machine code verifier to accept conditional branches with a single CFG edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162230 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
electionDAG/SelectionDAGBuilder.cpp
|
228e3f5fac0ceef9f6fe22d1621ac32bae5d3177 |
20-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a verification pass after ExpandISelPseudos. This pass often has weird CFG hacks and hand-written MI building code that can go wrong in many ways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162224 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
b254c6d77a042ac175e101f6e06aa667446e1b77 |
20-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add CFG checks to MachineVerifier. Verify that the predecessor and successor lists are consistent and free of duplicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162223 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
08da177c355dcde40dbe6c0a21b26956fcbca32c |
20-Aug-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Fixed DAGCombiner bug (found and localized by James Malloy): The DAGCombiner tries to optimise a BUILD_VECTOR by checking if it consists purely of get_vector_elts from one or two source vectors. If so, it either makes a concat_vectors node or a shufflevector node. However, it doesn't check the element type width of the underlying vector, so if you have this sequence: Node0: v4i16 = ... Node1: i32 = extract_vector_elt Node0 Node2: i32 = extract_vector_elt Node0 Node3: v16i8 = BUILD_VECTOR Node1, Node2, ... It will attempt to: Node0: v4i16 = ... NewNode1: v16i8 = concat_vectors Node0, ... Where this is actually invalid because the element width is completely different. This causes an assertion failure on DAG legalization stage. Fix: If output item type of BUILD_VECTOR differs from input item type. Make concat_vectors based on input element type and then bitcast it to the output vector type. So the case described above will transformed to: Node0: v4i16 = ... NewNode1: v8i16 = concat_vectors Node0, ... NewNode2: v16i8 = bitcast NewNode1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fd45fa1503de725801be3db33c7e860298fc82a3 |
18-Aug-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Make atomic load and store of pointers work. Tighten verification of atomic operations so other unexpected operations don't slip through. Based on patch by Logan Chien. PR11786/PR13186. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162146 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a67eda76c0224ec272e2cc7cf919f4e6e213e275 |
17-Aug-2012 |
Bill Wendling <isanbard@gmail.com> |
Implement stack protectors for structures with character arrays in them. <rdar://problem/10545247> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162131 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
32811bef956e0fae4329e6515420d85f7e510660 |
17-Aug-2012 |
Bill Wendling <isanbard@gmail.com> |
Change the `linker_private_weak_def_auto' linkage to `linkonce_odr_auto_hide' to make it more consistent with its intended semantics. The `linker_private_weak_def_auto' linkage type was meant to automatically hide globals which never had their addresses taken. It has nothing to do with the `linker_private' linkage type, which outputs the symbols with a `l' (ell) prefix among other things. The intended semantic is more like the `linkonce_odr' linkage type. Change the name of the linkage type to `linkonce_odr_auto_hide'. And therefore changing the semantics so that it produces the correct output for the linker. Note: The old linkage name `linker_private_weak_def_auto' will still parse but is not a synonym for `linkonce_odr_auto_hide'. This should be removed in 4.0. <rdar://problem/11754934> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162114 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b97cebdfcc4d76835961038b79e605b167bd8cc5 |
17-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
TargetLowering: Use the large shift amount during legalize types. The legalizer may call us with an overly large type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
cabc0699ea32cad78028a6533aef1e380064262e |
17-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use standard pattern for iterate+erase. Increment the MBB iterator at the top of the loop to properly handle the current (and previous) instructions getting erased. This fixes PR13625. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162099 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
f2c64ef519b38a4328809b27b4a3a8e0c26e9709 |
17-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MCID::Select flag and TII hooks for optimizing selects. Select instructions pick one of two virtual registers based on a condition, like x86 cmov. On targets like ARM that support predication, selects can sometimes be eliminated by predicating the instruction defining one of the operands. Teach PeepholeOptimizer to recognize select instructions, and ask the target to optimize them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162059 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
11a4fa452305eeaeaaaf9c4fd83d043da081bd11 |
15-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix undefined behavior: don't perform array indexing through a potentially null pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161919 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
bb57febe3cbc2e968abee728b615918fc734ff7a |
14-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix undefined behavior: binding null pointer to reference. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161853 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
443c9ed7688e66c55c43819a75be681574b291de |
14-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161851 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
7c626d30974c632ab500171ff185a24bcf2603bf |
14-Aug-2012 |
Owen Anderson <resistor@mac.com> |
Add a roundToIntegral method to APFloat, which can be parameterized over various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
03e593efc65807dad7ca8807554584fcb89f40f1 |
14-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Transfer weights in transferSuccessorsAndUpdatePHIs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161805 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
cb6889b23d7bdac292e0203bcca19e82b2e17875 |
14-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out MachineBasicBlock successor weights when available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161804 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
43600e95ec3690b37d458a6d3d56941ad84cddcb |
13-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the TII::scheduleTwoAddrSource() hook. It never does anything when running 'make check', and it get's in the way of updating live intervals in 2-addr. The hook was originally added to help form IT blocks in Thumb2 code before register allocation, but the pass ordering has changed since then, and we run if-conversion after register allocation now. When the MI scheduler is enabled, there will be no less than two schedulers between 2-addr and Thumb2ITBlockPass, so this hook is unlikely to help anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161794 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
6d86f3cdfc8d750d73f4a711ec74300fcb8644cb |
13-Aug-2012 |
Bill Wendling <isanbard@gmail.com> |
Whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161788 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
786556c26847befdb011298fd7b36ae86fd150b0 |
13-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count triangles and diamonds in early if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161783 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
5f6d36335b9468a16bd3b0c3ab8bab103841332a |
13-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead typedef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161782 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
bc70ff3cb977fd69e120d89b0e04f316d87cdbef |
13-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle extra Tail predecessors in if-conversion. It is still possible to if-convert if the tail block has extra predecessors, but the tail phis must be rewritten instead of being removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161781 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
5fa2d458af8522a0fc3c6c93227d8cb3c0dc2862 |
11-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
MachineCSE: Hoist isConstantPhysReg out of the loop, it checks for overlaps already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161729 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
cfc0ad6e48fcbb5d9d7d97307e5b5df6bba53a97 |
11-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
PR13578: Teach MachineCSE that instructions that use a constant register can be CSE'd safely. This is common e.g. when doing rip-relative addressing on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161728 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
eb74c08192d9c9425b2d8cf08852e9e787a87881 |
11-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a proper if-conversion cost model. Detect when there is not enough available ILP, so if-conversion can't speculate instructions for free. Compute the lengthening of the critical path when inserting a select instruction that depends on the condition as well as both sides of the if. Reject conversions that would stretch the critical path by more than half a mispredict penalty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161713 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
a35bf506f41f4231dc649f3af5255e0b1087b2e3 |
11-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Give MachineTraceMetrics its own debug tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161712 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
5413b68b1f59041a821287790dbc1ee2e272cf4e |
11-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more trace query functions. Trace::getResourceLength() computes the number of cycles required to execute the trace when ignoring data dependencies. The number can be compared to the critical path to estimate the trace ILP. Trace::getPHIDepth() computes the data dependency depth of a PHI in a trace successor that isn't necessarily part of the trace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161711 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
870da6de2c3f3f40360e04882b9ddf42ded0930a |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add getTPred() and getFPred() functions. They identify the PHI predecessors in both diamonds and triangles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161689 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
8828c4ccd44cb49d13360cf86fd0b963f211f03f |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include loop-carried dependencies when computing instr heights. When a trace ends with a back-edge, include PHIs in the loop header in the height computations. This makes the critical path through a loop more accurate by including the latencies of the last instructions in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161688 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
15121ca0d18e6a0f6a16f8a696f4efc3782dc965 |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update edge weights correctly in replaceSuccessor(). When replacing Old with New, it can happen that New is already a successor. Add the old and new edge weights instead of creating a duplicate edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161653 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
c7908037d87c8f6866b872e9f6b5a7fffae5b63e |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r161633-161634 "Partition use lists so defs always come before uses."" No changes to these patches, MRI needed to be notified when changing uses into defs and vice versa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161644 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
d6397eba2389e8a24d37aa56e049187c1ee75f4f |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also update MRI use lists when changing a use to a def and vice versa. This was the cause of the buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161643 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1134aae4e743290da2ad29a7ac76d3a1f9dcfce8 |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r161633-161634 "Partition use lists so defs always come before uses." These commits broke a number of buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161640 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
81a6995243380668e6f991fa4e11dd0a6e37e030 |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Partition use lists so defs always come before uses. This makes it possible to speed up def_iterator by stopping at the first use. This makes def_empty() and getUniqueVRegDef() much faster when there are many uses. In a +Asserts build, LiveVariables is 100x faster in one case because getVRegDef() has an assertion that would scan to the end of a def_iterator chain. Spill weight calculation is significantly faster (300x in one case) because isTriviallyReMaterializable() calls MRI->isConstantPhysReg(%RIP) which calls def_empty(%RIP). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161634 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
46f4c35372062eaf097922b5683bc6639ccf342b |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use pointer-pointers for the register use lists. Use a more conventional doubly linked list where the Prev pointers form a cycle. This means it is no longer necessary to adjust the Prev pointers when reallocating the VRegInfo array. The test changes are required because the register allocation hint is using the use-list order to break ties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161633 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
ff2b99afc8cbc6cfa73181072888e0f9f07deb7e |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move use list management into MachineRegisterInfo. Register MachineOperands are kept in linked lists accessible via MRI's reg_iterator interfaces. The linked list management was handled partly by MachineOperand methods, partly by MRI methods. Move all of the list management into MRI, delete MO::AddRegOperandToRegInfo() and MO::RemoveRegOperandFromRegInfo(). Be more explicit about handling the cases where an MRI pointer isn't available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161632 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
achineRegisterInfo.cpp
|
988069e2291f62dced081dd54da38b9683bdbdca |
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a future TwoAddressInstructionPass crash. No test case, the crash only happens when the default use list order is changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161627 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0b66bd9b078c99dfca6ba0836750cdc168f635d1 |
09-Aug-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix the legalization of ExtLoad on ARM. ExpandUnalignedLoad did not properly handle the cases where the memory value type was illegal. PR 13111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4e6966266a6dbbd560e11f68e6a5ff3fd35c130d |
09-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use getNextOperandForReg() in RAFast. That particular optimization was probably premature anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161541 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
e723007ee6911c77bedaa2e914961e86b0b4ce61 |
09-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Deal with irreducible control flow when building traces. We filter out MachineLoop back-edges during the trace-building PO traversals, but it is possible to have CFG cycles that aren't natural loops, and MachineLoopInfo doesn't include such cycles. Use a standard visited set to detect such CFG cycles, and completely ignore them when picking traces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161532 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
d6cf5f4224d0e600ebb810f1da09aabaeea7e6f3 |
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Heed -stress-early-ifcvt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161513 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
0fac6aa076450f5474feb2ec697b7d63d33fa567 |
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Get the MispredictPenalty from MCSchedModel. Thanks, Andy! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161507 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
3c417554caedde3a333755916701c8380606342a |
08-Aug-2012 |
Andrew Trick <atrick@apple.com> |
Minor cleanup of defaultDefLatency API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161470 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
913ff09a9acf563ae9719ff223bc117dd66ad6b0 |
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Fix a quadratic algorithm in MachineBranchProbabilityInfo." It caused an assertion failure when compiling consumer-typeset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161463 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineBranchProbabilityInfo.cpp
|
39ad568c62f5120faec29f69d3d614303a1f992d |
08-Aug-2012 |
Manman Ren <mren@apple.com> |
X86: enable CSE between CMP and SUB We perform the following: 1> Use SUB instead of CMP for i8,i16,i32 and i64 in ISel lowering. 2> Modify MachineCSE to correctly handle implicit defs. 3> Convert SUB back to CMP if possible at peephole. Removed pattern matching of (a>b) ? (a-b):0 and like, since they are handled by peephole now. rdar://11873276 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161462 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
5e63d43e48f6d0b597d21b83a1eed9eaf2febc93 |
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a quadratic algorithm in MachineBranchProbabilityInfo. The getSumForBlock function was quadratic in the number of successors because getSuccWeight would perform a linear search for an already known iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161460 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineBranchProbabilityInfo.cpp
|
8c5c0733cde7c941de6c9386a07a8378c5c482c5 |
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Skip tied operand pairs that already have the same register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161454 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
74500bdba3eae36a1a8a17d8bad0b971b9c212ec |
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SelectionDAG::getTargetIndex. This adds support for TargetIndex operands during isel. The meaning of these (index, offset, flags) operands is entirely defined by the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGDumper.cpp
|
1299422ee1e7834a8a697b2c915a8bfdada77246 |
07-Aug-2012 |
Bill Wendling <isanbard@gmail.com> |
For non-Darwin platforms, we want to generate stack protectors only for character arrays. This is in line with what GCC does. <rdar://problem/10529227> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161446 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
0b40d09ff6b1facd0fe81e50ee0271e035488520 |
07-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a new kind of MachineOperand: MO_TargetIndex. A target index operand looks a lot like a constant pool reference, but it is completely target-defined. It contains the 8-bit TargetFlags, a 32-bit index, and a 64-bit offset. It is preserved by all code generator passes. TargetIndex operands can be used to carry target-specific information in cases where immediate operands won't suffice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161441 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7a8f311ece7108e44ded601237091c23ef7782eb |
07-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a couple of typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161437 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
84ef6ba44394f983d985b02e328cbb2dd779e4b0 |
07-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add trace accessor methods, implement primitive if-conversion heuristic. Compare the critical paths of the two traces through an if-conversion candidate. If the difference is larger than the branch brediction penalty, reject the if-conversion. If would never pay. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161433 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
achineTraceMetrics.cpp
achineTraceMetrics.h
|
e6450dc2afc18531bf9b70180a9f67376d9f00c7 |
07-Aug-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Add a much more conservative strategy for aligning branch targets. Previously, MBP essentially aligned every branch target it could. This bloats code quite a bit, especially non-looping code which has no real reason to prefer aligned branch targets so heavily. As Andy said in review, it's still a bit odd to do this without a real cost model, but this at least has much more plausible heuristics. Fixes PR13265. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161409 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
ba86b13ad9cd6a9707a954598863da1e2a9f773b |
07-Aug-2012 |
Manman Ren <mren@apple.com> |
MachineCSE: Update the heuristics for isProfitableToCSE. If the result of a common subexpression is used at all uses of the candidate expression, CSE should not increase the live range of the common subexpression. rdar://11393714 and rdar://11819721 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161396 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
cf1823dc25b9687af9277b824eb7cac3931bdb5e |
04-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete a dead variable. TwoAddressInstructionPass doesn't remat any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161285 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
ae52faddebe5b780cd74d4cd66765f8ae509b656 |
04-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
TwoAddressInstructionPass refactoring: Extract another method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161284 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
53624a2df557b4a24f2ee98cfce1a69bf83243af |
04-Aug-2012 |
Bob Wilson <bob.wilson@apple.com> |
Refactor and check "onlyReadsMemory" before optimizing builtins. This patch is mostly just refactoring a bunch of copy-and-pasted code, but it also adds a check that the call instructions are readnone or readonly. That check was already present for sin, cos, sqrt, log2, and exp2 calls, but it was missing for the rest of the builtins being handled in this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161282 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
6ac8066ae49a5e9910f24e08af0b168210270946 |
04-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
TwoAddressInstructionPass refactoring: Extract a method. No functional change intended, except replacing a DenseMap with a SmallDenseMap which should behave identically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161281 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5bfdedf6ab4e85bc4e27fd937a74e15071cb949b |
04-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Begin adding support for updating LiveIntervals in TwoAddressInstructionPass. This is far from complete, and only changes behavior when the -early-live-intervals flag is passed to llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161273 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
dcc4436cddc9b5d155040ed3ed38e9070ec4e3b8 |
04-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an experimental -early-live-intervals option. This option runs LiveIntervals before TwoAddressInstructionPass which will eventually learn to exploit and update the analysis. Eventually, LiveIntervals will run before PHIElimination, and we can get rid of LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161270 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
asses.cpp
|
e744ac49f4cf878e2b34dba26964f04fb0415fa3 |
04-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete merged physreg copies in joinReservedPhysReg(). Previously, the identity copy would survive through register allocation before it was removed by the rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161269 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
982dc84762fc0c2ca35e6947d648a690dd22343c |
03-Aug-2012 |
Bob Wilson <bob.wilson@apple.com> |
Try to reduce the compile time impact of r161232. The previous change caused fast isel to not attempt handling any calls to builtin functions. That included things like "printf" and caused some noticable regressions in compile time. I wanted to avoid having fast isel keep a separate list of functions that had to be kept in sync with what the code in SelectionDAGBuilder.cpp was handling. I've resolved that here by moving the list into TargetLibraryInfo. This is somewhat redundant in SelectionDAGBuilder but it will ensure that we keep things consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
772af92cb16a5e11bd580f576643a6268e8a5bce |
03-Aug-2012 |
Bob Wilson <bob.wilson@apple.com> |
Fix memcmp code-gen to honor -fno-builtin. I noticed that SelectionDAGBuilder::visitCall was missing a check for memcmp in TargetLibraryInfo, so that it would use custom code for memcmp calls even with -fno-builtin. I also had to add a new -disable-simplify-libcalls option to llc so that I could write a test for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b2beac2b9671f7d9773329d62c2821c8ac449ac5 |
03-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Completely eliminate VNInfo flags. The 'unused' state of a value number can be represented as an invalid def SlotIndex. This also exposed code that shouldn't have been looking at unused value VNInfos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161258 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
1599a64277f3a01619b5614974be9bec662c7ec0 |
03-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a couple of loops that were processing unused value numbers. Unused VNInfos should be left alone. Their def SlotIndex doesn't point to anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161257 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
a5b51f5694b143790d7d081eef689614fbbb00b5 |
03-Aug-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Silence unused variable warning in -asserts build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161256 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
bf60aa9db5953dd99c561dfa9323b1e3293a5a85 |
03-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate the VNInfo::hasPHIKill() flag. The only real user of the flag was removeCopyByCommutingDef(), and it has been switched to LiveIntervals::hasPHIKill(). All the code changed by this patch was only concerned with computing and propagating the flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161255 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
trongPHIElimination.cpp
|
0ab7103e06ee1da7bde5b196a68be77ab49a005d |
03-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the hasPHIKills flag a computed property. The VNInfo::HAS_PHI_KILL is only half supported. We precompute it in LiveIntervalAnalysis, but it isn't properly updated by live range splitting and functions like shrinkToUses(). It is only used in one place: RegisterCoalescer::removeCopyByCommutingDef(). This patch changes that function to use a new LiveIntervals::hasPHIKill() function that computes the flag for a given value number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161254 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
|
3cd9f572eddac8aca63ee867dc225f719ff63eb2 |
03-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161242 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
bc8d827b2b2f063f1305754bc0b629e03e00c9ce |
03-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't delete dead code in TwoAddressInstructionPass. This functionality was added before we started running DeadMachineInstructionElim on all targets. It serves no purpose now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161241 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c3f0e98f40f1382870c679b6aef1c5d01540637f |
03-Aug-2012 |
Shih-wei Liao <sliao@google.com> |
Apply changes to migrate to LLVM-160668-20120724. - Update Android.mk for removed files and new files. - llvm-ld has been removed in upstream, so we remove it as well. Change-Id: I613ada916156a43993d4bba9cae6dcb6bf40ed2f
ndroid.mk
smPrinter/AsmPrinter.cpp
|
7744acd1ab73b3eec6f1449f47083abe3fb1b527 |
03-Aug-2012 |
Shih-wei Liao <sliao@google.com> |
Merge with LLVM upstream r160668 (Jul 24th 2012) Conflicts: include/llvm/Support/ELF.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/Support/Memory.cpp lib/Transforms/Instrumentation/AddressSanitizer.cpp Change-Id: Iddd658cf2eadc7165b2805b446d31af2c5c9917f
|
d49edb7ab098fa0c82f59efbcf1b4eb2958f8dc3 |
03-Aug-2012 |
Bob Wilson <bob.wilson@apple.com> |
Fall back to selection DAG isel for calls to builtin functions. Fast isel doesn't currently have support for translating builtin function calls to target instructions. For embedded environments where the library functions are not available, this is a matter of correctness and not just optimization. Most of this patch is just arranging to make the TargetLibraryInfo available in fast isel. <rdar://problem/12008746> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161232 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
127eea87d666ccc9fe7025f41148c33af0f8c84b |
02-Aug-2012 |
Manman Ren <mren@apple.com> |
X86 Peephole: fold loads to the source register operand if possible. Add more comments and use early returns to reduce nesting in isLoadFoldable. Also disable folding for V_SET0 to avoid introducing a const pool entry and a const pool load. rdar://10554090 and rdar://11873276 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161207 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
79a20ce6f0d6c1041a5031aca41b50a1e58b1d4b |
02-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Compute the critical path length through a trace. Whenever both instruction depths and instruction heights are known in a block, it is possible to compute the length of the critical path as max(depth+height) over the instructions in the block. The stored live-in lists make it possible to accurately compute the length of a critical path that bypasses the current (small) block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161197 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
804468916a93bb2914c28687829ccb065a97e1d9 |
02-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify regunit intervals along with virtreg intervals. Don't cause regunit intervals to be computed just to verify them. Only check the already cached intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161183 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
e2b83ab056836067e2c86ef22223a4c29fe267ce |
02-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating dangling physreg live ranges during DCE. LiveRangeEdit::eliminateDeadDefs() can delete a dead instruction that reads unreserved physregs. This would leave the corresponding regunit live interval dangling because we don't have shrinkToUses() for physical registers. Fix this problem by turning the instruction into a KILL instead of deleting it. This happens in a landing pad in test/CodeGen/X86/2012-05-19-CoalescerCrash.ll: %vreg27<def,dead> = COPY %EDX<kill>; GR32:%vreg27 becomes: KILL %EDX<kill> An upcoming fix to the machine verifier will catch problems like this by verifying regunit live intervals. This fixes PR13498. I am not including the test case from the PR since we already have one exposing the problem once the verifier is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161182 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
79240f9539ab187f5e25cec44e0250a89dfe1d59 |
02-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add report() functions that take a LiveInterval argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161178 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
d7d003c2b7b7f657eed364e4ac06f4ab32fc8c2d |
02-Aug-2012 |
Manman Ren <mren@apple.com> |
X86 Peephole: fold loads to the source register operand if possible. Machine CSE and other optimizations can remove instructions so folding is possible at peephole while not possible at ISel. This patch is a rework of r160919 and was tested on clang self-host on my local machine. rdar://10554090 and rdar://11873276 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161152 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
e5c79a5c2542fa0d852df28b5ee9de8dfef694d8 |
02-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract some methods from verifyLiveIntervals. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161149 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a62e1e8bc6df16174ae613914d876d335970ef4f |
02-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also verify RegUnit intervals at uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161147 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
c7f44b8b8fca87cdd28ffe420c3b87141d88c099 |
02-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Compute instruction heights through a trace. The height on an instruction is the minimum number of cycles from the instruction is issued to the end of the trace. Heights are computed for all instructions in and below the trace center block. The method for computing heights is different from the depth computation. As we visit instructions in the trace bottom-up, heights of used instructions are pushed upwards. This way, we avoid scanning long use lists, looking for uses in the current trace. At each basic block boundary, a list of live-in registers and their minimum heights is saved in the trace block info. These live-in lists are used when restarting depth computations on a trace that converges with an already computed trace. They will also be used to accurately compute the critical path length. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161138 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
6635cad5480210d683aba7dc42627430b29fb0b4 |
01-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Temporarily revert c23b933d5f8be9b51a1d22e717c0311f65f87dcd. It's causing failures in the debug testsuite and possibly PR13486. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161121 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9dae457e2b9a9919c3f7d48b229035d2b956a2d4 |
01-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add DataDep constructors. Explicitly check SSA form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161115 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
1503aba4a036f5394c7983417bc1e64613b2fc77 |
01-Aug-2012 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Added FMA functionality to X86 target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f99efdf3290b438a2cd74304e4299d50bce2b397 |
31-Jul-2012 |
Manman Ren <mren@apple.com> |
MachineSink: Sort the successors before trying to find SuccToSinkTo. Use stable_sort instead of sort. Follow-up to r161062. rdar://11980766 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161075 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
5f8e8bd656bb174b3e22c0e56ce3d1eb958ac2e2 |
31-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Compute instruction depths through the current trace. Assuming infinite issue width, compute the earliest each instruction in the trace can issue, when considering the latency of data dependencies. The issue cycle is record as a 'depth' from the beginning of the trace. This is half the computation required to find the length of the critical path through the trace. Heights are next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161074 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
64e2973bf78970aedecbb5fda44e19f93f56dd9b |
31-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename CT -> MTM. MachineTraceMetrics is abbreviated MTM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161072 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
53b59d1d974184657edfd22779e0bb3653d164ec |
31-Jul-2012 |
Manman Ren <mren@apple.com> |
MachineSink: Sort the successors before trying to find SuccToSinkTo. One motivating example is to sink an instruction from a basic block which has two successors: one outside the loop, the other inside the loop. We should try to sink the instruction outside the loop. rdar://11980766 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161062 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
8c574be2fec59a3d80e400a9a0409b28f7f34829 |
31-Jul-2012 |
Micah Villmow <villmow@gmail.com> |
Conform to LLVM coding style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161061 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
683826765c45d7acd19e915a73b8c1b46c40a4eb |
31-Jul-2012 |
Micah Villmow <villmow@gmail.com> |
Don't generate ordered or unordered comparison operations if it is not legal to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161053 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
34af6f597b09c13fba7d3a1960c0810cfc30beff |
31-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear kill flags in removeCopyByCommutingDef(). We are extending live ranges, so kill flags are not accurate. They aren't needed until they are recomputed after RA anyway. <rdar://problem/11950722> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161023 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
11236143173d1aedeace570ac1133d3d5dfb268e |
31-Jul-2012 |
Manman Ren <mren@apple.com> |
Reverse order of the two branches at end of a basic block if it is profitable. We branch to the successor with higher edge weight first. Convert from je LBB4_8 --> to outer loop jmp LBB4_14 --> to inner loop to jne LBB4_14 jmp LBB4_8 PR12750 rdar: 11393714 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161018 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
8b5704f9589f20cdfb28b3632cc396995e4d8c45 |
31-Jul-2012 |
Andrew Trick <atrick@apple.com> |
Use the latest MachineRegisterInfo APIs. No functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161010 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
269120cd9b45b24665433ea28eb7d092c138ca76 |
31-Jul-2012 |
Andrew Trick <atrick@apple.com> |
Inline MachineRegisterInfo::hasOneUse git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161007 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
2f6b62b09f07d63b7f3ee2de50735dd8c83c0f0f |
31-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid looking at stale data in verifyAnalysis(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161004 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
1c899cf47c13a107cf0f85ae69fcd36c92b37f14 |
31-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow traces to enter nested loops. This lets traces include the final iteration of a nested loop above the center block, and the first iteration of a nested loop below the center block. We still don't allow traces to contain backedges, and traces are truncated where they would leave a loop, as seen from the center block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161003 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
20f13c50d88560d75129f4a691fe6b477d04dc70 |
30-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clarify invalidation strategy in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160997 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.h
|
8e54ab5c7618bf3813c337ad181a741f30eb36cc |
30-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert that all trace candidate blocks have been visited by the PO. When computing a trace, all the candidates for pred/succ must have been visited. Filter out back-edges first, though. The PO traversal ignores them. Thanks to Andy for spotting this in review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160995 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
ef6c76c984f821ea866902a7f9e695b16e971468 |
30-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hook into PassManager's analysis verification. By overriding Pass::verifyAnalysis(), the pass contents will be verified by the pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160994 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
achineTraceMetrics.cpp
achineTraceMetrics.h
|
32ecfb41585d377c25c30aa4260cf007c1b0d5ce |
30-Jul-2012 |
Pete Cooper <peter_cooper@apple.com> |
Consider address spaces for hashing and CSEing DAG nodes. Otherwise two loads from different x86 segments but the same address would get CSEd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3f63a589788995a724bc4587d022fe15ea8576ba |
30-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::isTransient(). This is a cleaned up version of the isFree() function in MachineTraceMetrics.cpp. Transient instructions are very unlikely to produce any code in the final output. Either because they get eliminated by RegisterCoalescing, or because they are pseudo-instructions like labels and debug values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160977 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
a1b2bf79796d8c44b1321a69a7236b85c33ef7ca |
30-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineTraceMetrics::verify(). This function verifies the consistency of cached data in the MachineTraceMetrics analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160976 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
achineTraceMetrics.cpp
achineTraceMetrics.h
|
ee31ae12e8a7b843e97285b321cb1f485cd77248 |
30-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that the CFG hasn't changed during invalidate(). The MachineTraceMetrics analysis must be invalidated before modifying the CFG. This will catch some of the violations of that rule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160969 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
f192b507a33b2ab2e2f6271bb1ea6ed4fbda69e7 |
30-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineBasicBlock::isPredecessor(). A->isPredecessor(B) is the same as B->isSuccessor(A), but it can tolerate a B that is null or dangling. This shouldn't happen normally, but it it useful for verification code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160968 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
e8b4a4a9d173d67e35e4b1d32e20140381db6bde |
29-Jul-2012 |
Manman Ren <mren@apple.com> |
Revert r160920 and r160919 due to dragonegg and clang selfhost failure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160927 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
0eb3edea9cb6819334173a7d288da85943201fe5 |
28-Jul-2012 |
Manman Ren <mren@apple.com> |
X86 Peephole: fold loads to the source register operand if possible. Machine CSE and other optimizations can remove instructions so folding is possible at peephole while not possible at ISel. rdar://10554090 and rdar://11873276 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160919 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
4b72ada1f4c1c90ead331a650956e7b14450080e |
28-Jul-2012 |
Andrew Trick <atrick@apple.com> |
Reenable a basic SSA DAG builder optimization. Jakob fixed ProcessImplicifDefs in r159149. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160910 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
08f6ef6a7807250d84446661b7a6ec4afa762099 |
28-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more debug output to MachineTraceMetrics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160905 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
achineTraceMetrics.cpp
achineTraceMetrics.h
|
0271a5fa29f73150fad891ca4c43a0a89a64b3bf |
28-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of the head and tail of the trace through each block. This makes it possible to quickly detect blocks that are outside the trace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160904 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
achineTraceMetrics.h
|
c23b933d5f8be9b51a1d22e717c0311f65f87dcd |
28-Jul-2012 |
Eric Christopher <echristo@apple.com> |
Add a DW_AT_high_pc for CUs that are a single address range. Update all tests accordingly. Fixes PR13351. Patch by shinichiro hamaji! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160899 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c16bf79303ad8c84c5dd3c76e143cd2145539834 |
27-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also compute register mask lists under -new-live-intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160898 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b18d779b35909cd5b753871f8bf2ff4f6c17ace1 |
27-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate the IS_PHI_DEF flag and VNInfo::setIsPHIDef(). A value number is a PHI def if and only if it begins at a block boundary. This can be derived from the def slot, a separate flag is not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160893 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveRangeCalc.cpp
plitKit.cpp
trongPHIElimination.cpp
|
3dfa38a5bf431ec78272bb06c47d7c28616d276a |
27-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a -new-live-intervals experimental option. This option replaces the existing live interval computation with one based on LiveRangeCalc.cpp. The new algorithm does not depend on LiveVariables, and it can be run at any time, before or after leaving SSA form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160892 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
72e7dbf88be36b96aefd9fe8912f33ab8afb7352 |
27-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add <imp-def> of super-register when lowering SUBREG_TO_REG. Patch by Tyler Nowicki! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160888 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
|
0fc44869ffb5c180ec12f86f2fd02a35a1affb4a |
26-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use an otherwise unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160798 91177308-0d34-0410-b5e6-96231b3b80d8
achineTraceMetrics.cpp
|
9f63e104271eb91e545fa8cdb16fb9e10a8a9578 |
26-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Start scaffolding for a MachineTraceMetrics analysis pass. This is still a work in progress. Out-of-order CPUs usually execute instructions from multiple basic blocks simultaneously, so it is necessary to look at longer traces when estimating the performance effects of code transformations. The MachineTraceMetrics analysis will pick a typical trace through a given basic block and provide performance metrics for the trace. Metrics will include: - Instruction count through the trace. - Issue count per functional unit. - Critical path length, and per-instruction 'slack'. These metrics can be used to determine the performance limiting factor when executing the trace, and how it will be affected by a code transformation. Initially, this will be used by the early if-conversion pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160796 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
arlyIfConversion.cpp
achineTraceMetrics.cpp
achineTraceMetrics.h
|
27db99fcee85939f0b7580ad55303c4c60a3b98d |
26-Jul-2012 |
Dan Gohman <gohman@apple.com> |
Add a floor intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d68e8cda245269c032a692873dc8eb163fa6ef00 |
25-Jul-2012 |
Manman Ren <mren@apple.com> |
Disable rematerialization in TwoAddressInstructionPass. It is redundant; RegisterCoalescer will do the remat if it can't eliminate the copy. Collected instruction counts before and after this. A few extra instructions are generated due to spilling but it is normal to see these kinds of changes with almost any small codegen change, according to Jakob. This also fixed rdar://11830760 where xor is expected instead of movi0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160749 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
84315f03cb6127ac92a5b02239c6edc2a347069a |
25-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve 2-addr constraints in ConnectedVNInfoEqClasses. When a live range splits into multiple connected components, we would arbitrarily assign <undef> uses to component 0. This is wrong when the use is tied to a def that gets assigned to a different component: %vreg69<def> = ADD8ri %vreg68<undef>, 1 The use and def must get the same virtual register. Fix this by assigning <undef> uses to the same component as the value defined by the instruction, if any: %vreg69<def> = ADD8ri %vreg69<undef>, 1 This fixes PR13402. The PR has a test case which I am not including because it is unlikely to keep exposing this behavior in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160739 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
eba2bbb58cafcb1ec0fa50d5e8a1c6a8cac2f780 |
25-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify two-address constraints more carefully. Include <undef> operands and virtual registers after leaving SSA form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160734 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ea0ca846478b8296f679afa419f2ad4e28073ad5 |
24-Jul-2012 |
Craig Topper <craig.topper@gmail.com> |
Change llvm_unreachable in SplitVectorOperand to report_fatal_error. Keeps release builds from crashing if code uses an intrinsic with an illegal type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
c8e41c591741b3da1077f7000274ad040bef8002 |
23-Jul-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo (the the => the) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160621 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
electionDAG/ScheduleDAGRRList.cpp
|
ed1a335ece5c83230af662580e69008ed6fcca17 |
23-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fixed DAGCombine optimizations which generate select_cc for targets that do not support it (X86 does not lower select_cc). PR: 13428 Together with Michael Kuperstein <michael.m.kuperstein@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f093393b9a65eae6b04c487784cb8256b15b790e |
23-Jul-2012 |
Craig Topper <craig.topper@gmail.com> |
Tidy up. Fix indentation and remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160617 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
200e04c3fdbdbdb671e29691ee201f34805e4dd1 |
23-Jul-2012 |
Craig Topper <craig.topper@gmail.com> |
Change llvm_unreachable in SplitVectorResult to report_fatal_error. Keeps release builds from crashing if code uses an intrinsic with an illegal type. For instance 256-bit AVX intrinsics without having AVX enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
e288cd100f86631ec0ade2a85930397a4ea7b21e |
21-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused private member variables uncovered by the recent changes to clang's -Wunused-private-field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160583 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/DwarfException.h
tackSlotColoring.cpp
|
2ec0cda5d5ede57022eb7dc5e7170f4fa420cb2b |
20-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid folding loads that are unsafe to move. LiveRangeEdit::foldAsLoad() can eliminate a register by folding a load into its only use. Only do that when the load is safe to move, and it won't extend any live ranges. This fixes PR13414. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160575 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
c321a20b2e250a755bd06f36d896d00d9fd396ad |
20-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Split loop exiting edges more aggressively. PHIElimination splits critical edges when it predicts it can resolve interference and eliminate copies. It doesn't split the edge if the interference wouldn't be resolved anyway because the phi-use register is live in the critical edge anyway. Teach PHIElimination to split loop exiting edges with interference, even if it wouldn't resolve the interference. This removes the necessary copies from the loop, which is still an improvement from injecting the copies into the loop. The test case demonstrates the improvement. Before: LBB0_1: cmpb $0, (%rdx) leaq 1(%rdx), %rdx movl %esi, %eax je LBB0_1 After: LBB0_1: cmpb $0, (%rdx) leaq 1(%rdx), %rdx je LBB0_1 movl %esi, %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160571 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
b97c57a8b7dc268958924b8bcc0e97f70437dff6 |
20-Jul-2012 |
Pete Cooper <peter_cooper@apple.com> |
Fix crash in machine verifier when trying to print the def of a register which has no def git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160531 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b26e2916c937d03bc2d7e273b2df4ffccdb061b4 |
19-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace some explicit compare loops with std::equal. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
72ea0c9ffaa1700730c8ce36e9b73aef4b914988 |
19-Jul-2012 |
Galina Kistanova <gkistanova@gmail.com> |
Fixed few warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
96cb1128528a512f1ef9c28ae5e1b78a98dcc505 |
19-Jul-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160475 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineCSE.cpp
achineVerifier.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
argetLoweringObjectFileImpl.cpp
|
32d75bec4bbbd97b70d887ed3c106951b1d18182 |
18-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a somewhat nasty crasher in PR13378. This crashes inside of LiveIntervals due to the two-addr pass generating bogus MI code. The crux of the issue was a loop nesting problem. The intent of the code which attempts to transform instructions before converting them to two-addr form is to defer and reprocess any transformed instructions as the second processing is likely to have more opportunities to coalesce copies, etc. Unfortunately, there was one section of processing that was not deferred -- the INSERT_SUBREG rewriting. Due to quirks of how this rewriting proceeded, not only did it occur early, it removed the bits of information needed for the deferred processing to correctly generate the necessary two address form (specifically inserting a copy), but didn't trigger any immediate assertions and produced what appeared to be already valid two-address from code. Thus, the assertion only fired much later in the pipeline. The fix is to hoist the transformation logic up layer to where it can more firmly defer all further processing, and to teach the normal processing to handle an edge case previously handled as part of the transformation logic. This edge case (already matched tied register operands) needs to *not* defer any steps. As has been brought up repeatedly in the process: wow does this code need refactoring. I *may* squeeze in some time to at least bring sanity to this loop... but wow... =] Thanks to Jakob for helpful hints on the way here, and the review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160443 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4532bf6ecf39d02b60d4c77f807c2f04e51e3583 |
18-Jul-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
ignore 'invoke @llvm.donothing', but still keep the edge to the continuation BB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a9e13ba3c8230073dd1157e4a17ef52906ac6cb8 |
17-Jul-2012 |
Evan Cheng <evan.cheng@apple.com> |
Back out r160101 and instead implement a dag combine to recover from instcombine transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a532bcec2f8b766ec2b623c715fab662e2d2e31d |
17-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add some trace output to TwoAddressInstructionPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160380 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
de39671ebb1151b15bb7f3703fdc78061c68763e |
17-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
5589a69f0abd39e583786515cf6c9170554dc8de |
17-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a crash in the legalization of large vectors. When truncating a result of a vector that is split we need to use the result of the split vector, and not re-split the dead node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
f5c0539092996771824893309f311378e719e32e |
17-Jul-2012 |
Evan Cheng <evan.cheng@apple.com> |
Implement r160312 as target indepedenet dag combine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160354 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b4d4959fdda7afdf7994d3cb0b20c052ad0c7895 |
17-Jul-2012 |
Evan Cheng <evan.cheng@apple.com> |
Make sure constant bitwidth is <= 64 bit before calling getSExtValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
70e10d3fe4c5df189348f64fce56254a5a32b51c |
17-Jul-2012 |
Evan Cheng <evan.cheng@apple.com> |
This is another case where instcombine demanded bits optimization created large immediates. Add dag combine logic to recover in case the large immediates doesn't fit in cmp immediate operand field. int foo(unsigned long l) { return (l>> 47) == 1; } we produce %shr.mask = and i64 %l, -140737488355328 %cmp = icmp eq i64 %shr.mask, 140737488355328 %conv = zext i1 %cmp to i32 ret i32 %conv which codegens to movq $0xffff800000000000,%rax andq %rdi,%rax movq $0x0000800000000000,%rcx cmpq %rcx,%rax sete %al movzbl %al,%eax ret TargetLowering::SimplifySetCC would transform (X & -256) == 256 -> (X >> 8) == 1 if the immediate fails the isLegalICmpImmediate() test. For x86, that's immediates which are not a signed 32-bit immediate. Based on a patch by Eli Friedman. PR10328 rdar://9758774 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
c76fa8937d483ae83f94d0793254dbab78877687 |
16-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Minor cleanup and docs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
7ee0e5ae6093dba18ecc5eaafb91e8fa82f4c409 |
16-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Make ComputeDemandedBits return a deterministic result when computing an AssertZext value. In the added testcase the constant 55 was behind an AssertZext of type i1, and ComputeDemandedBits reported that some of the bits were both known to be one and known to be zero. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
46646572f76513e39bcdd0e06c66668ec1caf5bc |
15-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in the scalarization of BUILD_VECTOR. BUILD_VECTOR elements may be wider than the output element type. Make sure to trunc them if needed. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
b87bdac6a3de4ab83e23bf808f990e4bb7eade5e |
15-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Refactor the code that checks that all operands of a node are UNDEFs. Add a micro-optimization to getNode of CONCAT_VECTORS when both operands are undefs. Can't find a testcase for this because VECTOR_SHUFFLE already handles undef operands, but Duncan suggested that we add this. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160229 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7d532c8d0742ebd107e5fd58ae23ecea5c55d19e |
15-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Reapply r160194, switching to use LV information for finding local kills. The notable fix is to look at any dependencies attached to the kill instruction (or other instructions between MI nad the kill) where the dependencies are specific to the register in question. The old code implicitly handled this by rejecting the transform if *any* other uses were found within the block, but after the start point. The new code directly finds the kill, and has to re-use the existing dependency scan to check for non-kill uses. This was caught by self-host, but I found the bug via inspection and use of absurd assert scaffolding to compute the kills in two ways and compare them. So I have no useful testcase for this other than "bootstrap". I'd work harder to reduce a test case if this particular code were likely to live for a long time. Thanks to Benjamin Kramer for reviewing the fix itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160228 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b7e230d999deec5c90ee51a7c2bbc6ee5be0a914 |
14-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Add a dagcombine optimization to convert concat_vectors of undefs into a single undef. The unoptimized concat_vectors isd prevented the canonicalization of the vector_shuffle node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
27982e110817e373ed85064eb844bbaec0fe6771 |
14-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Account for early-clobber reload instructions. No test case, there are no in-tree targets that require this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160219 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
c8981f2e3d6237742714883256cd778acf0eeebe |
14-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more verbose when detecting dominance problems. Catch uses of undefined physregs that haven't been added to basic block live-in lists. Run the verifier to pinpoint the problem. Also run the verifier when a virtual register use is not jointly dominated by defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160207 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.cpp
iveRangeCalc.h
|
cb41e5f6f28da51e37eb072e4bf69143fe29dacc |
14-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert r160194, which switched to use LV information for finding local kills. This is causing miscompiles that I'm working on tracking down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160196 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
558341590938dec2bf0eb1679b7a990afa61d676 |
13-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the LiveVariables information to efficiently get local kills. This removes the largest scaling problem in the test cases from PR13225 when ASan is switched to insert basic blocks in the natural CFG order. It may also solve some scaling problems for more normal code with large numbers of basic blocks and variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160194 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f51f1a7dd60d1f7ceab2d5819a44ffe860db0389 |
13-Jul-2012 |
Jim Grosbach <grosbach@apple.com> |
Provide function name in 'Cannot select' fatal error. When dumping the DAG for a fatal 'Cannot select' back-end error, also provide the name of the function the construct is in. Useful when dealing with large testcases, as the next step is to llvm-extract the function in question to get a small(er) testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160152 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5cf55e1c6a22ae066db5066fdc69f99564ace8ea |
13-Jul-2012 |
Eric Christopher <echristo@apple.com> |
The end of the prologue should be marked with is_stmt. Fixes PR13303. Patch by Paul Robinson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160148 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4e8982a34da69effe23ce9c553680b19d7d57551 |
12-Jul-2012 |
Duncan Sands <baldrick@free.fr> |
The result type of EXTRACT_VECTOR_ELT doesn't have to match the element type of the input vector, it can be bigger (this is helpful for powerpc where <2 x i16> is a legal vector type but i16 isn't a legal type, IIRC). However this wasn't being taken into account by ExpandRes_EXTRACT_VECTOR_ELT, causing PR13220. Lightly tweaked version of a patch by Michael Liao. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160116 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
875913439ca8f073852ec8315d3b32b875184582 |
11-Jul-2012 |
Evan Cheng <evan.cheng@apple.com> |
InstrEmitter::EmitSubregNode() optimize extract_subreg in this case: r1025 = s/zext r1024, 4 r1026 = extract_subreg r1025, 4 to a copy: r1026 = copy r1024 This is correct. However it uses TII->isCoalescableExtInstr() which can return true for instructions which essentially does a sext_in_reg so this can end up with an illegal copy where the source and destination register classes do not match. Add a check to avoid it. Sorry, no test case possible at this time. rdar://11849816 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
4b24bf8da340ba30585777ab656c83752a5e3e6a |
11-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Rename many of the Tmp1, Tmp2, Tmp3 variables to names such as Chain, Value, Ptr, etc. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160042 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a67306d21f235f14d99d31fa211536ad652086b1 |
11-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b6e89f0471c70215565f3d236d09732cd184c0ee |
11-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Refactor the DAG Legalizer by extracting the legalization of Load and Store nodes into their own functions. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160037 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
45299995d6a1273d644d127b4aeaf4e7eb365292 |
11-Jul-2012 |
Owen Anderson <resistor@mac.com> |
Only apply the SETCC+SITOFP -> SELECTCC optimization when the SETCC returns an MVT::i1, i.e. before type legalization. This is a speculative fix for a problem on Mips reported by Akira Hatanaka. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
47730a774dd6392744ee62c7385665c780e1c4e1 |
11-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Require and preserve LoopInfo for early if-conversion. It will surely be needed by heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160027 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
4e996de58cfad27033165d8feb8f296b8cbe20ca |
11-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Teach the LiveInterval::join function to use the fast merge algorithm, generalizing its implementation sufficiently to support this value number scenario as well. This cuts out another significant performance hit in large functions (over 10k basic blocks, etc), especially those with "natural" CFG structures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160026 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
1f523dc45e29874bf8101e50b42ba707ffc8aff9 |
11-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run early if-conversion in domtree post-order. This ordering allows nested if-conversion without using a work list, and it makes it possible to update the dominator tree on the fly as well. Any erased basic blocks will always be dominated by the current post-order position, so the domtree can be pruned without invalidating the iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160025 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
1b8da1d8f14f91b88ff99d3bd5ec4d904cdf21b7 |
10-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a bug where I didn't test for an empty range before inspecting the back of it. I don't have anything even remotely close to a test case for this. It only broke two build bots, both of them doing bootstrap builds, one of them a dragonegg bootstrap. It doesn't break for me when I bootstrap either. It doesn't reproduce every time or on many machines during the bootstrap. Many thanks to Duncan Sands who got the exact command (and stage of the bootstrap) which failed on the dragonegg bootstrap and managed to get it to trigger under valgrind with debug symbols. The fix was then found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159993 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
2dd83eb1ab3b7d7cdef2e244317caefd78be8a45 |
10-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Improve the loading of load-anyext vectors by allowing the codegen to load multiple scalars and insert them into a vector. Next, we shuffle the elements into the correct places, as before. Also fix a small dagcombine bug in SimplifyBinOpWithSameOpcodeHands, when the migration of bitcasts happened too late in the SelectionDAG process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e585e75612ef5fd32e2bb2c9f635496791a20f8b |
10-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Add an efficient merge operation to LiveInterval and use it to avoid quadratic behavior when performing pathological merges. Fixes the core element of PR12652. There is only one user of addRangeFrom left: join. I'm hoping to refactor further in a future patch and have join use this merge operation as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159982 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
261b6330896736f674bdb2dd4556a0483f3cfe8d |
10-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Teach LiveIntervals how to verify themselves and start using it in some of the trick merge routines. This adds a layer of testing that was necessary when implementing more efficient (and complex) merge logic for this datastructure. No functionality changed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159981 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
70cb1778b90bb21ff8d86cd094797b9e8d3613fd |
09-Jul-2012 |
Andrew Trick <atrick@apple.com> |
indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159958 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
d9bf71fdd26475f4629ef8861debfd2c621a372f |
09-Jul-2012 |
Owen Anderson <resistor@mac.com> |
Teach the DAG combiner to turn sitofp/uitofp from i1 into a conditional move, since there are only two possible values. Previously, this would become an integer extension operation, followed by a real integer->float conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2661b411ccc81b1fe19194d3f43b2630cbef3f28 |
07-Jul-2012 |
Andrew Trick <atrick@apple.com> |
I'm introducing a new machine model to simultaneously allow simple subtarget CPU descriptions and support new features of MachineScheduler. MachineModel has three categories of data: 1) Basic properties for coarse grained instruction cost model. 2) Scheduler Read/Write resources for simple per-opcode and operand cost model (TBD). 3) Instruction itineraties for detailed per-cycle reservation tables. These will all live side-by-side. Any subtarget can use any combination of them. Instruction itineraries will not change in the near term. In the long run, I expect them to only be relevant for in-order VLIW machines that have complex contraints and require a precise scheduling/bundling model. Once itineraries are only actively used by VLIW-ish targets, they could be replaced by something more appropriate for those targets. This tablegen backend rewrite sets things up for introducing MachineModel type #2: per opcode/operand cost model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159891 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
coreboardHazardRecognizer.cpp
electionDAG/ResourcePriorityQueue.cpp
argetInstrInfoImpl.cpp
|
6016a4a1627726b7419e1c95c6c3e67138100d23 |
06-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159839 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
fd065bbed1d731b49b1b4a5c4c050ce461be80b4 |
06-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Tell fast-isel to do nothing with the new donothing intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159837 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b67bd33e8e2f29c3d6adb10c4f3a02c79c61af08 |
06-Jul-2012 |
Alexey Samsonov <samsonov@google.com> |
Fix PR13202 and a regtest. DwarfDebug class could generate the same (inlined) DIVariable twice: 1) when trying to find abstract debug variable for a concrete inlined instance. 2) when explicitly collecting info for variables that were optimized out. This change makes sure that this duplication won't happen and makes Clang pass "gdb.opt/inline-locals" test from gdb testsuite. Reviewed by Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159811 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
86fc3100b552c8d400160581c2a00f2fd7b83b45 |
06-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add some comments suggested in code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159800 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
95c88b8cb210ffad127519a143fade685ab21f5b |
05-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Optimize extendIntervalEndTo a tiny bit by saving one call through the vector erase. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159746 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
d862d697d2d6f7d4e8fdd0b70686a6695e04d362 |
05-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Finish fixing the MachineOperand hashing, providing a nice modern hash_value overload for MachineOperands. This addresses a FIXME sufficient for me to remove it, and cleans up the code nicely too. The important changes to the hashing logic: - TargetFlags are now included in all of the hashes. These were complete missed. - Register operands have their subregisters and whether they are a def included in the hash. - We now actually hash all of the operand types. Previously, many operand types were simply *dropped on the floor*. For example: - Floating point immediates - Large integer immediates (>64-bit) - External globals! - Register masks - Metadata operands - It removes the offset from the block-address hash; I'm a bit suspicious of this, but isIdenticalTo doesn't consider the offset for black addresses. Any patterns involving these entities could have triggered extreme slowdowns in MachineCSE or PHIElimination. Let me know if there are PRs you think might be closed now... I'm looking myself, but I may miss them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159743 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
483c54b811badbfcaa040cdb6d84cf564afe75cf |
05-Jul-2012 |
Duncan Sands <baldrick@free.fr> |
All cases are covered, no need for a default. This deals with the corresponding clang warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b8087451cadab83332d6ba9c65227b6e925ea38f |
05-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
The hash function for MI expressions, used by MachineCSE, is really broken. This patch fixes the superficial problems which lead to the intractably slow compile times reported in PR13225. The specific issue is that we were failing to include the *offset* of a global variable in the hash code. Oops. This would in turn cause all MIs which were only distinguishable due to operating on different offsets of a global variable to produce identical hash functions. In some of the test cases attached to the PR I saw hash table activity where there were O(1000) probes-per-lookup *on average*. A very few entries were responsible for most of these probes. There is still quite a bit more to do here. The ad-hoc layering of data in MachineOperands makes them *extremely* brittle to hash correctly. We're missing quite a few other cases, the only ones I've fixed here are the specific MO types which were allowed through the assert() in getOffset(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159741 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e7de3b29f79b147a8f06e6edff0c54149d638139 |
05-Jul-2012 |
Duncan Sands <baldrick@free.fr> |
Use the right kind of booleans: we were emitting 0/1 booleans, instead of 0/-1 booleans. Patch by James Benton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7a7a6db6d79b53fdf01bbd9519e669424c3ea7a0 |
05-Jul-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Remove ParentMap. You can just ask the domnode for its parent. No functionality change. Move the "Not profitable, avoid CSE!" debug message next to where we fail the check for profitability and use a different message for avoiding CSE due to being in different register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159729 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
33a537a5c41e60507ac9a4ea987c1a395cbb74fe |
05-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow trailing physreg RegisterSDNode operands on non-variadic instructions. Also allow trailing register mask operands on non-variadic both MachineSDNodes and MachineInstrs. The extra physreg RegisterSDNode operands are added to the MI as <imp-use> operands. This makes it possible to have non-variadic call instructions. Call and return instructions really are non-variadic, the argument registers should only be used implicitly - they are not part of the encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159727 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
9389ec7375eb184ad017b7a1f09600cc4c2be4cd |
05-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print SlotIndexes when available for -print-machineinstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159726 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionPrinterPass.cpp
|
9e51b14faa55225a3175c4af9c69f5a45dd9a646 |
04-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow multiple terminators to read virtual registers. Find the kill as the last terminator to read SrcReg. Patch by Philipp Brüschweiler! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159722 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
f86c00f1f89082c800dbb78870fc5537eb3702f6 |
04-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure -print-machineinstrs applies to the first pass as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159720 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
66d79cefcb742bdbfef8823ac8491a7ebc4af5a7 |
04-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Reverted r156659, due to probable performance regressions, DenseMap should be used here: IntegersSubsetMapping - Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
caba263c8e28474e3d6feb307af8fc4445645962 |
04-Jul-2012 |
Eric Christopher <echristo@apple.com> |
Reduce some code duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159701 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
00f43076a3d9cc76ef4736cf3e7215e19b05f6d5 |
04-Jul-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Fix some ascii art in a comment to not have trailing backslashes (inspiration from IfConversion.cc), and fix some spelling and grammar in the surrounding prose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159699 91177308-0d34-0410-b5e6-96231b3b80d8
arlyIfConversion.cpp
|
33242fd3ed5586091e73254b58dd1825e9d53c60 |
04-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an experimental early if-conversion pass, off by default. This pass performs if-conversion on SSA form machine code by speculatively executing both sides of the branch and using a cmov instruction to select the result. This can help lower the number of branch mispredictions on architectures like x86 that don't have predicable instructions. The current implementation is very aggressive, and causes regressions on mosts tests. It needs good heuristics that have yet to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159694 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
arlyIfConversion.cpp
asses.cpp
|
6a590737355e82d83729198715e3fff11b0c6f9e |
03-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Part of r159527. Splitted into series of patches and gone with fixed PR13256: IntegersSubsetMapping - Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159659 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c723eb1aef817d47feec620933ee1ec6005cdd14 |
03-Jul-2012 |
Eric Christopher <echristo@apple.com> |
Revert "IntRange:" as it appears to be breaking self hosting. This reverts commit b2833d9dcba88c6f0520cad760619200adc0442c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159618 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6068c48498e9af1076b1b5f2499e176e7e9c0f34 |
03-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
All glory to address sanitizer. ;] It appears to have caught a use-after-free introduced as by r159567 and/or friends which call 'addPass' from many more places. The bug in 'addPass' doesn't appear to be new, and was spotted by inspection when ASan shown a bright light of a stacktrace at these functions. Hopefully this will fix the ASan failure -- I have no test case other than running an ASan-built clang over the test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159614 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
769951f6cc6323821ce1e9f46a37817a541c884f |
03-Jul-2012 |
Evan Cheng <evan.cheng@apple.com> |
Target option DisableJumpTables is a gross hack. Move it to TargetLowering instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
3d4ed0857437c2bbea4dcabc949d180860433d1d |
02-Jul-2012 |
Andrew Trick <atrick@apple.com> |
misched: allow NULL InstrItineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159599 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
9eb4f8a3e665e0fe37509e632b97877b29b3c106 |
02-Jul-2012 |
Eric Christopher <echristo@apple.com> |
Turn an assert into an error to make it a bit more friendly. Part of rdar://6880388 and rdar://11766377 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
30a507a1f5d6a5646dd3481eba6958424415c886 |
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Extend TargetPassConfig to allow running only a subset of the normal passes. This is still a work in progress but I believe it is currently good enough to fix PR13122 "Need unit test driver for codegen IR passes". For example, you can run llc with -stop-after=loop-reduce to have it dump out the IR after running LSR. Serializing machine-level IR is not yet supported but we have some patches in progress for that. The plan is to serialize the IR to a YAML file, containing separate sections for the LLVM IR, machine-level IR, and whatever other info is needed. Chad suggested that we stash the stop-after pass in the YAML file and use that instead of the start-after option to figure out where to restart the compilation. I think that's a great idea, but since it's not implemented yet I put the -start-after option into this patch for testing purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159570 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
6b2bb15bf7c77918adc433646846f6847d421257 |
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Move assertion with TargetPassConfig's Initialized flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159569 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
3fb99a73686c39d9855b3f8881add977af3868cb |
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Consistently use AnalysisID types in TargetPassConfig. This makes it possible to just use a zero value to represent "no pass", so the phony NoPassID global variable is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159568 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
564fbf6aff8fb95646a1290078a37c2d4dbe629f |
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Add all codegen passes to the PassManager via TargetPassConfig. This is a preliminary step toward having TargetPassConfig be able to start and stop the compilation at specified passes for unit testing and debugging. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159567 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
5f917cd3fada4507c0f4b718dd6af24b5e7086f1 |
02-Jul-2012 |
Manman Ren <mren@apple.com> |
Added assertion in getVRegDef of MachineRegisterInfo to make sure the virtual register does not have multiple definitions. Modified TwoAddressInstructionPass to use getUniqueVRegDef instead of getVRegDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159545 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
woAddressInstructionPass.cpp
|
218ee74a011c0d350099c452810da0bd57a15047 |
02-Jul-2012 |
Andrew Trick <atrick@apple.com> |
Reapply "Make NumMicroOps a variable in the subtarget's instruction itinerary." Reapplies r159406 with minor cleanup. The regressions appear to have been spurious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159541 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
b2833d9dcba88c6f0520cad760619200adc0442c |
02-Jul-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
IntRange: - Changed isSingleNumber method behaviour. Now this flag is calculated on demand. IntegersSubsetMapping - Optimized diff operation. - Replaced type of Items field from std::list with std::map. - Added new methods: bool isOverlapped(self &RHS) void add(self& RHS, SuccessorClass *S) void detachCase(self& NewMapping, SuccessorClass *Succ) void removeCase(SuccessorClass *Succ) SuccessorClass *findSuccessor(const IntTy& Val) const IntTy* getCaseSingleNumber(SuccessorClass *Succ) IntegersSubsetTest - DiffTest: Added checks for successors. SimplifyCFG Updated SwitchInst usage (now it is case-ragnes compatible) for - SimplifyEqualityComparisonWithOnlyPredecessor - FoldValueComparisonIntoPredecessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9c3d5a70f40f9e7bb90f3cb8ec1d87cff6e3f0ae |
01-Jul-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Now that RegistersDefinedFromSameValue handles one instruction being an implicit_def, the other instruction can be anything, including instructions that define multiple values. Be careful about that and don't assume what operand 0 is. Fixes pr13249. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159509 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
682e8d05c7def2b82edc354abf1d38df607d39c8 |
30-Jun-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Handle implicit_defs in the register coalescer. I am still trying to produce a reduced testcase, but this fixes pr13209. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159479 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
de7266c611b37ec050efb53b73166081a98cea13 |
29-Jun-2012 |
Manman Ren <mren@apple.com> |
Add SrcReg2 to analyzeCompare and optimizeCompareInstr to handle Compare instructions with two register operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159465 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
8ccaad526abdf39141b11b6d480b027d73a2d2a8 |
29-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear kill flags in InstrEmitter::EmitSubregNode(). When a local virtual register is made global, make sure to clear any existing kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
bb0721680c329625f47c090f48dcafb2fe14101c |
29-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check for extra kill flags on live-out virtual registers. This would previously get reported as the misleading "Virtual register def doesn't dominate all uses." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159460 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
54d69668b22b8c37aa6e45f14445f3988cc430d4 |
29-Jun-2012 |
Manman Ren <mren@apple.com> |
Add getUniqueVRegDef to MachineRegisterInfo. This comes in handy during peephole optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159453 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
e2ec14090999a45583ed0f6e6f1a1effc510f4f3 |
29-Jun-2012 |
Alexey Samsonov <samsonov@google.com> |
Cleanup in DwarfDebug - fix a typo and remove two unused functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159433 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
06cb8ed00696eb14d1b831921452e50ec0568ea2 |
29-Jun-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Move llvm/Support/IRBuilder.h -> llvm/IRBuilder.h This was always part of the VMCore library out of necessity -- it deals entirely in the IR. The .cpp file in fact was already part of the VMCore library. This is just a mechanical move. I've tried to go through and re-apply the coding standard's preferred header sort, but at 40-ish files, I may have gotten some wrong. Please let me know if so. I'll be committing the corresponding updates to Clang and Polly, and Duncan has DragonEgg. Thanks to Bill and Eric for giving the green light for this bit of cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159421 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
16eeb6f5ebc978b03745177b9ac82684ab1c6932 |
29-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
The DIBuilder class is just a wrapper around debug info creation (a.k.a. MDNodes). The module doesn't belong in Analysis. Move it to the VMCore instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159414 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
3e4b3b9043b1ced24e07d8d1174feeee06c6912e |
29-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Revert "Make NumMicroOps a variable in the subtarget's instruction itinerary." This reverts commit r159406. I noticed a performance regression so I'll back out for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159411 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
5559ffae2beb0adc868a0839a3bb560a063cc3e1 |
29-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: avoid scheduling instructions that can't be dispatched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159408 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
7f8c74cfaebb4b58b283a1875d3205704ce5be07 |
29-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: count micro-ops toward the issue limit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159407 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
0d9513c74f3e4c019406273cce49e43508dc4dcf |
29-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Make NumMicroOps a variable in the subtarget's instruction itinerary. The TargetInstrInfo::getNumMicroOps API does not change, but soon it will be used by MachineScheduler. Now each subtarget can specify the number of micro-ops per itinerary class. For ARM, this is currently always dynamic (-1), because it is used for load/store multiple which depends on the number of register operands. Zero is now a valid number of micro-ops. This can be used for nop pseudo-instructions or instructions that the hardware can squash during dispatch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159406 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
85b408991aff28ffa4e9e113a5a8a35b0db505c2 |
29-Jun-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
add a new @llvm.donothing intrinsic that, well, does nothing, and teach CodeGen to ignore calls to it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
926dc168c893e1848a18e45fd78f9b99d6f4cd5d |
28-Jun-2012 |
Jim Grosbach <grosbach@apple.com> |
'Promote' vector [su]int_to_fp should widen elements. Teach vector legalization how to honor Promote for int to float conversions. The code checking whether to promote the operation knew to look at the operand, but the actual promotion code didn't. This fixes that. The operand is promoted up via [zs]ext. rdar://11762659 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
0bcbd1df7a204e1e512f1a27066d725309de1b13 |
28-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159312 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
exicalScopes.cpp
iveDebugVariables.cpp
achineFunction.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
34f5a2b596236a5452ddc664066138ca7a0c7af2 |
26-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow targets to inject passes before the virtual register rewriter. Such passes can be used to tweak the register assignments in a target-dependent way, for example to avoid write-after-write dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159209 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
c04f816afd1ad9a1c3746f894556b6bea0cac8fc |
26-Jun-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Update a bunch of stale comments that dated from when this folled the very first (and worst) placement algorithm. These should now more accurately reflect the reality of the pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159185 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
c9b1e25493b393013b28e5d457f2fb2845a4dd9f |
26-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Enable the new LoopInfo algorithm by default. The primary advantage is that loop optimizations will be applied in a stable order. This helps debugging and unit test creation. It is also a better overall implementation without pathologically bad performance on deep functions. On large functions (llvm-stress --size=200000 | opt -loops) Before: 0.1263s After: 0.0225s On deep functions (after tweaking llvm-stress, thanks Nadav): Before: 0.2281s After: 0.0227s See r158790 for more comments. The loop tree is now consistently generated in forward order, but loop passes are applied in reverse order over the program. If we have a loop optimization that prefers forward order, that can easily be achieved by adding a different type of LoopPassManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159183 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
16436dffb50fac4677c7162639f8da0b73eb4e99 |
26-Jun-2012 |
Evan Cheng <evan.cheng@apple.com> |
Make sure type is not extended or untyped before create a constant of the type. No test case. Found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a4e6397fd9f2fbbd6affdfb0738813918cb21da0 |
25-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enforce stricter liveness rules for PHIs. Verify that all paths from the entry block to a virtual register read pass through a def. Enable this check even when MRI->isSSA() is false. Verify that the live range of a virtual register is live out of all predecessor blocks, even for PHI-values. This requires that PHIElimination sometimes inserts IMPLICIT_DEF instruction in predecessor blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159150 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5984d2b31fe3c69e46d2b81439a8c3ef0bdf9a91 |
25-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run ProcessImplicitDefs on SSA form where it can be much simpler. Implicitly defined virtual registers can simply have the <undef> bit set on all uses, and copies can be turned into implicit defs recursively. Physical registers are a bit trickier. We handle the common case where a physreg def is used by a nearby instruction in the same basic block. For more complicated cases, just leave the IMPLICIT_DEF instruction in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159149 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
rocessImplicitDefs.cpp
|
5213750e27c2f9fd7f5a0884c4a15f3b5e3aa843 |
25-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach PHIElimination to handle <undef> operands. When a PHI use is <undef>, don't emit a copy in the predecessor block, but insert an IMPLICIT_DEF instruction instead. This ensures that virtual register uses are always jointly dominated by defs, even if some of them are IMPLICIT_DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159121 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
351c8818f2ff89d567094f46c3e220d6501ec3fa |
25-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle <undef> operands in TwoAddressInstructionPass. When the source register to a 2-addr instruction is undefined, there is no need to attempt any transformations - simply replace the source register with the destination register. This also comes up when lowering IMPLICIT_DEF instructions - make sure the <undef> flag is moved to the new partial register def operand: %vreg8<def> = INSERT_SUBREG %vreg9<undef>, %vreg0<kill>, sub_16bit rewrite undef: %vreg8<def> = INSERT_SUBREG %vreg8<undef>, %vreg0<kill>, sub_16bit convert to: %vreg8:sub_16bit<def,read-undef> = COPY %vreg0<kill> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159120 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d5c407d2d01ff8797c29343e4da5f765fe52fb5f |
24-Jun-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159112 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
electionDAG/CMakeLists.txt
|
b49998d76cb4e414d13d60116adf13b085d85dc1 |
24-Jun-2012 |
Pete Cooper <peter_cooper@apple.com> |
DAG legalisation can now handle illegal fma vector types by scalarisation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159092 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
7806c0778f22552ebe6711f3dc43887dc6097bfc |
23-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach LiveVariables to handle <undef> operands. It's simple: Don't treat <undef> operands as uses, and don't assume a virtual register has a defining instruction unless a real use has been seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159061 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
0cafa139c01aa9d5072b185d686a05b9d8ab1ee7 |
23-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove ProcessImplicitDefs.h which was unused. The ProcessImplicitDefs class can be local to its implementation file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159041 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
f935e945c0fc0444324347882ac41104b12204c2 |
23-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also verify the def index for early clobbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159039 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
bfd752f310078561de07850ce66213c4579a0d7e |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete a boring statistic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159030 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7fa6784296e6bc1aa4e8ec3664e58247893c21a2 |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Store live intervals in an IndexedMap. It is both smaller and faster than DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159029 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b460a3382961c5be9952a75d46228f624edbd39f |
22-Jun-2012 |
Hal Finkel <hfinkel@anl.gov> |
Revert r158679 - use case is unclear (and it increases the memory footprint). Original commit message: Allow up to 64 functional units per processor itinerary. This patch changes the type used to hold the FU bitset from unsigned to uint64_t. This will be needed for some upcoming PowerPC itineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159027 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
coreboardHazardRecognizer.cpp
|
04ce06dc4c9dff4ff7a8b97079e3cbb7b60da3ab |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a crash in --debug code. Don't try to print out the live range of a physreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159021 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
b150930910a254377a62ed74af981c37eafe8fcb |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't depend on live ranges being present. DBG_VALUE instructions could be referring to non-existing virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159020 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
e024874d22c8f6acc4f54eb6183f70f6681f23ac |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify handleMove() a bit. There is no need to check for physreg live ranges. They don't exist any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159019 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
27b7669a6058235eec494ea30d0d62b7146e0eb4 |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop computing physreg live ranges. Everyone is using on-demand regunit ranges now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159018 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e6d21144054c7b7e0445307f58f703b08d189d75 |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove some redundant LIS->hasInterval() checks. These functions only operate on virtual registers now, and they all have live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159015 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
834a9cdbb78c1a16c8ceecb018a324a3ba31c365 |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MRI::isConstantPhysReg() to check remat feasibility. Don't depend on LiveIntervals::hasInterval() to determine if a physreg is reserved and constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159013 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
e8a0a1286417e73f4b2bffe21ae45882701e703f |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use regunit liveness to guide LiveDebugVariables. This should produce the same results as using physreg liveness directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159009 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
241d0209a765c97c684b120527e185f17723f650 |
22-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove LiveIntervals::trackingRegUnits(). With regunit liveness permanently enabled, this function would always return true. Also remove now obsolete code for checking physreg interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159006 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
|
9cfc799171171e0cc26f64a60ba36bef8e889556 |
22-Jun-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove another duplicated variable. We only need one to tell us if the linker knows dwarf or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158993 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2241e51406f7bae369d6103cf3464e70f74c4af9 |
22-Jun-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a FIXME: DwarfRequiresRelocationForSectionOffset is the same as DwarfUsesRelocationsAcrossSections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ffccd923101ae177c1a2c407618d8f03a312d69b |
22-Jun-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Emit relocations for DW_AT_location entries on systems which need it. This is a recommit of r127757. Fixes PR9493. Patch by Paul Robinson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158957 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
e0231413225cf47aaf3238bf21afd0d59025028d |
22-Jun-2012 |
Lang Hames <lhames@gmail.com> |
Rename -allow-excess-fp-precision flag to -fuse-fp-ops, and switch from a boolean flag to an enum: { Fast, Standard, Strict } (default = Standard). This option controls the creation by optimizations of fused FP ops that store intermediate results in higher precision than IEEE allows (E.g. FMAs). The behavior of this option is intended to match the behaviour specified by a soon-to-be-introduced frontend flag: '-ffuse-fp-ops'. Fast mode - allows formation of fused FP ops whenever they're profitable. Standard mode - allow fusion only for 'blessed' FP ops. At present the only blessed op is the fmuladd intrinsic. In the future more blessed ops may be added. Strict mode - allow fusion only if/when it can be proven that the excess precision won't effect the result. Note: This option only controls formation of fused ops by the optimizers. Fused operations that are explicitly requested (e.g. FMA via the llvm.fma.* intrinsic) will always be honored, regardless of the value of this option. Internally TargetOptions::AllowExcessFPPrecision has been replaced by TargetOptions::AllowFPOpFusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158956 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGBuilder.cpp
|
4db98becf798a013ee00b82691af154e261d648e |
21-Jun-2012 |
Jack Carter <jcarter@mips.com> |
The inline asm operand modifier 'n' is suppose to be generic across architectures. It has the following description in the gnu sources: Negate the immediate constant Several Architectures such as x86 have local implementations of operand modifier 'n' which go beyond the above description slightly. This won't affect them. Affected files: lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Added 'n' to the switch cases. test/CodeGen/Generic/asm-large-immediate.ll Generic compiled test (x86 for me) test/CodeGen/Mips/asm-large-immediate.ll Mips compiled version of the generic one Contributer: Jack Carter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158939 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
438c04027bb5f219e8d77770828a555c42fd1d7c |
21-Jun-2012 |
Pete Cooper <peter_cooper@apple.com> |
Fix potential crash if DAGCombine on stores sees a half type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158927 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d5e11ad51a3966c0b80ce2119946cd1aa3558aec |
21-Jun-2012 |
Jack Carter <jcarter@mips.com> |
The inline asm operand modifier 'c' is suppose to be generic across architectures. It has the following description in the gnu sources: Substitute immediate value without immediate syntax Several Architectures such as x86 have local implementations of operand modifier 'c' which go beyond the above description slightly. To make use of the generic modifiers without overriding local implementation one can make a call to the base class method for AsmPrinter::PrintAsmOperand() in the locally derived method's "default" case in the switch statement. That way if it is already defined locally the generic version will never get called. This change is needed when test/CodeGen/generic/asm-large-immediate.ll failed on a native Mips board. The test was assuming a generic implementation was in place. Affected files: lib/Target/Mips/MipsAsmPrinter.cpp: Changed the default case to call the base method. lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Added 'c' to the switch cases. test/CodeGen/Mips/asm-large-immediate.ll Mips compiled version of the generic one Contributer: Jack Carter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158925 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
8ef0968dc230f6fae8fcbd6dc4a5cb9ccc780b6b |
21-Jun-2012 |
Evan Cheng <evan.cheng@apple.com> |
Emit a single _udivmodsi4 libcall instead of two separate _udivsi3 and _umodsi3 libcalls if they have the same arguments. This optimization was apparently broken if one of the node was replaced in place. rdar://11714607 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
71b49cb5c73ba912f2fab30f35ed1e43c35a2139 |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update regunits in RegisterCoalescer::reMaterializeTrivialDef. Old code would only update physreg live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158881 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
0f3c892cdecd6c0978341b7ca5e1abaeafd893ea |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove spurious typedefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158878 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
312244747c329f1d98c05afe78e3c90593e2fcb2 |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the RenderMachineFunction HTML output pass. I don't think anyone has been using this functionality for a while, and it is getting in the way of refactoring now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158876 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
egAllocBasic.cpp
egAllocPBQP.cpp
enderMachineFunction.cpp
enderMachineFunction.h
|
c4118452bcdae305088e151719abb2a3530caede |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -live-regunits command line option. Register allocators depend on it being permanently enabled now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158873 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
12a7be9ba4263a283ca14e277a90cb64fe0e6f62 |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix some more LiveInterval enumerations. Deterministically enumerate the virtual registers instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158872 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineVerifier.cpp
|
d4348a2dc24c4fb012c1b9b20e71908f52049283 |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove LiveIntervalUnions from RegAllocBase. They are living in LiveRegMatrix now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158868 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
042888db2bb195c86bf34afbb6907d70855d2830 |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert RAGreedy to LiveRegMatrix interference checking. Stop depending on the LiveIntervalUnions in RegAllocBase, they are about to be removed. The changes are mostly replacing register alias iterators with regunit iterators, and querying LiveRegMatrix instrad of RegAllocBase. InterferenceCache is converted to work with per-regunit LiveIntervalUnions, and it checks fixed regunit interference separately, using the fixed live intervals provided by LiveIntervalAnalysis. The local splitting helper calcGapWeights() is also considering fixed regunit interference which is kept on the side now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158867 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
nterferenceCache.h
iveRegMatrix.h
egAllocGreedy.cpp
|
812cda9a5cc26b1f8dda6f909bf5062c215b65d7 |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert RABasic to using LiveRegMatrix interference checking. Stop using the LiveIntervalUnions provided by RegAllocBase, they will be removed soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158866 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
|
797e9a7737136a5e13d9114fe11543da471f9bdc |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable register unit liveness by default. Soon we won't need to compute live intervals for physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158865 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3b30bca16f7ab002bcd5058b3f3a044a267541e0 |
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach PBQPBuilder::build() about regunit interference. Filter out physreg candidates with regunit interferrence. Also compute regmask interference more efficiently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158864 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
d67582e2767df96610ba8dc1835ad4bf99fc77e8 |
20-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid iterating with LiveIntervals::iterator. That is a DenseMap iterator keyed by pointers, so the iteration order is nondeterministic. I would like to replace the DenseMap with an IndexedMap which doesn't allow iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158856 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
egAllocBase.cpp
egAllocPBQP.cpp
|
3affd9e8f366f241adbbc57ef53489ff2052db4f |
20-Jun-2012 |
Pete Cooper <peter_cooper@apple.com> |
Add users of a MERGE_VALUE node to the worklist to process again when the node is removed. Sorry, no test case. Foudn it by inspection of the code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158839 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7824152557cfe3a366963f504b2b956f853ebc3a |
20-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only update regunit live ranges that have been precomputed. Regunit live ranges are computed on demand, so when mi-sched calls handleMove, some regunits may not have live ranges yet. That makes updating them easier: Just skip the non-existing ranges. They will be computed correctly from the rescheduled machine code when they are needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158831 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2769e9338429377f0d06fb78ec884bf69b0c7d41 |
20-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158827 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d65e463ff9327d168e8389e5c9a9f16a601be8a5 |
20-Jun-2012 |
Hal Finkel <hfinkel@anl.gov> |
Fix DAGCombine to deal with ext-conversion of pre/post_inc loads. The test case for this will come with the PPC indexed preinc loads commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9905dbc3798b262c02637d528131ea536a1614b7 |
20-Jun-2012 |
Aaron Ballman <aaron@aaronballman.com> |
Fixing a compiler warning in MSVC 10. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158820 91177308-0d34-0410-b5e6-96231b3b80d8
coreboardHazardRecognizer.cpp
|
fdc2d0faf321224393f1a5dbf05c3e3f88bb6e3e |
20-Jun-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix two rather subtle internal vs. external linker issues. I'll admit I'm not entirely satisfied with this change, but it seemed the cleanest option. Other suggestions quite welcome The issue is that the traits specializations have static methods which return the typedef'ed PHI_iterator type. In both the IR and MI layers this is typedef'ed to a custom iterator class defined in an anonymous namespace giving the types and the functions returning them internal linkage. However, because the traits specialization is defined in the 'llvm' namespace (where it has to be, specialized template lives there), and is in turn used in the templated implementation of the SSAUpdater. This led to the linkage conflict that Clang now warns about. The simplest solution to me was just to define the PHI_iterator as a nested class inside the trait specialization. That way it still doesn't get scoped widely, it can't be accidentally reused somewhere, etc. This is a little gross just because nested class definitions are a little gross, but the alternatives seem more ad-hoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158799 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
37aa33bc11c01a7142bfa2428a5a4d219b07b6c3 |
20-Jun-2012 |
Andrew Trick <atrick@apple.com> |
A new algorithm for computing LoopInfo. Temporarily disabled. -stable-loops enables a new algorithm for generating the Loop forest. It differs from the original algorithm in a few respects: - Not determined by use-list order. - Initially guarantees RPO order of block and subloops. - Linear in the number of CFG edges. - Nonrecursive. I didn't want to change the LoopInfo API yet, so the block lists are still inclusive. This seems strange to me, and it means that building LoopInfo is not strictly linear, but it may not be a problem in practice. At least the block lists start out in RPO order now. In the future we may add an attribute or wrapper analysis that allows other passes to assume RPO order. The primary motivation of this work was not to optimize LoopInfo, but to allow reproducing performance issues by decomposing the compilation stages. I'm often unable to do this with the current LoopInfo, because the loop tree order determines Loop pass order. Serializing the IR tends to invert the order, which reverses the optimization order. This makes it nearly impossible to debug interdependent loop optimizations such as LSR. I also believe this will provide more stable performance results across time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158790 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
cbf24b4e58c2f621f480883c5bb1f2f2b2b8d497 |
20-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Move the implementation of LoopInfo into LoopInfoImpl.h. The implementation only needs inclusion from LoopInfo.cpp and MachineLoopInfo.cpp. Clients of the interface should only include the interface. This makes the interface readable and speeds up rebuilds after modifying the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158787 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
bf833f07473851c79018a1e32186e1b9c00d03c1 |
20-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add regunit liveness support to LiveIntervals::handleMove(). When LiveIntervals is tracking fixed interference in regunits, make sure to update those intervals as well. Currently guarded by -live-regunits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158766 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0c1eac8129f7e4e637074a482a085448e1680199 |
20-Jun-2012 |
Chad Rosier <mcrosier@apple.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158762 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
2531a6415ff9c082bb1c11c27f1b03aa3e1b97df |
20-Jun-2012 |
Chad Rosier <mcrosier@apple.com> |
Add an ensureMaxAlignment() function to MachineFrameInfo (analogous to ensureAlignment() in MachineFunction). Also, drop setMaxAlignment() in favor of this new function. This creates a main entry point to setting MaxAlignment, which will be helpful for future work. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158758 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
achineFunction.cpp
|
d693cafcfb9e67ba7040cb810e4409a166421482 |
20-Jun-2012 |
Lang Hames <lhames@gmail.com> |
Add DAG-combines for aggressive FMA formation. This patch adds DAG combines to form FMAs from pairs of FADD + FMUL or FSUB + FMUL. The combines are performed when: (a) Either AllowExcessFPPrecision option (-enable-excess-fp-precision for llc) OR UnsafeFPMath option (-enable-unsafe-fp-math) are set, and (b) TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) is true for the type of the FADD/FSUB, and (c) The FMUL only has one user (the FADD/FSUB). If your target has fast FMA instructions you can make use of these combines by overriding TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) to return true for types supported by your FMA instruction, and adding patterns to match ISD::FMA to your FMA instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fa8becb6f9e8aa2cbe3bab79e1fc4cdf2ffbb8e5 |
20-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158755 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7164288c3eb52e20454fc757440f867f04eb13a4 |
19-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement PPCInstrInfo::isCoalescableExtInstr(). The PPC::EXTSW instruction preserves the low 32 bits of its input, just like some of the x86 instructions. Use it to reduce register pressure when the low 32 bits have multiple uses. This requires a small change to PeepholeOptimizer since EXTSW takes a 64-bit input register. This is related to PR5997. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158743 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
d8d0279c007e70c325b4ac9d9893b31ee5f21085 |
19-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Style: Don't reuse variables for multiple purposes. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158742 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
d6b43a317e71246380db55a50b799b062b53cdce |
19-Jun-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move the support for using .init_array from ARM to the generic TargetLoweringObjectFileELF. Use this to support it on X86. Unlike ARM, on X86 it is not easy to find out if .init_array should be used or not, so the decision is made via TargetOptions and defaults to off. Add a command line option to llc that enables it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158692 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
e877c4f9c7b4e4142f33a29e6cd1a07262525a12 |
18-Jun-2012 |
Hal Finkel <hfinkel@anl.gov> |
Allow up to 64 functional units per processor itinerary. This patch changes the type used to hold the FU bitset from unsigned to uint64_t. This will be needed for some upcoming PowerPC itineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158679 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
coreboardHazardRecognizer.cpp
|
a9783663398baf1289683fc7326430b89963f38e |
16-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Guard private fields that are unused in Release builds with #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158608 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egAllocBasic.cpp
|
af06825460e1905a7739386c28253c13e3653394 |
16-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove final verification in RABasic. We now have a proper machine code verifier pass between register allocation and rewriting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158577 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
127cdba3eb78240e727dda4e62b05393d7a938e6 |
16-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out register number in InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158575 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
eb06b0b6aa627c6698471d4df71570f080fb3c5c |
16-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Accept null PhysReg arguments to checkRegMaskInterference. Calling checkRegMaskInterference(VirtReg) checks if VirtReg crosses any regmask operands, regardless of the registers they clobber. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158563 91177308-0d34-0410-b5e6-96231b3b80d8
iveRegMatrix.cpp
iveRegMatrix.h
|
4b8e1fd054f88b443c4983c7c8b9f2e1f22e3686 |
15-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove assignments which aren't used afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158535 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
324143d888a83511b6e022b4c541b18cc7773886 |
15-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use regunit liveness in RegisterCoalescer when it is available. We only do very limited physreg coalescing now, but we still merge virtual registers into reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158526 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
6b0cd9b9c65dc8c91827ddd926e050738ea590fd |
14-Jun-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Make machine verifier check the first instruction of the last bundle instead of the last instruction of a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158468 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
0180694b2f416e2247af1d284d701b19e1431a6c |
14-Jun-2012 |
Lang Hames <lhames@gmail.com> |
Make comment slightly more helpful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
42120a2c5546f0eca9fdedf860b6a222e279971a |
14-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: disable SSA check pending PR13112. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158461 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
1c2d3c538c6062655f2b37438cc69a769ab90942 |
13-Jun-2012 |
Andrew Trick <atrick@apple.com> |
sched: fix latency of memory dependence chain edges for consistency. For store->load dependencies that may alias, we should always use TrueMemOrderLatency, which may eventually become a subtarget hook. In effect, we should guarantee at least TrueMemOrderLatency on at least one DAG path from a store to a may-alias load. This should fix the standard mode as well as -enable-aa-sched-mi". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158380 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
9df55eed0470c898c4003dc433c4479bdb0e0aac |
13-Jun-2012 |
Andrew Trick <atrick@apple.com> |
sched: Avoid trivially redundant DAG edges. Take the one with higher latency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158379 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
0eb3a3524e9d68642e574780d19c781386ed4469 |
12-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: When querying RegisterPressureTracker, always save current and max pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158340 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
4487479543d58df84bb403f4bcfd33f72aadfa18 |
12-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: regpressure getMaxPressureDelta, revert accidental checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158339 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
f33a79c590934ee9973a3c91cbc7c435bd6aa115 |
09-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Allocate the contents of DwarfDebug's StringMaps in a single big BumpPtrAllocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158265 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ba17293a8827a7e0e390b0a1d6075148a58d9edd |
09-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Register pressure: added getPressureAfterInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158256 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
8879480ed708ffa51d23f423ec316763c7cb9577 |
09-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Sketch a LiveRegMatrix analysis pass. The LiveRegMatrix represents the live range of assigned virtual registers in a Live interval union per register unit. This is not fundamentally different from the interference tracking in RegAllocBase that both RABasic and RAGreedy use. The important differences are: - LiveRegMatrix tracks interference per register unit instead of per physical register. This makes interference checks cheaper and assignments slightly more expensive. For example, the ARM D7 reigster has 24 aliases, so we would check 24 physregs before assigning to one. With unit-based interference, we check 2 units before assigning to 2 units. - LiveRegMatrix caches regmask interference checks. That is currently duplicated functionality in RABasic and RAGreedy. - LiveRegMatrix is a pass which makes it possible to insert target-dependent passes between register allocation and rewriting. Such passes could tweak the register assignments with interference checking support from LiveRegMatrix. Eventually, RABasic and RAGreedy will be switched to LiveRegMatrix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158255 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
iveRegMatrix.cpp
iveRegMatrix.h
|
fe17bdbb50efe2f7f68d0b99e55ae52bd9477978 |
09-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also compute MBB live-in lists in the new rewriter pass. This deduplicates some code from the optimizing register allocators, and it means that it is now possible to change the register allocators' solutions simply by editing the VirtRegMap between the register allocator pass and the rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158249 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
irtRegMap.cpp
|
05ec712e7f75635abbdd84dced69f4a45fe0f541 |
09-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reintroduce VirtRegRewriter. OK, not really. We don't want to reintroduce the old rewriter hacks. This patch extracts virtual register rewriting as a separate pass that runs after the register allocator. This is possible now that CodeGen/Passes.cpp can configure the full optimizing register allocator pipeline. The rewriter pass uses register assignments in VirtRegMap to rewrite virtual registers to physical registers, and it inserts kill flags based on live intervals. These finalization steps are the same for the optimizing register allocators: RABasic, RAGreedy, and PBQP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158244 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
asses.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
irtRegMap.cpp
irtRegMap.h
|
791e2e0867d1e6fcb9c6f651da89f57043bc6c4a |
08-Jun-2012 |
Evan Cheng <evan.cheng@apple.com> |
Start implementing pre-ra if-converter: using speculation and selects to eliminate branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158234 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
eb81df7d95b8923ea99c0d4741a5aabf82d1c5ab |
08-Jun-2012 |
Andrew Trick <atrick@apple.com> |
TargetInstrInfo hooks implemented in codegen should be declared pure virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158233 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
c36d033c08c6148846f61cc7aee4fe0f523af1e5 |
08-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Fix Target->Codegen dependence. Bulk move of TargetInstrInfo implementation into TargetInstrInfoImpl. This is dirty because the code isn't part of TargetInstrInfoImpl class, nor should it be, because the methods are not target hooks. However, it's the current mechanism for keeping libTarget useful outside the backend. You'll get a not-so-nice link error if you invoke a TargetInstrInfo method that depends on CodeGen. The TargetInstrInfoImpl class should probably be removed since it doesn't really solve this problem. To really fix this, we probably need separate interfaces for the CodeGen/nonCodeGen sides of TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158212 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
83569cb062930a62e96ba87a47b002366e00124d |
07-Jun-2012 |
Pete Cooper <peter_cooper@apple.com> |
Move terminator machine verification to check MachineBasicBlock::instr_iterator instead of MBB::iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158154 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
2afde7782dfa56b2e46f79598bdb5f1e09471941 |
07-Jun-2012 |
Manman Ren <mren@apple.com> |
Revert r157755. The commit is intended to fix rdar://11540023. It is implemented as part of peephole optimization. We can actually implement this in the SelectionDAG lowering phase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158122 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
1f9c3ec831cf63f7833680c38362c1e92c251aff |
07-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly verify liveness with bundled machine instructions. Bundles should be treated as one atomic transaction when checking liveness. That is how the register allocator (and VLIW targets) treats bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158116 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1525260b3e50cc578939ef41b60609689eecfdd2 |
06-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Move RegisterClassInfo.h. Allow targets to access this API. It's required for RegisterPressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158102 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
llocationOrder.cpp
riticalAntiDepBreaker.h
achineScheduler.cpp
ostRASchedulerList.cpp
egAllocBase.h
egAllocFast.cpp
egisterClassInfo.cpp
egisterClassInfo.h
egisterCoalescer.cpp
egisterPressure.cpp
|
afc2657cc33988a178d3b21645dba54484600c5f |
06-Jun-2012 |
Andrew Trick <atrick@apple.com> |
Move RegisterPressure.h. Make it a general utility for use by Targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158097 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
egisterPressure.h
cheduleDAGInstrs.cpp
|
95a9d937728ca9cf2bf44f86ff1184df318b3bd7 |
06-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Round 2 of dead private variable removal. LLVM is now -Wunused-private-field clean except for - lib/MC/MCDisassembler/Disassembler.h. Not sure why it keeps all those unaccessible fields. - gtest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158096 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocGreedy.cpp
|
a7542d5f870c5d98960d1676e23ac1d1d975d7e5 |
06-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused private fields found by clang's new -Wunused-private-field. There are some that I didn't remove this round because they looked like obvious stubs. There are dead variables in gtest too, they should be fixed upstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158090 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
egAllocBasic.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
egisterCoalescer.h
cheduleDAGInstrs.cpp
|
461e7eaa6fc52f96d01f7e1a5c357eae79e52508 |
06-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead debug option -disable-rematerialization. Remat has been stable for years, and it isn't done by LiveIntervalAnalysis any longer. (See LiveRangeEdit). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158079 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d14e4e133f940d0c1f454a40f3bd835a8c7a7886 |
06-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Stop leaking RegScavengers from TailDuplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158069 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
0e5a60b4ebc06a4fe6bb58f0200acf130d7be685 |
06-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move LiveUnionArray into LiveIntervalUnion.h It is useful outside RegAllocBase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158041 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.cpp
egAllocBase.h
|
2fd0923593c4d30691a45ade1e8b0bd484896c3f |
06-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't print register names in LiveIntervalUnion::print(). Soon we'll be making LiveIntervalUnions for register units as well. This was the only place using the RepReg member, so just remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158038 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.cpp
|
05b46f05c3c4efd0972bf3e2e570404e7db72509 |
06-Jun-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Suppress -Wunused-variable in -Asserts build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158037 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b77ec7d26405125fa5685370af5f17fcc9edbecd |
06-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify LiveInterval::print(). Don't print out the register number and spill weight, making the TRI argument unnecessary. This allows callers to interpret the reg field. It can currently be a virtual register, a physical register, a spill slot, or a register unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158031 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egAllocBase.cpp
egisterCoalescer.cpp
|
34c6f9803499c11ed2dc8479ec768d47370a2d3a |
06-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add experimental support for register unit liveness. Instead of computing a live interval per physreg, LiveIntervals can compute live intervals per register unit. This makes impossible the confusing situation where aliasing registers could have overlapping live intervals. It should also make fixed interferernce checking cheaper since registers have fewer register units than aliases. Live intervals for regunits are computed on demand, using MRI use-def chains and the new LiveRangeCalc class. Only regunits live in to ABI blocks are precomputed during LiveIntervals::runOnMachineFunction(). The regunit liveness computations don't depend on LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158029 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4e53a40ea321c43bdf754147dd2ec064985e5b7b |
05-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement LiveRangeCalc::extendToUses() and createDeadDefs(). These LiveRangeCalc methods are to be used when computing a live range from scratch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158027 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveRangeCalc.cpp
iveRangeCalc.h
|
d88d27868bf7c2c5914c1b9ccace0ee6d7ee958a |
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
MachineInstr::eraseFromParent fix for removing bundled instrs. Patch by Ivan Llopard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158025 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b7e0289fb320c8440ba5eed121a8b932dbd806a2 |
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: API for minimum vs. expected latency. Minimum latency determines per-cycle scheduling groups. Expected latency determines critical path and cost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158021 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.h
woAddressInstructionPass.cpp
|
5afba6f00c3e2eef83aebbcff5fcfca2fa3c978e |
05-Jun-2012 |
Lang Hames <lhames@gmail.com> |
Add a new intrinsic: llvm.fmuladd. This intrinsic represents a multiply-add expression (a * b + c) that can be implemented as a fused multiply-add (fma) if the target determines that this will be more efficient. This intrinsic will be used to implement FP_CONTRACT support and an aggressive FMA formation mode. If your target has a fast FMA instruction you should override the isFMAFasterThanMulAndAdd method in TargetLowering to return true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fc992996f751e0941951b6d08d8f1e80ebec1385 |
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added MultiIssueItineraries. This allows a subtarget to explicitly specify the issue width and other properties without providing pipeline stage details for every instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157979 91177308-0d34-0410-b5e6-96231b3b80d8
coreboardHazardRecognizer.cpp
electionDAG/ResourcePriorityQueue.cpp
|
4eb4e5eb224b3d737558bcda8a0a369cc9d800e6 |
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
sdsched: Use the right heuristics when -mcpu is not provided and we have no itinerary. Use ILP heuristics for long latency instrs if no scoreboard exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d327d3ddddaf23fe920a01bf6304f6a8f4986e89 |
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: Allow disabling scoreboard hazard checking for subtargets with a valid itinerary but no pipeline stages. An itinerary can contain useful scheduling information without specifying pipeline stages for each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157977 91177308-0d34-0410-b5e6-96231b3b80d8
coreboardHazardRecognizer.cpp
|
76e9e838a143a12fdf119ecd01919936a437b5a2 |
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
misched: comments from code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157975 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
afb32f7fb482d62532d575ea7b1ee8ab3919575c |
05-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the last remat-related code from LiveIntervalAnalysis. Rematerialization is handled by LiveRangeEdit now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157974 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3dfd59bdc3ab1135961a3798b4f23e191a7dc953 |
05-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop using LiveIntervals::isReMaterializable(). It is an old function that does a lot more than required by CalcSpillWeights, which was the only remaining caller. The isRematerializable() function never actually sets the isLoad argument, so don't try to compute that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157973 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
84423c8778ed22877c123fe41f5e137cb5a30e90 |
05-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157963 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
15f1d8c557c217b90a82599d5f0f849f8340a1e3 |
05-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch LiveIntervals member variable to LLVM naming standards. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157957 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
631390e3c26fe5581ee9468b04593cedf48cc908 |
04-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass context pointers to LiveRangeCalc::reset(). Remove the same pointers from all the other LiveRangeCalc functions, simplifying the interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157941 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.cpp
iveRangeCalc.h
plitKit.cpp
|
fcb2c3cf5e8ee421fd3a5639cc4a33036e9a614e |
04-Jun-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Remove the "-promote-elements" flag. This flag is now enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d9b0b025612992a0b724eeca8bdf10b1d7a5c355 |
02-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix typos found by http://github.com/lyda/misspell-check git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157885 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
odePlacementOpt.cpp
riticalAntiDepBreaker.cpp
xecutionDepsFix.cpp
achineBlockPlacement.cpp
electionDAG/ResourcePriorityQueue.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/TargetLowering.cpp
|
43eb31bfae470b33bab9a6764b98b5e8a0beeda5 |
02-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: case ranges. IntRange converted from struct to class. So main change everywhere is replacement of ".Low/High" with ".getLow/getHigh()" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4319a552ac98137d511341905711293d541f15e7 |
02-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: case ranges. IntegersSubsetGeneric, IntegersSubsetMapping: added IntTy template parameter, that allows use either APInt or IntItem. This change allows to write unittest for these classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
55a105160dc02a0d990a69820cfe63fef504195e |
02-Jun-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Fix a bug in the code which custom-lowers truncating stores in LegalizeDAG. Check that the SDValue TargetLowering::LowerOperation returns is not null before replacing the original node with the returned node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157873 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
396618b43a85e12d290a90b181c6af5d7c0c5f11 |
02-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch all register list clients to the new MC*Iterator interface. No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157854 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
ranchFolding.cpp
allingConvLower.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
xecutionDepsFix.cpp
fConversion.cpp
nterferenceCache.cpp
iveVariables.cpp
achineCopyPropagation.cpp
achineInstr.cpp
achineInstrBundle.cpp
achineLICM.cpp
achineRegisterInfo.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
rocessImplicitDefs.cpp
egAllocBase.cpp
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterClassInfo.cpp
egisterCoalescer.cpp
egisterPressure.cpp
egisterScavenging.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGRRList.cpp
|
0984461dfb329c8e43ca70e264f56cd39bbae573 |
02-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove physreg support from adjustCopiesBackFrom and removeCopyByCommutingDef. After physreg coalescing was disabled, these functions can't do anything useful with physregs anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157849 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
8c70ea47fae6d61441d150cbe9431cf5e06222e5 |
02-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify some more getAliasSet callers. MCRegAliasIterator can include Reg itself in the list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157848 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAGFast.cpp
|
f152fe8d487c46873bbdd4abab43200f783e978b |
01-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch some getAliasSet clients to MCRegAliasIterator. MCRegAliasIterator can optionally visit the register itself, allowing for simpler code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157837 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
achineCSE.cpp
achineCopyPropagation.cpp
|
68f25571e759c1fcf2da206109647259f49f7416 |
01-Jun-2012 |
Manman Ren <mren@apple.com> |
ARM: properly handle alignment for struct byval. Factor out the expansion code into a function. This change is to be enabled in clang. rdar://9877866 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6bb5c0074dc4cede2ad8efd420ec91288f91b012 |
01-Jun-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: case ranges. IntegersSubset devided into IntegersSubsetGeneric and into IntegersSubset itself. The first has no references to ConstantInt and works with IntItem only. IntegersSubsetMapping also made generic. Here added second template parameter "IntegersSubsetTy" that allows to use on of two IntegersSubset types described below. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157815 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
74ee0ef6a72c61766523364f7c300c2a2612aae7 |
01-Jun-2012 |
Chris Lattner <sabre@nondot.org> |
quick fix for PR13006, will check in testcase later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157813 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
f59e4e34528a078c2db57ee72b2814b495989124 |
01-Jun-2012 |
Chris Lattner <sabre@nondot.org> |
enhance the logic for looking through tailcalls to look through transparent casts in multiple-return value scenarios, like what happens on X86-64 when returning small structs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157800 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
5b0d9465375c4e175f5805038c5ef1d7d11193bd |
01-Jun-2012 |
Chris Lattner <sabre@nondot.org> |
enhance getNoopInput to know about vector<->vector bitcasts of legal types, as well as int<->ptr casts. This allows us to tailcall functions with some trivial casts between the call and return (i.e. because the return types disagree). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157798 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
cd6015cc8a0da3981f298c2e92b145fe11e838e0 |
01-Jun-2012 |
Chris Lattner <sabre@nondot.org> |
rearrange some logic, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157796 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
fc4199bf4add3422ce6470ca47bbe6bff2d70ea5 |
01-Jun-2012 |
Eric Christopher <echristo@apple.com> |
Add support for enum forward declarations. Part of rdar://11570854 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157786 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
91c5346d91973a1d3458a20f8c6b0e899b732e38 |
31-May-2012 |
Manman Ren <mren@apple.com> |
X86: replace SUB with CMP if possible This patch will optimize the following movq %rdi, %rax subq %rsi, %rax cmovsq %rsi, %rdi movq %rdi, %rax to cmpq %rsi, %rdi cmovsq %rsi, %rdi movq %rdi, %rax Perform this optimization if the actual result of SUB is not used. rdar: 11540023 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157755 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
9cda1be0aa5e9e70ae493ef6944a8c202c1c70e6 |
30-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Prioritize smaller register classes for urgent evictions. It helps compile exotic inline asm. In the test case, normal GR32 virtual registers use up eax-edx so the final GR32_ABCD live range has no registers left. Since all the live ranges were tiny, we had no way of prioritizing the smaller register class. This patch allows tiny unspillable live ranges to be evicted by tiny unspillable live ranges from a smaller register class. <rdar://problem/11542429> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157715 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
f917d20561688ca79fab5a58feb495e332f84903 |
30-May-2012 |
Owen Anderson <resistor@mac.com> |
Switch the canonical FMA term operand order to match both the comment I wrote and the usual LLVM convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157708 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
85ef6f4c99aee3c2ed43bbe6d190541f283a7e43 |
30-May-2012 |
Owen Anderson <resistor@mac.com> |
Teach DAGCombine to canonicalize the position of a constant in the term operands of an FMA node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
06a23ea8083657270e86a178abf050246caac0b5 |
30-May-2012 |
Chad Rosier <mcrosier@apple.com> |
Remove extra space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157706 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
275fd2523edd30e75af6398c25d47e94cc32f150 |
30-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove some redundant tests. An empty list is not represented as a null pointer. Let TRI do its own shortcuts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157702 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
eb25bd2356cca5ef83472b1ae0f764037b82ad82 |
30-May-2012 |
Evan Cheng <evan.cheng@apple.com> |
Teach taildup to update livein set. rdar://11538365 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157663 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
3d4166dff0624b8843338acc156987e8bc890e9b |
30-May-2012 |
Evan Cheng <evan.cheng@apple.com> |
If-converter models predicated defs as read + write. The read should be marked as 'undef' since it may not already be live. This appeases -verify-machineinstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157662 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6e1b8128505711276a87e96f6bffb818b435cbd5 |
30-May-2012 |
Bob Wilson <bob.wilson@apple.com> |
Add an insertPass API to TargetPassConfig. <rdar://problem/11498613> Besides adding the new insertPass function, this patch uses it to enhance the existing -print-machineinstrs so that the MachineInstrs after a specific pass can be printed. Patch by Bin Zeng! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157655 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
achineFunctionPrinterPass.cpp
asses.cpp
|
cac58aa80ea9450d5e5b0499ac598b646f419b51 |
29-May-2012 |
Evan Cheng <evan.cheng@apple.com> |
Optional def can be either a def or a use (of reg0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157640 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
f905f69668e5dd184c0a2b5fae38d9f3721c0d3b |
29-May-2012 |
Lang Hames <lhames@gmail.com> |
Clear the entering, exiting and internal ranges of a bundle before collecting ranges for the instruction about to be bundled. This fixes a bug in an external project where an assertion was triggered due to spurious 'multiple defs' within the bundle. Patch by Ivan Llopard. Thanks Ivan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157632 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0aa32d5d0ff6cd65b6cff957858a79e2d2a614bd |
29-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
ConstantRangesSet renamed to IntegersSubset. CRSBuilder renamed to IntegersSubsetMapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b34d3aa35b199969168f41a12e92e5d2f0e9367f |
28-May-2012 |
Peter Collingbourne <peter@pcc.me.uk> |
Add llvm.fabs intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157594 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
484fc93eff0295b1aa52b9a64d22346580e4b0e2 |
28-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
PR1255: Case Ranges Implemented IntItem - the wrapper around APInt. Why not to use APInt item directly right now? 1. It will very difficult to implement case ranges as series of small patches. We got several large and heavy patches. Each patch will about 90-120 kb. If you replace ConstantInt with APInt in SwitchInst you will need to changes at the same time all Readers,Writers and absolutely all passes that uses SwitchInst. 2. We can implement APInt pool inside and save memory space. E.g. we use several switches that works with 256 bit items (switch on signatures, or strings). We can avoid value duplicates in this case. 3. IntItem can be easyly easily replaced with APInt. 4. Currenly we can interpret IntItem both as ConstantInt and as APInt. It allows to provide SwitchInst methods that works with ConstantInt for non-updated passes. Why I need it right now? Currently I need to update SimplifyCFG pass (EqualityComparisons). I need to work with APInts directly a lot, so peaces of code ConstantInt *V = ...; if (V->getValue().ugt(AnotherV->getValue()) { ... } will look awful. Much more better this way: IntItem V = ConstantIntVal->getValue(); if (AnotherV < V) { } Of course any reviews are welcome. P.S.: I'm also going to rename ConstantRangesSet to IntegersSubset, and CRSBuilder to IntegersSubsetMapping (allows to map individual subsets of integers to the BasicBlocks). Since in future these classes will founded on APInt, it will possible to use them in more generic ways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
27302f07393d4db22e8ad06ac2ad4e7f01370b17 |
27-May-2012 |
Peter Collingbourne <peter@pcc.me.uk> |
Have getOrCreateSubprogramDIE store the DIE for a subprogram definition in the map before calling itself to retrieve the DIE for the declaration. Without this change, if this causes getOrCreateSubprogramDIE to be recursively called on the definition, it will create multiple DIEs for that definition. Fixes PR12831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157541 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
cf1d69df7e39a45fd1c7a07452271c586580164e |
27-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Missed parens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4fae58b32d4ff88f2df093514a0986c79e0c9e2c |
27-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
r157525 didn't work, just disable iterator checking. This is obviosly right but I don't see how to do this with proper vector iterators without building a horrible mess of workarounds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
dc54f8ebe288c7313e22902d4bdfe030e479db48 |
27-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
SDAGBuilder: Avoid iterator invalidation harder. vector.begin()-1 is invalid too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157525 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5db954dab9a9e3c57c6e5194bf902a34a458d555 |
26-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
SDAGBuilder: Don't create an invalid iterator when there is only one switch case. Found by libstdc++'s debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c511b2a5a1b91f08be6572ca7d7215c261176bc4 |
26-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
SelectionDAGBuilder: When emitting small compare chains for switches order them by using edge weights. SimplifyCFG tends to form a lot of 2-3 case switches when merging branches. Move the most likely condition to the front so it is checked first and the others can be skipped. This is currently not as effective as it could be because SimplifyCFG destroys profiling metadata when merging branches and switches. Merging branch weight metadata is tricky though. This code touches at most 3 cases so I didn't use a proper sorting algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9632f77f8dde9d2c9c9cb9d022b846a82c918cbd |
26-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
ScoreboardHazardRecognizer: Remove dead conditional in debug code. Negative cycles are filtered out earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157514 91177308-0d34-0410-b5e6-96231b3b80d8
coreboardHazardRecognizer.cpp
|
d2ea0e10cbd158c93fb870cdd03001b9cd1156b8 |
25-May-2012 |
Justin Holewinski <jholewinski@nvidia.com> |
Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall to pass around a struct instead of a large set of individual values. This cleans up the interface and allows more information to be added to the struct for future targets without requiring changes to each and every target. NV_CONTRIB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
c7a098fbb23f7f6cfbbbfc097b22c10cf4211ab6 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: trace formatting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157455 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
coreboardHazardRecognizer.cpp
|
2db0e9ebb600a2e6b8f651f66a1ef50e0d3c3c6b |
25-May-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify code for calling a function where CanLowerReturn fails, fixing a small bug in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157446 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
5402efa3dce1902003094f701fc090e78a5ad557 |
25-May-2012 |
Kaelyn Uhrain <rikka@google.com> |
Silence unused variable warnings from when assertions are disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157438 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
8ddd9d5b2bee3ccdb36aee4423ca4443d7b3dc32 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Use the same scheduling heuristics with -misched-topdown/bottomup. (except the part about choosing direction) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157437 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
bb0a242d86f46c66cb4e3eee25516c99ae24f361 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Trace regpressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157429 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
f323424d71a8c7c129f4fc7c9c109ca6ce2f4460 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Give each ReadyQ a unique ID git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157428 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
0a39d4e4c86540d7c89f6dbe511b70466e132715 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added ScoreboardHazardRecognizer. The Hazard checker implements in-order contraints, or interlocked resources. Ready instructions with hazards do not enter the available queue and are not visible to other heuristics. The major code change is the addition of SchedBoundary to encapsulate the state at the top or bottom of the schedule, including both a pending and available queue. The scheduler now counts cycles in sync with the hazard checker. These are minimum cycle counts based on known hazards. Targets with no itinerary (x86_64) currently remain at cycle 0. To fix this, we need to provide some maximum issue width for all targets. We also need to add the concept of expected latency vs. minimum latency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157427 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
argetInstrInfoImpl.cpp
|
2aa689dfbf26f9f566ce7f7d72fc28e7d76e903a |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Release bottom roots in reverse order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157426 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
8c2d9212a929c633b7a338593a57d0a0db79f19a |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: rename ReadyQ class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157425 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
c8fe4ecb47644e76f5e38b8b75997912554a24a3 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: copy comments so compareRPDelta is readable by itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157424 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
5f887fab35cd71a1e6fcbfa64ae5cbbf43b39807 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
regpressure: Added RegisterPressure::dump git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157423 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
egisterPressure.h
|
a7de4b99e47fc5061181ecdf7fd65e1b8441e2e7 |
25-May-2012 |
Andrew Trick <atrick@apple.com> |
regpressure: physreg livein/out fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157422 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
e32981048244ecfa67d0bdc211af1bac2020a555 |
24-May-2012 |
Craig Topper <craig.topper@gmail.com> |
Mark some static arrays as const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d74d2847573df690b6a91254688ef3fd974f83f7 |
24-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a last resort tryInstructionSplit() to RAGreedy. Live ranges with a constrained register class may benefit from splitting around individual uses. It allows the remaining live range to use a larger register class where it may allocate. This is like spilling to a different register class. This is only attempted on constrained register classes. <rdar://problem/11438902> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157354 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
dbb4e57a3c7fb18d5ff2d9504c5cacb5df20fab4 |
24-May-2012 |
Bill Wendling <isanbard@gmail.com> |
Forgot to reverse conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157349 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
20350db44807f6863c3c00345934d45763ed21d3 |
24-May-2012 |
Bill Wendling <isanbard@gmail.com> |
Reduce indentation by early detection of 'continue'. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157348 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
e3b548219ff47b1384aa7325ebbe21c795c19974 |
23-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Correctly deal with identity copies in RegisterCoalescer. Now that the coalescer keeps live intervals and machine code in sync at all times, it needs to deal with identity copies differently. When merging two virtual registers, all identity copies are removed right away. This means that other identity copies must come from somewhere else, and they are going to have a value number. Deal with such copies by merging the value numbers before erasing the copy instruction. Otherwise, we leave dangling value numbers in the live interval. This fixes PR12927. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157340 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d76938788b4b682043a74befbb6320ce0077ddc9 |
23-May-2012 |
Patrik Hägglund <patrik.h.hagglund@ericsson.com> |
Small fix for the debug output from PBQP (PR12822). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157319 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
bb0f6eac1f2d04e485607f0726c31a84ce9b8ced |
23-May-2012 |
Eric Christopher <echristo@apple.com> |
Add support for C++11 enum classes in llvm. Part of rdar://11496790 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157303 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
4d069bf8ec726570d668e59fda993a33dfb7cb0b |
22-May-2012 |
Eric Christopher <echristo@apple.com> |
Untabify and 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157274 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
4a5d839dfa07fd6a187581b00c1a09ece30d9a08 |
22-May-2012 |
Eric Christopher <echristo@apple.com> |
Formatting consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157273 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
76ff7418361c1c80ce9d018bce63511a70bd7390 |
22-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only erase virtregs with no uses left. Also make sure registers aren't erased twice if the dead def mentions the register twice. This fixes PR12911. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157254 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
4b6e6750fed37879ce4730571cae1bfa342e8e02 |
22-May-2012 |
Owen Anderson <resistor@mac.com> |
Fix use of an unitialized value in the LegalizeOps expansion for ISD::SUB. No in-tree targets exercise this path. Patch by Micah Villmow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f496deaa03cec32887f2365ff27b5f0adfd9d256 |
21-May-2012 |
Chad Rosier <mcrosier@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1dc12aa148f0ecb4135fa3e47e7a2ac81ceac394 |
21-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Give a small negative bias to giant edge bundles. This helps compile time when the greedy register allocator splits live ranges in giant functions. Without the bias, we would try to grow regions through the giant edge bundles, usually to find out that the region became too big and expensive. If a live range has many uses in blocks near the giant bundle, the small negative bias doesn't make a big difference, and we still consider regions including the giant edge bundle. Giant edge bundles are usually connected to landing pads or indirect branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157174 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
|
857ed2260403f2cbfe702e83da283b78e341707e |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear kill flags on the fly when joining intervals. With physreg joining out of the way, it is easy to recognize the instructions that need their kill flags cleared while testing for interference. This allows us to skip the final scan of all instructions for an 11% speedup of the coalescer pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157169 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
418a3638acfa95e4212a38100adfc2f8cdd45919 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Constrain regclasses in PeepholeOptimizer. It can be necessary to restrict to a sub-class before accessing sub-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157164 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
0fda545c2c164dc607f48f4b77f54c35bcafa413 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Constrain register classes in TailDup. When rewriting operands, make sure the new registers have a compatible register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157163 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
92d63ccfc7d86d39bc0b806bf7e9fac13dd2d7b5 |
20-May-2012 |
Peter Collingbourne <peter@pcc.me.uk> |
When legalising shifts, do not pre-build a list of operands which may be RAUW'd by the recursive call to LegalizeOps; instead, retrieve the other operands when calling UpdateNodeOperands. Fixes PR12889. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157162 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6514551be704adb577682148ca825c08fd642329 |
20-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug a leak when using MCJIT. Found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157160 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
79485315cd88df1d743158feeb21cc46c253c021 |
20-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use TargetMachine's register info instead of creating a new one and leaking it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157155 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ee0d5d4398fb855c6674da94d902ef45e944f375 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly constrain register classes for sub-registers. Not all GR64 registers have sub_8bit sub-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8e86929e3ce3fe56295d2704b93bf14c709b311a |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly constrain register classes in 2-addr. X86 has 2-addr instructions with different constraints on the tied def and use operands. One is GR32, one is GR32_NOSP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157149 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4991de8fe1e72230cf714378b96411f1b59f6b77 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Missed a push_back in r157147. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157148 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
f0bf8b401827b58ec171c9d994c46d7f810a3e17 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid deleting extra copies when RegistersDefinedFromSameValue is true. This function adds copies to be erased to DupCopies, avoid also adding them to DeadCopies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157147 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
067fcb4087a2c816f6536907b9918165e5b00b33 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix build bots. Avoid looking at the operands of a potentially erased instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157146 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
97769fcdd1b50972222673a0effc6f793848bf06 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
LiveRangeQuery simplifies shrinkToUses(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157145 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
93e29ce066c80528ab0afb90fdaabf734fb4b412 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use LiveRangeQuery in ScheduleDAGInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157144 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
e1b93d2e86a3396b1b1d3d761f0335b17c5f54b8 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate some uses of struct LiveRange. That struct ought to be a LiveInterval implementation detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157143 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
92a05fa4507102e1891f1de3523fb5aaf0d9398c |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use LiveRangeQuery instead of getLiveRangeContaining(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157142 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
a991ea5f7f2df661dc1ad7bd230d3a401dfb6411 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify overlap check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157137 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
7ebed91fddbcd259d03c4b438719ac1ce2a4fc87 |
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix 12892. Dead code elimination during coalescing could cause a virtual register to be split into connected components. The following rewriting would be confused about the already joined copies present in the code, but without a corresponding value number in the live range. Erase all joined copies instantly when joining intervals such that the MI and LiveInterval representations are always in sync. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157135 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
egisterCoalescer.cpp
|
ec096b492549d625e4be608fcaea265b96dabc03 |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the late DCE in RegisterCoalescer. Dead code and joined copies are now eliminated on the fly, and there is no need for a post pass. This makes the coalescer work like other modern register allocator passes: Code is changed on the fly, there is no pending list of changes to be committed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157132 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
ccce1233a27e9527cfb68cbced311351332a3a4e |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Erase joined copies immediately. The late dead code elimination is no longer necessary. The test changes are cause by a register hint that can be either %rdi or %rax. The choice depends on the use list order, which this patch changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157131 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
56366601765c1ff43f8796c271a818f8c272af27 |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix an ancient bug in removeCopyByCommutingDef(). Before rewriting uses of one value in A to register B, check that there are no tied uses. That would require multiple A values to be rewritten. This bug can't bite in the current version of the code for a fairly subtle reason: A tied use would have caused 2-addr to insert a copy before the use. If the copy has been coalesced, it will be found by the same loop changed by this patch, and the optimization is aborted. This was exposed by 400.perlbench and lua after applying a patch that deletes joined copies aggressively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157130 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
03c8383324da4fe42fae4e5685072a782935644d |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Collect inflatable virtual registers on the fly. There is no reason to defer the collection of virtual registers whose register class may be replaced with a larger class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157125 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
1dc6d7cbb5affee14a2fc5e7269616f3b7b4b6fa |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate dead code after remat. This will remove the original def once it has no more uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157104 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
67ccb29cec06c85210f334cfbdae144460170cd3 |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't remat during updateRegDefsUses(). Remaining virtreg->physreg copies were rematerialized during updateRegDefsUses(), but we already do the same thing in joinCopy() when visiting the physreg copy instruction. Eliminate the preserveSrcInt argument to reMaterializeTrivialDef(). It is now always true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157103 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
3662f0d492533435c30969118fd025f6bed46654 |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Immediately erase trivially useless copies. There is no need for these instructions to stick around since they are known to be not dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157102 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
bd6f44a3a2a1404721bcbb67edf92b8480a3e655 |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run proper recursive dead code elimination during coalescing. Dead copies cause problems because they are trivial to coalesce, but removing them gived the live range a dangling end point. This patch enables full dead code elimination which trims live ranges to their uses so end points don't dangle. DCE may erase multiple instructions. Put the pointers in an ErasedInstrs set so we never risk visiting erased instructions in the work list. There isn't supposed to be any dead copies entering RegisterCoalescer, but they do slip by as evidenced by test/CodeGen/X86/coalescer-dce.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157101 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
egisterCoalescer.cpp
|
20942dcd8634ad75091fe89669868cfebf74e869 |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow LiveRangeEdit to be created with a NULL parent. The dead code elimination with callbacks is still useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157100 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
|
c696c8bd35a8ab293879e821142dd9136201f16e |
19-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Modernize naming convention for class members. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157079 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
b3776d33cfaba3fc48acccf166d2bd4871ee51c7 |
18-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move all work list processing to copyCoalesceWorkList(). This will make it possible to filter out erased instructions later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157073 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
3e96531186ba574b0c25a4be62d24b8b7d752c9f |
18-May-2012 |
Jim Grosbach <grosbach@apple.com> |
Refactor data-in-code annotations. Use a dedicated MachO load command to annotate data-in-code regions. This is the same format the linker produces for final executable images, allowing consistency of representation and use of introspection tools for both object and executable files. Data-in-code regions are annotated via ".data_region"/".end_data_region" directive pairs, with an optional region type. data_region_directive := ".data_region" { region_type } region_type := "jt8" | "jt16" | "jt32" | "jta32" end_data_region_directive := ".end_data_region" The previous handling of ARM-style "$d.*" labels was broken and has been removed. Specifically, it didn't handle ARM vs. Thumb mode when marking the end of the section. rdar://11459456 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157062 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
23da8a061fcadd20a2abe3afafdeed2d505acfb8 |
18-May-2012 |
Eric Christopher <echristo@apple.com> |
Remove duplicate code that we could just fallthrough to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157060 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
846b183a9ed2999d3f35c7c6b54a5796c0660b9e |
18-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify RegisterCoalescer::copyCoalesceInMBB(). It is no longer necessary to separate VirtCopies, PhysCopies, and ImpDefCopies. Implicitly defined copies are extremely rare after we added the ProcessImplicitDefs pass, and physical register copies are not joined any longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157059 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
34a18775a402f269425b5d79efe385fe122cc64d |
18-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove support for PhysReg joining. This has been disabled for a while, and it is not a feature we want to support. Copies between physical and virtual registers are eliminated by good hinting support in the register allocator. Joining virtual and physical registers is really a form of register allocation, and the coalescer is not properly equipped to do that. In particular, it cannot backtrack coalescing decisions, and sometimes that would cause it to create programs that were impossible to register allocate, by exhausting a small register class. It was also very difficult to keep track of the live ranges of aliasing registers when extending the live range of a physreg. By disabling physreg joining, we can let fixed physreg live ranges remain constant throughout the register allocator super-pass. One type of physreg joining remains: A virtual register that has a single value which is a copy of a reserved register can be merged into the reserved physreg. This always lowers register pressure, and since we don't compute live ranges for reserved registers, there are no problems with aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157055 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
05cfe2eda63e54a1e4c84b15136d154ab6393304 |
18-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Recommited reworked r156804: SelectionDAGBuilder::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157046 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
ad753648155590f1c70bd168e8cf11a414957387 |
18-May-2012 |
Evan Cheng <evan.cheng@apple.com> |
Teach two-address pass to update the "source" map so it doesn't perform a non-profitable commute using outdated info. The test case would still fail because of poor pre-RA schedule. That will be fixed by MI scheduler. rdar://11472010 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157038 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5429a6b0d5ed57bf9a924fa5d88c80c0357b7e08 |
18-May-2012 |
Andrew Trick <atrick@apple.com> |
comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157020 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
81f1be3b5a920f75970bd3d3cdc65ada980bbfc1 |
17-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: trace ReadyQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157007 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
73a0d8ecf838a9b333c9865d2a4b72c5768fb49f |
17-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added 3-level regpressure back-off. Introduce the basic strategy for register pressure scheduling. 1) Respect target limits at all times. 2) Indentify critical register classes (pressure sets). Track pressure within the scheduled region. Avoid increasing scheduled pressure for critical registers. 3) Avoid exceeding the max pressure of the region prior to scheduling. Added logic for picking between the top and bottom ready Q's based on regpressure heuristics. Status: functional but needs to be asjusted to achieve good results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157006 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
egisterPressure.h
|
0556bd35e564c89149aa02ea8d76f539c87ee875 |
17-May-2012 |
Andrew Trick <atrick@apple.com> |
comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157005 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
|
b54ec26b355157c76b29b12388d49816eaf57da1 |
17-May-2012 |
Andrew Trick <atrick@apple.com> |
regpressure: Fix getMaxUpwardPressureDelta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157004 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
811d9268e4bd1e7f77d430ce1f352188020375f4 |
17-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: fix liveness iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157003 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
24617213ba8e9d1e0f10af33d88285a92304ab95 |
17-May-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157002 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
egisterPressure.h
|
94e58f3a7c50e14819d411db3b6df10bbd35cb5e |
17-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never clear <undef> flags on already joined copies. RegisterCoalescer set <undef> flags on all operands of copy instructions that are scheduled to be removed. This is so they won't affect shrinkToUses() by introducing false register reads. Make sure those <undef> flags are never cleared, or shrinkToUses() could cause live intervals to end at instructions about to be deleted. This would be a lot simpler if RegisterCoalescer could just erase joined copies immediately instead of keeping all the to-be-deleted instructions around. This fixes PR12862. Unfortunately, bugpoint can't create a sane test case for this. Like many other coalescer problems, this failure depends of a very fragile series of events. <rdar://problem/11474428> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157001 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
e3da8c62864da0ed0386075baf79d612746d849b |
17-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a verifier bug. Make sure useless (def-only) intervals also get verified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157000 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
29424e8133bacadecff1eaf3f9c6a78c778b12b0 |
17-May-2012 |
Bill Wendling <isanbard@gmail.com> |
Relax the requirement that the exception object must be an instruction. During bugpoint-ing, it may turn into something else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156998 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
c187df2198bc6e2b038fa2d75af974644874d26f |
17-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
SelectionDAGBuilder: CaseBlock, CaseRanges and CaseCmp changed representation of Low and High from signed to unsigned. Since unsigned ints usually simpler, faster and allows to reduce some extra signed bit checks needed before <,>,<=,>= comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156985 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
07a267faec7bd77fdece44f242cb4270120e0ef2 |
16-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Set sub-register <undef> flags more accurately. When widening an existing <def,reads-undef> operand to a super-register, it may be necessary to clear the <undef> flag because the wider register is now read-modify-write through the instruction. Conversely, it may be necessary to add an <undef> flag when the coalescer turns a full-register def into a sub-register def, but the larger register wasn't live before the instruction. This happens in test/CodeGen/ARM/coalesce-subregs.ll, but the test is too small for the <undef> flags to affect the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156951 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
04b2c5042727b091ad425110d952491a40c88ee3 |
16-May-2012 |
Duncan Sands <baldrick@free.fr> |
Fix a thinko in DisintegrateMERGE_VALUES. Patch by Xiaoyi Guo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156909 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
83b3a293349919d18bc05d87bc03156ef6637370 |
16-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable sub-sub-register copy coalescing. It is now possible to coalesce weird skewed sub-register copies by picking a super-register class larger than both original registers. The included test case produces code like this: vld2.32 {d16, d17, d18, d19}, [r0]! vst2.32 {d18, d19, d20, d21}, [r0] We still perform interference checking as if it were a normal full copy join, so this is still quite conservative. In particular, the f1 and f2 functions in the included test case still have remaining copies because of false interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156878 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
ceacd6da8c31106333952f6dc4fd6e6aa98312f1 |
16-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach RegisterCoalescer to handle symmetric sub-register copies. It is possible to coalesce two overlapping registers to a common super-register that it larger than both of the original registers. The important difference is that it may be necessary to rewrite DstReg operands as well as SrcReg operands because the sub-register index has changed. This behavior is still disabled by CoalescerPair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156869 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
70724aaf7329b8de8e53648b2a3afcbbf46ddbb7 |
16-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle NewReg==OldReg in renameRegister(). This can happen when widening a virtual register to a super-register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156867 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
141aea9cff95b8df8ca89fb757dc44ee37a3d8df |
16-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
We never call adjustCopiesBackFrom() for partial copies. There is no need to look at an always null SrcIdx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156866 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
94b62ac5f3b2732251f164ee6feab2dd1a4b967f |
15-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extend the CoalescerPair interface to handle symmetric sub-register copies. Now both SrcReg and DstReg can be sub-registers of the final coalesced register. CoalescerPair::setRegisters still rejects such copies because RegisterCoalescer doesn't yet handle them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156848 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
egisterCoalescer.h
|
eb05b976e6e13fb0a8d1c45822dff67b0374e123 |
15-May-2012 |
Andrew Trick <atrick@apple.com> |
Add -enable-aa-sched-mi, off by default, for AliasAnalysis inside MachineScheduler. This feature avoids creating edges in the scheduler's dependence graph for non-aliasing memory operations according to whichever alias analysis is available. It has been fully tested in Hexagon. Before making this default, it needs to be extended to handle multiple MachineMemOperands, compile time needs more evaluation, and benchmarking on X86 and ARM is needed. Patch by Sergei Larin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156842 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
918f55fe239f00651e396be841f2b3b6e242f98d |
15-May-2012 |
Jim Grosbach <grosbach@apple.com> |
Allow MCCodeEmitter access to the target MCRegisterInfo. Add the MCRegisterInfo to the factories and constructors. Patch by Tom Stellard <Tom.Stellard@amd.com>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156828 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c2c52a647098e72558f1831b7502a79fd22ead31 |
15-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Rejected r156804 due to buildbots failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a62e235c1c539aef38b94029035b46bd82f12357 |
15-May-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
SelectionDAGBuilder::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156804 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6565a709702995fa8a5e659269d6cda134383be7 |
14-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't access MO reference after invalidating operand list. This should unbreak llvm-x86_64-linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156778 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4d10829e1296b7aea0455e000fc318b147182c1c |
14-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR12821. RAFast must add an <imp-def> operand when it is rewriting a sub-register def that isn't a read-modify-write. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156777 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a6063c6e29746d9425bdf46d680e28a48dcf58f9 |
14-May-2012 |
Dan Gohman <gohman@apple.com> |
Rename @llvm.debugger to @llvm.debugtrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
|
2b3fa322b8788e62e28bc6989a53737bf9483437 |
12-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't look for empty live ranges in the unions. Empty live ranges represent undef and still get allocated, but they won't appear in LiveIntervalUnions. Patch by Patrik Hägglund! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156685 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
|
aefd36bdda0dac496b8acabb25f0de29b370ebca |
12-May-2012 |
Chad Rosier <mcrosier@apple.com> |
Revert 156658. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156662 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
550a08a876760e305dab25bd22f28acf8ffdeb18 |
12-May-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Fast-isel doesn't use the expect intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156658 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
247c5ab07c1c136f37f5ad8ade9a1ee086ca452e |
11-May-2012 |
Manman Ren <mren@apple.com> |
ARM: peephole optimization to remove cmp instruction This patch will optimize the following cases: sub r1, r3 | sub r1, imm cmp r3, r1 or cmp r1, r3 | cmp r1, imm bge L1 TO subs r1, r3 bge L1 or ble L1 If the branch instruction can use flag from "sub", then we can replace "sub" with "subs" and eliminate the "cmp" instruction. rdar: 10734411 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156599 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
d4347e1af9141ec9f8e3e527367bfd16c0cc4ffb |
11-May-2012 |
Dan Gohman <gohman@apple.com> |
Define a new intrinsic, @llvm.debugger. It will be similar to __builtin_trap(), but it generates int3 on x86 instead of ud2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156593 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGDumper.cpp
|
89c324bf11b611a322b71ed81846a5c81fb5d01f |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Print machineinstrs with -debug-only=misched git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156576 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
28ebc89c413c042bf693d9ad6971f0fb5cca2f0f |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: tracing register pressure heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156575 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
7196a8ff213338b9b09ee48efb9c96b699726d5d |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Add register pressure backoff to ConvergingScheduler. Prioritize the instruction that comes closest to keeping pressure under the target's limit. Then prioritize instructions that avoid increasing the max pressure in the scheduled region. The max pressure heuristic is a tad aggressive. Later I'll fix it to consider the unscheduled pressure as well. WIP: This is mostly functional but untested and not likely to do much good yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156574 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
16716c730216e461a9b5b71d19f1c4eef257cecd |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Release only unscheduled nodes into ReadyQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156573 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
d38f87eeecbf58553e460f4cd9a4666a2caeba62 |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added ReadyQ container wrapper for Top and Bottom Queues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156572 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
7f8ab785af09e4d6e4db07157a5b5aa449b5c3ae |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
misched: Introducing Top and Bottom register pressure trackers during scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156571 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
egisterPressure.cpp
egisterPressure.h
|
55ba5dff3c1a723adf302f1124aafde797dbf31a |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
RegPressure: API for speculatively checking instruction pressure. Added getMaxExcessUpward/DownwardPressure. They somewhat abuse the tracker by speculatively handling an instruction out of order. But it is convenient for now. In the future, we will cache each instruction's pressure contribution to make this efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156561 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
egisterPressure.h
|
d25303533909f62eae18ee53ed0ff692174b092c |
10-May-2012 |
Andrew Trick <atrick@apple.com> |
RegPressure: fix array index iteration style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156560 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
|
fe65d98dadbedf2650266ac71c1c093c3b97da1f |
10-May-2012 |
Manman Ren <mren@apple.com> |
Revert: 156550 "ARM: peephole optimization to remove cmp instruction" This commit broke an external linux bot and gave a compile-time warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156556 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
8ae4f062e4aefe60732b3fc135769aaedddf082d |
10-May-2012 |
Manman Ren <mren@apple.com> |
ARM: peephole optimization to remove cmp instruction This patch will optimize the following cases: sub r1, r3 | sub r1, imm cmp r3, r1 or cmp r1, r3 | cmp r1, imm bge L1 TO subs r1, r3 bge L1 or ble L1 If the branch instruction can use flag from "sub", then we can replace "sub" with "subs" and eliminate the "cmp" instruction. rdar: 10734411 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156550 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
a80f2d1f976a40ce627e18e3a80e52cb1f1aecb5 |
08-May-2012 |
Eric Christopher <echristo@apple.com> |
Fix thinko in conditional. Part of rdar://11352000 and should bring the buildbots back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a249f7de5df0bb6260fdebee528221fc84092140 |
08-May-2012 |
Jim Grosbach <grosbach@apple.com> |
DAGCombiner should not change the type of an extract_vector index. When a combine twiddles an extract_vector, care should be take to preserve the type of the index operand. No luck extracting a reasonable testcase, unfortunately. rdar://11391009 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9318e484de290b46192e834eb8feca18e0ece153 |
08-May-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Formatting fixes. Patch by Jack Carter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156409 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
501207676c78fefcfc9eeeaa1e3dbe9ea857d33f |
08-May-2012 |
Eric Christopher <echristo@apple.com> |
Handle OpDeref in case it comes in as a register operand. Part of rdar://11352000 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156405 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
92ff7cae7c5a6ce236549516119a9e0b2e71fda0 |
08-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract methods for joining physregs. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156345 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
9790266eeae86b2d763d0760f239ab90bc1de84a |
08-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Naming convention and whitespace. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156342 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
defa0afa146f4c2370fe126b7860d6d57cf20909 |
08-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Coalesce subreg-subreg copies. At least some of them: %vreg1:sub_16bit = COPY %vreg2:sub_16bit; GR64:%vreg1, GR32: %vreg2 Previously, we couldn't figure out that the above copy could be eliminated by coalescing %vreg2 with %vreg1:sub_32bit. The new getCommonSuperRegClass() hook makes it possible. This is not very useful yet since the unmodified part of the destination register usually interferes with the source register. The coalescer needs to understand sub-register interference checking first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156334 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
397fc4874efe9c17e737d4c5c50bd19dc3bf27f5 |
08-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MF argument to TRI::getPointerRegClass() and TII::getRegClass(). The getPointerRegClass() hook can return register classes that depend on the calling convention of the current function (ptr_rc_tailcall). So far, we have been able to infer the calling convention from the subtarget alone, but as we add support for multiple calling conventions per target, that no longer works. Patch by Yiannis Tsiouris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156328 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
ocalStackSlotAllocation.cpp
achineInstr.cpp
achineLICM.cpp
achineVerifier.cpp
egisterCoalescer.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGRRList.cpp
woAddressInstructionPass.cpp
|
713e953118175d693a3fddbf6a61dc73aa69ad87 |
07-May-2012 |
Owen Anderson <resistor@mac.com> |
Teach DAG combine to fold x-x to 0.0 when unsafe FP math is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aaf723dd2bccc052d2dd28e3cc4db76f2a3e2fb0 |
05-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a new target hook "predictableSelectIsExpensive". This will be used to determine whether it's profitable to turn a select into a branch when the branch is likely to be predicted. Currently enabled for everything but Atom on X86 and Cortex-A9 devices on ARM. I'm not entirely happy with the name of this flag, suggestions welcome ;) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7fc4d9cbc54c2e5393440a40b566c1f0527d8037 |
05-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure findRepresentativeClass picks the widest super-register. We want the representative register class to contain the largest super-registers available. This makes the function less sensitive to the register class numbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156220 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
41afb9da2c808409fb689288bc9b77bc817e235d |
05-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove extra comma in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156219 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e3ee49fb2728dcb9702b5be0c3c80f472ffccefc |
04-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use SuperRegClassIterator for findRepresentativeClass(). The masks returned by SuperRegClassIterator are computed automatically by TableGen. This is better than depending on the manually specified SuperRegClasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156147 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d99d68bcee8ce91a18c397756c702363e030fd83 |
03-May-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix two-address pass's aggressive instruction commuting heuristics. It's meant to catch cases like: %reg1024<def> = MOV r1 %reg1025<def> = MOV r0 %reg1026<def> = ADD %reg1024, %reg1025 r0 = MOV %reg1026 By commuting ADD, it let coalescer eliminate all of the copies. However, there was a bug in the heuristics where it ended up commuting the ADD in: %reg1024<def> = MOV r0 %reg1025<def> = MOV 0 %reg1026<def> = ADD %reg1024, %reg1025 r0 = MOV %reg1026 That did no benefit but rather ensure the last MOV would not be coalesced. rdar://11355268 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156048 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f12f6dff9784805e8f89309787231c1ec53a8c6e |
03-May-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetRegisterInfo::getAllocatableClass. The ensures that virtual registers always belong to an allocatable class. If your target attempts to create a vreg for an operand that has no allocatable register subclass, you will crash quickly. This ensures that targets define register classes as intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156046 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
woAddressInstructionPass.cpp
|
062c0a5b58b756b91811bf3e6e978257c9fda3ff |
03-May-2012 |
Owen Anderson <resistor@mac.com> |
Teach DAGCombine the same multiply-by-1.0 folding trick when doing FMAs, just like it now knows for FMULs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156029 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
363e4b90c0a8dfca87ac847001158c743491c06f |
02-May-2012 |
Owen Anderson <resistor@mac.com> |
Teach DAG combine that multiplication by 1.0 can always be constant folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
39cc5138707eee563db7a487cd720b232b4b58fd |
02-May-2012 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. Naming conventions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155960 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
ce00b440f5d754aaf7196255bc139ce64c260e00 |
02-May-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Use dyn_cast instead of checking opcode and cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
95dd4420419a6daae6304ed490a50537094ed488 |
02-May-2012 |
Bill Wendling <isanbard@gmail.com> |
Strip the pointer casts off of allocas so that the selection DAG can find them. PR10799 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
902337092fef14ce2519b4c93c37d72bf66ce768 |
01-May-2012 |
Sirish Pande <spande@codeaurora.org> |
Target independent Hexagon Packetizer fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155947 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
7c4ce30ea6a9d0410f306e805403dd224c3df65c |
01-May-2012 |
Bill Wendling <isanbard@gmail.com> |
Change the PassManager from a reference to a pointer. The TargetPassManager's default constructor wants to initialize the PassManager to 'null'. But it's illegal to bind a null reference to a null l-value. Make the ivar a pointer instead. PR12468 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155902 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
39379c5df3a0bdcd768fc6421381ca805cd4ee21 |
01-May-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Add some constantness. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155859 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2b8d0501b169c3ee81a9af1cb715e1be4d6a079e |
29-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
RegisterPressure: ArrayRefize some functions for better readability. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155795 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
egisterPressure.h
|
ff11c0185391023d4f7b3254de94e11a5bb9cd58 |
28-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't update spill weights when joining intervals. We don't compute spill weights until after coalescing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155766 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f4aee4c50e2ce46946f71bbb7d7a849b054018f7 |
28-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Spring cleaning - Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155765 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
2674a4acdb51ce610d060b76608f631765a6e508 |
28-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Reapply 155668: Fix the SD scheduler to avoid gluing the same node twice. This time, also fix the caller of AddGlue to properly handle incomplete chains. AddGlue had failure modes, but shamefully hid them from its caller. It's luck ran out. Fixes rdar://11314175: BuildSchedUnits assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
0e47cfd5b647e8480274c6b29c4e2d01c41a9e82 |
28-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Temporarily revert r155668: Fix the SD scheduler to avoid gluing. This definitely caused regression with ARM -mno-thumb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155743 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
aec9240be2bc0bc852167b26fd2e217355ecd745 |
26-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Fix the SD scheduler to avoid gluing the same node twice. DAGCombine strangeness may result in multiple loads from the same offset. They both may try to glue themselves to another load. We could insist that the redundant loads glue themselves to each other, but the beter fix is to bail out from bad gluing at the time we detect it. Fixes rdar://11314175: BuildSchedUnits assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155668 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
a0b0219a9e13ecd193eee604ab22ffc74b516b02 |
25-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove more dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155566 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
40a2b653e165b5afc2f612b4b3edbb54a7b5eb59 |
25-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -disable-cross-class-join option. Cross-class joins have been normal and fully supported for a while now. With TableGen generating the getMatchingSuperRegClass() hook, they are unlikely to cause problems again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155552 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
a2404e3458ca7d570802ca296240733f2aa41098 |
25-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cross-class joining is winning. Remove the heuristic for disabling cross-class joins. The greedy register allocator can handle the narrow register classes, and when it splits a live range, it can pick a larger register class. Benchmarks were unaffected by this change. <rdar://problem/11302212> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155551 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
86b7e2acc9e3b55b8afdfeabda124cc6547e943b |
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Fix a naughty header include that breaks "installed" builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155486 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
ddb1420e1752a354a2a18dfc37ecca7eef883beb |
24-Apr-2012 |
Evan Cheng <evan.cheng@apple.com> |
MachineBasicBlock::SplitCriticalEdge() should follow LLVM IR variant and refuse to break edge to EH landing pad. rdar://11300144 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155470 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
cf5a1461acaace0f3e7d11fbbcfbf635b8c8ea9d |
24-Apr-2012 |
Shih-wei Liao <sliao@google.com> |
Merge with LLVM upstream r155090. Conflicts: lib/Support/Unix/PathV2.inc Change-Id: I7b89833849f6cbcfa958a33a971d0f7754c9cb2c
|
63bbe14e203c13336a197e0acc784158924dba8a |
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
cmake: new file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155460 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
c3ad885dac8b4ed1a092e3276aeb84810a4a250c |
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: DAG builder must special case earlyclobber git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155459 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
000b2504eef6c1ff4a7857087b0a1cbe0f7e1b1a |
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: try (not too hard) to place debug values where they belong git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155458 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
eb45ebbdef242018e2a44e9c4888adb8767da75c |
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: ignore debug values during scheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155457 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
006e1abf76148626fb38de1b643c2d31de7f08a7 |
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: DAG builder support for tracking register pressure within the current scheduling region. The DAG builder is a convenient place to do it. Hopefully this is more efficient than a separate traversal over the same region. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155456 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAGInstrs.cpp
|
4dfeef100d940a0c1ca22055dcb29b02a4848f65 |
24-Apr-2012 |
Andrew Trick <atrick@apple.com> |
RegisterPressure: A utility for computing register pressure within a MachineInstr sequence. This uses the new target interface for tracking register pressure using pressure sets to model overlapping register classes and subregisters. RegisterPressure results can be tracked incrementally or stored at region boundaries. Global register pressure can be deduced from local RegisterPressure results if desired. This is an early, somewhat untested implementation. I'm working on testing it within the context of a register pressure reducing MachineScheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155454 91177308-0d34-0410-b5e6-96231b3b80d8
egisterPressure.cpp
egisterPressure.h
|
adb082cd6ae2ec799838cd84d54a381bca175cd4 |
24-Apr-2012 |
Bill Wendling <isanbard@gmail.com> |
Look for the 'Is Simulated' module flag. This indicates that the program is compiled to run on a simulator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155435 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6a8c7bf8e72338e55f0f9583e1828f62da165d4a |
23-Apr-2012 |
Preston Gurd <preston.gurd@intel.com> |
This patch fixes a problem which arose when using the Post-RA scheduler on X86 Atom. Some of our tests failed because the tail merging part of the BranchFolding pass was creating new basic blocks which did not contain live-in information. When the anti-dependency code in the Post-RA scheduler ran, it would sometimes rename the register containing the function return value because the fact that the return value was live-in to the subsequent block had been lost. To fix this, it is necessary to run the RegisterScavenging code in the BranchFolding pass. This patch makes sure that the register scavenging code is invoked in the X86 subtarget only when post-RA scheduling is being done. Post RA scheduling in the X86 subtarget is only done for Atom. This patch adds a new function to the TargetRegisterClass to control whether or not live-ins should be preserved during branch folding. This is necessary in order for the anti-dependency optimizations done during the PostRASchedulerList pass to work properly when doing Post-RA scheduling for the X86 in general and for the Intel Atom in particular. The patch adds and invokes the new function trackLivenessAfterRegAlloc() instead of using the existing requiresRegisterScavenging(). It changes BranchFolding.cpp to call trackLivenessAfterRegAlloc() instead of requiresRegisterScavenging(). It changes the all the targets that implemented requiresRegisterScavenging() to also implement trackLivenessAfterRegAlloc(). It adds an assertion in the Post RA scheduler to make sure that post RA liveness information is available when it is needed. It changes the X86 break-anti-dependencies test to use –mcpu=atom, in order to avoid running into the added assertion. Finally, this patch restores the use of anti-dependency checking (which was turned off temporarily for the 3.1 release) for Intel Atom in the Post RA scheduler. Patch by Andy Zhang! Thanks to Jakob and Anton for their reviews. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155395 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ostRASchedulerList.cpp
|
e3fd2a36d93ed65fabe9cd8e1c98edd8d4f7ec62 |
23-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Temporarily revert r155364 until the upstream review can complete, per the stated developer policy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155373 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
9f6852dcc292882845876ecc1181710a5c35fb1f |
23-Apr-2012 |
Sirish Pande <spande@codeaurora.org> |
Hexagon Packetizer's target independent fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155364 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
1da5867236f4132ec56493f3535c7b5830878b55 |
22-Apr-2012 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
ZERO_EXTEND/SIGN_EXTEND/TRUNCATE optimization for AVX2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155309 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
db3461662e7945e04fe42e0d606581bba73c29dc |
21-Apr-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Teach getVectorTypeBreakdown about promotion of vectors in addition to widening of vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0b35c35efcc584c0a09ed70840bcca420f42be2f |
21-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR12599. The X86 target is editing the selection DAG while isel is selecting nodes following a topological ordering. When the DAG hacking triggers CSE, nodes can be deleted and bad things happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155257 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8c48e4ff899303eb9a4ea8ed1c43d175f0cf48ff |
21-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make ISelPosition a local variable. Now that multiple DAGUpdateListeners can be active at the same time, ISelPosition can become a local variable in DoInstructionSelection. We simply register an ISelUpdater with CurDAG while ISelPosition exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bc7d448f242b1bbc1031fb87cd69c285ff9aaffa |
21-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Register DAGUpdateListeners with SelectionDAG. Instead of passing listener pointers to RAUW, let SelectionDAG itself keep a linked list of interested listeners. This makes it possible to have multiple listeners active at once, like RAUWUpdateListener was already doing. It also makes it possible to register listeners up the call stack without controlling all RAUW calls below. DAGUpdateListener uses an RAII pattern to add itself to the SelectionDAG list of active listeners. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155248 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
3429c7571e87ca6070ceb1b44b1f367ce23c99f9 |
20-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print <def,read-undef> to avoid confusion. The <undef> flag on a def operand only applies to partial register redefinitions. Only print the flag when relevant, and print it as <def,read-undef> to make it clearer what it means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155239 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a30444a69c2503ab7dae4c9d696fd3ade33e921d |
20-Apr-2012 |
Andrew Trick <atrick@apple.com> |
New and improved comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155229 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
c0ccb8bb17028fe0dda139c0972c0125d10e6053 |
20-Apr-2012 |
Andrew Trick <atrick@apple.com> |
SparseSet: Add support for key-derived indexes and arbitrary key types. This nicely handles the most common case of virtual register sets, but also handles anticipated cases where we will map pointers to IDs. The goal is not to develop a completely generic SparseSet template. Instead we want to handle the expected uses within llvm without any template antics in the client code. I'm adding a bit of template nastiness here, and some assumption about expected usage in order to make the client code very clean. The expected common uses cases I'm designing for: - integer keys that need to be reindexed, and may map to additional data - densely numbered objects where we want pointer keys because no number->object map exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155227 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
cheduleDAGInstrs.cpp
|
918f38ab2420bbdc350a6ec8c6ba6b09e37126b2 |
20-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: initialize BB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155226 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
fc728fbdc2631ce8f343cf9b7292d218fde7419f |
19-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Allow targets to select the default scheduler by name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155090 91177308-0d34-0410-b5e6-96231b3b80d8
achinePassRegistry.cpp
|
37097623bbde5420f81ab8d1d056700f8f258025 |
18-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
This reverts a long string of commits to the Hexagon backend. These commits have had several major issues pointed out in review, and those issues are not being addressed in a timely fashion. Furthermore, this was all committed leading up to the v3.1 branch, and we don't need piles of code with outstanding issues in the branch. It is possible that not all of these commits were necessary to revert to get us back to a green state, but I'm going to let the Hexagon maintainer sort that out. They can recommit, in order, after addressing the feedback. Reverted commits, with some notes: Primary commit r154616: HexagonPacketizer - There are lots of review comments here. This is the primary reason for reverting. In particular, it introduced large amount of warnings due to a bad construct in tablegen. - Follow-up commits that should be folded back into this when reposting: - r154622: CMake fixes - r154660: Fix numerous build warnings in release builds. - Please don't resubmit this until the three commits above are included, and the issues in review addressed. Primary commit r154695: Pass to replace transfer/copy ... - Reverted to minimize merge conflicts. I'm not aware of specific issues with this patch. Primary commit r154703: New Value Jump. - Primarily reverted due to merge conflicts. - Follow-up commits that should be folded back into this when reposting: - r154703: Remove iostream usage - r154758: Fix CMake builds - r154759: Fix build warnings in release builds - Please incorporate these fixes and and review feedback before resubmitting. Primary commit r154829: Hexagon V5 (floating point) support. - Primarily reverted due to merge conflicts. - Follow-up commits that should be folded back into this when reposting: - r154841: Remove unused variable (fixing build warnings) There are also accompanying Clang commits that will be reverted for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155047 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
722b6f18536a1b23a03bfb55440f098da0a7762d |
18-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
LiveIntervalUpdate validators weren't recorded after the calls to std::for_each. Turns out std::for_each doesn't update the variable passed in for the functor but instead copy constructs a new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155041 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d16ce17711e8e6231363fe1fd47800570b75d61d |
18-Apr-2012 |
Joel Jones <joel_k_jones@apple.com> |
Fixes a problem in instruction selection with testing whether or not the transformation: (X op C1) ^ C2 --> (X op C1) & ~C2 iff (C1&C2) == C2 should be done. This change has been tested: Using a debug+asserts build: on the specific test case that brought this bug to light make check-all lnt nt using this clang to build a release version of clang Using the release+asserts clang-with-clang build: on the specific test case that brought this bug to light make check-all lnt nt Checking in because Evan wants it checked in. Test case forthcoming after scrubbing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154955 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
613dfb219c167717576b2383ee57573f4d8f53cf |
17-Apr-2012 |
Lang Hames <lhames@gmail.com> |
SlotIndexes used to store the index list in a crufty custom linked-list. I can't for the life of me remember why I wrote it this way, but I can't see any good reason for it now. This patch replaces the custom linked list with an ilist. This change should preserve the existing numberings exactly, so no generated code should change (if it does, file a bug!). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154904 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
e9722e1e8ba43bff2dc8ee3ae948e31f3fb0e370 |
17-Apr-2012 |
Eric Christopher <echristo@apple.com> |
Make comment here more clear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154878 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
f1a60c734c2edb97ab75e67328935538fae5bae6 |
17-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix updateTerminator to be resiliant to degenerate terminators where both fallthrough and a conditional branch target the same successor. Gracefully delete the conditional branch and introduce any unconditional branch needed to reach the actual successor. This fixes memory corruption in 2009-06-15-RegScavengerAssert.ll and possibly other tests. Also, while I'm here fix a latent bug I spotted by inspection. I never applied the same fundamental fix to this fallthrough successor finding logic that I did to the logic used when there are no conditional branches. As a consequence it would have selected landing pads had they be aligned in just the right way here. I don't have a test case as I spotted this by inspection, and the previous time I found this required have of TableGen's source code to produce it. =/ I hate backend bugs. ;] Thanks to Jim Grosbach for helping me reason through this and reviewing the fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154867 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
9e67db4af13abb967cae5858502207a43d26bf84 |
16-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Flip the new block-placement pass to be on by default. This is mostly to test the waters. I'd like to get results from FNT build bots and other bots running on non-x86 platforms. This feature has been pretty heavily tested over the last few months by me, and it fixes several of the execution time regressions caused by the inlining work by preventing inlining decisions from radically impacting block layout. I've seen very large improvements in yacr2 and ackermann benchmarks, along with the expected noise across all of the benchmark suite whenever code layout changes. I've analyzed all of the regressions and fixed them, or found them to be impossible to fix. See my email to llvmdev for more details. I'd like for this to be in 3.1 as it complements the inliner changes, but if any failures are showing up or anyone has concerns, it is just a flag flip and so can be easily turned off. I'm switching it on tonight to try and get at least one run through various folks' performance suites in case SPEC or something else has serious issues with it. I'll watch bots and revert if anything shows up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154816 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
e773e8c3e53aadb6e861316e4db88d63a0226b2f |
16-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Add a somewhat hacky heuristic to do something different from whole-loop rotation. When there is a loop backedge which is an unconditional branch, we will end up with a branch somewhere no matter what. Try placing this backedge in a fallthrough position above the loop header as that will definitely remove at least one branch from the loop iteration, where whole loop rotation may not. I haven't seen any benchmarks where this is important but loop-blocks.ll tests for it, and so this will be covered when I flip the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154812 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
16295fc20b68f9a9318cada4e4d96e964b1cdd7e |
16-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Tweak the loop rotation logic to check whether the loop is naturally laid out in a form with a fallthrough into the header and a fallthrough out of the bottom. In that case, leave the loop alone because any rotation will introduce unnecessary branches. If either side looks like it will require an explicit branch, then the rotation won't add any, do it to ensure the branch occurs outside of the loop (if possible) and maximize the benefit of the fallthrough in the bottom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154806 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
31490baf38680012000890dcb11ac4914ec94911 |
16-Apr-2012 |
Hal Finkel <hfinkel@anl.gov> |
Remove dead SD nodes after the combining pass. Fixes PR12201. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
70daea90afc167a010a1851defda01d7e0eb45eb |
16-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Rewrite how machine block placement handles loop rotation. This is a complex change that resulted from a great deal of experimentation with several different benchmarks. The one which proved the most useful is included as a test case, but I don't know that it captures all of the relevant changes, as I didn't have specific regression tests for each, they were more the result of reasoning about what the old algorithm would possibly do wrong. I'm also failing at the moment to craft more targeted regression tests for these changes, if anyone has ideas, it would be welcome. The first big thing broken with the old algorithm is the idea that we can take a basic block which has a loop-exiting successor and a looping successor and use the looping successor as the layout top in order to get that particular block to be the bottom of the loop after layout. This happens to work in many cases, but not in all. The second big thing broken was that we didn't try to select the exit which fell into the nearest enclosing loop (to which we exit at all). As a consequence, even if the rotation worked perfectly, it would result in one of two bad layouts. Either the bottom of the loop would get fallthrough, skipping across a nearer enclosing loop and thereby making it discontiguous, or it would be forced to take an explicit jump over the nearest enclosing loop to earch its successor. The point of the rotation is to get fallthrough, so we need it to fallthrough to the nearest loop it can. The fix to the first issue is to actually layout the loop from the loop header, and then rotate the loop such that the correct exiting edge can be a fallthrough edge. This is actually much easier than I anticipated because we can handle all the hard parts of finding a viable rotation before we do the layout. We just store that, and then rotate after layout is finished. No inner loops get split across the post-rotation backedge because we check for them when selecting the rotation. That fix exposed a latent problem with our exitting block selection -- we should allow the backedge to point into the middle of some inner-loop chain as there is no real penalty to it, the whole point is that it *won't* be a fallthrough edge. This may have blocked the rotation at all in some cases, I have no idea and no test case as I've never seen it in practice, it was just noticed by inspection. Finally, all of these fixes, and studying the loops they produce, highlighted another problem: in rotating loops like this, we sometimes fail to align the destination of these backwards jumping edges. Fix this by actually walking the backwards edges rather than relying on loopinfo. This fixes regressions on heapsort if block placement is enabled as well as lots of other cases where the previous logic would introduce an abundance of unnecessary branches into the execution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154783 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
3ab32ea49ec13182f1397dc89c37551692f67140 |
15-Apr-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
When emulating vselect using OR/AND/XOR make sure to bitcast the result back to the original type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
007079201276368736fc893d4d5ec7aeeca00823 |
14-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added CanHandleTerminators. This is a special flag for targets that really want their block terminators in the DAG. The default scheduler cannot handle this correctly, so it becomes the specialized scheduler's responsibility to schedule terminators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154712 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
36c38b81f0938974c0b1b5fde0b838d51466a94f |
13-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce malloc traffic in DwarfAccelTable - Don't copy offsets into HashData, the underlying vector won't change once the table is finalized. - Allocate HashData and HashDataContents in a BumpPtrAllocator. - Allocate string map entries in the same allocator. - Random cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154694 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
|
d1a87a68064e0b9af3b71b681286954f861bb1b3 |
12-Apr-2012 |
Sirish Pande <spande@codeaurora.org> |
HexagonPacketizer patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154616 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
2e506198c8cc7eec8f2f4fb4719a07daef17f931 |
11-Apr-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Reapply 154397. Original message: Fix a dagcombine optimization which assumes that the vsetcc result type is always of the same size as the compared values. This is ture for SSE/AVX/NEON but not for all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7eb46d834ccca887ab8fbd1d96080f9a4632bb48 |
11-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Fix an overly indented line. Remove an 'else' after an 'if' that returns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c42e640dc8a970c7d16934a16551c4c1a3b3acae |
11-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Inline implVisitAluOverflow by introducing a nested switch to convert the intrinsic to an nodetype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
23de31b13bfde8dfe3d5c21322f5e08608725521 |
11-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Optimize code a bit by calling push_back only once in some loops. Reduces compiled code size a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
71fbed45d9f4e2e886afc7f22c058087e7872dc6 |
11-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak MachineLICM heuristics for cheap instructions. Allow cheap instructions to be hoisted if they are register pressure neutral or better. This happens if the instruction is the last loop use of another virtual register. Only expensive instructions are allowed to increase loop register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154455 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
8b560b8c485992dbd62ee31aaff5ac25b5549bd6 |
11-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only check for PHI uses inside the current loop. Hoisting a value that is used by a PHI in the loop will introduce a copy because the live range is extended to cross the PHI. The same applies to PHIs in exit blocks. Also use this opportunity to make HasLoopPHIUse() non-recursive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154454 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
06886aaaebe38b7e4b253b336624c9a7ab6dbc44 |
11-Apr-2012 |
Owen Anderson <resistor@mac.com> |
Move the constant-folding support for FP_ROUND in SelectionDAG from the one-operand version of getNode() to the two-operand version, since it became a two-operand node at sound point. Zap a testcase that this allows us to completely fold away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154447 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
507bb7a42fce6502f90268712cbc32158c17bb59 |
10-Apr-2012 |
Duncan Sands <baldrick@free.fr> |
Add a comment noting that the fdiv -> fmul conversion won't generate multiplication by a denormal, and some tests checking that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154431 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
18112d83e7d54597bcd5870fb411c7997e02bc1e |
10-Apr-2012 |
Eric Christopher <echristo@apple.com> |
To ensure that we have more accurate line information for a block don't elide the branch instruction if it's the only one in the block, otherwise it's ok. PR9796 and rdar://11215207 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b79855ee181b0a74507022894b0f753af0041121 |
10-Apr-2012 |
Owen Anderson <resistor@mac.com> |
Revert r154397, which was causing make check failures on the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
77dde089abc8dcfd40c73f980ccebf3f2255405f |
10-Apr-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a dagcombine optimization which assumes that the vsetcc result type is always of the same size as the compared values. This is ture for SSE/AVX/NEON but not for all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
45fb79bc54159330979bf24e4bfbdbb64bee1e2c |
10-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Make a somewhat subtle change in the logic of block placement. Sometimes the loop header has a non-loop predecessor which has been pre-fused into its chain due to unanalyzable branches. In this case, rotating the header into the body of the loop in order to place a loop exit at the bottom of the loop is a Very Bad Idea as it makes the loop non-contiguous. I'm working on a good test case for this, but it's a bit annoynig to craft. I should get one shortly, but I'm submitting this now so I can begin the (lengthy) performance analysis process. An initial run of LNT looks really, really good, but there is too much noise there for me to trust it much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154395 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
999821cddfeb8fd5115261c539c951f8733c943a |
10-Apr-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Transform div to mul with reciprocal only when fp imm is legal. This fixes PR12516 and uncovers one weird problem in legalize (workarounded) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b52ba49fdbf6cdf055e8b264c18b6e594fd30dc4 |
10-Apr-2012 |
Evan Cheng <evan.cheng@apple.com> |
Make the code slightly more palatable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bf010eb9110009d745382bf15131fbe556562ffe |
10-Apr-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix a long standing tail call optimization bug. When a libcall is emitted legalizer always use the DAG entry node. This is wrong when the libcall is emitted as a tail call since it effectively folds the return node. If the return node's input chain is not the entry (i.e. call, load, or store) use that as the tail call input chain. PR12419 rdar://9770785 rdar://11195178 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154370 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/LegalizeDAG.cpp
|
fdb230a154ead49cf0ded5b4587be994ec2f43e0 |
10-Apr-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't try to zExt just to check if an integer constant is zero, it might not fit in a i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
787c3fd385834db61bd955dcc40fb02b77c183a9 |
09-Apr-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Have TargetLowering::getPICJumpTableRelocBase return a node that points to the GOT if jump table uses 64-bit gp-relative relocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f31ceaf8b7b1c5092fe35e20732711f5e1074118 |
09-Apr-2012 |
Lang Hames <lhames@gmail.com> |
Patch r153892 for PR11861 apparently broke an external project (see PR12493). This patch restores TwoAddressInstructionPass's pre-r153892 behaviour when rescheduling instructions in TryInstructionTransform. Hopefully this will fix PR12493. To refix PR11861, lowering of INSERT_SUBREGS is deferred until after the copy that unties the operands is emitted (this seems to be a more appropriate fix for that issue anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154338 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
decbc43f72866fa33d18e4b63d0d2dd2a2e102f6 |
09-Apr-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Pattern match a setcc of boolean value with 0 as a truncate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154322 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f920423ffc41dcde33b25ea7d6f25272b709b7fc |
09-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove unnecessary type check when combining and/or/xor of swizzles. Move some checks to allow better early out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154309 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b7135e5838f1d08378952de125af9006449fa25c |
09-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove unnecessary 'else' on an 'if' that always returns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4b206bdfd0839fe61fda3e0b6955a80646a93977 |
09-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Optimize code slightly. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ae1bec52f7a0e8b719e74f3575ec238094ff7599 |
09-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Replace some explicit checks with asserts for conditions that should never happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
10612dc15f48cace9d62c7b5df772234a7c386e4 |
09-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Optimize code a bit. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c47bc3321825ff3aa9aee4ff125c5e9ee853e449 |
08-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence sign-compare warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ef3fcfc0414b96d626b706c6151596684b7d134 |
08-Apr-2012 |
Duncan Sands <baldrick@free.fr> |
Only have codegen turn fdiv by a constant into fmul by the reciprocal when -ffast-math, i.e. don't just always do it if the reciprocal can be formed exactly. There is already an IR level transform that does that, and it does it more carefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f873dde50264ffab16f3d12eaec8be91edfcc131 |
08-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Simplify code that tries to do vector extracts for shuffles when the mask width and the input vector widths don't match. No need to check the min and max are in range before calculating the start index. The range check after having the start index is sufficient. Also no need to check for an extract from the beginning differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
34797136cb9fa9f450c0e1c47983482083979dd4 |
08-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Move the TLSModel information into the TargetMachine rather than hiding in TargetLowering. There was already a FIXME about this location being odd. The interface is simplified as a consequence. This will also make it easier to change TLS models when compiling with PIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154292 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5e93a7672222853cdf5dd261c322e6f89d40be01 |
08-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Remove an over zealous assert. The assert was trying to catch places where a chain outside of the loop block-set ended up in the worklist for scheduling as part of the contiguous loop. However, asserting the first block in the chain is in the loop-set isn't a valid check -- we may be forced to drag a chain into the worklist due to one block in the chain being part of the loop even though the first block is *not* in the loop. This occurs when we have been forced to form a chain early due to un-analyzable branches. No test case here as I have no idea how to even begin reducing one, and it will be hopelessly fragile. We have to somehow end up with a loop header of an inner loop which is a successor of a basic block with an unanalyzable pair of branch instructions. Ow. Self-host triggers it so it is unlikely it will regress. This at least gets block placement back to passing selfhost and the test suite. There are still a lot of slowdown that I don't like coming out of block placement, although there are now also a lot of speedups. =[ I'm seeing swings in both directions up to 10%. I'm going to try to find time to dig into this and see if we can turn this on for 3.1 as it does a really good job of cleaning up after some loops that degraded with the inliner changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154287 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
6313d941d29d77f62662c4bd13f12314e6b4b86e |
08-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Add a debug-only 'dump' method to the BlockChain structure to ease debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154286 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
b45c96995924d1b74f2a91e85e21be98709285cd |
08-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Turn avx2 vinserti128 intrinsic calls into INSERT_SUBVECTOR DAG nodes and remove patterns for selecting the intrinsic. Similar was already done for avx1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154272 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ad9fb01e86606e36965eb0cf53b27f296fd22948 |
07-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove 'else' after 'if' that ends in return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154267 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d16c8d0d336638225378466bc17c9db156401817 |
07-Apr-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
1. Remove the part of r153848 which optimizes shuffle-of-shuffle into a new shuffle node because it could introduce new shuffle nodes that were not supported efficiently by the target. 2. Add a more restrictive shuffle-of-shuffle optimization for cases where the second shuffle reverses the transformation of the first shuffle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
961d666be4f3714452ff9f15470f9255d85f0506 |
07-Apr-2012 |
Duncan Sands <baldrick@free.fr> |
Convert floating point division by a constant into multiplication by the reciprocal if converting to the reciprocal is exact. Do it even if inexact if -ffast-math. This substantially speeds up ac.f90 from the polyhedron benchmarks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
60b35f408bc3194e7ea4e96367c0b42dc5e7f850 |
05-Apr-2012 |
Eric Christopher <echristo@apple.com> |
Patch to set is_stmt a little better for prologue lines in a function. This enables debuggers to see what are interesting lines for a breakpoint rather than any line that starts a function. rdar://9852092 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154120 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
740cd657f3d9d4e88614831c70a649f9257164da |
05-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't break the IV update in TLI::SimplifySetCC(). LSR always tries to make the ICmp in the loop latch use the incremented induction variable. This allows the induction variable to be kept in a single register. When the induction variable limit is equal to the stride, SimplifySetCC() would break LSR's hard work by transforming: (icmp (add iv, stride), stride) --> (cmp iv, 0) This forced us to use lea for the IC update, preventing the simpler incl+cmp. <rdar://problem/7643606> <rdar://problem/11184260> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154119 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d7484e5d9b25fe907cdad283659fcdeb5c73060f |
05-Apr-2012 |
Owen Anderson <resistor@mac.com> |
Treat f16 the same as f80/f128 for the purposes of generating constants during instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154113 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ef74ca6a41c899273c5df5af1ba1ad6c9bb7da97 |
04-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
REG_SEQUENCE expansion to COPY instructions wasn't taking account of sub register indices on the source registers. No simple test case git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154051 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
9751b81fc97dcb6ecc4be4304ef8e6e8cf79f6e4 |
04-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
f16 FREM can now be legalized by promoting to f32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154039 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1487cb3a5a0535b343e602e976af538fd87d0df2 |
04-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove spurious debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154032 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
26c8dcc692fb2addd475446cfff24d6a4e958bca |
04-Apr-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Always compute all the bits in ComputeMaskedBits. This allows us to keep passing reduced masks to SimplifyDemandedBits, but know about all the bits if SimplifyDemandedBits fails. This allows instcombine to simplify cases like the one in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
8d41a1a7e68164d36d5332aa82d871902000db5b |
04-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove default case from switch that was already covering all cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e5ae51a38f156ae7bfa50fc6b27d0042793e8fd1 |
04-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
Removed useless switch for default case when switch was covering all the enum values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153984 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
2ce63c73520cd6e715f9114589f802938b5db01f |
04-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
Add VSELECT to LegalizeVectorTypes::ScalariseVectorResult. Previously it would crash if it encountered a 1 element VSELECT. Solution is slightly more complicated than just creating a SELET as we have to mask or sign extend the vector condition if it had different boolean contents from the scalar condition. Fixes <rdar://problem/11178095> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153976 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
dda3a099a096588d435fdb855b52b0a203316de2 |
04-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
Removed one last bad continue statement meant to be removed in r153914. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153975 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
9dbb018b36d37d9676fe70ac5d928e69ae01b7fb |
03-Apr-2012 |
Chad Rosier <mcrosier@apple.com> |
Fix an issue in SimplifySetCC() specific to vector comparisons. When folding X == X we need to check getBooleanContents() to determine if the result is a vector of ones or a vector of negative ones. I tried creating a test case, but the problem seems to only be exposed on a much older version of clang (around r144500). rdar://10923049 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153966 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
fa5b05013679fe04bac94084d411d2774608236f |
03-Apr-2012 |
Eric Christopher <echristo@apple.com> |
Fix thinko check for number of operands to be the one that actually might have more than 19 operands. Add a testcase to make sure I never screw that up again. Part of rdar://11026482 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153961 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6126a1e1894f346fae02a514a20aa56b879aeb99 |
03-Apr-2012 |
Eric Christopher <echristo@apple.com> |
Add a line number for the scope of the function (starting at the first brace) so that we get more accurate line number information about the declaration of a given function and the line where the function first starts. Part of rdar://11026482 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153916 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2e267ae7b8caf7192a3793eb3b78937ff83f794d |
03-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
Fixes to r153903. Added missing explanation of behaviour when the VirtRegMap is NULL. Also changed it in this case to just avoid updating the map, but live ranges or intervals will still get updated and created git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153914 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
789d5d85ba6e9259a8e0f0bcfbd06a59ad164512 |
03-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
Moved LiveRangeEdit.h so that it can be called from other parts of the backend, not just libCodeGen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153906 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
egAllocBase.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
piller.cpp
plitKit.cpp
|
e3b23cde80b19507f1d8b641a541e91ace0864dc |
03-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allocate virtual registers in ascending order. This is just the fallback tie-breaker ordering, the main allocation order is still descending size. Patch by Shamil Kurmangaleev! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153904 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
8a06af96698537377275dd7848db69915638dd26 |
03-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
Refactored the LiveRangeEdit interface so that MachineFunction, TargetInstrInfo, MachineRegisterInfo, LiveIntervals, and VirtRegMap are all passed into the constructor and stored as members instead of passed in to each method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153903 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
piller.cpp
plitKit.cpp
|
29f60f359b59032108cdabcde91217b6784c4e13 |
03-Apr-2012 |
Owen Anderson <resistor@mac.com> |
Add predicates for checking whether targets have free FNEG and FABS operations, and prevent the DAGCombiner from turning them into bitwise operations if they do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
be9fe49b179a89a659fe786d64b176d2b360bb4a |
02-Apr-2012 |
Lang Hames <lhames@gmail.com> |
During two-address lowering, rescheduling an instruction does not untie operands. Make TryInstructionTransform return false to reflect this. Fixes PR11861. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153892 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
60777d8eaf338fd7fef2296f78d5e513bf0da011 |
02-Apr-2012 |
Eric Christopher <echristo@apple.com> |
Turn on the accelerator tables for Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153880 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
44b5e6de8cb7a5562f698078415a3a9b608b8ed6 |
02-Apr-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Optimizing swizzles of complex shuffles may generate additional complex shuffles. Do not try to optimize swizzles of shuffles if the source shuffle has more than a single user, except when the source shuffle is also a swizzle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
17463b3ef1a3d39b10619254f12e806c8c43f9e7 |
02-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Make MCInstrInfo available to the MCInstPrinter. This will be used to remove getInstructionName and the static data it contains since the same tables are already in MCInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153860 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4ac9081c7110dbf099d682fa51c091741e763491 |
01-Apr-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
This commit contains a few changes that had to go in together. 1. Simplify xor/and/or (bitcast(A), bitcast(B)) -> bitcast(op (A,B)) (and also scalar_to_vector). 2. Xor/and/or are indifferent to the swizzle operation (shuffle of one src). Simplify xor/and/or (shuff(A), shuff(B)) -> shuff(op (A, B)) 3. Optimize swizzles of shuffles: shuff(shuff(x, y), undef) -> shuff(x, y). 4. Fix an X86ISelLowering optimization which was very bitcast-sensitive. Code which was previously compiled to this: movd (%rsi), %xmm0 movdqa .LCPI0_0(%rip), %xmm2 pshufb %xmm2, %xmm0 movd (%rdi), %xmm1 pshufb %xmm2, %xmm1 pxor %xmm0, %xmm1 pshufb .LCPI0_1(%rip), %xmm1 movd %xmm1, (%rdi) ret Now compiles to this: movl (%rsi), %eax xorl %eax, (%rdi) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153848 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
16d6eae08209251a31dae638908c79bd39620c91 |
01-Apr-2012 |
Lang Hames <lhames@gmail.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153846 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
830da405fa32ab4f2a8378a658e1429a9ffd4d65 |
01-Apr-2012 |
Andrew Trick <atrick@apple.com> |
misched: Add finalizeScheduler to complete the target interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153827 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
95d594cac3737ae1594a391276942a443cac426b |
31-Mar-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Teach CodeGen's version of computeMaskedBits to understand the range metadata. This is the CodeGen equivalent of r153747. I tested that there is not noticeable performance difference with any combination of -O0/-O2 /-g when compiling gcc as a single compilation unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153817 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
84364a4e23e8ba2fe9332da99bcab31acc173381 |
30-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
If we have a VLA that has a "use" in a metadata node that's then used here but it has no other uses, then we have a problem. E.g., int foo (const int *x) { char a[*x]; return 0; } If we assign 'a' a vreg and fast isel later on has to use the selection DAG isel, it will want to copy the value to the vreg. However, there are no uses, which goes counter to what selection DAG isel expects. <rdar://problem/11134152> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153705 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b8ca98874316bfe8e46b27e7a034a8a764c92e08 |
29-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add support for objc property decls according to the page at: http://llvm.org/docs/SourceLevelDebugging.html#objcproperty including type and DECL. Expand the metadata needed accordingly. rdar://11144023 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153639 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
8b4c502098d8a8aee52f2251db5614d9d26c83e2 |
29-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable machine code verification in the entire code generator. Some targets still mess up the liveness information, but that isn't verified after MRI->invalidateLiveness(). The verifier can still check other useful things like register classes and CFG, so it should be enabled after all passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153615 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
78811669d5872b28c447ea9f7cfc3963c7f72841 |
29-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable machine code verification after PreSched2 passes. The late scheduler depends on accurate liveness information if it is breaking anti-dependencies, so we should be able to verify it. Relax the terminator checking in the machine code verifier so it can handle the basic blocks created by if conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153614 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
asses.cpp
|
2ef5bf6b34cb0041648e7cb857d2c6e673d0550b |
28-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also verify after ExpandPostRAPseudos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153599 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
663ee20cc4b13b6d37ad1578050d8c3cc31eeff5 |
28-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable machine code verification after the late machine optimization passes. Branch folding invalidates liveness and disables liveness verification on some targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153597 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
948a44458c2965e6c2924bbd47c4d41bda0d78f0 |
28-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Skip liveness verification when MRI->tracksLiveness() is false. Extract the liveness verification into its own method. This makes it possible to run the machine code verifier after liveness information is no longer required to be valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153596 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
78836f0bb2bf5958c1b9f904b0ad0057c77ab75f |
28-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow removeLiveIn to be called with a register that isn't live-in. This avoids the silly double search: if (isLiveIn(Reg)) removeLiveIn(Reg); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153592 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
442ee9c3f7f6b29ff4ca82f3fdd7e20fc9cd5ee4 |
28-Mar-2012 |
Pete Cooper <peter_cooper@apple.com> |
Fixed commuteInstructions bug where if its called pre-regalloc the subreg indices weren't commuted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153579 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
9fc5c83fb7b86862d4a29bf416842a4f1a0084d5 |
28-Mar-2012 |
Eric Christopher <echristo@apple.com> |
More debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
663e0cf73dcf2bfbbfc22b49c739d54916652d1c |
28-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Fix the output of the DW_TAG_friend tag to include DW_AT_friend and not the rest of the member tag. Fixes PR11695 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153570 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
5f46eb157e58df285e1a0a7ce6ff1c9ed972bf65 |
27-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Use a SmallVector and linear lookup instead of a DenseSet - SourceMap values will always be tiny sets, so DenseSet is overkill (SmallSet won't work as we need iteration support). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153529 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
7f316597cfaf3e8cacf2626559b1aab310f4cb98 |
27-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Use DW_AT_low_pc for a single entry point into a routine. Fixes PR10105 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153524 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1f141684cfe382b47db55b6ef1fb4fd62886b3c6 |
27-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print SSA and liveness tracking flags in MF::print(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153518 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
80799fbe3c048cc78aba59c389e4b33e936bc190 |
27-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Branch folding may invalidate liveness. Branch folding can use a register scavenger to update liveness information when required. Don't do that if liveness information is already invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153517 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
77d9521945fa46e03af9451b526fe0e588f44a04 |
27-Mar-2012 |
Chris Lattner <sabre@nondot.org> |
fix what looks like a real logic bug, found by PVS-Studio (part of PR12357) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aba6559370c3d453588103fb667ffa3b11b76652 |
27-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MRI::tracksLiveness() flag. Late optimization passes like branch folding and tail duplication can transform the machine code in a way that makes it expensive to keep the register liveness information up to date. There is a fuzzy line between register allocation and late scheduling where the liveness information degrades. The MRI::tracksLiveness() flag makes the line clear: While true, liveness information is accurate, and can be used for register scavenging. Once the flag is false, liveness information is not accurate, and can only be used as a hint. Late passes generally don't need the liveness information, but they will sometimes use the register scavenger to help update it. The scavenger enforces strict correctness, and we have to spend a lot of code to update register liveness that may never be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153511 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
egisterScavenging.cpp
|
d6c23557898b1fe9b21b28023f4133cab84a8b83 |
27-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
Post-ra LICM should take care not to hoist an instruction that would clobber a register that's read by the preheader terminator. rdar://11095580 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153492 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d9eb1d77979f10d0237af22d87789803162044fa |
27-Mar-2012 |
Lang Hames <lhames@gmail.com> |
During MachineCopyPropagation a register may be the source operand of multiple copies being considered for removal. Make sure to track all of the copies, rather than just the most recent encountered, by holding a DenseSet instead of an unsigned in SrcMap. No test case - couldn't reduce something with a sane size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153487 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
20df03ccd572aefadc3d68e4abc2e58c0bef9ff7 |
27-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Add a debug option to dump PBQP graphs during register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153483 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
082120053fdccb7eb21681c09365175f130df210 |
26-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Use the file in the inlined die rather than the compile unit for backtrace locations. Testcase forthcoming, but I wanted to get some testing here. Should fix: PR12323 PR12314 rdar://11091100 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153471 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
be3f051c49699a86d526833d7dbe95645680a340 |
26-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
No need to do an expensive stable sort for a bunch of integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153438 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
f1d0f7781e766df878bec4e7977fa3204374f394 |
26-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Prune some includes and forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153429 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
7e1e18fa1eaac4019deeb0f0e9de93541c29a7a4 |
26-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add a debug statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3770f605b522e34ef4a1fabb4dcaa2e76a7a2d96 |
22-Mar-2012 |
Shih-wei Liao <sliao@google.com> |
Migrate external/llvm to LLVM-153224-20120321. Change-Id: I93619a538c59e5b1280d46534dac322fbccd14f7
ndroid.mk
electionDAG/Android.mk
|
c59a7995d22e2889706810c90a20a51ecfec278b |
24-Mar-2012 |
Shih-wei Liao <sliao@google.com> |
Merge branch 'upstream' into sliao_d
|
5194d6dd9575845cf1cbb2f10a0c769634d116a9 |
24-Mar-2012 |
Hal Finkel <hfinkel@anl.gov> |
Add the ability to promote legal integer VAARGs. This is required for the PPC64 SVR4 ABI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7c0bc008f1b1f8185f879bd956ef0b5f361638cb |
24-Mar-2012 |
Jim Grosbach <grosbach@apple.com> |
Pretty-printing comments for literal floating point in .s files. Dump the hex representation to the comment stream as well as the float value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153346 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f1113ef452871b88c086419fb2abf58da0088110 |
23-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Add support for register masks to PBQP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153341 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
479389a4da53ce72226366cc6d1cad13da158909 |
22-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
Source order scheduler should not preschedule nodes with multiple uses. rdar://11096639 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
5aef7957ddf43d30c33137386fdd9cbfcc5944e4 |
22-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
Assign node orders to target intrinsics which do not produce results. rdar://11096639 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153269 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
aa206ffa6bf160f90d0d3aae5745ae4abf2d98fa |
22-Mar-2012 |
Eric Christopher <echristo@apple.com> |
In erroneous inline assembly we could mistakenly try to access the metadata operand as an actual operand, leading to an assert. Error out in this case. rdar://11007633 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153234 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
544b9b426f0dfa1beef6dc3640607dee3ca1160e |
22-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Fold "urem x, pow2" -> "and x, pow2-1". This should fix the 271% execution-time regression for nsieve-bits on the ARMv7 -O0 -g nightly tester. This may also improve compile-time on architectures that would otherwise generate a libcall for urem (e.g., ARM) or fall back to the DAG selector. rdar://10810716 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
331ff3b1d1a08b4a39cea7cdc0c9a8567a5ba1b4 |
21-Mar-2012 |
Jim Grosbach <grosbach@apple.com> |
Checking a build_vector for an all-ones value. Type legalization can zero-extend the elements of the build_vector node, so, for example, we may have an <8 x i8> with i32 elements of value 255. That should return 'true' for the vector being all ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f70af52a8fc735a84aa8d63b84dd56abd0b9e77c |
21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: fix LiveInterval update for bottom-up scheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153162 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
aad37f1925621cb1f9f2bb2c899b517bf1df344a |
21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: trace LiveIntervals after scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153161 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
1ce062fe567a08678d20149781c5e308e03d7d83 |
21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: obvious iterator update fixes for bottom-up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153160 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
0b0d899f917d4771c940e7fa92990d981822a6db |
21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: cleanup main loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153159 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
e0b51ab8d3484b5b526a942f26c4db8082fed1e1 |
21-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: fix LI update for bottom-up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153158 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
21e42d0ea55c31ac4d57578f5116fa606d5c87ee |
20-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
It's possible to have a constant expression who's size is quite big (e.g., i128). In that case, we may not be able to print out the MCExpr as an expression. For instance, we could have an MCExpr like this: 0xBEEF0000BEEF0000 | (0xBEEF0000BEEF0000 << 64) The MCExpr printer handles sizes up to 64-bits, but this expression would require 128-bits. In this situation, try to evaluate the constant expression and emit that as the value into 64-bit chunks. <rdar://problem/11070338> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153081 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0c9da210f703f0cc98f7e198db1b68073091ce25 |
20-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
When combining (vextract shuffle (load ), <1,u,u,u>), 0) -> (load ), add users of the final load to the worklist too. Needed by changes I'm preparing to make to X86 backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153078 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8c5293c9556317143505c085cf428e11962e1273 |
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Do everything up to generating code to try to get a register for a variable. The previous code would break the debug info changing code invariant. This will regress debug info for arguments where we elide the alloca created. Fixes rdar://11066468 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153074 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c415af225d9546a66ac9f7368a973e0be25b438d |
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Untabify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153073 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4476bae1b42bdc7d2c87c0524148d6ad9224357b |
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add another debugging statement here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4e27027562d6843364e0ab744f97958b6abca08d |
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Use lookUpRegForValue here instead of duplicating the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
cfe2998c3e1a9ea66c9bab3bcf3f93960be304fd |
20-Mar-2012 |
Pete Cooper <peter_cooper@apple.com> |
f16 FDIV can now be legalized by promoting to f32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
23f1cbbd686513ae5defbd3afdf5e286befe8a76 |
19-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Add an option to the MI scheduler to cut off scheduling after a fixed number of instructions have been scheduled. Handy for tracking down scheduler bugs, or bugs exposed by scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153045 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
00294caadb5cdb4cafeb5e1c05486a395fef590c |
19-Mar-2012 |
Duncan Sands <baldrick@free.fr> |
Fix DAG combine which creates illegal vector shuffles. Patch by Heikki Kultala. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cff4ad768ec721b72498dc6b605d882e36c1fb14 |
17-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
CriticalAntiDepBreaker: Replace a SmallSet of regs with a much denser BitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152999 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
85f9cef27e6b2605e67e94afc949f5b5f5b90668 |
17-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
MachineInstr: Inline the fast path (non-bundle instruction) of hasProperty. This is particularly helpful as both arguments tend to be constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152991 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a82d526b31cd9825684fdee5c3372bf55dad4f57 |
16-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
ScheduleDAGInstrs: When adding uses we add them into a set that's empty at the beginning, no need to maintain another set for the added regs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152934 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
861ea230a7841fe4ccc8a1cd5460354e59aeed3c |
16-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Limit the number of memory operands in MachineInstr to 2^16 and store the number in padding. Saves one machine word on MachineInstr (88->80 bytes on x86_64, 48->44 on i386). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152930 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
87f3dbc446181dc5b1c525bd28ca89760f63bc76 |
16-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
CriticalAntiDepBreaker: BasicBlock::size is an expensive operation, reuse the cached value. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152927 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
d3a7486ef351697450cfe87b6cce82a3eb906874 |
16-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: add DAG edges from vreg defs to ExitSU. These edges are not really necessary, but it is consistent with the way we currently create physreg edges. Scheduler heuristics that expect a DAG edge to the block terminator could benefit from this change. Although in the future I hope we have a better mechanism for modeling latency across scheduling regions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152895 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
bace5da91dbfc15d04c0e9897805ed4c5c0461ad |
16-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
Revert r152705, which reapplied r152486 as this appears to be causing failures on our internal nightly testers. So, basically revert r152486 again. Abbreviated original commit message: Implement a more intelligent way of spilling uses across an invoke boundary. It looks as if Chander's inlining work, r152737, exposed an issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152887 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
b99ea7cb3fe8af46bdc2ad68550632f5c16bdaa9 |
16-Mar-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r152613 (and r152614), "Inline the d'tor and add an anchor instead." for workaround of g++-4.4's miscompilation. It caused MSP430DAGToDAGISel::SelectIndexedBinOp() to be miscompiled. When two ReplaceUses()'s are expanded as inline, vtable in base class is stored to latter (ISelUpdater)ISU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152877 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2125d5a7e58eb21f34c2a21913d6f1074c63b5cd |
16-Mar-2012 |
Eric Christopher <echristo@apple.com> |
For types with a parent of the compile unit make sure and emit the DECL information. rdar://10855921 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152876 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
ccaea7dc0bbc75e5d4ee92fb8cc6af0f928d056f |
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
We actually handle AllocaInst via getRegForValue below just fine. Part of rdar://8905263 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
bb54d21495ba5ce60931bc872e3e3df67386cb97 |
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add some debugging output into fast isel as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152844 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8f2a88d734601fe498564889bb2af877f4653ad9 |
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add another debug statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b82062f65265666690270f3358b0d0f508d3fbba |
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152842 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
7cc5177d460333ca9a2f3c0783dd0d0490456867 |
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152841 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
6431ff96be8f2f7bf3428fdaa3ad4d30bf2c1db3 |
15-Mar-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
When optimizing certain BUILD_VECTOR nodes into other BUILD_VECTOR nodes, add the new node into the work list because there is a potential for further optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152784 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8d101c31d293bcb8ece8fecdb3325cd0728bed08 |
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Revert the removal of DW_AT_MIPS_linkage_name when we aren't putting out the DW_AT_name. Older gdbs unfortunately still use it to disambiguate member functions in templated classes (gdb.cp/templates.exp). rdar://11043421 (which is now deferred for a bit) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152782 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5a89434236a4d6ad5fa6a570cbf3e717b757a148 |
15-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Add a xform to the DAG combiner. Transform: (fsub x, (fadd x, y)) -> (fneg y) and (fsub x, (fadd y, x)) -> (fneg y) if 'unsafe math' is specified. <rdar://problem/7540295> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152777 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
689e0b42630f31f74d21041881b21412427924f7 |
14-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence operator precedence warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152711 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
30442f95573d7e0f505c573bd7462b77769010fa |
14-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Reapply r152486 with a fix for the nightly testers. There were cases where a value could be used and it's both crossing an invoke and NOT crossing an invoke. This could happen in the landing pads. In that case, we will demote the value to the stack like we did before. <rdar://problem/10609139> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152705 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
7bf116acd417e50f6fac677b9cb9204ee7f35c00 |
14-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Insert the debugging instructions in one fell-swoop so that it doesn't call the expensive "getFirstTerminator" call. This reduces the time of compilation in PR12258 from >10 minutes to < 10 seconds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
17d35e57a585e869dc3084666abd17f173723735 |
14-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: implemented a framework for top-down or bottom-up scheduling. New flags: -misched-topdown, -misched-bottomup. They can be used with the default scheduler or with -misched=shuffle. Without either topdown/bottomup flag -misched=shuffle now alternates scheduling direction. LiveIntervals update is unimplemented with bottom-up scheduling, so only -misched-topdown currently works. Capped the ScheduleDAG hierarchy with a concrete ScheduleDAGMI class. ScheduleDAGMI is aware of the top and bottom of the unscheduled zone within the current region. Scheduling policy can be plugged into the ScheduleDAGMI driver by implementing MachineSchedStrategy. ConvergingScheduler is now the default scheduling algorithm. It exercises the new driver but still does no reordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152700 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
asses.cpp
cheduleDAGInstrs.cpp
|
cb058d51db44d47b57fc4705fea00209174d6577 |
14-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152699 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
fc7e9ef23941e8a9ab3055e9f50ac4704b6d24a2 |
14-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Remove the DW_AT_MIPS_linkage name attribute when we don't need it output (we're emitting a specification already and the information isn't changing). Saves 1% on the debug information for a build of llvm. Fixes rdar://11043421 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152697 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
a03d366c8887755080cf21e11c43d76d22610fdf |
13-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fortify r152675 a bit. Although I'm not able to come up with a test case that would trigger the truncation case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
84387ea5f547f3b63dc701fdcac163b8dc797e5d |
13-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
DAG combine incorrectly optimize (i32 vextract (v4i16 load $addr), c) to (i16 load $addr+c*sizeof(i16)) and replace uses of (i32 vextract) with the i16 load. It should issue an extload instead: (i32 extload $addr+c*sizeof(i16)). rdar://11035895 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152675 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
eabae1d07bffac60d9f4f2473cf6736d6a1c372d |
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
s/SjLjEHPass/SjLjEHPrepare/ No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152658 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
jLjEHPrepare.cpp
|
7d6fc212c2c9c363ed3166966b1db14710325c5c |
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Add a return type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bf565702dcffb57a96612b529b68b4375244084f |
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Inline the d'tor and add an anchor instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
091306099d7aaf8d68c3c5f44cdaf3e3e91d9f77 |
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Refactor the SelectionDAG's 'dump' methods into their own .cpp file. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGDumper.cpp
|
6fa87df0d6948d9957eb16042b088e9d6e859854 |
13-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Fixed typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152610 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.h
|
9eb5f170a219decc4ee07b57b0403d3836a8d946 |
12-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert due to nightly test failures. --- Reverse-merging r152486 into '.': U lib/CodeGen/SjLjEHPrepare.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152571 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
74612c250bac1f62a2b74c85411cf7180cd8cd78 |
11-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
DwarfDebug: Store the filename/dirname pair as a zero-separated string in a stringmap, instead of using a highly inefficient std::map of a pair of std::strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152541 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3d3abe0852d5f499bed7ab014519dd582a0a795d |
11-Mar-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
llvm::SwitchInst Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default. Added some notes relative to case iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1e8db1a4faac5c9fdd486a6ddcdec1909f12e789 |
10-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Microoptimize getVRegDef. def_begin isn't free, don't compute it twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152492 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
fbf9ff462134a635eb0fc3bc86c70cc59fb065d1 |
10-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Implement a more intelligent way of spilling uses across an invoke boundary. The old way of determine when and where to spill a value that was used inside of a landing pad resulted in spilling that value everywhere and not just at the invoke edge. This algorithm determines which values are used within a landing pad. It then spills those values before the invoke and reloads them before the uses. This should prevent excessive spilling in many cases, e.g. inside of loops. <rdar://problem/10609139> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152486 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
ff0275ea53842101645000d1d7fefe85e007fb03 |
10-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Report the defining instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152460 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
64ffa83c9bf5a1f0c064295de9b3eba7b0f09a99 |
10-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SSA verification to MachineVerifier. Somehow we never verified SSA dominance before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152458 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1efd6b94a917449da5007fd332cd895692aa0319 |
10-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use SmallPtrSet instead of DenseSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152457 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
d5f769065152d6d9331817c439caf9df0a5e8d69 |
10-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Give dagcombiner's worklist some inline capacity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9ab3dbe617af06627fed2455c93ab9dc6b459951 |
10-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert on SSA errors in LiveVariables. All uses of a virtual register must be dominated by its def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152449 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
fe4d6df5c706c2ada666d95c25b8f460e30b1336 |
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: handle scheduler that insert instructions at empty region boundaries. And add comments, since this is obviously confusing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152445 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
1fabd9f85e8ac728c35cb63c70d8aac2c94c92a8 |
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: handle scheduling region boundaries nicely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152393 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
68675c6c5b173021807e4e12cd250eeba63f6d0d |
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched interface: rename Begin/End to RegionBegin/RegionEnd since they are not private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152382 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
|
d24da97bbf86b87929ef8c57bdf3a009d48bfba7 |
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152374 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
7799eb40d43a1b0b0fef10bfcd7963f9cfe6c362 |
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
revert 152356: verify misched changes using -misched=shuffle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152373 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
d04ec0c855176ebddd459c044bdd24f49938fae4 |
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: allow the default scheduler to be one chosen by the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152360 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
9ad62b3c09e03368246753c1052674eaf9b0d161 |
09-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
Cache MBB->begin. It's possible the scheduler / bundler may change MBB->begin(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152356 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
fac259814923d091942b230e7bd002a8d1130bc3 |
08-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store instruction implicit uses and defs. Reduces static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152301 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
egAllocFast.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
c10fa6c801e48771b5eade50afc2fe6abaf08227 |
08-Mar-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Taken into account Duncan's comments for r149481 dated by 2nd Feb 2012: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120130/136146.html Implemented CaseIterator and it solves almost all described issues: we don't need to mix operand/case/successor indexing anymore. Base iterator class is implemented as a template since it may be initialized either from "const SwitchInst*" or from "SwitchInst*". ConstCaseIt is just a read-only iterator. CaseIt is read-write iterator; it allows to change case successor and case value. Usage of iterator allows totally remove resolveXXXX methods. All indexing convertions done automatically inside the iterator's getters. Main way of iterator usage looks like this: SwitchInst *SI = ... // intialize it somehow for (SwitchInst::CaseIt i = SI->caseBegin(), e = SI->caseEnd(); i != e; ++i) { BasicBlock *BB = i.getCaseSuccessor(); ConstantInt *V = i.getCaseValue(); // Do something. } If you want to convert case number to TerminatorInst successor index, just use getSuccessorIndex iterator's method. If you want initialize iterator from TerminatorInst successor index, use CaseIt::fromSuccessorIndex(...) method. There are also related changes in llvm-clients: klee and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c174eaf9481e3f7a6695d4f19e62e2b6f005c4e9 |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched interface: Expose the MachineScheduler pass. Allow targets to provide their own schedulers (subclass of ScheduleDAGInstrs) to the misched pass. Select schedulers using -misched=... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152278 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
7afcda0c582f57a46de32e88ad6c6d5b25d513ce |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Cleanup VLIWPacketizer to use the updated ScheduleDAGInstrs interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152262 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
ed395c8c475692f5a43eb4b5c5562503d67616d0 |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched prep: Expose the ScheduleDAGInstrs interface so targets may implement their own MachineScheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152261 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
ed8a0ecaa82726c88d1962a7df060390eb6e9c22 |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched prep: Remove LLVM_LIBRARY_VISIBILITY from ScheduleDAGInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152260 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
d790cada339d7af81650084b9bb6b2ad65566fbb |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched prep: Comment the ScheduleDAGInstrs interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152259 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
035ec40eaf1dcd8f4809fb183098259f2dec75b9 |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched prep: Cleanup ScheduleDAGInstrs interface. ScheduleDAGInstrs will be the main interface for MI-level schedulers. Make sure it's readable: one page of protected fields, one page of public methids. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152258 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
21c535579b7737f1f394d08881b3d99837207733 |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched prep: remove extra "protected" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152257 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
cf46b5acfd6e0ab5d21ec3160cec195d0eb77b0b |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched prep: rename InsertPos to End. ScheduleDAGInstrs knows nothing about how instructions will be moved or inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152256 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
953be893e8cffa0ef9bf410036cd96aeb526e98a |
08-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched preparation: rename core scheduler methods for consistency. We had half the API with one convention, half with another. Now was a good time to clean it up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152255 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
atencyPriorityQueue.cpp
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ResourcePriorityQueue.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGVLIW.cpp
|
b53a1d67b13fa2f036e18180523ea336100e5240 |
07-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Try to clarify this comment some. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152221 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fc22625eb04d39b0de77090702cf50a9bcda3ddb |
07-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Remove another outbreak of customized (and completely broken) hashing. This one is particularly annoying because the hashing algorithm is highly specialized, with a strange "equivalence" definition that subsets the fields involved. Still, this looks at the exact same set of data as the old code, but without bitwise or-ing over parts of it and other mixing badness. No functionality changed here. I've left a substantial fixme about the fact that there is a cleaner and more principled way to do this, but it requires making the equality definition actual stable for particular types... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152218 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5b2749abf585f9e28656c289001c2327eed401af |
07-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Where the BranchFolding pass removes a branch then adds another better branch, the DebugLoc information can be maintained throughout by grabbing the DebugLoc before the RemoveBranch and then passing the result to the InsertBranch. Patch by Andrew Stanford-Jason! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152212 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8c1161a262bb0195b47082ec04fa4398a1313ea1 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Fix cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152210 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
6fd7dd6ba57c1b5ba1f12e7e9da574b9dbd8ae09 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152209 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
47c144505b9be28ed22c626b3a407c11dba2fec5 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched preparation: clarify ScheduleDAG and ScheduleDAGInstrs roles. ScheduleDAG is responsible for the DAG: SUnits and SDeps. It provides target hooks for latency computation. ScheduleDAGInstrs extends ScheduleDAG and defines the current scheduling region in terms of MachineInstr iterators. It has access to the target's scheduling itinerary data. ScheduleDAGInstrs provides the logic for building the ScheduleDAG for the sequence of MachineInstrs in the current region. Target's can implement highly custom schedulers by extending this class. ScheduleDAGPostRATDList provides the driver and diagnostics for current postRA scheduling. It maintains a current Sequence of scheduled machine instructions and logic for splicing them into the block. During scheduling, it uses the ScheduleHazardRecognizer provided by the target. Specific changes: - Removed driver code from ScheduleDAG. clearDAG is the only interface needed. - Added enterRegion/exitRegion hooks to ScheduleDAGInstrs to delimit the scope of each scheduling region and associated DAG. They should be used to setup and cleanup any region-specific state in addition to the DAG itself. This is necessary because we reuse the same ScheduleDAG object for the entire function. The target may extend these hooks to do things at regions boundaries, like bundle terminators. The hooks are called even if we decide not to schedule the region. So all instructions in a block are "covered" by these calls. - Added ScheduleDAGInstrs::begin()/end() public API. - Moved Sequence into the driver layer, which is specific to the scheduling algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152208 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGISel.cpp
|
7b58ae77acb63db29116e548393ddd2127909425 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
ScheduleDAGInstrs comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152207 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
84b454d1a270a5d685e01686ed15e68c44b0b56a |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched preparation: modularize schedule emission. ScheduleDAG has nothing to do with how the instructions are scheduled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152206 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
73ba69b6843f7f23345b1e8745cb328952cae0d8 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched preparation: modularize schedule printing. ScheduleDAG will not refer to the scheduled instruction sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152205 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
4c727204271067f3dbf50bd23098b2df8e1cc47a |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched preparation: modularize schedule verification. ScheduleDAG will not refer to the scheduled instruction sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152204 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGVLIW.cpp
|
dbdca36af8ee6028dbea93c639408ba95e5fda2e |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
0df7f8821cc3ce26843b4fb63456cb4ccb7e4153 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Added -view-misched=dags options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152178 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
56b94c52c9bf0342106ca7d274b9bb469d5ef619 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Cleanup in preparation for misched: Move DAG visualization logic. Soon, ScheduleDAG will not refer to the BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152177 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
cheduleDAGPrinter.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
8ceaa660bfec72249976c1f411db7f40cbc438bb |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Added MachineBasicBlock::getFullName() to standardize/factor codegen diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152176 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
acddd4963d2f3b5fd94ab872b4fd393b34c80e5f |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152175 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGISel.cpp
|
084e179f090f9a47bdf66f49775a125f4a2a8a8c |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Cleanup: DAG building is specific to either SD or MI scheduling. Not part of the target interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152174 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.h
|
e75537a243858d8293832109e61bafc8484bb52a |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152173 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
6cfb14f6df5fb772395d78b4c908a448010d30b0 |
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: Use the StartBlock/FinishBlock hooks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152172 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
8938895a8338e6084eb12a2bb4bf044928436173 |
07-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add the DW_AT_APPLE_runtime_class attribute to forward declarations as well as completely defined classes. This fixes rdar://10956070 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152171 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
03be3622aae67aa095bc047bcac88cdebebaafd6 |
07-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
Extend r148086 to check for [r +/- reg] address mode. This fixes queens performance regression (due to increased register pressure from overly aggressive pre-inc formation). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152162 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c511c2827d9cebd16bc63041b5812f1fc5d57e06 |
06-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hoist common code out of if statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152153 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8250d7385a16e8d586f608b3040eb6738bbf8e55 |
06-Mar-2012 |
Evan Cheng <evan.cheng@apple.com> |
Avoid finalizeBundles infinite looping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152089 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
afd3d56b9dc791d37120922318293a021bd35598 |
06-Mar-2012 |
Owen Anderson <resistor@mac.com> |
Make it possible for a target to mark FSUB as Expand. This requires providing a default expansion (FADD+FNEG), and teaching DAGCombine not to form FSUBs post-legalize if they are not legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152079 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
8019aac390baf43b3907d92928bad7fbe62588c6 |
06-Mar-2012 |
Stephen Hines <srhines@google.com> |
Merge with upstream LLVM @152063 Removed call to getsid() from LockFileManager.cpp, since bionic doesn't have support for it. Build updates +TableGenAction.cpp +X86ModRMFilters.cpp -InstrEnumEmitter.cpp -JITDebugRegisterer.cpp -MCLoggingStreamer.cpp +Hashing.cpp -ElfCodeEmitter.cpp -ElfWriter.cpp -ObjectCodeEmitter.cpp +DataStream.cpp +StreamableMemoryObject.cpp +CmpInstAnalysis.cpp +LockFileManager.cpp +IntrusiveRefCntPtr.cpp +ThreadSanitizer.cpp +ARMMachineFunctionInfo.cpp +ARMELFObjectWriter.cpp +MipsAnalyzeImmediate.cpp +MipsMachineFunction.cpp +X86MachineFunctionInfo.cpp +X86ELFObjectWriter.cpp +X86WinCOFFObjectWriter.cpp +ResourcePriorityQueue.cpp +ScheduleDAGVLIW.cpp +MachineCopyPropagation.cpp +MachineScheduler.cpp +RegAllocBase.cpp +libLLVMVectorize Change-Id: I69e700fe357e275ec509af1daaa7408cd3cde3a1
ndroid.mk
electionDAG/Android.mk
|
c02a5c5e8d9c1fd2a20ad4aed40f328564e95b40 |
05-Mar-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge-20120305 Conflicts: lib/Support/Atomic.cpp Change-Id: I563b3bc2a82942ccbae5bed42e53b9149a8bf3a0
|
c6449b636f4984be88f128d0375c056ad05e7e8f |
05-Mar-2012 |
Jim Grosbach <grosbach@apple.com> |
Make MCRegisterInfo available to the the MCInstPrinter. Used to allow context sensitive printing of super-register or sub-register references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152043 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c27faccb3cf67e469f4217e98c20ef9ff2b95241 |
05-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Fix warnings about adding a bool to a string. Patch by Sean Silva! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152042 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9ebfbf8b9fd5f982e0db9293808bd32168615ba9 |
05-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert more GenRegisterInfo tables from unsigned to uint16_t to reduce static data size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152016 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
fConversion.cpp
iveVariables.cpp
achineCopyPropagation.cpp
achineInstrBundle.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
rocessImplicitDefs.cpp
egisterCoalescer.cpp
egisterScavenging.cpp
|
92b7df07afc90ea5ecc1d9c4ede80a3a3468c577 |
04-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop fixing bad machine code in LiveIntervalAnalysis. The first def of a virtual register cannot also read the register. Assert on such bad machine code instead of trying to fix it. TwoAddressInstructionPass should never create code like that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152010 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8d9c3a4ee739d0cb508e7a982bfbb1fb52cb0ec4 |
04-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop adding <imp-def> operands when coalescing sub-registers. We are already setting <undef> flags, and that is good enough. The <imp-def> operands don't mean anything any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152009 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
e4fd907e72a599eddfa7a81eac4366b5b82523e3 |
04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store register overlaps to reduce static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152001 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
smPrinter/DwarfDebug.cpp
ranchFolding.cpp
allingConvLower.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
xecutionDepsFix.cpp
nterferenceCache.cpp
achineCSE.cpp
achineCopyPropagation.cpp
achineInstr.cpp
achineLICM.cpp
achineRegisterInfo.cpp
egAllocBase.cpp
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterClassInfo.cpp
egisterCoalescer.cpp
egisterScavenging.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
b6632ba380cf624e60fe16b03d6e21b05dd07724 |
04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t instead of unsigned to store registers in reg classes. Reduces static data size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151998 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
egAllocPBQP.cpp
egisterClassInfo.cpp
|
015f228861ef9b337366f92f637d4e8d624bb006 |
04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store registers in callee saved register tables to reduce size of static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151996 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
achineFunction.cpp
rologEpilogInserter.cpp
egisterClassInfo.cpp
egisterClassInfo.h
egisterScavenging.cpp
|
b83e2bbfbc107a71632bd42f2be8186554b16e1f |
02-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Grammar-o in function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
61cafd14491ff7d8183c1593edb7725e8732de38 |
02-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151874 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
50e266135edb896e037c1a8f22a2fafac84eea86 |
02-Mar-2012 |
Eric Christopher <echristo@apple.com> |
If the linkage name doesn't exist we're supposed to emit a reference to the string table for the function name, not the function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7550f7dce65f96aa2e95c60b04d6c9650343a5df |
02-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Revert "Reorder the sections being output to reduce the number of assembler" The inline table needs to be constructed ahead of time so that it doesn't try to create new strings while we're emitting everything. This reverts commit a8ff9bccb399183cdd5f1c3cec2bda763664b4b0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151864 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
12313a56ec1f17cb7636773b1a6448917835f838 |
01-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Reorder the sections being output to reduce the number of assembler fixups that are being used to determine section offsets. Reduces the total number of fixups by 50% for a non-trivial testcase. Part of rdar://10413936 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151852 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
647c0ce48cdbefc22c221ffeb892e73ccd155009 |
01-Mar-2012 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Minimal changes for LLVM to compile under VS11. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151849 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
391016025a72612577cc7b8046fed60bed1aa858 |
01-Mar-2012 |
James Molloy <james.molloy@arm.com> |
Fix a codegen fault in which log2 or exp2 could be dead-code eliminated even though they could have sideeffects. Only allow log2/exp2 to be converted to an intrinsic if they are declared "readnone". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
66c994c2dbd1a76418fdd0acb138aa029538ffe5 |
01-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make InlineSpiller bundle-aware. Simply treat bundles as instructions. Spill code is inserted between bundles, never inside a bundle. Rewrite all operands in a bundle at once. Don't attempt and memory operand folding inside bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151787 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
741981adf3a2bc0c6652c9c4ec846250950f3e68 |
01-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move getBundleStart() into MachineInstrBundle.h. This allows the function to be inlined, and makes it suitable for use in getInstructionIndex(). Also provide a const version. C++ is great for touch typing practice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151782 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
275ff9bb17698a5eee613c20eca31b4835ae60db |
01-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Don't redundantly copy implicit operands when rematerializing. While we're at it - don't copy vreg implicit operands while rematerializing. This fixes PR12138. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151779 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
2987cbcdaef9e14f635b6f9ac32c58ff26a2fc0f |
29-Feb-2012 |
Jean-Baptiste Queru <jbq@google.com> |
resolved conflicts for merge of 8f698b54 to master Change-Id: Ie502ec01a03b2f9a8e015a2b83139f56fd84b91e
|
369c4a40cd8c97e1e513ec8c6eaeee26e6adfc9b |
19-Feb-2012 |
Daniel Malea <daniel.malea@intel.com> |
Build FileCheck and enable DWARF emission for target eng builds - conditionally enable AsmPrinter Dwarf bits for eng builds - build script for FileCheck Change-Id: I68c5f9b2f28b36a779cf76e9161f740994c619f5
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
|
f1820b54e4d08ed78ca76b80b8bebb91cdc798a5 |
29-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
LegalizeIntegerTypes: Reorder operations in the "big shift by small amount" optimization, making the lives of later passes easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
a36fe736458d242e1ae4200c1a8dd42f662851fb |
29-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an analyzeVirtReg() function. This function does more or less the same as MI::readsWritesVirtualRegister(), but it supports bundles as well. It also determines if any constraint requires reading and writing operands to use the same register. Most clients want to know. Use the more modern MO.readsReg() instead of trying to sort out undefs and partial redefines. Stop supporting the extra full <imp-def> operand as an alternative to <def,undef> sub-register defines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151690 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
30e98a03a3c524026e2da2607e04bb655b0b6350 |
29-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move the operand iterator into MachineInstrBundle.h where it belongs. Extract a base class and provide four specific sub-classes for iterating over const/non-const bundles/instructions. This eliminates the mystery bool constructor argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151684 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1485455be0310c6b24f096823029e08867531016 |
28-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Kill off LiveRangeEdit::getNewVRegs and LiveRangeEdit::getUselessVRegs. These methods are no longer needed now that LinearScan has gone away. (Contains tweaks trivialSpillEverywhere to enable the removal of getNewVRegs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151658 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
egAllocBasic.cpp
piller.cpp
|
4bfcd4acbc7d12aa55f8de9af84a38422f0f6d83 |
28-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit r151623 with fix. Only issue special no-return calls if it's a direct call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151645 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
a3b2121ccf4f048640b4d79689b0e4a3906143f2 |
28-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix off-by one in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151644 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
3bf15ced2b91661ac314911c1f28332da0e1c37c |
28-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
LegalizeIntegerTypes: Reenable the large shift with small amount optimization. To avoid problems with zero shifts when getting the bits that move between words we use a trick: first shift the by amount-1, then do another shift by one. When amount is 0 (and size 32) we first shift by 31, then by one, instead of by 32. Also fix a latent bug that emitted the low and high words in the wrong order when shifting right. Fixes PR12113. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151637 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
20bd5296cec8d8d597ab9db2aca7346a88e580c8 |
28-Feb-2012 |
Daniel Dunbar <daniel@zuster.org> |
Revert r151623 "Some ARM implementaions, e.g. A-series, does return stack prediction. ...", it is breaking the Clang build during the Compiler-RT part. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1c239200e41a816dcd15f1c9a1ed911cb399bb2e |
28-Feb-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Code cleanup following CR by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151627 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
21ef70ed4f655151a983788ce634787c995c7e2f |
28-Feb-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in the code that builds SDNodes from vector GEPs. When the GEP index is a vector of pointers, the code that calculated the size of the element started from the vector type, and not the contained pointer type. As a result, instead of looking at the data element pointed by the vector, this code used the size of the vector. This works for 32bit members (on 32bit systems), but not for other types. Added code to peel the vector type and added a test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151626 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ec52aaa12f57896fc806e849fa21a61603050ac4 |
28-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Some ARM implementaions, e.g. A-series, does return stack prediction. That is, the processor keeps a return addresses stack (RAS) which stores the address and the instruction execution state of the instruction after a function-call type branch instruction. Calling a "noreturn" function with normal call instructions (e.g. bl) can corrupt RAS and causes 100% return misprediction so LLVM should use a unconditional branch instead. i.e. mov lr, pc b _foo The "mov lr, pc" is issued in order to get proper backtrace. rdar://8979299 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151623 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
2129a0f6773b3625ddc5d541fe454a9a923cec2a |
28-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in MachineCSE. Don't attempt to extend physreg live ranges across calls. <rdar://problem/10942095> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151610 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
9ca12d2e2f14b0b59c839943e58d8aa5d1a271cb |
28-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in the machine code verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151607 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
921c9bd91f59937e25e754e19832c40b2f130d63 |
28-Feb-2012 |
Chad Rosier <mcrosier@apple.com> |
Fix 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151599 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
b266cd0e9824db48804c785b2c48b43be0c0f7dd |
27-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR12090: clear def maps of aliases when visiting a copy. e.g. %S5<def> = COPY %S0<kill> First clear def map of Q1, etc. No small test case available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151574 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
121b179edf28040b8fa4c99e0835e4560cf3a5d4 |
27-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update machine code verifier. After the SlotIndex slot names were updated, it is possible to apply stricter checks to live intervals. Also treat bundles as bags of operands when checking live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151531 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
c69cbd0a7431b047dbc4a9758e81bf122926ba0a |
25-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Make the peephole optimizer clear kill flags on a vreg if it's about to add new uses of the vreg, since the old kills may no longer be valid. This was causing -verify-machineinstrs to complain about uses after kills, and could potentially have been causing subtle register allocation issues, but I haven't come across a test case yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151425 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
3b26eb62946a64409f81c8089a362eb582114342 |
25-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Fixed typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151417 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
f79b489571610cc5a97c050415b982e94a9989fd |
24-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add missing static git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151396 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
27bc818eaf73efe169f95c4dd8f564fd051dd824 |
24-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a -stress-regalloc=<N> option. This will limit all register classes to N registers in order to stress test register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151379 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
f77c03a8599ca354393292bb6c918ea8dab6a21d |
24-Feb-2012 |
Hal Finkel <hfinkel@anl.gov> |
Don't crash when a glue node contains an internal CopyToReg This is necessary to support the existing ppc lowering code for indirect calls. Fixes PR12071. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
8b93ff298cbaa8a16f950374e1be1f7e5114da8f |
24-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
SDAGBuilder: Remove register sets that were never read and prune dead code surrounding it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
aaad5f2b9a86982c3bc5198d404a1a8c850521cd |
24-Feb-2012 |
Nick Lewycky <nicholas@mxc.ca> |
ScheduleDAGInstrs.h:155: warning: suggest parentheses around `&&' within `||'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151355 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
702d489a959b202ab06ce4bafa0bcb1fbfd2c3e4 |
24-Feb-2012 |
Andrew Trick <atrick@apple.com> |
PostRA sched: speed up physreg tracking by not abusing SparseSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151348 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
d18134f11621c2ff4d2bde6effb9c7115944f9fe |
24-Feb-2012 |
Pete Cooper <peter_cooper@apple.com> |
Turn avx insert intrinsic calls into INSERT_SUBVECTOR DAG nodes and remove duplicate patterns for selecting the intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
178606d92e636bb91ffbce3c4387ce059ed32953 |
24-Feb-2012 |
Eric Christopher <echristo@apple.com> |
If the Address of a variable is an argument then treat the entire variable declaration as an argument because we want that address anyhow for our debug information. This seems to fix rdar://9965111, at least we have more debug information than before and from reading the assembly it appears to be the correct location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151335 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5b13ed1ac9745f21f30ddb07015cf27959c194c4 |
24-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Tabs, formatting and long lines oh my! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151334 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
9e8ceb0bac778595c5dbabe900819c3f575c5e5f |
24-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
Allow an integer to be converted into an MMX type when it's used in an inline asm. <rdar://problem/10106006> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151303 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b6bd8ccd02f7c2febee19b1eae2cb1ce90ad4001 |
23-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
BitVectorize loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151274 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
46252d8ea1d264ca341e3ca3e7f4e3c82e32940e |
23-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
post-ra-sched: Turn the KillIndices vector into a bitvector, it only stored two meaningful states. Rename it to LiveRegs to make it more clear what's stored inside. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151273 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
49b726c339b6f3b9c51638bd0f453610f9765f2d |
23-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
post-ra-sched: Replace a std::set of regs with a bitvector. Assuming that a single std::set node adds 3 control words, a bitvector can store (3*8+4)*8=224 registers in the allocated memory of a single element in the std::set (x86_64). Also we don't have to call malloc for every register added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151269 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
976647d95da89e38c66d9ed869a9d345b36d386d |
23-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make calls scheduling boundaries post-ra. Before register allocation, instructions can be moved across calls in order to reduce register pressure. After register allocation, we don't gain a lot by moving callee-saved defs across calls. In fact, since the scheduler doesn't have a good idea how registers are used in the callee, it can't really make good scheduling decisions. This changes the schedule in two ways: 1. Latencies to call uses and defs are no longer accounted for, causing some random shuffling around calls. This isn't really a problem since those uses and defs are inaccurate proxies for what happens inside the callee. They don't represent registers used by the call instruction itself. 2. Instructions are no longer moved across calls. This didn't happen very often, and the scheduling decision was made on dubious information anyway. As with any scheduling change, benchmark numbers shift around a bit, but there is no positive or negative trend from this change. This makes the post-ra scheduler 5% faster for ARM targets. The secret motivation for this patch is the introduction of register mask operands representing call clobbers. The most efficient way of handling regmasks in ScheduleDAGInstrs is to model them as barriers for physreg live ranges, but not for virtreg live ranges. That's fine pre-ra, but post-ra it would have the same effect as this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151265 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
92fc97afa742000aeb81d862abbaaba50b27a000 |
23-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Strip a layer of boilerplate from the VLIWPacketizer by storing the scheduler as an opaque pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151252 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
1d2d5a0227d6f1381f3ffa9c331045bdfa409ee8 |
23-Feb-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix to make sure that a comdat group gets generated correctly for a static member of instantiated C++ templates. Patch by Kristof Beyls! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151250 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
0822e010d1b55eb24e746a575a31235f45110ac3 |
23-Feb-2012 |
Eric Christopher <echristo@apple.com> |
More newline cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
244136770babf37d53db6b57a9e575097c73e3d0 |
23-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Add some handy-dandy newlines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151234 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
63d578b5aa0f07a0789d3bae84750ea145ec06b1 |
23-Feb-2012 |
Andrew Trick <atrick@apple.com> |
misched: cleanup reaching def computation Ignore undef uses completely. Use a more explicit SlotIndex API. Add more explicit comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151233 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
81a682a4c004b0f44452ef824637a1b6face178f |
23-Feb-2012 |
Andrew Trick <atrick@apple.com> |
PostRASched: Convert physreg def/use tracking to Jakob's SparseSet. Added array subscript to SparseSet for convenience. Slight reorg to make it easier to manage the def/use sets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151228 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
f19a5926cb1fcd145a61116b7dd2b18312e76fd7 |
23-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in FixupKills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151226 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
bbad2f1040fea671b4413f53b3fd816cb7bd2443 |
23-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in CriticalAntiDepBreaker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151223 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
cf14613455bc32b6a17821808595263e061335bc |
23-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track reserved registers separately from RegsAvailable. The bulk masking operations from register mask operands don't account for reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151222 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
02634be4d4c8a72b652ae3e76b327a12593b03d4 |
22-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't compute latencies for regmask operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151211 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
be2af7ee781cd0083124514f497b8cf3070776ec |
22-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in RegisterScavenging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151210 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
8ae3ac7a8c2112ab739b4a0dc24f28b2bbb84117 |
22-Feb-2012 |
Andrew Trick <atrick@apple.com> |
misched: Use SparseSet for VRegDegs for constant time clear(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151205 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
d55a2664f9493a4c3be242a75d339fac0ebe2e21 |
22-Feb-2012 |
Hal Finkel <hfinkel@anl.gov> |
Allow the use of an alternate symbol for calculating a function's size. The standard function epilog includes a .size directive, but ppc64 uses an alternate local symbol to tag the actual start of each function. Until recently, binutils accepted the .size directive as: .size test1, .Ltmp0-test1 however, using this directive with recent binutils will result in the error: .size expression for XXX does not evaluate to a constant so we must use the label which actually tags the start of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151200 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c9c137b463b953fbf8942f655d67f6dc1a0f7965 |
22-Feb-2012 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Properly emit _fltused with FastISel. Refactor to share code with SDAG. Patch by Joe Groff! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151183 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
2fc0977a988a49dacb0ca0954e40ddc4e8849d4c |
22-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Comment from code review git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151178 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
90f20044ade3712c8b0c3f4ebe47d57ad15ae6ce |
22-Feb-2012 |
Chad Rosier <mcrosier@apple.com> |
Remove extra semi-colons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151169 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
91ba63d230bfc3e035d2851d039e08f34f0b9bbd |
22-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151167 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
8b6fe6b651064da51bb9bc63ece8bf1f2a36d66a |
22-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Only add DW_AT_prototyped if we're working with a C-like language. Worth another 45k (1%) off of a large C++ testcase. rdar://10909458 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151144 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
438b092a4bba8d766316542ced10b7b028bad82c |
22-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Add the source language into the compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151143 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
e2dc9336d15ad3ca4f38d296d17f6682829b80b4 |
22-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Remove extra semi-colon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151142 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
cc77b54036cfaaab9e0d9f2c731efbd2b7753cc9 |
22-Feb-2012 |
Andrew Trick <atrick@apple.com> |
misched: DAG builder should not track dependencies for SSA defs. The vast majority of virtual register definitions don't need an entry in the DAG builder's VRegDefs set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151136 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
b4566a999970b514d7c6973d99e293a6625d3f70 |
22-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Initialize SUnits before DAG building. Affect on SD scheduling and postRA scheduling: Printing the DAG will display the nodes in top-down topological order. This matches the order within the MBB and makes my life much easier in general. Affect on misched: We don't need to track virtual register uses at all. This is awesome. I also intend to rely on the SUnit ID as a topo-sort index. So if A < B then we cannot have an edge B -> A. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151135 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
atencyPriorityQueue.cpp
achineScheduler.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
44d23825d61d530b8d562329ec8fc2d4f843bb8d |
22-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Make all pointers to TargetRegisterClass const since they are all pointers to static data that should not be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151134 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/FastISel.cpp
|
a240743ad954c657015b3ee3631e30fd6a2e86b2 |
22-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use SparseSet for the RAFast live virtual register map. This makes RAFast 4% faster, and it gets rid of the dodgy DenseMap iteration. This also revealed that RAFast would sometimes dereference DenseMap iterators after erasing other elements from the map. That does seem to work in the current DenseMap implementation, but SparseSet doesn't allow it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151111 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4586d257abf13b57d115d6bac9fb38ddc811acaf |
21-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Add API "handleMoveIntoBundl" for updating liveness when moving instructions into bundles. This method takes a bundle start and an MI being bundled, and makes the intervals for the MI's operands appear to start/end on the bundle start. Also fixes some minor cosmetic issues (whitespace, naming convention) in the HMEditor code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151099 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
35f225aa2c04ca2420161cca812cb3eb611bde51 |
21-Feb-2012 |
Eric Christopher <echristo@apple.com> |
There's no need for a DW_AT_byte_size on a pointer type. Part of rdar://10493979 where it reduces by about .5% (10k) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
19273aec441411b4d571fdb87c6daa0fbe7a33a0 |
21-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Clear virtual registers after they are no longer referenced. Passes after RegAlloc should be able to rely on MRI->getNumVirtRegs() == 0. This makes sharing code for pre/postRA passes more robust. Now, to check if a pass is running before the RA pipeline begins, use MRI->isSSA(). To check if a pass is running after the RA pipeline ends, use !MRI->getNumVirtRegs(). PEI resets virtual regs when it's done scavenging. PTX will either have to provide its own PEI pass or assign physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151032 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
rologEpilogInserter.cpp
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
cheduleDAGInstrs.cpp
|
e8ccb049136506cb71b84a55000bad3c1440ee7c |
21-Feb-2012 |
Andrew Trick <atrick@apple.com> |
StackSlotColoring does not use a VirtRegMap git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151031 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
fd6d3217d3b577e704ff4826775b5938c23b9e73 |
21-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Fix some bugs in HMEditor's moveAllOperandsInto logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151006 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
01b623c8c2d1bd015a8bb20eafee3322575eff8f |
21-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix machine-cp by having it to check sub-register indicies. e.g. ecx = mov eax al = mov ch The second copy is not a nop because the sub-indices of ecx,ch is not the same of that of eax/al. Re-enabled machine-cp. PR11940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151002 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
asses.cpp
|
6259dcdc576f4e35cdab27465a355630950b621b |
20-Feb-2012 |
James Molloy <james.molloy@arm.com> |
Teach the DAGCombiner that certain loadext nodes followed by ANDs can be converted to zeroexts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
df7e8bd7020c300a3c17f5858d281828a5e0cf87 |
20-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Make post-ra tail duplication bundle safe. No test case as recent codegen flow changes have already hidden the bug. rdar://10893812 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150949 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
7db76e7ca39905bbe3cb79158af0a93ca66faff8 |
19-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence operator precedence warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150921 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b0934ab7d811e23bf530371976b8b35f3242169c |
19-Feb-2012 |
Ahmed Charles <ace2001ac@gmail.com> |
Remove dead code. Improve llvm_unreachable text. Simplify some control flow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150918 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
trongPHIElimination.cpp
|
6aceab139205255ac44182f51819b9b8716cf477 |
19-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Add machinery for pushing live ranges onto bundle starts while bundling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150915 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4a0b2d658ae9e296598f8c8ac36c7fe571a7eec5 |
19-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Simplify moveEnteringDownFrom rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150914 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
038d2d5cede26b1ab63a732348b60ffc430dd7b0 |
19-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Skip through instructions rather than operands when looking for last use slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150912 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ac027144e8e22563c9bb057598c710aac57c072f |
19-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Fix TODO and trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150910 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
55fed62c9eca0c8ebcaa6cc2fd65a173d37b3951 |
19-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Defer sanity checks on live intervals until after all have been updated. Hold (LiveInterval, LiveRange) pairs to update, rather than vregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150909 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ecb50624d1e99596fdb289200cd1473cec84e097 |
18-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Bring HMEditor into line with LLVM coding standards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150851 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9b5d6b860c7264e1dd8c5b757dfb4458dccdc27e |
18-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Ignore the lifetime intrinsics in fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150848 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0b923d9ee9e406c7dadc0803106656391a0ffd68 |
17-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't print out pointer values in SUnit::dump(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150842 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
0310038d5a4fe71c62f78470907c61188c613fa3 |
17-Feb-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Sink variable into assert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150841 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fbc8dd306aa7699a866db278db08d842762b2dc2 |
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Add support for regmask slots to HMEditor. Also fixes a comment error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150840 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d9f0ff56a1878347fe5a0f162ef8c2ef2b63aeb5 |
17-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Transfer regmasks to MRI. MRI keeps track of which physregs have been used. Make sure it gets updated with all the regmask-clobbered registers. Delete the closePhysRegsUsed() function which isn't necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150830 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
egAllocFast.cpp
irtRegMap.cpp
|
3dc7c5138d219048d69952bead22f75efb984fa3 |
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Refactor 'handleMove' code in live intervals. Clients of LiveIntervals won't see any changes. Internally this adds a private inner class HMEditor, to LiveIntervals. HMEditor provides an API for updating live intervals when code is moved or bundled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150826 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7842a741eb0e1baa35af8c3bb5884655c1edaa9e |
17-Feb-2012 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150820 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveRangeEdit.cpp
egisterCoalescer.h
|
0f7de3542f792da8abced2ad1809b2dfa8a4daff |
17-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r150288, "Allow Post-RA LICM to hoist reserved register reads." This caused miscompilations on out-of-tree targets, and possibly i386 as well. I'll find some other way of hoisting %rip-relative loads from loops containing calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150816 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
50f603fff686df4a5ffaf01aa7af43aa64cf4615 |
17-Feb-2012 |
David Chisnall <csdavec@swan.ac.uk> |
... and it's probably best to use the correct alignment, rather than just guessing that it's the same as the size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150813 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
ca5b752d1873707c5c7d846515998ccf5002edca |
17-Feb-2012 |
David Chisnall <csdavec@swan.ac.uk> |
It turns out that putting an 8-byte symbol in a 4-byte section makes Solaris ld sulk. GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons... Thanks to Anton, Duncan and Rafael for helping me track this down. Pointy hat to Rafael for introducing the bug in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150811 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
00195d828b934455da597dbba72f1aade4e53393 |
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Reverse iterator - should be incrementing rather than decrementing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150778 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
29879d7f86cac0f6a546675c5172a22ab7176519 |
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
MachineScheduler shouldn't use/preserve LiveDebugVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150773 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
5d0827582ff5b22d92af7a24d61584c73d0bb8fa |
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Oops - isRegLiveIntoSuccessor is used in non-assert builds now. Remove NDEBUG guards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150771 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c2e08db4e5a8e1b3c253fb07c6eb736dfb66fe59 |
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Re-enable 150652 and 150654 - Make FPSCR non-reserved, and make MachineCSE bail on reserved registers. This *should* be safe as of r150786. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150769 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
af8b34dae90fd6d146a3b4a83b50751ed21f07c8 |
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Turn off assertion, conservatively compute liveness for live-in un-allocatable registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150768 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1a7ea9dd0431287a7346cd107680deb444d39f51 |
16-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Disable machine copy propagation for now. It's known to be buggy (PR11940) and introduces subtle miscompiles in many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150703 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
6afa3f744a57933aef57b94a8e7a7148065c432c |
16-Feb-2012 |
James Molloy <james.molloy@arm.com> |
Remove extraneous #include and spelling mistake introduced in r150669. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6660c05da33a93a011977454239cead97c3ff579 |
16-Feb-2012 |
James Molloy <james.molloy@arm.com> |
Modify the algorithm when traversing the DAGCombiner's worklist to be O(log N) for all operations. This fixes a horrible worst case with lots of nodes where 99% of the time was being spent in std::remove. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150669 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1834df8384354217c59e1c5dd8bc091c11b8ca43 |
16-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Oop - r150653 + r150654 broke one of my test cases. Backing out for now... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150655 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
f7e31b9e81da165da0e18895713385af73e3b5ee |
16-Feb-2012 |
Lang Hames <lhames@gmail.com> |
MachineCSE shouldn't extend the live ranges of reserved or allocatable registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150653 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
a230262791397c88beeb7ca9bb97c8a8a026e848 |
16-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register masks in branch folding. Don't attempt to move instructions with regmask operands. They are most likely calls anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150634 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
e746186ed4f61bf5eba13112cb8419c95cf58e52 |
16-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Fix library visibility problems with VLIWPacketizer. The existing framework for postra scheduling is library local. We want to keep it that way. Soon we will have a more general MachineScheduler interface. At that time, various bits will be exposed to targets. In the meantime, the VLIWPacketizer wants to use ScheduleDAGInstrs directly, so it needs to wrapped in a PIMPL to avoid exposing it to the target interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150633 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
cc2037be2cf0159e9f7a917a4db434258fe6eb6b |
16-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Make LiveIntervals::handleMove() bundle aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150630 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
2de3ff50439918b5a822b3d06d4d7c5826e11e6c |
15-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
Use 'getDataNoRel' for the section kind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150628 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
cc72913268ccf5e0fb2785496a1dee764ecce5ff |
15-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Fix assertion condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150627 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
057d521e3d91a894f6c38fcbc21ee5950fbdf7b1 |
15-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
Modify the code that emits the module flags to use the new module flags accessor method. This allows the target lowering code to not have to deal with MDNodes. Also, avoid leaking memory like a sieve by not creating a global variable for the image info section, but just emitting the code directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150624 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
68c36e0c26d6abc6e19ac66a24061d8c4a187767 |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Don't expose DefaultVLIWScheduler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150619 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
862fd5f77a1657380242cdcb9b0a7f9225dae426 |
15-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Remove overly conservative assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150608 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ebafa0c61170682ec0d7025f46f187a164b0db7e |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Generic "VLIW" packetizer based on a DFA generated from target itinerary. Patch by Sundeep! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150607 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
900d7b78e6cacca6c6062abf803d7ab1a4e39b38 |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Revert r150565 again. Appears to be a stage2 failure with dragonegg. I'll put MachineLICM back before PEI. All my arm/x86 benchmarks look good, but buildbots don't like it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150568 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
788066a1f46872d076d4c7ae561b76237a625b69 |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Reapply r150565 with the typo fix properly merged. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150567 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
40bb92a5cc199d5973b7306345e3329c3477ac86 |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
reverting r150565. Premature push. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150566 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
352aa4f67f968ca1a45f7cef0fd480b9c94f5bbe |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move PostRAMachineLICM into MachineLateOptimization. It now runs after PEI! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150565 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
79bf288584215f3f3c49050ac1691a6b29c56fec |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Allow CodeGen (llc) command line options to work as expected. The llc command line options for enabling/disabling passes are local to CodeGen/Passes.cpp. This patch associates those options with standard pass IDs so they work regardless of how the target configures the passes. A target has two ways of overriding standard passes: 1) Redefine the pass pipeline (override TargetPassConfig::add%Stage) 2) Replace or suppress individiual passes with TargetPassConfig::substitutePass. In both cases, the command line options associated with the pass override the target default. For example, say a target wants to disable machine instruction scheduling by default: - The target calls disablePass(MachineSchedulerID) but otherwise does not override any TargetPassConfig methods. - Without any llc options, no scheduler is run. - With -enable-misched, the standard machine scheduler is run and honors the -misched=... flag to select the scheduler variant, which may be used for performance evaluation or testing. Sorry overridePass is ugly. I haven't thought of a better way without replacing the cl::opt framework. I hope to do that one day... I haven't figured out why CodeGen uses char& for pass IDs. AnalysisID is much easier to use and less bug prone. I'm using it wherever I can for internal implementation. Maybe later we can change the global pass ID definitions as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150563 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
5e108eeeef34dd2afa00d1da77bca47188de4244 |
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig::disablePass/substitutePass as a general mechanism to override specific passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150562 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
f58e37f957191a3e41f605628c6169fbb1d4f922 |
15-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Don't emit live ranges for physregs live-ins that are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150553 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
da7984fbbac967ddbe5de4e789f8f37c673a7d75 |
15-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Disentangle moving a machine instr from updating LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150552 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineScheduler.cpp
|
bbfa5c02be2ef2a9ff965a4dcfe9e99665dcf0ef |
15-Feb-2012 |
Pete Cooper <peter_cooper@apple.com> |
Added hook to let targets custom lower splitting of illegal vectors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
d5d61edfc66887b3b1962251da877b284b1478ab |
15-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix global live range splitting regmask accuracy. Pretend that regmask interference ends at the 'dead' slot, even when there is other interference ending at the 'reg' slot of the same instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150531 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
|
cac5fa39bd861861018bb2c3f0b36cc71c2caa38 |
15-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix details in local live range splitting with regmasks. Perform all comparisons at instruction granularity, and make sure register masks on uses count in both gaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150530 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
1cf8b0f2a5435d8444b6cc7d4a27eef424398273 |
15-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in findRegisterDefOperandIdx(). Only accept register masks when looking for an 'overlapping' def. When Overlap is not set, the function searches for a proper definition of Reg. This means MI->modifiesRegister() considers register masks, but MI->definesRegister() doesn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150529 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6b7913893bcd47f52eff71e39e50c42511c4ed36 |
15-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the proper clobber check in handleLiveInRegister(). When a physreg is live in to a basic block, look for any instruction in the block that clobbers the physreg. The instruction doesn't have to properly redefine the register, any overlapping clobber is OK. This slightly changes live ranges when compiling with register masks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150528 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f658af5484855b37c6c651e9e5e671982d39af26 |
15-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dump live intervals in numerical order. The old DenseMap hashed order was very confusing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150527 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
94b6e1418202e9f6cf54856d5ec2891c9012777a |
15-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Don't create a new copy of reserved regs - we already have one handy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150525 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b464d3ff72790260e8c2068afe856fd7299a6834 |
14-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
Add code to the target lowering object file module to handle module flags. The MachO back-end needs to emit the garbage collection flags specified in the module flags. This is a WIP, so the front-end hasn't been modified to emit these flags just yet. Documentation and front-end switching to occur soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150507 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
03698deb25215bf3b4aa2e3ff731ea38923a928c |
14-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Update MachineVerifier to check the new physreg live-in rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150496 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
342c64c90418a97ec26303c27d1829edd994d9a9 |
14-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Tighten physical register invariants: Allocatable physical registers can only be live in to a block if it is the function entry point or a landing pad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150494 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8b7c3d0ee42938a9e6ca37239cc327bd9f4c0cd0 |
14-Feb-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix PR12000. Some vector operations may use scalar operands with types that are greater than the vector element type. For example BUILD_VECTOR of type <1 x i1> with a constant i8 operand. This patch fixes the assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
fc52a5232300c27d57a8a9b6cd4b8cdd5d51127a |
14-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Turn push_back loops into append/insert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150471 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
0796134bde31f6d58d077f556fd08ca3734a9e6e |
14-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Rename getExceptionAddressRegister() to getExceptionPointerRegister() for consistency with setExceptionPointerRegister(...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
cd339b71ff23327f2ef6a4c964ff3ceea20733bf |
14-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Use convenience function for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150457 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bdf9db6f4905fcbbcdbdfed328ea8b36b655dd45 |
14-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
Don't reserve the R0 and R1 registers here. We don't use these registers, and marking them as "live-in" into a BB ruins some invariants that the back-end tries to maintain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150437 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
150a371569d100e14a438cd4f89904da24c6cb20 |
14-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
Don't recalculate the size of the vector each time through the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150436 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
16a7ff31655aa2de65d86472edcb71cf2df3ac3a |
14-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add register mask support to ScheduleDAGRRList. The scheduler will sometimes check the implicit-def list on instructions to properly handle pre-colored DAG edges. Also check any register mask operands for physreg clobbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d35576b3c026cb323c4c240f0b20cf56089a1e5b |
13-Feb-2012 |
Andrew Trick <atrick@apple.com> |
LiveIntervalAnalysis does not depend on MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150411 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3ed4dee530984b7087dd3bbf4cfd8a3f1947c8e0 |
13-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check regmask interference for -join-physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150404 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
0877fdf30bb626217f635547ca90741a8c7558ad |
13-Feb-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in DAGCombine for the optimization of BUILD_VECTOR. We cant generate a shuffle node from two vectors of different types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2ee746b87d9471d2dc024827cacdc46114ed3708 |
12-Feb-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
This patch addresses the problem of poor code generation for the zext v8i8 -> v8i32 on AVX machines. The codegen often scalarizes ANY_EXTEND nodes. The DAGCombiner has two optimizations that can mitigate the problem. First, if all of the operands of a BUILD_VECTOR node are extracted from an ZEXT/ANYEXT nodes, then it is possible to create a new simplified BUILD_VECTOR which uses UNDEFS/ZERO values to eliminate the scalar ZEXT/ANYEXT nodes. Second, another dag combine optimization lowers BUILD_VECTOR into a shuffle vector instruction. In the case of zext v8i8->v8i32 on AVX, a value in an XMM register is to be shuffled into a wide YMM register. This patch modifes the second optimization and allows the creation of shuffle vectors even when the newly generated vector and the original vector from which we extract the values are of different types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d4a19b6a72d19a6f90b676aac37118664b7b7a84 |
11-Feb-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add support for implicit TLS model used with MS VC runtime. Patch by Kai Nacke! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150307 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
746f24b732830f434032de5d2d321e6ad1f8e782 |
11-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Add TargetPassConfig hooks for scheduling/bundling. In case the MachineScheduling pass I'm working on doesn't work well for another target, they can completely override it. This also adds a hook immediately after the RegAlloc pass to cleanup immediately after vregs go away. We may want to fold it into the postRA hook later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150298 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
5637379000b9a40f2bfee8ea238dc0d3955535ce |
11-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow Post-RA LICM to hoist reserved register reads. When using register masks, registers like %rip are clobbered by the register mask. LICM should still be able to hoist instructions reading %rip from a loop containing calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150288 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a6d513f47467b90344a74624d4fb77673942e3ce |
11-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register masks in local live range splitting. Again the goal is to produce identical assembly with register mask operands enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150287 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
fd3d4cf0ef5237bd517559703bea2310f1841a5d |
11-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't read PreRegAlloc before it is initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150286 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
938200859ec714f59f8f93acceb999e212e9c539 |
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a static MachineOperand::clobbersPhysReg(). It can be necessary to detach a register mask pointer from its MachineOperand. This method is convenient for checking clobbered physregs on a detached bitmask pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150261 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
|
6ef7da0197735a16aa534e9e2c80709d3d6e8c56 |
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add register mask support to InterferenceCache. This makes global live range splitting behave identically with and without register mask operands. This is not necessarily the best way of using register masks for live range splitting. It would be more efficient to first split global live ranges around calls (i.e., register masks), and reserve the fine grained per-physreg interference guidance for global live ranges that do not cross calls. For now the goal is to produce identical assembly when enabling register masks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150259 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
nterferenceCache.h
egAllocGreedy.cpp
|
3bf7a1cc3c090e766b8912c6a14c3e2ec5dde7f8 |
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150258 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.h
|
c667ba69ac342563c0886e20509e68705d78a0a5 |
10-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Put instruction names into an indexed string table on the side, removing a pointer from MCInstrDesc. Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150245 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAG.cpp
|
06efdd238ed7d14eaabc3b074c3b0b292c1c3127 |
10-Feb-2012 |
Andrew Trick <atrick@apple.com> |
comment grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150233 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
8dd26253f54247e77e5accfdd70e7b4bf27b39c2 |
10-Feb-2012 |
Andrew Trick <atrick@apple.com> |
RegAlloc superpass: includes phi elimination, coalescing, and scheduling. Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150226 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineScheduler.cpp
HIElimination.cpp
asses.cpp
rocessImplicitDefs.cpp
egAllocBasic.cpp
egAllocFast.cpp
egAllocGreedy.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
woAddressInstructionPass.cpp
|
16f72dd68653bd4984363483cfc15ce91fa613d4 |
10-Feb-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150225 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
4465b6f6b2ebd061f4f321e666b47d540651f686 |
10-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Remove unused 'isAlias' parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150224 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9f10ac63a3a2a74ac381a05d8ba0f7b1b455a6b6 |
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Constrain the regmask search space for local live ranges. When checking a local live range for interference, restrict the binary search to the single block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150220 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
34e85d0307e3c17e5061622dccf8a20e5457b099 |
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cache basic block boundaries for faster RegMaskSlots access. Provide API to get a list of register mask slots and bits in a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150219 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ebf2750a70df4261d3e66144ea6bcb49d41f6efb |
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Optimize LiveIntervals::intervalIsInOneMBB(). No looping and binary searches necessary. Return a pointer to the containing block instead of just a bool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150218 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f378f5fae3b7c35fc0f8996accf121ffe59093e2 |
10-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Cache iterators. Some of these are expensive to create. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150214 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
e7c2c15b0cfa14d6b273e0e95d9de133cc958da8 |
09-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add register mask support to RAGreedy. This only adds the interference checks required for correctness. We still need to take advantage of register masks for the interference driven live range splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150191 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
72a043f9d61aac53305102687a024a08d1fd8dad |
09-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Preserve physreg kills in MachineBasicBlock::SplitCriticalEdge. Failure to preserve kills was causing LiveIntervals to miss some EFLAGS live ranges. Unfortunately I've been unable to reduce a good test case yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150152 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
fb08b90bf402bcd08a3474772d505294d9d7aa79 |
09-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Fix kill flags when moving instructions using LiveIntervals::moveInstr(...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150150 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
394d71271164b9268291a2f8be1190fd4138bb77 |
09-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Remove assertion. Not all use operands are reads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150149 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f7b96311d20dc19647833ec23fc6d7870b2ffb10 |
09-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Improve TargetPassConfig. No intended functionality. Split CodeGen into stages. Distinguish between optimization and correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150122 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
78b2961f4dd525da338c976f22cede6253a24369 |
09-Feb-2012 |
Andrew Trick <atrick@apple.com> |
comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150121 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
f56ce5312448e5876ee1822facab48385ea5c0c0 |
09-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Erase dead copies that are clobbered by a call. This does make a difference, at least when using RABasic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150118 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
39284d191af214f99736e6836be4f4ff9e8f1378 |
09-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never delete instructions that define reserved registers. I think this was already the intention, but DeadMachineInstructionElim was accidentally tracking the liveness of reserved registers. Now, instructions with reserved defs are never deleted. This prevents the call stack adjustment instructions from getting deleted when enabling register masks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150116 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
a8fc171b3f703ad8bda50a22e9227eee0822eeec |
08-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register masks in MachineCopyPropagation. For simplicity, treat calls with register masks as basic block boundaries. This means we can't copy propagate callee-saved registers across calls, but I don't think that is a big deal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150108 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
1dd8c8560d45d36a8e507cd014352f1d313f9f9e |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Codegen pass definition cleanup. No functionality. Moving toward a uniform style of pass definition to allow easier target configuration. Globally declare Pass ID. Globally declare pass initializer. Use INITIALIZE_PASS consistently. Add a call to the initializer from CodeGen.cpp. Remove redundant "createPass" functions and "getPassName" methods. While cleaning up declarations, cleaned up comments (sorry for large diff). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150100 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
xpandISelPseudos.cpp
xpandPostRAPseudos.cpp
CStrategy.cpp
fConversion.cpp
ocalStackSlotAllocation.cpp
achineBlockPlacement.cpp
achineCSE.cpp
achineCopyPropagation.cpp
achineInstrBundle.cpp
achineLICM.cpp
achineSink.cpp
ptimizePHIs.cpp
asses.cpp
eepholeOptimizer.cpp
ostRASchedulerList.cpp
rologEpilogInserter.cpp
rologEpilogInserter.h
tackSlotColoring.cpp
ailDuplication.cpp
|
9d41bd5c78b99750d820e01bcd4a4e479b713d4c |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: MachineLICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150099 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
asses.cpp
|
9f17cf625dc8be1e92cd2755e2d118ce38fc7268 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150098 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
32986572bfe5a30c500d03b8d55174720f08f0bf |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: StackSlotColoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150097 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
tackSlotColoring.cpp
|
c7d081b5946b9ff9f7400d5b41f36cad3fc317aa |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: PostRAScheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150096 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
ostRASchedulerList.cpp
|
61f1e3db43e556f495b6b9360d2f550291f78471 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: BranchFolderPass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150095 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
odeGen.cpp
asses.cpp
|
1df91b0e54bc62f8fc7a06a4f75220e40aa2dfe0 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150094 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
eadMachineInstructionElim.cpp
CStrategy.cpp
achineCSE.cpp
achineCopyPropagation.cpp
achineSink.cpp
eepholeOptimizer.cpp
tackSlotColoring.cpp
|
ffea03f2165c5a4fda672495bf853aa2d8c7d1b5 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig::setOpt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150093 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
ebe18ef5c286bb7c33f6c43f1963a7d22cd73f40 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added Pass::createPass(ID) to handle pass configuration by ID git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150092 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
d2a7bedbc9d3db35ff424a6a2d257c72341af224 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: TailDuplicate::PreRegAlloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150091 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
ailDuplication.cpp
|
a94e635cec8dff2c9b39343643fe204dfab390dc |
08-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add Register mask support to RABasic. When a virtual register is live across a call, limit the search space to call-preserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150081 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
3fd3a840c50fe4ede1b200be18990bc955c536fd |
08-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of register masks in LiveIntervalAnalysis. Build an ordered vector of register mask operands (i.e., calls) when computing live intervals. Provide a checkRegMaskInterference() function that computes a bit mask of usable registers for a live range. This is a quick way of determining of a live range crosses any calls, and restricting it to the callee saved registers if it does. Previously, we had to discover call clobbers for each candidate register independently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150077 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
99a7a13f4aa5bf8f272c95f7b09ba997d2b30a35 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added MachineInstr::isBundled() to check if an instruction is part of a bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150044 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
291411c7a164dd1b347b5ef21e062120efac3db7 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
misched: bug in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150043 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
ea4312722bc3756053dc4a506320641911cd3470 |
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
stale comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150041 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
30d409ca097e35c51964c9dac642804e5e495906 |
08-Feb-2012 |
Devang Patel <dpatel@apple.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150012 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
25600cf50df79a6e7f8365a3ca7e940592e8ca74 |
06-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Expose TargetPassConfig to PEI Pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149927 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
hrinkWrapping.cpp
|
6939fde29cdd04cec9f440a9351c1c4340850e20 |
06-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Add TargetPassConfig to the PassManager for use inside passes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149926 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fb5d511c0d91b22e49b32452e8e6dea202318d80 |
06-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't explicitly renumber slot indices. We have automatic local renumbering now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149920 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
602cb9d9f2307913aa816abbe37fc158c79feb0a |
06-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure a reserved register has a live interval before merging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149910 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
8833ef03b9ceaa52063116819fff8b3d16fd8933 |
06-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
[unwind removal] Remove all of the code for the dead 'unwind' instruction. There were no 'unwind' instructions being generated before this, so this is in effect a no-op. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149906 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
aa5abe88d6aa445afa593476a665e3ab14b3524c |
06-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
[unwind removal] We no longer have 'unwind' instructions being generated, so remove the code that handles them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149901 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
6588abf377b7381274236e651462ec83052f6013 |
06-Feb-2012 |
Devang Patel <dpatel@apple.com> |
DebugInfo: Provide a new hook to encode relationship between a property and an ivar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149874 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
aae875c27ce59e1c98dbc4a2358a006f2edef433 |
06-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Move some llvm_unreachable's from r149849 out of switch statements to satisfy -Wcovered-switch-default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149860 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
5b8a1db7ea6510a2589f710d50754599da742de9 |
05-Feb-2012 |
Duncan Sands <baldrick@free.fr> |
Persuade GCC that there is nothing worth warning about here (there isn't). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149834 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
cc870a8f936bfc478b7d3d39724dd604a9de8f76 |
05-Feb-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Add additional documentation to the extract-and-trunc dagcombine optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149823 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5e25ee8a1fcf8288d00d731b0f7ab7976f33b123 |
05-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert assert(0) to llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149816 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
fConversion.cpp
achineFunction.cpp
achineModuleInfo.cpp
egAllocPBQP.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
|
18c7f80b3e83ab584bd8572695a3cde8bafd9d3c |
05-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
reapply the patches reverted in r149470 that reenable ConstantDataArray, but with a critical fix to the SelectionDAG code that optimizes copies from strings into immediate stores: the previous code was stopping reading string data at the first nul. Address this by adding a new argument to llvm::getConstantStringInfo, preserving the behavior before the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149800 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAG.cpp
|
0aad7d274d6dfb0de1ebc00600cecf5e229b7c43 |
04-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Drop the REDEF_BY_EC VNInfo flag. A live range that has an early clobber tied redef now looks like a normal tied redef, except the early clobber def uses the early clobber slot. This is enough to handle any strange interference problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149769 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
|
7e899cbb9127c02c58f6e774186a533b0d00681d |
04-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Correctly terminate a physreg redefined by an early clobber. I don't have a test that fails because of this, but a test case like CodeGen/X86/2009-12-01-EarlyClobberBug.ll exposes the problem. EAX is redefined by a tied early clobber operand on inline asm, and the live range should look like this: %EAX,inf = [48r,64e:0)[64e,80r:1) 0@48r 1@64e Previously, the two values got merged: %EAX,inf = [48r,80r:0) 0@48r With this bug fixed, the REDEF_BY_EC VNInfo flag is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149768 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c0dc1b7f9725433325ea06e1272ba7fd411c2eb1 |
04-Feb-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Fix a leak! Andy, in a previous commit you made this into an ImmutablePass so that you could add it to the PassManager, then in the next commit you left it a Pass but removed the code that added it to the PM. If you do add it to the PM then the PM should take care of deleting it, but it's also true that nothing in codegen needs this object to exist after it's done its work here. It's not clear to me which design you want; this should likely either cease to be a Pass or be added to the PM where other parts of CodeGen will request it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149765 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
3b1088a2cc15a39c7a7b8dd95a56143f1dda6863 |
04-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't store COPY pointers in VNInfo. If a value is defined by a COPY, that instuction can easily and cheaply be found by getInstructionFromIndex(VNI->def). This reduces the size of VNInfo from 24 to 16 bytes, and improves llc compile time by 3%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149763 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
iveRangeCalc.cpp
egisterCoalescer.cpp
piller.cpp
plitKit.cpp
trongPHIElimination.cpp
|
061efcfb3e79899493d857f49e50d09f29037e0a |
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
TargetPassConfig: confine the MC configuration to TargetMachine. Passes prior to instructon selection are now split into separate configurable stages. Header dependencies are simplified. The bulk of this diff is simply removal of the silly DisableVerify flags. Sorry for the target header churn. Attempting to stabilize them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149754 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
d5422654016b3ac7494db1d2ba16bd8febadb0a8 |
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move TargetPassConfig implementation into Passes.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149753 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
7461334084aa77286b6f9af596fb0f6ba0465685 |
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Make TargetPassConfig an ImmutablePass so CodeGenPasses can query options git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149752 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
LVMTargetMachine.cpp
asses.cpp
|
9e11eb1ddb2988d0a751fdcfe433bc816c83f1f2 |
04-Feb-2012 |
Devang Patel <dpatel@apple.com> |
Emit new property tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
2f2d1d7ec0a0178c76c29a13ab39d3f33d9b097b |
04-Feb-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] HandlePHINodesInSuccessorBlocks() can promite i8 and i16 types too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149730 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
9119b039d46e95ed95d9a20f9f7ee52e414ca16d |
04-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trim headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149722 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d491da3f93a51d811b42f59f375e0b1883b06832 |
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149717 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
77180e0b402fff318cffd89a2251e46b3dce4064 |
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register mask operands in setPhysRegsDeadExcept(). Calls that use register mask operands don't have implicit defs for returned values. The register mask operand handles the call clobber, but it always behaves like a set of dead defs. Add live implicit defs for any implicitly defined physregs that are actually used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149715 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a37818dbb119bda75273f16b8484732e742cdbb7 |
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
ArrayRef'ize MI::setPhysRegsDeadExcept(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149709 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
59cb77fb11ec547f60ef0ff4a8ccf3bd8007ae46 |
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle all live physreg defs in the same place. SelectionDAG has 4 different ways of passing physreg defs to users. Collect all of the uses at the same time, and pass all of them to MI->setPhysRegsDeadExcept() to mark the remaining defs dead. The setPhysRegsDeadExcept() function will soon add the required implicit-defs to instructions with register mask operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149708 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/InstrEmitter.cpp
|
f1f78d5266dd67e25f23904578d69384bb53a6f7 |
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Initialize all common codegen passes before configuration so we can use their PassIDs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149705 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
7e413e9c94294f17daa64ac9fda09a738e20caa5 |
03-Feb-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
The type-legalizer often scalarizes code. One of the common patterns is extract-and-truncate. In this patch we optimize this pattern and convert the sequence into extract op of a narrow type. This allows the BUILD_VECTOR dag optimizations to construct efficient shuffle operations in many cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
843ee2e6a46b2b2d74a84c2eea68dec35cb359cc |
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig. The first little step toward configuring codegen passes. Allows command line overrides to be centralized in LLVMTargetMachine.cpp. LLVMTargetMachine can intercept common passes and give precedence to command line overrides. Allows adding "internal" target configuration options without touching TargetOptions. Encapsulates the PassManager. Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs. Allows modifying the target configuration hooks without rebuilding the world. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149672 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8247e0dca6759d9a22ac4c5cf305fac052b285ac |
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149671 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
woAddressInstructionPass.cpp
|
6c2cf8b1fbcf70fd9db6fe44032c1ceaa2299760 |
03-Feb-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Add a new MachineJumpTableInfo entry type, EK_GPRel64BlockAddress, which is needed to emit a 64-bit gp-relative relocation entry. Make changes necessary for emitting jump tables which have entries with directive .gpdword. This patch does not implement the parts needed for direct object emission or JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149668 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
|
478a8a02bc0f2e739ed8f4240152e99837e480b9 |
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Require non-NULL register masks. It doesn't seem worthwhile to give meaning to a NULL register mask pointer. It complicates all the code using register mask operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149646 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
achineInstr.cpp
achineLICM.cpp
|
eec68e7ffa22d489562a58299cd2fc6f089b893b |
02-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Re-apply the coalescer fix from r149147. Commit r149597 should have fixed the llvm-gcc and clang self-host issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149598 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d88710a3e0847baec0847b802637a48b71718d4d |
02-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Break as soon as the MustMapCurValNos flag is set - no need to reiterate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149596 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
02e08d5b4d9d368418debaf9ff2b3f07425ee0b6 |
02-Feb-2012 |
Lang Hames <lhames@gmail.com> |
PR11868. The previous loop in LiveIntervals::join would sometimes fall over if more than two adjacent ranges needed to be merged. The new version should be able to handle an arbitrary sequence of adjancent ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149588 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
ebf8c27caea0a1c55df649c78ced28d9fa78093e |
01-Feb-2012 |
Andrew Trick <atrick@apple.com> |
fix cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
ee498d3254b86bceb4f441741e9f442990647ce6 |
01-Feb-2012 |
Andrew Trick <atrick@apple.com> |
VLIW specific scheduler framework that utilizes deterministic finite automaton (DFA). This new scheduler plugs into the existing selection DAG scheduling framework. It is a top-down critical path scheduler that tracks register pressure and uses a DFA for pipeline modeling. Patch by Sergei Larin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/ResourcePriorityQueue.cpp
electionDAG/ScheduleDAGVLIW.cpp
electionDAG/SelectionDAGISel.cpp
|
24473120a253a05f3601cd3373403b47e6d03d41 |
01-Feb-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
SwitchInst refactoring. The purpose of refactoring is to hide operand roles from SwitchInst user (programmer). If you want to play with operands directly, probably you will need lower level methods than SwitchInst ones (TerminatorInst or may be User). After this patch we can reorganize SwitchInst operands and successors as we want. What was done: 1. Changed semantics of index inside the getCaseValue method: getCaseValue(0) means "get first case", not a condition. Use getCondition() if you want to resolve the condition. I propose don't mix SwitchInst case indexing with low level indexing (TI successors indexing, User's operands indexing), since it may be dangerous. 2. By the same reason findCaseValue(ConstantInt*) returns actual number of case value. 0 means first case, not default. If there is no case with given value, ErrorIndex will returned. 3. Added getCaseSuccessor method. I propose to avoid usage of TerminatorInst::getSuccessor if you want to resolve case successor BB. Use getCaseSuccessor instead, since internal SwitchInst organization of operands/successors is hidden and may be changed in any moment. 4. Added resolveSuccessorIndex and resolveCaseIndex. The main purpose of these methods is to see how case successors are really mapped in TerminatorInst. 4.1 "resolveSuccessorIndex" was created if you need to level down from SwitchInst to TerminatorInst. It returns TerminatorInst's successor index for given case successor. 4.2 "resolveCaseIndex" converts low level successors index to case index that curresponds to the given successor. Note: There are also related compatability fix patches for dragonegg, klee, llvm-gcc-4.0, llvm-gcc-4.2, safecode, clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
91766fe066efe6e0969ba805a2e3726a70ed34a3 |
01-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert Chris' commits up to r149348 that started causing VMCoreTests unit test to fail. These are: r149348 r149351 r149352 r149354 r149356 r149357 r149361 r149362 r149364 r149365 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAG.cpp
|
ab78e20ce085763b4fc9948eaa715fb7e49341c8 |
31-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Obvious unnecessary loop removal. Follow through from previous checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149398 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
1b2f643753a2974540934ac0f1e3ffd182b0571c |
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
with recent changes, ConstantArray is never a "string". Remove the associated methods and constant fold the clients to false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b3d58474c83499621ae1e2d76dc87587910abe55 |
31-Jan-2012 |
Andrew Trick <atrick@apple.com> |
RAFast: Generalize the logic for return operands. This removes implicit assumption about the form of MI coming into regalloc. In particular, it should be independent of ProcessImplicitDefs which will eventually become a standard part of coming out of SSA--unless we simply can eliminate IMPLICIT_DEF completely. Current unit tests expose this once I remove incidental pass ordering restrictions. This is not a final fix. Just a temporary workaround until I figure out the right way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149360 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
f0e1053a63f5522ecfe1df8fe3ea07b24cb6b193 |
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
remove the last vestiges of llvm::GetConstantStringInfo, in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4a6facbc574c37ec81380d31d8f1372ea10ebf29 |
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
rework this logic to not depend on the last argument to GetConstantStringInfo, which is going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c63352f6336ab67cdba6d4702dc2bed5fdca1091 |
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
don't emit a 1-byte object as a .fill. This is silly and causes CodeGen/X86/global-sections.ll to fail with CDArray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
efd564fbd6b38964f717bf1c34f37f441eb5cf36 |
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the now-dead llvm.eh.exception and llvm.eh.selector intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149331 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
9a5c0e8d9378d11cb5250265cf521db32968a56e |
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the eh.exception and eh.selector intrinsics. Also remove a hack to copy over the catch information. The catch information is now tacked to the invoke instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149326 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
d49db36badcfa29022b99325135c3ca429150be0 |
31-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Use the correct ShiftAmtTy for creating shifts after legalization. PR11881. Not committing a testcase because I think it will be too fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149315 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
beb05952ce27b4039c9d8bea929f154edeb19ca0 |
31-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Chris's constant data sequence refactoring actually enabled printing vectors of all one bits to be printed more cleverly in the AsmPrinter. Unfortunately, the byte value for all one bits is the same with -fsigned-char as the error return of '-1'. Force this to be the unsigned byte value when returning it to avoid this problem, and update the test case for the shiny new behavior. Yay for building LLVM and Clang with -funsigned-char. Chris, please review, and let me know if there is any reason to not desire this change. It seems good on the surface, and certainly intended based on the code written. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149299 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
baffe7a6f3c3f9588048db37a59b9b2f52ffe248 |
30-Jan-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Here's a new one: GCC was complaining about an only-used-in-asserts *function*. Wrap the function in #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149259 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b66fb5acbe4bfde5264fdbbfe7f9f478ed94c68d |
30-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
when verbose asm is on, print integers in ConstantDataSequentials just like normal integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149223 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6e64c381daa30a63608bfa3443e67c39e6df2d64 |
30-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
don't lose tail padding on ConstantDataAggregate vec3's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149222 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9f946a24d9e69559d1e0aeb6d128c2fa19846c92 |
29-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix some scavenger performance issues. - Don't call malloc+free in the very hot forward(). - Don't call isTiedToDefOperand(). - Don't create BitVector temporaries. - Merge DeadRegs into KillRegs. - Eliminate the early clobber checks, they were irrelevant to scavenging. - Remove unnecessary code from -Asserts builds. This speeds up ARM PEI by 3.4x and overall llc -O0 codegen time by 11%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149189 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
685c23e75842e64145fe319efd792abe72a827dd |
29-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating BitVector temporaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149188 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
0ae06de09417ea8119ef26c57d60877ad4ce9fa2 |
28-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Reapply r149159 with a fix to add to a PHI node with a non-null parent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149164 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
1c1c5bba577c710bdea01d084418d62281481cad |
28-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Remove code that adds live ranges for dead defs. It seems to be breaking things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149163 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
afcb5b5ee854474a50dc4642a6e6ecc15acfe8cc |
28-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert r149159 until I can fix tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149162 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
b0064c6d8b50b43f56aabaebfd0e0ac274501a59 |
28-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Don't always create a separate block for the call to _Unwind_Resume. Sometimes there is only one 'resume' instruction per function. In those situations, we don't need a separate block for the call to _Unwind_Resume. In fact, it adds a lot of overhead to code-gen if we do that -- especially at -O0. If we have a single 'resume' instruction, just generate the call within that block. <rdar://problem/10694814> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149159 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
3f8d3c7d72367244e56efd9ce2c64ef5905cb377 |
28-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Silence warning about parens for && within || git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149152 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
907cc8f38df212a87a6028682d91df01ba923f4f |
27-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Add a "moveInstr" method to LiveIntervals. This can be used to move instructions around within a basic block while maintaining live-intervals. Updated ScheduleTopDownLive in MachineScheduler.cpp to use the moveInstr API when reordering MIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149147 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineScheduler.cpp
egisterCoalescer.cpp
|
ff21bb53ae9496b0e24d0ea0cb392fae1d49128b |
27-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Backing out ill-considered 'refactor'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149146 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
c5c2fcd307695c40b00a64152d83c7af13c446c0 |
27-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Move some duplicate loops in the coalescer into their own function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149144 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
b3396dc0034db4520525e600565337f0929066b4 |
27-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Physreg dead defs should be handled too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149118 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
a78fa8cc2dd6d2ffe5e4fe605f38aae7b3d2fb7a |
27-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
continue making the world safe for ConstantDataVector. At this point, we should (theoretically optimize and codegen ConstantDataVector as well as ConstantVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149116 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4cc4666268c6c62de763c46fefe304adf08a01a1 |
27-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Place the GEP instructions nearer to the instructions which use them. GEP instructions are there for the compiler and shouldn't really output much code (if any at all). When a GEP is stored in the entry block, Fast ISel (for one) will not know that it could fold it into further uses. For instance, inside of the EH handling code. This results in a lot of unnecessary spills and loads which bloat code and slows down pretty much everything. <rdar://problem/10694814> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149114 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
6b2760759b23b8b96beb43966b9b8088e832efc7 |
27-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
make sure the file's matching header is #include'd first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149113 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
73858d16893e4cddd97f358a19b48bd4bc57ee97 |
27-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Rewrite CanShareConstantPoolEntry to be implemented in terms of the mid-level constant folding APIs instead of doing its own analysis. This makes it more general (e.g. can now share a <2 x i64> with a <4 x i32>) and avoid duplicating a bunch of logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149111 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
3b0714d993a37c722603f7cbfab71848a99e91cd |
27-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Rewrite instruction operands in AdjustCopiesBackFrom. Fixes PR11861. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149097 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
6b0dc92043ab1f63d78b8796098575e1d777b701 |
26-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
progress making the world safe to ConstantDataVector. While we're at it, allow PatternMatch's "neg" pattern to match integer vector negations, and enhance ComputeNumSigned bits to handle shl of vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149082 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
5b676ce7932cf60d4fd6d101323d8d54b8395804 |
26-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
tidy up forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
6a5d0e2a98003f5235ed8c3b9a439ad85d3d91d9 |
26-Jan-2012 |
Chad Rosier <mcrosier@apple.com> |
Update comment for r149070. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149075 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
0162ff421deb2e7bee16aff5ed6a0a8029bcbfbe |
26-Jan-2012 |
Chad Rosier <mcrosier@apple.com> |
Replace the use of isPredicable() with isPredicated() in MachineBasicBlock::canFallThrough(). We're interested in the state of the instruction (i.e., is this a barrier or not?), not if the instruction is predicable or not. rdar://10501092 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149070 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
1a96c914315b0286d84c507d696484e2c95875a4 |
26-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear kill flags before propagating a copy. The live range of the source register may be extended when a redundant copy is eliminated. Make sure any kill flags between the two copies are cleared. This fixes PR11765. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149069 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
achineInstr.cpp
|
34982576a43887e7f062ed0a3571af2cbab003f3 |
26-Jan-2012 |
James Molloy <james.molloy@arm.com> |
Add support for the R_ARM_TARGET1 relocation, which should be given to relocations applied to all C++ constructors and destructors. This enables the linker to match concrete relocation types (absolute or relative) with whatever library or C++ support code is being linked against. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149057 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
56243b89e7d5072d2d5498f806679d19ea483dac |
26-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
eliminate the Constant::getVectorElements method. There are better (and more robust) ways to do what it was doing now. Also, add static methods for decoding a ShuffleVector mask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e8838d5c5f6cae7daa2507a114c896dc5a4ae097 |
26-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Improve sub-register def handling in ProcessImplicitDefs. This boils down to using MachineOperand::readsReg() more. This fixes PR11829 where a use ended up after the first def when lowering REG_SEQUENCE instructions involving IMPLICIT_DEFs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148996 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
4a99f59aef358fb93eac180e49f6dcef03822046 |
25-Jan-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly emit ctors / dtors with priorities into desired sections and let linker handle the rest. This finally fixes PR5329 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148990 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
58a3685916e2badd7fdec557641b056c1540c0c3 |
25-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Don't add live ranges for aliases of physregs that are live in to the function. They don't appear to be used, and are inconsistent with handling of other physreg intervals (i.e. intervals that are not live-in) where ranges are not inserted for aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148986 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6c76e80753cfc83dc6804fcd5d949c517dfe3434 |
25-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Always break upon finding a vreg operand (in Release as well as +Asserts). Remove assertion which can no longer trigger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148984 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4ca829e89567f002fc74eb0e3e532a7c7662e031 |
25-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
use ConstantVector::getSplat in a few places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148929 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0f193b8a6846dab25323788638e760ae03b7cd87 |
25-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Use the right method to get the # elements in a CDS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148897 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d36f5af224594719a10d8b190daf4b56cdb7377f |
25-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Set correct <def,undef> flags when lowering REG_SEQUENCE. A REG_SEQUENCE instruction is lowered into a sequence of partial defs: %vreg7:ssub_0<def,undef> = COPY %vreg20:ssub_0 %vreg7:ssub_1<def> = COPY %vreg2 %vreg7:ssub_2<def> = COPY %vreg2 %vreg7:ssub_3<def> = COPY %vreg2 The first def needs an <undef> flag to indicate it is the beginning of the live range, while the other defs are read-modify-write. Previously, we depended on LiveIntervalAnalysis to notice and fix the missing <def,undef>, but that solution was never robust, it was causing problems with ProcessImplicitDefs and the lowering of chained REG_SEQUENCE instructions. This fixes PR11841. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148879 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
1ce6a36610f06a1fb4047ddde1e9bc2f071c0bfb |
25-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the standard MachineFunction::print() after SlotIndexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148878 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
10c6fdcd111d447de79613495219af8de3a2fb7e |
24-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix old doxygen comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148825 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.h
|
1ee0ecf84a07693c3a517ba030fac8ac1f9f3fbc |
24-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
add more support for ConstantDataSequential git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148802 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
53fa1ae51008d22ce5d2aa6fbf22c1afc4ec1401 |
24-Jan-2012 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
An option to selectively enable part of ARM EHABI support. This change adds an new option --arm-enable-ehabi-descriptors that enables emitting unwinding descriptors. This provides a mode with a working backtrace() without the (currently broken) exception support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148800 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
|
e697b4f486770dd640a47f39e8f0155b6d679b2d |
24-Jan-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Bit pack DIE structures better. 16 bits are sufficient to store attributes, tags and forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148799 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
8a6983493595a896cfca8392a2676bf425349cee |
24-Jan-2012 |
Eric Christopher <echristo@apple.com> |
Remove generation of DW_AT_sibling. Nothing as far as I can tell uses it. Saves about 1.5% on debug info size. rdar://10278198 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148794 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
9e631da253bff90d9da5ace21bd73f1c838e72eb |
24-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Add AsmPrinter (aka MCLowering) support for ConstantDataSequential, and clean up some other misc stuff. Unlike ConstantArray, we will prefer to emit .fill directives for "String" arrays that all have the same value, since they are denser than emitting a .ascii git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148793 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
defe12df51249200214b7781ebe23345df474655 |
24-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve <def,undef> flags in CoalesceExtSubRegs. This won't have an effect until EliminateRegSequences() starts setting the undef flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148779 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3eb4be0ace6263f35a2f3aae9e964a752ebe55af |
24-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert r148686 (and r148694, a fix to it) due to a serious layering violation -- MC cannot depend on CodeGen. Specifically, the MCTargetDesc component of each target is actually a subcomponent of the MC library. As such, it cannot depend on the target-independent code generator, because MC itself cannot depend on the target-independent code generator. This change moved a flag from the ARM MCTargetDesc file ARMMCAsmInfo.cpp to the CodeGen layer in ARMException.cpp, leaving behind an 'extern' to refer back to it. That layering order isn't viable givin the constraints outlined above. Commandline flags are designed to be static specifically to avoid these types of bugs. Fixing this is likely going to require some non-trivial refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148759 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
|
4302a4965c4fffcecee23210dd1910d8d2c88259 |
23-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove extraneous ';'s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148740 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
|
e0bd8c3a2608f39f341eb3440df723dc48d435a5 |
23-Jan-2012 |
Lang Hames <lhames@gmail.com> |
copyImplicitOps is redundant here - the loop above already copies these ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148725 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d0848a6398e0830898463ceb0041d4d7b163512d |
23-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR11829. PostRA LICM was too aggressive. This fixes a typo in r148589. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148724 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
39f66601938e88a4e287986fab58a0d5053f8f8e |
23-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148723 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
7908480e4caf2f7ecb0b62c900039d49e7d51ebb |
23-Jan-2012 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
An option to selectively enable parts of ARM EHABI support. This change adds an new value to the --arm-enable-ehabi option that disables emitting unwinding descriptors. This mode gives a working backtrace() without the (currently broken) exception support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148686 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
|
4a309f3d25f3a28065a8ccbd7067afaad745e2d1 |
22-Jan-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add an option to disable buggy copy propagation pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148662 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
7423db2dcf3434e74456e379751459f0d579da46 |
21-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148622 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
8c47ad8c4708286bda9362f8089f84a3d7e41056 |
21-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register masks in LiveVariables. A register mask operand kills any live physreg that isn't preserved. Unlike an implicit-def operand, the clobbered physregs are never live afterwards. This means LiveVariables has to track a much smaller number of live physregs, and it should spend much less time in addRegisterDead(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148609 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
4888d5e98c7ae1fed28e41d75a65ddf70b25b03d |
20-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete an unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148594 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
|
a3c4ca9c7ba4bb98eb1c240726c8f4fb7e60f1c7 |
20-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Support register masks in MachineLICM. Only PostRA LICM is affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148589 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6b88c180dad5eaa8361c5de2fa01c997f4f83368 |
20-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register masks in DeadMachineInstructionElim. Don't track live physregs that are clobbered by a register mask operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148588 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 |
20-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
More dead code removal (using -Wunreachable-code) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
ranchFolding.cpp
CStrategy.cpp
achineSSAUpdater.cpp
seudoSourceValue.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
plitKit.cpp
argetLoweringObjectFileImpl.cpp
|
164b86b4399559e45fab7846f1e3e09119cab4e2 |
20-Jan-2012 |
Kostya Serebryany <kcc@google.com> |
Extend Attributes to 64 bits Problem: LLVM needs more function attributes than currently available (32 bits). One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc). Solution: - extend the Attributes from 32 bits to 64-bits - wrap the object into a class so that unsigned is never erroneously used instead - change "unsigned" to "Attributes" throughout the code, including one place in clang. - the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking. - the class has "safe operator bool()" to support the common idiom: if (Attributes attr = getAttrs()) useAttrs(attr); - The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls - Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work. - Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit. Tested: "make check" on Linux (32-bit and 64-bit) and Mac (10.6) built/run spec CPU 2006 on Linux with clang -O2. This change will break clang build in lib/CodeGen/CGCall.cpp. The following patch will fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148553 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
b618ea5ff97182381107ab6bf52b0c2d8f783d7d |
20-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
When lowering the 'resume' instruction, look to see if we can eliminate the 'insertvalue' instructions that recreate the structure returned by the 'landingpad' instruction. Because the 'insertvalue' instruction isn't supported by FastISel, this can save a bit of time during -O0 compilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148520 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
ef2887d3486a1814e5a4c1c1c6acc7d815334c80 |
19-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
More bundle related API additions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148465 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
3f9c251e40dac7503f7ae455fab89bdc359c7b85 |
19-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Rewriter should definitly rewrite instructions inside bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148464 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a2e435cd23427eef7d8e86c72bb94c756e60e473 |
19-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Enhance finalizeBundle to return end of bundle iterator because it makes sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148462 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
bca15f9c8059ccb9244853f86593c35ac35c8801 |
19-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
- Slight change to finalizeBundle() interface. LastMI is not exclusive (pointing to instruction right after the last instruction in the bundle. - Add a finalizeBundle() variant that doesn't specify LastMI. Instead, the code will find the last instruction in the bundle by following the 'InsideBundle' marker. This is useful in case bundles are formed early (i.e. during MI scheduling) but finalized later (i.e. after register allocator has finished rewriting virtual registers with physical registers). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148444 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
9b159710ebe8a37cba38ca0c5b465e362bd68af7 |
19-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Rename Finalizebundle to finalizeBundle to conform to coding guideline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148440 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrBundle.cpp
|
9cf37e8b48732fccd4c301ed51aafed7074bd84e |
19-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a RegisterMaskSDNode class. This SelectionDAG node will be attached to call nodes by LowerCall(), and eventually becomes a MO_RegisterMask MachineOperand on the MachineInstr representing the call instruction. LowerCall() will attach a register mask that depends on the calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
bfab85e9b187f8e59c7638c15347319799097ae1 |
18-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Fixed macro condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148408 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
819026f2f8b13ac7f6051727fce54b95868c3d85 |
18-Jan-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in the type-legalization of vector integers. When we bitcast one vector type to another, we must not bitcast the result if one type is widened while the other is promoted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
cd7f02bb43ec07e0a2bd6d90177b353c94408586 |
18-Jan-2012 |
Pete Cooper <peter_cooper@apple.com> |
Fix ISD::REG_SEQUENCE to accept physical registers and change TwoAddressInstructionPass to insert copies for any physical reg operands of the REG_SEQUENCE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
woAddressInstructionPass.cpp
|
ba05c91ed28e70505ac854dce976ac14f4c6e602 |
17-Jan-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Transform: (EXTRACT_VECTOR_ELT( VECTOR_SHUFFLE )) -> EXTRACT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148337 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d3b588965daf43d5fd13c7bf6603c9f8017a041c |
17-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Teach DAG combiner to turn a BUILD_VECTOR of UNDEFs into an UNDEF of vector type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c6cf11b41243967b16211848b50876aab47e86df |
17-Jan-2012 |
Andrew Trick <atrick@apple.com> |
misched: Inital interface and implementation for ScheduleTopDownLive and ShuffleInstructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148291 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
42b7a71dc7381d1f38bf7b7201fc26dd80453364 |
17-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Renamed MachineScheduler to ScheduleTopDownLive. Responding to code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148290 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
achineScheduler.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
|
c1b1c7b205589c9a081e1cbd33fb56506fc287b3 |
17-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Moving options declarations around. More short term hackery until we have a way to configure passes that work on LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148289 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
|
21506061ef031a01fce5cc1781f30780fbecb59b |
17-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add 148175 back. I am unable to reproduce any non determinism in a dragonegg or clang bootstrap. I will keep an eye on the bots. Original message: Only emit the Leh_func_endN symbol when needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148283 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
f57e1c29dde4666ea4ec397dde72f991e5b9f854 |
17-Jan-2012 |
Pete Cooper <peter_cooper@apple.com> |
Changed flag operand of ISD::FP_ROUND to TargetConstant as it should not get checked for legalisation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148275 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e02a17c4efb843b8627f3d819c62f88a7f2fb457 |
17-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148268 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
2dd674fdce68f8fd59d78a3bbab2cf5b8d220290 |
17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Removing unused default switch cases in switches over enums that already account for all enumeration values explicitly. (This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148262 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
504d1d2fa4103bddcc6e1ad26697029c79b4aeb7 |
16-Jan-2012 |
Hal Finkel <hfinkel@anl.gov> |
AggressiveAntiDepBreaker needs to skip debug values because a debug value does not have a corresponding SUnit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148260 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
c035c940a656f34a58ebe22fcc5f9b2a7d8e97fb |
16-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract method for detecting constant unallocatable physregs. It is safe to move uses of such registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148259 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
achineRegisterInfo.cpp
achineSink.cpp
argetInstrInfoImpl.cpp
|
63c66724235ace1860e60a11ce2756d577387b29 |
16-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Give better scavenger errors by invoking the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148251 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
7739cad69d2590f556afc9fc3048f967b5a3f4f6 |
16-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a new kind of MachineOperand: MO_RegisterMask. Register masks will be used as a compact representation of large clobber lists. Currently, an x86 call instruction has some 40 operands representing call-clobbered registers. That's more than 1kB of useless operands per call site. A register mask operand references a bit mask of call-preserved registers, everything else is clobbered. The bit mask will typically come from TargetRegisterInfo::getCallPreservedMask(). By abandoning ImplicitDefs for call-clobbered registers, it also becomes possible to share call instruction descriptions between calling conventions, and we can get rid of the WINCALL* instructions. This patch introduces the new operand kind. Future patches will add RegMask support to target-independent passes before finally the fixed clobber lists can be removed from call instruction descriptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148250 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
810d6d3354a31f24125abef831e4afccbbbe973d |
16-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Refactor variables unused under non-assert builds (& remove two entirely unused variables). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
bf42139989695b35cf3e21be2e756bdc8c315ffb |
16-Jan-2012 |
Pete Cooper <peter_cooper@apple.com> |
Changed intrinsic ID operand to a target constant as its not used in any arithmetic so should not be checked in legalisation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
cc6165695fa1713230184d743368b8b3642faa5d |
15-Jan-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
[AVX] Optimize x86 VSELECT instructions using SimplifyDemandedBits. We know that the blend instructions only use the MSB, so if the mask is sign-extended then we can convert it into a SHL instruction. This is a common pattern because the type-legalizer sign-extends the i1 type which is used by the LLVM-IR for the condition. Added a new optimization in SimplifyDemandedBits for SIGN_EXTEND_INREG -> SHL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ed4c8c633c52a40ad1a3e8687f290be4aeb1f0e8 |
15-Jan-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Return an ArrayRef from ShuffleVectorSDNode::getMask and push it through CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148218 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ae4746b29a3f418dde0b8e2820019ec07303594e |
15-Jan-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombiner: Deduplicate code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148217 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
799ea5ccc0a1d6b00f45191855056fb07cd641bc |
15-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Truncate of undef is just undef of smaller size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c464e998e6db00e72c65f9ae10e4a40bf34ceb83 |
14-Jan-2012 |
Duncan Sands <baldrick@free.fr> |
Speculatively revert commit 148175 (rafael), to see if this fixes non-determinism in the 32 bit dragonegg buildbot. Original commit message: Only emit the Leh_func_endN symbol when needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148191 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
da223448043e860d1f997b6a72f35c9d4da7ea29 |
14-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Only emit the Leh_func_endN symbol when needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148175 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
3c58ba8ea7ec097d69d7f7be5930a4a4d7405a18 |
14-Jan-2012 |
Andrew Trick <atrick@apple.com> |
misched: Initial code for building an MI level scheduling DAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148174 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
7ebcaf4cf929ef041ae6c9c07b897e4d0aa8ad06 |
14-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Move physreg dependency generation into aptly named addPhysRegDeps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148173 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
5e920d7c83c20474fc3470209869978628ccf8da |
14-Jan-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added ScheduleDAGInstrs::IsPostRA git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148172 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
e9ef4ed13ba84ef27da831afa27b7955c8f09530 |
14-Jan-2012 |
Andrew Trick <atrick@apple.com> |
misched: Invoke the DAG builder on each sequence of schedulable instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148171 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
5edf2f03d525600c8c4aa0a2411666e647b8f154 |
14-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Move things around to make the file navigable, even though it will probably be split up later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148170 91177308-0d34-0410-b5e6-96231b3b80d8
achineScheduler.cpp
|
bfe8afaaec03795fe6c78daa9817e54c186a699d |
14-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
After r147827 and r147902, it's now possible for unallocatable registers to be live across BBs before register allocation. This miscompiled 197.parser when a cmp + b are optimized to a cbnz instruction even though the CPSR def is live-in a successor. cbnz r6, LBB89_12 ... LBB89_12: ble LBB89_1 The fix consists of two parts. 1) Teach LiveVariables that some unallocatable registers might be liveouts so don't mark their last use as kill if they are. 2) ARM constantpool island pass shouldn't form cbz / cbnz if the conditional branch does not kill CPSR. rdar://10676853 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148168 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
54f7533e36b7dab074f78790c01b98ba69e0d02d |
14-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove previous commit while I debug the bot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
cf05d039614879e908e3c31196cef1a7f392495c |
13-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove label that is not used anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148150 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
23d1c5ce8ab0ec52dc56073a60dbfb80f2c4c1e6 |
13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Remove pointless mode line in .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148143 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
|
96f678f2d78ae9a2a8c99ca612bf59c056b36797 |
13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Added the MachineSchedulerPass skeleton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148105 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
achineScheduler.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
|
524ff020f3776d4aa52d94d7c8ee2de7d370de55 |
13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
wrong filename git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148103 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
|
07680ec7a1ea86e8280c924e84e0eb2455e2483c |
13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
80-col violation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148102 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c4b527ac06c8e2e7c43020a56f000a53ab1dc9de |
13-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
DAGCombine's logic for forming pre- and post- indexed loads / stores were being overly conservative. It was concerned about cases where it would prohibit folding simple [r, c] addressing modes. e.g. ldr r0, [r2] ldr r1, [r2, #4] => ldr r0, [r2], #4 ldr r1, [r2] Change the logic to look for such cases which allows it to form indexed memory ops more aggressively. rdar://10674430 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148086 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bf5b13d07ec942c865479448e1b9344fe0c9509f |
13-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148065 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
86b1a7d61413aed40a68f98f1e8f17fd79ebd7a2 |
13-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Fix the code that was WRONG. The registers are placed into the saved registers list in the reverse order, which is why the original loop was written to loop backwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148064 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d578b905de8f9dece45aab2496a88ac548c67348 |
12-Jan-2012 |
Pete Cooper <peter_cooper@apple.com> |
Added FPOW, FEXP, FLOG to PromoteNode so that custom actions can be set to Promote for those operations. Sorry, no test case yet git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c16c25fbc3b53da99dcaf27685a6116249f79b30 |
12-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
When hoisting common code, watch out for uses which are marked "kill". If the killed registers are needed below the insertion point, then unset the kill marker. Sorry I'm not able to find a reduced test case. rdar://10660944 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148043 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f0a95356d649dc0fb65691c4acebee450f3529b4 |
12-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Allow targets to select source order pre-RA scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b20b518f800293ea6b2bed04134c71293ac52403 |
12-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make SplitAnalysis::UseSlots private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148031 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.h
|
9384111e90cb840e7eb867098f19910cf4c4a11d |
12-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make data structures private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147979 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
a8bd9a68f7c00fe1d895bb5e27ff804aa33abd64 |
11-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Sink spillInterferences into RABasic. This helper method is too simplistic for RAGreedy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147976 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.cpp
egAllocBase.h
egAllocBasic.cpp
|
078203f301baaa1fc96e172708f4bf7f9c7dcf82 |
11-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147975 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
|
ccc9581e8b79b4216cb1143344bdae9342722d5d |
11-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move RegAllocBase into its own cpp file separate from RABasic. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147972 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocBase.cpp
egAllocBasic.cpp
|
c8d12eee12bbd0dca3def72d52e410eaf4e61b2d |
11-Jan-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
On AVX, we can load v8i32 at a time. The bug happens when two uneven loads are used. When we load the v12i32 type, the GenWidenVectorLoads method generates two loads: v8i32 and v4i32 and attempts to use CONCAT_VECTORS to join them. In this fix I concat undef values to widen the smaller value. The test "widen_load-2.ll" also exposes this bug on AVX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
f103b3d1b99db0ae314c36d8b4ae71427816379e |
11-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Teach the X86 instruction selection to do some heroic transforms to detect a pattern which can be implemented with a small 'shl' embedded in the addressing mode scale. This happens in real code as follows: unsigned x = my_accelerator_table[input >> 11]; Here we have some lookup table that we look into using the high bits of 'input'. Each entity in the table is 4-bytes, which means this implicitly gets turned into (once lowered out of a GEP): *(unsigned*)((char*)my_accelerator_table + ((input >> 11) << 2)); The shift right followed by a shift left is canonicalized to a smaller shift right and masking off the low bits. That hides the shift right which x86 has an addressing mode designed to support. We now detect masks of this form, and produce the longer shift right followed by the proper addressing mode. In addition to saving a (rather large) instruction, this also reduces stalls in Intel chips on benchmarks I've measured. In order for all of this to work, one part of the DAG needs to be canonicalized *still further* than it currently is. This involves removing pointless 'trunc' nodes between a zextload and a zext. Without that, we end up generating spurious masks and hiding the pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147936 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2aad2f6e601328d15033944ea51ad6f66a7f3c0a |
11-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Detect when a value is undefined on an edge to a landing pad. Consider this code: int h() { int x; try { x = f(); g(); } catch (...) { return x+1; } return x; } The variable x is undefined on the first edge to the landing pad, but it has the f() return value on the second edge to the landing pad. SplitAnalysis::getLastSplitPoint() would assume that the return value from f() was live into the landing pad when f() throws, which is of course impossible. Detect these cases, and treat them as if the landing pad wasn't there. This allows spill code to be inserted after the function call to f(). <rdar://problem/10664933> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147912 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
74c4f97a466513e45e66e04469973fdcd5865300 |
11-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Exclusively use SplitAnalysis::getLastSplitPoint(). Delete the alternative implementation in LiveIntervalAnalysis. These functions computed the same thing, but SplitAnalysis caches the result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147911 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
plitKit.cpp
plitKit.h
|
f96703e62f2302cfe2465fb0fddaf62259eee62c |
11-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Avoid CSE of instructions which define physical registers across MBBs unless the physical registers are not allocatable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147902 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
75fda5dcaebf3daafdbd06f44e89c7683b1be770 |
10-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147884 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
732f05c41f177a0bc4d47e93a5d02120f146cb4c |
10-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Add 'llvm_unreachable' to passify GCC's understanding of the constraints of several newly un-defaulted switches. This also helps optimizers (including LLVM's) recognize that every case is covered, and we should assume as much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147861 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
LVMTargetMachine.cpp
achineInstr.cpp
electionDAG/TargetLowering.cpp
piller.cpp
|
2bd335470f8939782f3df7f6180282d3825d4f09 |
10-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary default cases in switches that cover all enum values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147855 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
LVMTargetMachine.cpp
achineInstr.cpp
coreboardHazardRecognizer.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
piller.cpp
|
6c0366cb2588ae49ef6e2f892db2099d41d85391 |
10-Jan-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in the legalization of shuffle vectors. When we emulate shuffles using BUILD_VECTORS we may be using a BV of different type. Make sure to cast it back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
97b5beb7fe7bb776654b04ae6c18af6ea15c74f7 |
10-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Allow machine-cse to look across MBB boundary when cse'ing instructions that define physical registers. It's currently very restrictive, only catching cases where the CE is in an immediate (and only) predecessor. But it catches a surprising large number of cases. rdar://10660865 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147827 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
9cce24a257108ec50f65652d233b9ffadc691682 |
10-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the logging streamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147820 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e811d0dd30e8949df5d72bedfaa46dc579dad97e |
08-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Avoid eraseing copies from a reserved register unless the definition can be safely proven not to have been clobbered. No small test case possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147751 91177308-0d34-0410-b5e6-96231b3b80d8
achineCopyPropagation.cpp
|
704e1a0f044614e6d2da236380c890fa5f2d1e03 |
07-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Replace some uses of hasNUsesOfValue(0, X) with !hasAnyUseOfValue(X) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cc274526ef801c23083bb76e335bb5152dddcc58 |
07-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Add some DAG combines for SUBC/SUBE. If nothing uses the carry/borrow out of subc, turn it into a sub. Turn (subc x, x) into 0 with no borrow. Turn (subc x, 0) into x with no borrow. Turn (subc -1, x) into (xor x, -1) with no borrow. Turn sube with no borrow in into subc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
34786a3ad760b9901912f70a8a17fd85e0643f21 |
07-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Optimize reserved register coalescing. Reserved registers don't have proper live ranges, their LiveInterval simply has a snippet of liveness for each def. Virtual registers with a single value that is a copy of a reserved register (typically %esp) can be coalesced with the reserved register if the live range doesn't overlap any reserved register defs. When coalescing with a reserved register, don't modify the reserved register live range. Just leave it as a bunch of dead defs. This eliminates quadratic coalescer behavior in i386 functions with many function calls. PR11699 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147726 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
4281e20aab7f1fe1b35b31c9237ad89c20937e02 |
07-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the 'regalloc' debug tag for most register allocator tracing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147725 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
irtRegMap.cpp
|
70017fb01bba634649f7f3b1dee33c6cda0721d0 |
07-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Revert part of r147716. Looks like x87 instructions kill markers are all messed up so branch folding pass can't use the scavenger. :-( This doesn't breaks anything currently. It just means targets which do not carefully update kill markers cannot run post-ra scheduler (not new, it has always been the case). We should fix this at some point since it's really hacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147719 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
977679d6034791fd48a344e5b990503ba50fc242 |
07-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Added a late machine instruction copy propagation pass. This catches opportunities that only present themselves after late optimizations such as tail duplication .e.g. ## BB#1: movl %eax, %ecx movl %ecx, %eax ret The register allocator also leaves some of them around (due to false dep between copies from phi-elimination, etc.) This required some changes in codegen passes. Post-ra scheduler and the pseudo-instruction expansion passes have been moved after branch folding and tail merging. They were before branch folding before because it did not always update block livein's. That's fixed now. The pass change makes independently since we want to properly schedule instructions after branch folding / tail duplication. rdar://10428165 rdar://10640363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147716 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ranchFolding.cpp
MakeLists.txt
riticalAntiDepBreaker.cpp
LVMTargetMachine.cpp
achineCopyPropagation.cpp
egisterScavenging.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
9c7b3da04ab39646e6d6687c309153410dafb916 |
07-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Missing raw_ostream.h breaks MSVC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147703 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
4bf76e0e28c2cc358e1106b64cad2fa59714df53 |
07-Jan-2012 |
Chad Rosier <mcrosier@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e016789b7380b2a452f81ce15c2e382e62ede120 |
07-Jan-2012 |
Eric Christopher <echristo@apple.com> |
Add a comment and ensure that anyone else looking at this code doesn't start to bleed from the eyes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147695 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
fa03db0d2d896a689ac58cb63ec9e1b10af72868 |
07-Jan-2012 |
Eric Christopher <echristo@apple.com> |
Use const vector references instead of a vector copy. Spotted by Devang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147694 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
547abbb40bc9d986446fa493b0caae5ed1f346f2 |
07-Jan-2012 |
Eric Christopher <echristo@apple.com> |
Use -> instead of (*iter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147693 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
b937b76045d4442165009c8e6276c7c8df9efa78 |
06-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Tracing to help investigate issues with SjLj spill code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147682 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
7eabae3f50d43af1b76f2bcc5ac6c47700d12b8b |
06-Jan-2012 |
Eric Christopher <echristo@apple.com> |
Fix a leak I noticed while reviewing the accelerator table changes. Passes lldb testsuite. rdar://10652330 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147673 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
c36145f19c1e164f7d630b813e9970600d8f2976 |
06-Jan-2012 |
Eric Christopher <echristo@apple.com> |
As part of the ongoing work in finalizing the accelerator tables, extend the debug type accelerator tables to contain the tag and a flag stating whether or not a compound type is a complete type. rdar://10652330 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147651 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
1031111f84a1e3377417b607ca45d5ec61e4e3c7 |
05-Jan-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Kill ObjectCodeEmitter and BinaryObject, they were unused and superseded by MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147618 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
bjectCodeEmitter.cpp
|
611caf5f91c4abe934480259043fcbb30ea07e3a |
05-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the old ELF writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147615 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
fcb0a278951d5e6bd878e183f2f1e9b3abf2e200 |
05-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147605 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
62dfc511524b28a9411f62e19d48120066c1e41b |
05-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Prevent a DAGCombine from firing where there are two uses of a combined-away node and the result of the combine isn't substantially smaller than the input, it's just canonicalized. This is the first part of a significant (7%) performance gain for Snappy's hot decompression loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
877ae2ee17cb89c57310c65fb4046e49020a0b55 |
05-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Minor postra scheduler cleanup. It could result in more precise antidependence latency on ARM in exceedingly rare cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147594 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
d9e5c764bfea339fc5082bf17e558db959fd6d28 |
05-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Freeze reserved registers before starting register allocation. The register allocators don't currently support adding reserved registers while they are running. Extend the MRI API to keep track of the set of reserved registers when register allocation started. Target hooks like hasFP() and needsStackRealignment() can look at this set to avoid reserving more registers during register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147577 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
egAllocBasic.cpp
egAllocFast.cpp
egAllocPBQP.cpp
|
515783466c24f9c5a9e6d9c7eb5ee7e4ab256358 |
04-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Allow vector shuffle normalizing to use concat vector even if the sources are commuted in the shuffle mask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
481b79c95003a3a72b315dbda966779392ee0c19 |
04-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Implement VECTOR_SHUFFLE canonicalizations during DAG combine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147525 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fcd70900630abd4a29d0b3fa9db6169159ddfb3c |
04-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Turn a few more inline asm errors into "emitErrors" instead of fatal errors. Before we'd get: $ clang t.c fatal error: error in backend: Invalid operand for inline asm constraint 'i'! Now we get: $ clang t.c t.c:16:5: error: invalid operand for inline asm constraint 'i'! "movq (%4), %%mm0\n" ^ Which at least gets us the inline asm that is the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147502 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
2d44e02533cdc2ae011121ef651dda93769ced2b |
03-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert when reserved registers have been assigned. This can only happen if the set of reserved registers changes during register allocation. <rdar://problem/10625436> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147486 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
316477dd543b5ae30b832ed4c7708f7aaa51747c |
03-Jan-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix incorrect widening of the bitcast sdnode in case the incoming operand is integer-promoted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
517c4d7fdac82151f6f009ec5ba62f8727658678 |
03-Jan-2012 |
Owen Anderson <resistor@mac.com> |
Remove the restriction that target intrinsics can only involve legal types. Targets can perfects well support intrinsics on illegal types, as long as they are prepared to perform custom expansion during type legalization. For example, a target where i64 is illegal might still support the i64 intrinsic operation using pairs of i32's. ARM already does some expansions like this for non-intrinsic operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
567cdbab28077ea1801ebff3d4291d4006d88ca3 |
03-Jan-2012 |
Lang Hames <lhames@gmail.com> |
Clarified assert text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147471 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5eb2e957b36ee1b9f1965e4acacca61a93e8aace |
03-Jan-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in ruler. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147454 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
ce58a03587ca46d9c9fe48e2bf433bcd57bb2b3a |
03-Jan-2012 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Fixed a bug in SelectionDAG.cpp. The failure seen on win32, when i64 type is illegal. It happens on stage of conversion VECTOR_SHUFFLE to BUILD_VECTOR. The failure message is: llc: SelectionDAG.cpp:784: void VerifyNodeCommon(llvm::SDNode*): Assertion `(I->getValueType() == EltVT || (EltVT.isInteger() && I->getValueType().isInteger() && EltVT.bitsLE(I->getValueType()))) && "Wrong operand type!"' failed. I added a special test that checks vector shuffle on win32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
acae2a63b9ba943d37914813c601eb5fa9d84c22 |
01-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 147399. It broke CodeGen/ARM/vext.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ac12855066ce2cfee11e68dcf0c15936f0730e6b |
01-Jan-2012 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Fixed a bug in SelectionDAG.cpp. The failure seen on win32, when i64 type is illegal. It happens on stage of conversion VECTOR_SHUFFLE to BUILD_VECTOR. The failure message is: llc: SelectionDAG.cpp:784: void VerifyNodeCommon(llvm::SDNode*): Assertion `(I->getValueType() == EltVT || (EltVT.isInteger() && I->getValueType().isInteger() && EltVT.bitsLE(I->getValueType()))) && "Wrong operand type!"' failed. I added a special test that checks vector shuffle on win32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6059b836959f4c1f1da651779d03d0de37f74a8f |
28-Dec-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
PR11662. Promotion of the mask operand needs to be done using PromoteTargetBoolean, and not padded with garbage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147309 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
d6e2560e7aea0e6c6bca950966252552f1caec63 |
26-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure DAGCombiner doesn't introduce multiple loads from the same memory location. PR10747, part 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fbb6f593c264551a5d585a6c97ff03420b142ea3 |
25-Dec-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a typo in the widening of vectors in PromoteIntRes. Patch by Shemer Anat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147272 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
9421406aada374f79ce2f8e576824463f7830981 |
23-Dec-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
drop unneeded config.h includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147197 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
3cfecf5cc2279cbbcdd497f2898161e40e690c86 |
22-Dec-2011 |
Pete Cooper <peter_cooper@apple.com> |
Hoisted some loop invariant smallvector lookups out of a MachineLICM loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147127 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
acde91e2735cf2841a306a7c7af7af8c31f34a4a |
22-Dec-2011 |
Pete Cooper <peter_cooper@apple.com> |
Changed MachineLICM to use a worklist list MachineCSE instead of recursion. Fixes <rdar://problem/10584116> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147125 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d4895ded27179c47ef7327e3322b6a11a905eb9f |
22-Dec-2011 |
Jakub Staszak <kubastaszak@gmail.com> |
Revert patch from 147090. There is not point to make code less readable if we don't get any serious benefit there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147101 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
73db975498bc0e117a0854ab2e0cecad51ad17bf |
21-Dec-2011 |
Jakub Staszak <kubastaszak@gmail.com> |
- Change a few operator[] to lookup which is cheaper. - Add some constantness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147090 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
b638c789be6db2a42f5c6f4de5263021da1942a3 |
21-Dec-2011 |
Lang Hames <lhames@gmail.com> |
Oops - LiveIntervalUnion.cpp file does use std::find. Moving STL header include to LiveIntervalUnion.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147089 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
|
bac22fac7d46aa496248ae9659e34f21718b6b42 |
21-Dec-2011 |
Lang Hames <lhames@gmail.com> |
Remove disused STL header include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147088 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
a2a98fd0ddd2ae277be7cdd62aae92f6c5155e07 |
21-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move common code into an MRI function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147071 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
rologEpilogInserter.cpp
|
aa13482784d100a8f4aef20f5b647192754a1a1d |
20-Dec-2011 |
Lang Hames <lhames@gmail.com> |
Fix assert condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146987 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.cpp
|
25101bb2a799a36be9f077ee2fc2dcf0df2b6efb |
20-Dec-2011 |
Jakub Staszak <kubastaszak@gmail.com> |
Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146986 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineBlockFrequencyInfo.cpp
achineBranchProbabilityInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
cfb75fba735edd44841eb21c72c3a9736a7d9af2 |
20-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix up the CMake build for the new files added in r146960, they're likely to stay either way that discussion ends up resolving itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146966 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
2d24e2a396a1d211baaeedf32148a3b657240170 |
20-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146960 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
ITCodeEmitter.cpp
exicalScopes.cpp
iveRangeEdit.cpp
iveRangeEdit.h
achineBranchProbabilityInfo.cpp
achineCodeEmitter.cpp
achineFunction.cpp
achinePassRegistry.cpp
cheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
piller.cpp
piller.h
|
e3376ecd504300ae529c902135f51baffbdc2824 |
20-Dec-2011 |
Dan Gohman <gohman@apple.com> |
Add basic generic CodeGen support for half. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146927 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/TargetLowering.cpp
|
8787c5f24e175a36f645784d533384f9f7cd86fc |
19-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add a if-conversion optimization that allows 'true' side of a diamond to be unpredicated. That is, turn subeq r0, r1, #1 addne r0, r1, #1 into sub r0, r1, #1 addne r0, r1, #1 For targets where conditional instructions are always executed, this may be beneficial. It may remove pseudo anti-dependency in out-of-order execution CPUs. e.g. op r1, ... str r1, [r10] ; end-of-life of r1 as div result cmp r0, #65 movne r1, #44 ; raw dependency on previous r1 moveq r1, #12 If movne is unpredicated, then op r1, ... str r1, [r10] cmp r0, #65 mov r1, #44 ; r1 written unconditionally moveq r1, #12 Both mov and moveq are no longer depdendent on the first instruction. This gives the out-of-order execution engine more freedom to reorder them. This has passed entire LLVM test suite. But it has not been enabled for any ARM variant pending more performance evaluation. rdar://8951196 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146914 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
1e2ec6abd4e150ac87d6cde3133fa9895f63c74c |
19-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Attempt to fix PR11607 by shuffling around which class defines which methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146897 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
0488d6ee5deed63cc46efb5931d5761ab6f9c64c |
19-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle sub-register operands in recomputeRegClass(). Now that getMatchingSuperRegClass() returns accurate results, it can be used to compute constraints imposed by instructions using a sub-register of a virtual register. This means we can recompute the register class of any virtual register by combining the constraints from all its uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146874 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
34706936412b9e9ff73511fed58e97bf6e100e69 |
18-Dec-2011 |
Joerg Sonnenberger <joerg@bec.de> |
Allow inlining of functions with returns_twice calls, if they have the attribute themselve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
|
8f7d12ccfd8feb258bdf4e582592bc00beacc7c6 |
17-Dec-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add back the MC bits of 126425. Original patch by Nathan Jeffords. I added the asm parsing and testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146801 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
1a8e8869cafa16d94afcb6f73bc3e0f2f72f70f1 |
17-Dec-2011 |
Eric Christopher <echristo@apple.com> |
Resolve part of a fixme and add a new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
44625f91c57638d178fcb464681ae5a293a1f100 |
17-Dec-2011 |
Eric Christopher <echristo@apple.com> |
Add a fixme here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146783 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
abbb200feb492cb1951d089eb8d9e596db38c38c |
17-Dec-2011 |
Eric Christopher <echristo@apple.com> |
Extraneous whitespace and 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146780 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
34da4702daf3f3bc3c4ad163e56d75ac3ee0c4f4 |
16-Dec-2011 |
Logan Chien <loganchien@google.com> |
Apply changes to migrate to llvm upstream r146714. Change-Id: I422992072f519c9352fe4d527719422134297b41
ndroid.mk
|
a1e6e241a813f81be2d2f36ab60c950ca297574b |
16-Dec-2011 |
Logan Chien <loganchien@google.com> |
Merge with LLVM upstream r146714 (Dec 16th 2011) Change-Id: Ied458adb08bf9a69250cbcee9b14b44d17e8701a
|
028700f544deeea423ce9b516e190e4e970e3c6c |
15-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move parts of lib/Target that use CodeGen into lib/CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146702 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
argetFrameLoweringImpl.cpp
argetInstrInfoImpl.cpp
argetOptionsImpl.cpp
|
0508d047fefef36d4f943ee13c82c18cf3a943ab |
15-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Update DebugLoc while merging nodes at -O0. Patch by Kyriakos Georgiou! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ca072a39778933df4264ae393bd0ca797db59df6 |
15-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't try to form FGETSIGN after legalization; it is possible in some cases, but the existing code can't do it correctly. PR11570. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
4e0adfa7f7fa5617a7a06028cdad0e4a50cac22a |
15-Dec-2011 |
Owen Anderson <resistor@mac.com> |
Enable synthesis of FLOG2 and FEXP2 SelectionDAG nodes from libm calls. These are already marked as illegal by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146623 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f0426601977c3e386d2d26c72a2cca691dc42072 |
15-Dec-2011 |
Dan Gohman <gohman@apple.com> |
Move Instruction::isSafeToSpeculativelyExecute out of VMCore and into Analysis as a standalone function, since there's no need for it to be in VMCore. Also, update it to use isKnownNonZero and other goodies available in Analysis, making it more precise, enabling more aggressive optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146610 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
5211134fbd35bf0befc60888860010b23c27ee5a |
15-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Do not sink instruction, if it is not profitable. On ARM, peephole optimization for ABS creates a trivial cfg triangle which tempts machine sink to sink instructions in code which is really straight line code. Sometimes this sinking may alter register allocator input such that use and def of a reg is divided by a branch in between, which may result in extra spills. Now mahine sink avoids sinking if final sink destination is post dominator. Radar 10266272. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146604 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
69fdcd7f902256d6deec8f085f5bb12bd39f762e |
14-Dec-2011 |
Bill Wendling <isanbard@gmail.com> |
Reapply r146481 with a fix to create the Builder value in the correct place and with the correct iterator. <rdar://problem/10530851> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146600 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
020f4106f820648fd7e91956859844a80de13974 |
14-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Model ARM predicated write as read-mod-write. e.g. r0 = mov #0 r0 = moveq #1 Then the second instruction has an implicit data dependency on the first instruction. Sadly I have yet to come up with a small test case that demonstrate the post-ra scheduler taking advantage of this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146583 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
d2cda5ce516ed85be66dfab06ed67cdae01e6500 |
14-Dec-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
llvm/lib/CodeGen: Fix cmake build since r146542. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146550 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
e08db65c48854748612ba69ee1e50e8d1b2cf43d |
14-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add missing cases to SDNode::getOperationName(). Patch by Micah Villmow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
12dfdb424ddcfabb347f168f9332795ba443ccd3 |
14-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to specify register output dependency. Still default to one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146547 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
dbdc616ed5eb1c92d75465333b0d96b0185f8c8f |
14-Dec-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r146481 to review possible miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146546 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
ddfd1377d2e4154d44dc3ad217735adc15af2e3f |
14-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function to finalize MI bundles (i.e. add BUNDLE instruction and computing register def and use lists of the BUNDLE instruction) and a pass to unpack bundles. - Teach more of MachineBasic and MachineInstr methods to be bundle aware. - Switch Thumb2 IT block to MI bundles and delete the hazard recognizer hack to prevent IT blocks from being broken apart. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146542 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineInstrBundle.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
argetInstrInfoImpl.cpp
|
798313d6c1f48634f0964d82c6b31364058a280f |
14-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
DW_AT_virtuality is also defined to be constant, not flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146534 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
5bd83345c7ba2c15a062495a0267d1dc1d478aac |
13-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Remove SelectInsertValue() as fast-isel wasn't designed to handle instructions that define aggregate types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146492 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4762f7525162ddcd3a527677ed8a2d53856f21d9 |
13-Dec-2011 |
Bill Wendling <isanbard@gmail.com> |
Avoid using the 'insertvalue' instruction here. Fast ISel isn't able to handle 'insertvalue' and it causes a large slowdown during -O0 compilation. We don't necessarily need to generate an aggregate of the values here if they're just going to be extracted directly afterwards. <rdar://problem/10530851> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146481 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
13aaca5edf538f967c16b8bdbfe293e2f9d75fc1 |
13-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
DW_AT_accessibility is "constant" class, not form class, so it may not use DW_FORM_flag. Use DW_FORM_data1 for one byte. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146475 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
63974b2144c87c962effdc0508c27643c8ad98b6 |
13-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Initial CodeGen support for CTTZ/CTLZ where a zero input produces an undefined result. This adds new ISD nodes for the new semantics, selecting them when the LLVM intrinsic indicates that the undef behavior is desired. The new nodes expand trivially to the old nodes, so targets don't actually need to do anything to support these new nodes besides indicating that they should be expanded. I've done this for all the operand types that I could figure out for all the targets. Owners of various targets, please review and let me know if any of these are incorrect. Note that the expand behavior is *conservatively correct*, and exactly matches LLVM's current behavior with these operations. Ideally this patch will not change behavior in any way. For example the regtest suite finds the exact same instruction sequences coming out of the code generator. That's why there are no new tests here -- all of this is being exercised by the existing test suite. Thanks to Duncan Sands for reviewing the various bits of this patch and helping me get the wrinkles ironed out with expanding for each target. Also thanks to Chris for clarifying through all the discussions that this is indeed the approach he was looking for. That said, there are likely still rough spots. Further review much appreciated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146466 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
f2a745efe50dfd57f0e83e5f3ed964611cba6077 |
13-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Guard "exhastive" fast-isel output with -fast-isel-verbose2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b0c594fd422417e1e290da166b566c7bee74644b |
12-Dec-2011 |
Daniel Dunbar <daniel@zuster.org> |
LLVMBuild: Introduce a common section which currently has a list of the subdirectories to traverse into. - Originally I wanted to avoid this and just autoscan, but this has one key flaw in that new subdirectories can not automatically trigger a rerun of the llvm-build tool. This is particularly a pain when switching back and forth between trees where one has added a subdirectory, as the dependencies will tend to be wrong. This will also eliminates FIXME implicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146436 91177308-0d34-0410-b5e6-96231b3b80d8
LVMBuild.txt
|
4777ebb767d1b590c05d502c4a7f6adef4e6d5d1 |
12-Dec-2011 |
Pete Cooper <peter_cooper@apple.com> |
Fixed register allocator splitting a live range on a spilling variable. If we create new intervals for a variable that is being spilled, then those new intervals are not guaranteed to also spill. This means that anything reading from the original spilling value might not get the correct value if spills were missed. Fixes <rdar://problem/10546864> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146428 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
4ab406d7fc06b1272d02cd8be46f0c5ebe51a3da |
12-Dec-2011 |
Daniel Dunbar <daniel@zuster.org> |
LLVMBuild: Remove trailing newline, which irked me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146409 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/LLVMBuild.txt
LVMBuild.txt
electionDAG/LLVMBuild.txt
|
4552d3e22abbb4e6a9078b5ff9e7c59e44e29fca |
10-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] SelectInsertValue seems to be causing miscompiles for ARM. Disable while I investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b435aa2c1de2ff28e51b1ce881e9f10f8b51d8e3 |
10-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146327 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
cd462d055ffc18a526a9a1d343261d8550e99280 |
09-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add support for selecting insertvalue. rdar://10530851 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146276 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
32f9763017f4329a0da75648655d63c9d7b91130 |
09-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Move isUnpredicatedTerminator() default implementation to TargetInstrInfoImpl to break Target's dependency on CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146247 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
f5b9a74f0a13afe3b7a8388be81e4062b63e4c30 |
09-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146226 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
2b1d77355bdeb9b7515b16bdd049c39ed78fca4b |
09-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Update stale comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146220 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
2dd0353fec61b412e521013049d6a03de29aa8c7 |
09-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a couple of logic bugs in TargetLowering::SimplifyDemandedBits. PR11514. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146219 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7f7f0902a640c26e9ce70b5869fc7de3b8b27918 |
09-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Revert r146184. I am seeing performance regression cause by this patch in one test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146205 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
243eb9ecbbc6775e346e94025bd255bbceac9fca |
08-Dec-2011 |
Owen Anderson <resistor@mac.com> |
Enhance both TargetLibraryInfo and SelectionDAGBuilder so that the latter can use the former to prevent the formation of libm SDNode's when -fno-builtin is passed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146193 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
e265bcf1a609c81c197971cd392e98a12d97162d |
08-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. No intentional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146187 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
73e08d3507d9ca22d89886a7d7e1e4e9278bee98 |
08-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Add rather verbose stats for fast-isel failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cf405ba7a6e9448b753d9b72940059530c70ea90 |
08-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Filter "sink to" candidate blocks sooner. This avoids unnecessary computation to determine whether the block dominates all uses or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146184 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
4a4fdf3476473021f62d5b02e8ee8802f5b25e5a |
08-Dec-2011 |
Owen Anderson <resistor@mac.com> |
Teach SelectionDAG to match more calls to libm functions onto existing SDNodes. Mark these nodes as illegal by default, unless the target declares otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
43d5d4ca1c93529c43e78cc5aa03c4ee10a6b0d8 |
08-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Make MachineInstr instruction property queries more flexible. This change all clients to decide whether to look inside bundled instructions and whether the query should return true if any / all bundled instructions have the queried property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146168 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
44bac7cd659090f15face5171e3c346983aeb521 |
08-Dec-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in the integer-promotion of bitcast operations on vector types. We must not issue a bitcast operation for integer-promotion of vector types, because the location of the values in the vector may be different. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
8f391d9330e1a4ed66e72ceac28ed70814f05623 |
08-Dec-2011 |
Pete Cooper <peter_cooper@apple.com> |
Reverting r145899 as it breaks clang self-hosting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146136 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
0e6307f6423a7ee39b80f8dc3caef00ad11e0266 |
07-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure we correctly set LiveRegGens when a call is unscheduled. <rdar://problem/10460321>. No testcase because this is very sensitive to scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
30c44e18bf28c3f5feda56e97695e2b72de7fedb |
07-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix an assertion in the scheduler. PR11386. No testcase included because it's rather delicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e77ae2d692a25034da908151761c0f6b7e071779 |
07-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
These global variables aren't thread-safe, STATISTIC is. Andy Trick tells me that he isn't using these any more, so just delete them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
feb468ab24a9e85b4d27faa6badfb57a2414610c |
07-Dec-2011 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unneeded semicolon. Skip two looking up at BlockChain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146053 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd |
07-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add bundle aware API for querying instruction properties and switch the code generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
ranchFolding.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
xecutionDepsFix.cpp
xpandISelPseudos.cpp
xpandPostRAPseudos.cpp
CStrategy.cpp
fConversion.cpp
nlineSpiller.cpp
iveDebugVariables.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineCSE.cpp
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
achineVerifier.cpp
eepholeOptimizer.cpp
ostRASchedulerList.cpp
rologEpilogInserter.cpp
egAllocFast.cpp
egisterCoalescer.cpp
cheduleDAGInstrs.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
hrinkWrapping.cpp
plitKit.cpp
ailDuplication.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
|
1c663fee566546fc5622ffb4f169438bbd495fbf |
07-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Zap unnecessary isIntDivCheap() check. PR11485. No testcase because this doesn't affect any in-tree target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
04003451986868d201a2893c2ff2eaa0fb869aee |
07-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add missing check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146004 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f91abd22be9c98abcba50952cfcd39d5264417b6 |
07-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Support vector bitcasts in the AsmPrinter. PR11495. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146001 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2068215e8515203ab4839ee494cdc53dfd0cdf02 |
07-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineOperand IsInternalRead flag. This flag is used when bundling machine instructions. It indicates whether the operand reads a value defined inside or outside its bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145997 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
26323442d5b8373391d9899159974c1f38f6f4d5 |
07-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix an optimization involving EXTRACT_SUBVECTOR in DAGCombine so it behaves correctly. PR11494. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c9040b3b1308bf84a26522040ba9b4d2fff59634 |
07-Dec-2011 |
Jakub Staszak <jstaszak@apple.com> |
Remove unneeded type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145995 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
e6d81ad6a572f2492885f36fc5571225e963d39d |
07-Dec-2011 |
Jakub Staszak <jstaszak@apple.com> |
- Remove unneeded #includes. - Remove unused types/fields. - Add some constantness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145993 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
7c2a4a30e0e16762c75adacebd05ec9fcbccf16b |
06-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
First chunk of MachineInstr bundle support. 1. Added opcode BUNDLE 2. Taught MachineInstr class to deal with bundled MIs 3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs 4. Taught MachineBasicBlock methods about bundled MIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145975 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
HIElimination.cpp
egisterCoalescer.cpp
cheduleDAGInstrs.cpp
electionDAG/SelectionDAGISel.cpp
ailDuplication.cpp
|
f2e944523c18c20192f675901d64c69d9602ff47 |
06-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pretty-print basic block alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145965 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
464f3a332f81364ee09794f9502f0b25671149c6 |
06-Dec-2011 |
Sebastian Pop <spop@codeaurora.org> |
use space star instead of star space git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145944 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
f6f77e90a18142e196cbc2a6ee87cdf7461b17df |
06-Dec-2011 |
Sebastian Pop <spop@codeaurora.org> |
add missing point at the end of sentences git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145943 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
89dae971b18a86c7191f85bee8afcf385af5ce92 |
06-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Mix some minor misuse of MachineBasicBlock iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145903 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
d3743fc092c5b547552857abd45e1863eecb0377 |
06-Dec-2011 |
Pete Cooper <peter_cooper@apple.com> |
Removed isWinToJoinCrossClass from the register coalescer. The new register allocator is much more able to split back up ranges too constrained by register classes. Fixes <rdar://problem/10466609> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145899 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
bae56b4c216ac8b4573fb90e7d1a63acace6f53d |
06-Dec-2011 |
Lang Hames <lhames@gmail.com> |
Kill off the LoopSplitter. It's not being used or maintained. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145897 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
egAllocPBQP.cpp
plitter.cpp
plitter.h
|
9ad7e07a0fb565a8935ceaa2d266bd6e505203af |
06-Dec-2011 |
Lang Hames <lhames@gmail.com> |
Update PBQP's analysis usage to reflect the requirements of the inline spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145893 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
8c741b8064f1116d8d8dc435b60b75abdf5c4d57 |
06-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use logarithmic units for basic block alignment. This was actually a bit of a mess. TLI.setPrefLoopAlignment was clearly documented as taking log2(bytes) units, but the x86 target would still set a preferred loop alignment of '16'. CodePlacementOpt passed this number on to the basic block, and AsmPrinter interpreted it as bytes. Now both MachineFunction and MachineBasicBlock use logarithmic alignments. Obviously, MachineConstantPool still measures alignments in bytes, so we can emulate the thrill of using as. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145889 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1608769abeb1430dc34f31ffac0d9850f99ae36a |
05-Dec-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for vectors of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
309bedd7bc37554cdb41c76737284150dc842a4a |
04-Dec-2011 |
Eric Christopher <echristo@apple.com> |
Add inline subprogram names to the name lookup table since they may not get there any other way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145789 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0cb2a45cceaefb48ec7efb902c453aaae4e24cb2 |
04-Dec-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Emit the ctors in the proper order on ARM/EABI. Maybe some targets should use this as well. Patch by Evgeniy Stepanov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145781 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a86bfc1071f7e05631e0af81e2c6249f552c9ec5 |
03-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No functionality change. -3% on ARMDissasembler.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145773 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 |
02-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
smPrinter/DwarfDebug.cpp
LVMTargetMachine.cpp
rologEpilogInserter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
db809e0eb7055a5247c80500fe0ba0ac22199722 |
02-Dec-2011 |
Hal Finkel <hfinkel@anl.gov> |
make sure ScheduleDAGInstrs::EmitSchedule does not crash when the first instruction in Sequence is a Noop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145677 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
fe0926d7738ec9b1f85b12b8507d5d5bbdfbd32b |
01-Dec-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
CodeGen: fix CMake build Missing file from r145629. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145634 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
dc81e5da271ed394e2029c83458773c4ae2fc5f4 |
01-Dec-2011 |
Anshuman Dasgupta <adasgupt@codeaurora.org> |
Add a deterministic finite automaton based packetizer for VLIW architectures git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145629 91177308-0d34-0410-b5e6-96231b3b80d8
FAPacketizer.cpp
|
ae6f2cb1fc520aa56777dab1e7603aee9429f6dd |
29-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
If fast-isel fails, remove dead instructions generated during the failed attempt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d782bae970e888572f0458ac05369bbd7752f05a |
29-Nov-2011 |
Daniel Dunbar <daniel@zuster.org> |
build/CMake: Finish removal of add_llvm_library_dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145420 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
d7c2494b3cba8dce914a7d16cfca11ffcd223d4e |
29-Nov-2011 |
Bill Wendling <isanbard@gmail.com> |
On MachO, the pointer to the personality function should always be in the non_lazy_symbol_pointers section (__IMPORT,__pointers). Ignore the 'hidden' part since that will place it in the wrong section. <rdar://problem/10443720> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145356 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
c4c2a024857ca92687728f573a3017091a79eaf4 |
28-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make SelectionDAG::InferPtrAlignment use llvm::ComputeMaskedBits instead of duplicating the logic for globals. Make llvm::ComputeMaskedBits handle GlobalVariables slightly more aggressively, to match what InferPtrAlignment knew how to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145304 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ed1c0c7f5817be939872b462be984534bd48bb9b |
28-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert r145273 and fix in SelectionDAG::InferPtrAlignment() instead. Conservatively returns zero when the GV does not specify an alignment nor is it initialized. Previously it returns ABI alignment for type of the GV. However, if the type is a "packed" type, then the under-specified alignments is attached to the load / store instructions. In that case, the alignment of the type cannot be trusted. rdar://10464621 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
1c487869f5d47a7ad89d21ed9912bf89f25e3b72 |
28-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
DAG combine should not increase alignment of loads / stores with alignment less than ABI alignment. These are loads / stores from / to "packed" data structures. Their alignments are intentionally under-specified. rdar://10301431 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aa5656c6b9161608005cf8dc85027c160a925e58 |
28-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
80-column. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145267 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c80383095e1fd6a5567a0126b3ee551df8a2aacd |
28-Nov-2011 |
Bill Wendling <isanbard@gmail.com> |
Remove dead llvm.eh.sjlj.dispatchsetup intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
51901d85f718a7e293f52a7908eab9fe1c0c94a0 |
27-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Prevent rotating the blocks of a loop (and thus getting a backedge to be fallthrough) in cases where we might fail to rotate an exit to an outer loop onto the end of the loop chain. Having *some* rotation, but not performing this rotation, is the primary fix of thep performance regression with -enable-block-placement for Olden/em3d (a whopping 30% regression). Still working on reducing the test case that actually exercises this and the new rotation strategy out of this code, but I want to check if this regresses other test cases first as that may indicate it isn't the correct fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145195 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
fac1305da162259d17baa6700ecb5d148b86ef08 |
27-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Take two on rotating the block ordering of loops. My previous attempt was centered around the premise of laying out a loop in a chain, and then rotating that chain. This is good for preserving contiguous layout, but bad for actually making sane rotations. In order to keep it safe, I had to essentially make it impossible to rotate deeply nested loops. The information needed to correctly reason about a deeply nested loop is actually available -- *before* we layout the loop. We know the inner loops are already fused into chains, etc. We lose information the moment we actually lay out the loop. The solution was the other alternative for this algorithm I discussed with Benjamin and some others: rather than rotating the loop after-the-fact, try to pick a profitable starting block for the loop's layout, and then use our existing layout logic. I was worried about the complexity of this "pick" step, but it turns out such complexity is needed to handle all the important cases I keep teasing out of benchmarks. This is, I'm afraid, a bit of a work-in-progress. It is still misbehaving on some likely important cases I'm investigating in Olden. It also isn't really tested. I'm going to try to craft some interesting nested-loop test cases, but it's likely to be extremely time consuming and I don't want to go there until I'm sure I'm testing the correct behavior. Sadly I can't come up with a way of getting simple, fine grained test cases for this logic. We need complex loop structures to even trigger much of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145183 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
7096692fd9ab5753f17500a27d400d1544b6d3d8 |
27-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix an impressive type-o / spell-o Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145181 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
2eb5a744b18d429928751b06e205cbb88f668ae7 |
27-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rework a bit of the implementation of loop block rotation to not rely so heavily on AnalyzeBranch. That routine doesn't behave as we want given that rotation occurs mid-way through re-ordering the function. Instead merely check that there are not unanalyzable branching constructs present, and then reason about the CFG via successor lists. This actually simplifies my mental model for all of this as well. The concrete result is that we now will rotate more loop chains. I've added a test case from Olden highlighting the effect. There is still a bit more to do here though in order to regain all of the performance in Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145179 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
2e38cf961d6d80c88290ca6b8d867e021f80b763 |
27-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Introduce a loop block rotation optimization to the new block placement pass. This is designed to achieve one of the important optimizations that the old code placement pass did, but more simply. This is a somewhat rough and *very* conservative version of the transform. We could get a lot fancier here if there are profitable cases to do so. In particular, this only looks for a single pattern, it insists that the loop backedge being rotated away is the last backedge in the chain, and it doesn't provide any means of doing better in-loop placement due to the rotation. However, it appears that it will handle the important loops I am finding in the LLVM test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145158 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
0861f5793a1834f02b522fb86fb037cd592c134f |
27-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move code into anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145154 91177308-0d34-0410-b5e6-96231b3b80d8
plitter.cpp
|
1429059dc0129c1cec938c29d6fce89e14293241 |
25-Nov-2011 |
Logan Chien <loganchien@google.com> |
Merge with LLVM upstream r145126 (Nov 25th 2011) Change-Id: I30d08ae004a4c3c74092ad2537ab30cce4280e1d
|
4aae4f90071f64854ec771496bd164149b0a1352 |
24-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a silly use-after-free issue. A much earlier version of this code need lots of fanciness around retaining a reference to a Chain's slot in the BlockToChain map, but that's all gone now. We can just go directly to allocating the new chain (which will update the mapping for us) and using it. Somewhat gross mechanically generated test case replicates the issue Duncan spotted when actually testing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145120 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
a2deea1dcf8363f46bda8935283c5c701b5a278d |
24-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
When adding blocks to the list of those which no longer have any CFG conflicts, we should only be adding the first block of the chain to the list, lest we try to merge into the middle of that chain. Most of the places we were doing this we already happened to be looking at the first block, but there is no reason to assume that, and in some cases it was clearly wrong. I've added a couple of tests here. One already worked, but I like having an explicit test for it. The other is reduced from a test case Duncan reduced for me and used to crash. Now it is handled correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145119 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
598894ff2547aaa0a32ded145063f3bfe042f620 |
23-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Relax an invariant that block placement was trying to assert a bit further. This invariant just wasn't going to work in the face of unanalyzable branches; we need to be resillient to the phenomenon of chains poking into a loop and poking out of a loop. In fact, we already were, we just needed to not assert on it. This was found during a bootstrap with block placement turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145100 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
521fc5bcd73489f604a0b3251247c5ef21b5a0a5 |
23-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Handle the case of a no-return invoke correctly. It actually still has successors, they just are all landing pad successors. We handle this the same way as no successors. Comments attached for the next person to wade through here and another lovely test case courtesy of Benjamin Kramer's bugpoint reduction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145098 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
23d66a58b7900784a5808d24ce2d4a449f869aa8 |
23-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Enable stack protectors for all arrays, not just char arrays. rdar://5875909 Patch by Bill Wendling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145097 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
7f5e43f61d3b28a03537c29156b0bad7dd3476e4 |
23-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR11422. This was a bug in keeping track of the available domains when merging domain values. The wrong domain mask caused ExecutionDepsFix to try to move VANDPSYrr to the integer domain which is only available in AVX2. Also add an assertion to catch future attempts at emitting AVX2 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145096 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
47fb954f7437250eda152ed4165af5ac1c0ec366 |
23-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a crash in block placement due to an inner loop that happened to be reversed in the function's original ordering, and we happened to encounter it while handling an outer unnatural CFG structure. Thanks to the test case reduced from GCC's source by Benjamin Kramer. This may also fix a crasher in gzip that Duncan reduced for me, but I haven't yet gotten to testing that one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145094 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
3b7b209bf86d3e81d61cc195020bd4891467291b |
22-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a devilish miscompile exposed by block placement. The updateTerminator code didn't correctly handle EH terminators in one very specific case. AnalyzeBranch would find no terminator instruction, and so the fallback in updateTerminator is to assume fallthrough. This is correct, but the destination of the fallthrough was assumed to be the first successor. This is *almost always* true, but in certain cases the loop transformations will cause the landing pad to be the first successor! Instead of this brittle logic, actually look through the successors for a non-landing-pad accessor, and to assert if more than one is found. This will hopefully fix some (if not all) of the self host miscompiles with block placement. Thanks to Benjamin Kramer for reporting, Nick Lewycky for an initial stab at a reduction, and Duncan for endless advice on EH (which I know nothing about) as well as reviewing the actual fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145062 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
f264568bae482601431e4ac923172fa3671eb9e7 |
22-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix an obvious omission in the SelectionDAGBuilder where we were dropping weights on the floor for invokes. This was impeding my writing further test cases for invoke when interacting with probabilities and block placement. No test case as there doesn't appear to be a way to test this stuff. =/ Suggestions for a test case of course welcome. I hope to be able to add test cases that indirectly cover this eventually by adding probabilities to the exceptional edge and reordering blocks as a result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
254a13282c97469973b4fa8cc0e110ed6160642c |
22-Nov-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
If a register is both an early clobber and part of a tied use, handle the use before the clobber so that we copy the value if needed. Fixes pr11415. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145056 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
b0dadb9dd52aed7a82e24542be8adf881d91c929 |
20-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
The logic for breaking the CFG in the presence of hot successors didn't properly account for the *global* probability of the edge being taken. This manifested as a very large number of unconditional branches to blocks being merged against the CFG even though they weren't particularly hot within the CFG. The fix is to check whether the edge being merged is both locally hot relative to other successors for the source block, and globally hot compared to other (unmerged) predecessors of the destination block. This introduces a new crasher on GCC single-source, but it's currently behind a flag, and Ben has offered to work on the reduction. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145010 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
03300ecaee3ef853669582bcadec34170dbf515f |
19-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move the handling of unanalyzable branches out of the loop-driven chain formation phase and into the initial walk of the basic blocks. We essentially pre-merge all blocks where unanalyzable fallthrough exists, as we won't be able to update the terminators effectively after any reorderings. This is quite a bit more principled as there may be CFGs where the second half of the unanalyzable pair has some analyzable predecessor that gets placed first. Then it may get placed next, implicitly breaking the unanalyzable branch even though we never even looked at the part that isn't analyzable. I've included a test case that triggers this (thanks Benjamin yet again!), and I'm hoping to synthesize some more general ones as I dig into related issues. Also, to make this new scheme work we have to be able to handle branches into the middle of a chain, so add this check. We always fallback on the incoming ordering. Finally, this starts to really underscore a known limitation of the current implementation -- we don't consider broken predecessors when merging successors. This can caused major missed opportunities, and is something I'm planning on looking at next (modulo more bug reports). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144994 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
ce35d8b5a1071bb8ccf70bf8be3952dd0c4f2f15 |
18-Nov-2011 |
Devang Patel <dpatel@apple.com> |
DISubrange supports unsigned lower/upper array bounds, so let's not fake it in the end while emitting DWARF. If a FE needs to encode signed lower/upper array bounds then we need to extend DISubrange or ad DISignedSubrange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144937 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
478b06c9801f0b75c5216ce0886ac3d630d4fc7b |
17-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
When fast iseling a GEP, accumulate the offset rather than emitting a series of ADDs. MaxOffs is used as a threshold to limit the size of the offset. Tradeoffs being: (1) If we can't materialize the large constant then we'll cause fast-isel to bail. (2) Too large of an offset can't be directly encoded in the ADD resulting in a MOV+ADD. Generally not a bad thing because otherwise we would have had ADD+ADD, but on Thumb this turns into a MOVS+MOVT+ADD. Working on a fix for that. (3) Conversely, too low of a threshold we'll miss opportunities to coalesce ADDs. rdar://10412592 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4db4addcd49310599d2df8c6824dc188aaccb613 |
17-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure to replace the chain properly when DAGCombining a LOAD+EXTRACT_VECTOR_ELT into a single LOAD. Fixes PR10747/PR11393. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
053e69ad5704a8e0e5f50d8b18f8917377ffacfb |
16-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
Add fast-isel stats to determine who's doing all the work, the target-independent selector or the target-specific selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144833 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f91488cc1027267fa21665818d3c90bb8b2a25ce |
16-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
Fix the stats collection for fast-isel. The failed count was only accounting for a single miss and not all predecessor instructions that get selected by the selection DAG instruction selector. This is still not exact (e.g., over states misses when folded/dead instructions are present), but it is a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c3aa7c5c5aa1e06aa8a728149c6696401bd08faa |
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Disable expensive two-address optimizations at -O0. rdar://10453055 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144806 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
14117c44770c32b56de143a0eff8c2d0fd694e0d |
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Disable the assertion again. Looks like fastisel is still generating bad kill markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144804 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b95fc31aa2e5a0a0b9ee1909d1cb949577c5aa16 |
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sink codegen optimization level into MCCodeGenInfo along side relocation model and code model. This eliminates the need to pass OptLevel flag all over the place and makes it possible for any codegen pass to use this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144788 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineFunctionAnalysis.cpp
|
f1b41dd38d2b2713e3870f384525b020bbac05f6 |
16-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Record landing pads with a SmallSetVector to avoid multiple entries. There may be many invokes that share one landing pad, and the previous code would record the landing pad once for each invoke. Besides the wasted effort, a pair of volatile loads gets inserted every time the landing pad is processed. The rest of the code can get optimized away when a landing pad is processed repeatedly, but the volatile loads remain, resulting in code like: LBB35_18: Ltmp483: ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r2, [r7, #-72] ldr r2, [r7, #-68] ldr r4, [r7, #-72] ldr r2, [r7, #-68] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144787 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
20c918dfed5830f6d0c54c9c38817bd660cb6a13 |
16-Nov-2011 |
Bob Wilson <bob.wilson@apple.com> |
Update the SP in the SjLj jmpbuf whenever it changes. <rdar://problem/10444602> This same basic code was in the older version of the SjLj exception handling, but it was removed in the recent revisions to that code. It needs to be there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144782 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
0a405ae78a244ba55dfafdcac16585c262269e21 |
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert r144568 now that r144730 has fixed the fast-isel kill marker bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144776 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
9bad88a9def4abaa87e7e5e7178bd680354043f8 |
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
If the 2addr instruction has other kills, don't move it below any other uses since we don't want to extend other live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144772 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
2bee6a8bb74724263eadd550ee76417d6e6465a9 |
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
RescheduleKillAboveMI() must backtrack to before the rescheduled DBG_VALUE instructions. rdar://10451185 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144771 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
ae7db7af44c9155092d4b80cb4d5d333469f4320 |
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Process all uses first before defs to accurately capture register liveness. rdar://10449480 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144770 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d577df8e5ada3f4f97fa90bdc46c6f9b1db1dee1 |
16-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
CONCAT_VECTORS can have more than two operands. PR11389. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
b91b6001a63ea22cdad1a5392cb2b8a604d8219c |
16-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add a couple asserts so it will be easier to debug if we accidentally pass indexed loads/stores to the legalizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
99aa14ff64c92eab347d23696e358361d3bd90ea |
16-Nov-2011 |
Owen Anderson <resistor@mac.com> |
Rename MVT::untyped to MVT::Untyped to match similar nomenclature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144747 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
electionDAG/ScheduleDAGRRList.cpp
|
8368f74c434db60c36a4044dfe80d4abee49ce27 |
16-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Stabilize the output of the dwarf accelerator tables. Fixes a comparison failure during bootstrap with it turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144731 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
22b34cce4d270f787d4c991baee596a9e3b7f836 |
16-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
GEPs with all zero indices are trivially coalesced by fast-isel. For example, %arrayidx135 = getelementptr inbounds [4 x [4 x [4 x [4 x i32]]]]* %M0, i32 0, i64 0 %arrayidx136 = getelementptr inbounds [4 x [4 x [4 x i32]]]* %arrayidx135, i32 0, i64 %idxprom134 Prior to this commit, the GEP instruction that defines %arrayidx136 thought that %arrayidx135 was a trivial kill. The GEP that defines %arrayidx135 doesn't generate any code and thus %M0 gets folded into the second GEP. Thus, we need to look through GEPs with all zero indices. rdar://10443319 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144730 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2d496897934adfc0e3e1563dd64d9a7122971e22 |
15-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Added custom lowering for load->dec->store sequence in x86 when the EFLAGS registers is used by later instructions. Only done for DEC64m right now. Fixes <rdar://problem/6172640> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144705 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d2df64f56970aa07d2d8733543e4baf6c7009e91 |
15-Nov-2011 |
Devang Patel <dpatel@apple.com> |
Insert modified DBG_VALUE into LiveDbgValueMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144696 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
6c5b2dcd8385e2465f1b9f628d4368fa7c5a3c77 |
15-Nov-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
We currently use a callback to handle an IL pass deleting a BB that still has a reference to it. Unfortunately, that doesn't work for codegen passes since we don't get notified of MBB's being deleted (the original BB stays). Use that fact to our advantage and after printing a function, check if any of the IL BBs corresponds to a symbol that was not printed. This fixes pr11202. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144674 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a7b0cb759433c715065440ee2a963a04db7f2b0b |
15-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove all remaining uses of Value::getNameStr(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144648 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
achineFunction.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
electionDAG/SelectionDAGISel.cpp
hrinkWrapping.cpp
argetLoweringObjectFileImpl.cpp
|
25ad1cc32af8d526eb72893a513a486bc28c5106 |
15-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Twinify GraphWriter a little bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144647 91177308-0d34-0410-b5e6-96231b3b80d8
dgeBundles.cpp
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
d1bfc301986c5e3203ec57cba4122342f7dca108 |
15-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check all overlaps when looking for used registers. A function using any RC alias is enough to enable the ExeDepsFix pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144636 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
2151acf5fb0137bacdaa0efcb1a03905c99772e6 |
15-Nov-2011 |
Logan Chien <loganchien@google.com> |
Enable promote elements since the upstream has fixed it. Change-Id: I7e4068c124ac330d021b52b877926ae719c7cb37
electionDAG/TargetLowering.cpp
|
36abbec01815964352d4f3d391c0a03896c0095a |
15-Nov-2011 |
Logan Chien <loganchien@google.com> |
Apply changes to migrate to llvm upstream r144606. Change-Id: Id22edd55de42831bdc3fc1a143ebec10cf8476d2
ndroid.mk
|
f4a5084d06438fcd7f91684b6236b66c4c202e16 |
15-Nov-2011 |
Jay Foad <jay.foad@gmail.com> |
Make use of MachinePointerInfo::getFixedStack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144635 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
8c2e35269c10914c16f351449fb9b8108ccb2556 |
15-Nov-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove some unnecessary includes of PseudoSourceValue.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGPrinter.cpp
|
f9c1b92c27bf4ac40a52e0f1ef6d006d7e74bed3 |
15-Nov-2011 |
Logan Chien <loganchien@google.com> |
Merge with LLVM upstream r144606 (Nov 15th 2011) Conflicts: Makefile.rules configure docs/ReleaseNotes.html lib/Analysis/ScalarEvolution.cpp lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp lib/CodeGen/ExecutionDepsFix.cpp lib/CodeGen/MachineBlockPlacement.cpp lib/CodeGen/MachineBranchProbabilityInfo.cpp lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/ExecutionEngine/JIT/LLVMBuild.txt lib/MC/LLVMBuild.txt lib/MC/MCDisassembler/LLVMBuild.txt lib/MC/MCDwarf.cpp lib/Object/LLVMBuild.txt lib/Target/ARM/ARMExpandPseudoInsts.cpp lib/Target/ARM/ARMFastISel.cpp lib/Target/ARM/ARMInstrInfo.td lib/Target/ARM/AsmParser/ARMAsmParser.cpp lib/Target/ARM/Disassembler/ARMDisassembler.cpp lib/Target/ARM/Disassembler/LLVMBuild.txt lib/Target/ARM/TargetInfo/LLVMBuild.txt lib/Target/CBackend/TargetInfo/LLVMBuild.txt lib/Target/CellSPU/MCTargetDesc/LLVMBuild.txt lib/Target/CellSPU/TargetInfo/LLVMBuild.txt lib/Target/CppBackend/TargetInfo/LLVMBuild.txt lib/Target/LLVMBuild.txt lib/Target/MBlaze/Disassembler/LLVMBuild.txt lib/Target/MBlaze/TargetInfo/LLVMBuild.txt lib/Target/MSP430/MCTargetDesc/LLVMBuild.txt lib/Target/MSP430/TargetInfo/LLVMBuild.txt lib/Target/Mips/CMakeLists.txt lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp lib/Target/Mips/Mips64InstrInfo.td lib/Target/Mips/MipsAsmPrinter.cpp lib/Target/Mips/MipsISelLowering.cpp lib/Target/Mips/MipsMCInstLower.cpp lib/Target/Mips/TargetInfo/LLVMBuild.txt lib/Target/PTX/LLVMBuild.txt lib/Target/PTX/PTXAsmPrinter.cpp lib/Target/PTX/TargetInfo/LLVMBuild.txt lib/Target/PowerPC/TargetInfo/LLVMBuild.txt lib/Target/Sparc/TargetInfo/LLVMBuild.txt lib/Target/X86/TargetInfo/LLVMBuild.txt lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrSSE.td lib/Target/XCore/MCTargetDesc/LLVMBuild.txt lib/Target/XCore/TargetInfo/LLVMBuild.txt lib/Transforms/IPO/LLVMBuild.txt lib/Transforms/Utils/LLVMBuild.txt test/CodeGen/ARM/2011-10-26-memset-with-neon.ll test/CodeGen/ARM/2011-11-07-PromoteVectorLoadStore.ll test/CodeGen/ARM/fast-isel-cmp-imm.ll test/CodeGen/ARM/fast-isel-ldrh-strh-arm.ll test/CodeGen/CellSPU/call_indirect.ll test/CodeGen/X86/avx2-logic.ll test/CodeGen/X86/block-placement.ll test/CodeGen/X86/sse-domains.ll test/CodeGen/X86/sse3.ll test/CodeGen/X86/vec_shuffle-39.ll test/MC/ARM/neon-vld-encoding.s test/MC/ARM/neon-vst-encoding.s tools/llvm-config-2/llvm-config.cpp utils/TableGen/LLVMBuild.txt Change-Id: I70f454db6fc79d7799f56d0f6f2eb7b99561c504
|
f178418729d91e2f15a8eb27c0e4787b8ec7a3ce |
15-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Set SeenStore to true to prevent loads from being moved; also eliminates a non-deterministic behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144628 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3273c8937b8c3ebdd1cfc0c67054ce5571f0afc9 |
15-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rather than trying to use the loop block sequence *or* the function block sequence when recovering from unanalyzable control flow constructs, *always* use the function sequence. I'm not sure why I ever went down the path of trying to use the loop sequence, it is fundamentally not the correct sequence to use. We're trying to preserve the incoming layout in the cases of unreasonable control flow, and that is only encoded at the function level. We already have a filter to select *exactly* the sub-set of blocks within the function that we're trying to form into a chain. The resulting code layout is also significantly better because of this. In several places we were ending up with completely unreasonable control flow constructs due to the ordering chosen by the loop structure for its internal storage. This change removes a completely wasteful vector of basic blocks, saving memory allocation in the common case even though it costs us CPU in the fairly rare case of unnatural loops. Finally, it fixes the latest crasher reduced out of GCC's single source. Thanks again to Benjamin Kramer for the reduction, my bugpoint skills failed at it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144627 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
c2ecf3efbf375fc82bb1cea6afd7448498f9ae75 |
15-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Break false dependencies before partial register updates. Two new TargetInstrInfo hooks lets the target tell ExecutionDepsFix about instructions with partial register updates causing false unwanted dependencies. The ExecutionDepsFix pass will break the false dependencies if the updated register was written in the previoius N instructions. The small loop added to sse-domains.ll runs twice as fast with dependency-breaking instructions inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144602 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
2947f730a96fc602ea008bba1929ae4f0638850a |
15-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track register ages more accurately. Keep track of the last instruction to define each register individually instead of per DomainValue. This lets us track more accurately when a register was last written. Also track register ages across basic blocks. When entering a new basic block, use the least stale predecessor def as a worst case estimate for register age. The register age is used to arbitrate between conflicting domains. The most recently defined register wins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144601 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
8aee7d8f9eab71a29f8f3a5a541144bef4fb5ac4 |
14-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Avoid dereferencing off the beginning of lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144569 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
41e00172c51a1666cbcda5df2c6f45d685068fbb |
14-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
At -O0, multiple uses of a virtual registers in the same BB are being marked "kill". This looks like a bug upstream. Since that's going to take some time to understand, loosen the assertion and disable the optimization when multiple kills are seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144568 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
2a4410df44cd710e20b3f12873c35405830d66fb |
14-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Teach two-address pass to re-schedule two-address instructions (or the kill instructions of the two-address operands) in order to avoid inserting copies. This fixes the few regressions introduced when the two-address hack was disabled (without regressing the improvements). rdar://10422688 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144559 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f054e198197122011fc80b673f35333bc3e58c98 |
14-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix early-clobber handling in shrinkToUses. I broke this in r144515, it affected most ARM testers. <rdar://problem/10441389> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144547 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f2a027ee44593147a4aee5566a13f682a1964773 |
11-Nov-2011 |
Stephen Hines <srhines@google.com> |
Update LLVM to svn 144354. Change-Id: I1935ffce1c5d5eec52ad8b69bab9ee0c281aef16
ndroid.mk
smPrinter/Android.mk
electionDAG/Android.mk
|
4fffbb4e26c7ee764a853e54ba11aa57087b6ab1 |
11-Nov-2011 |
Eric Christopher <echristo@apple.com> |
If we have a DIE with an AT_specification use that instead of the normal addr DIE when adding to the dwarf accelerator tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144354 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
e699247c88cc3321e6c92c7506c900ca90f1c17f |
10-Nov-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Check in getOrCreateSubprogramDIE if a declaration exists and if so output it first. This is a more general fix to pr11300. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144324 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
a69e037083e51d56fee1ef0961ad71b441d6f5f1 |
10-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Make types and namespaces take multiple DIEs for the accelerator tables as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144319 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
6dfcce76e9e12730c6b67d7a04eca32dd331711b |
10-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Move type handling to make sure we get all created types that aren't forward decls and have names into the dwarf accelerator types table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144306 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
c63f8b0fdb11d1723f070de38a3d68de95981990 |
10-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Rework adding function names to the dwarf accelerator tables, allow multiple dies per function and support C++ basenames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144304 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
d8a251a964945b5b17620350fdfd866c140b7a5c |
10-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Use a bigger hammer to fix PR11314 by disabling the "forcing two-address instruction lower optimization" in the pre-RA scheduler. The optimization, rather the hack, was done before MI use-list was available. Now we should be able to implement it in a better way, perhaps in the two-address pass until a MI scheduler is available. Now that the scheduler has to backtrack to handle call sequences. Adding artificial scheduling constraints is just not safe. Furthermore, the hack is not taking all the other scheduling decisions into consideration so it's just as likely to pessimize code. So I view disabling this optimization goodness regardless of PR11314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144267 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d7a241e7722755e09ccb1220eb3ac8b5131c6827 |
10-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Strip old implicit operands after foldMemoryOperand. The TII.foldMemoryOperand hook preserves implicit operands from the original instruction. This is not what we want when those implicit operands refer to the register being spilled. Implicit operands referring to other registers are preserved. This fixes PR11347. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144247 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
a5592b776d4df9af5a422df9133943dd461544ab |
09-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add check so we don't try to perform an impossible transformation. Fixes issue from PR11319. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8b990fb13ec620eca9c31d1f7d6e2109ac8c374b |
09-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
12ecbb08fc3659c6e55f1534fa5d8f122d320b07 |
09-Nov-2011 |
Duncan Sands <baldrick@free.fr> |
Speculatively revert commit 144124 (djg) in the hope that the 32 bit dragonegg self-host buildbot will recover (it is complaining about object files differing between different build stages). Original commit message: Add a hack to the scheduler to disable pseudo-two-address dependencies in basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
48d9a37d968b5ce6c9eed249f5a3b95fa0bd2014 |
09-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Take advantage of the zero byte in StringMap when emitting dwarf stringpool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144184 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d4807991d8782772c32e24cb6e17e8c2d1853531 |
09-Nov-2011 |
Devang Patel <dpatel@apple.com> |
Remove extra ';' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
|
4cbab6932e3badf961f31658e8b378450132665f |
09-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Remove the pubnames section, no one consumes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144169 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
fc7b08da019fcb14f7ca3f0db77b10384809fd8b |
09-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Collapse DomainValues across loop back-edges. During the initial RPO traversal of the basic blocks, remember the ones that are incomplete because of back-edges from predecessors that haven't been visited yet. After the initial RPO, revisit all those loop headers so the incoming DomainValues on the back-edges can be properly collapsed. This will properly fix execution domains on software pipelined code, like the included test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144151 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
608948e2c6b62b5a5055b10b07d1c07da4b59472 |
09-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Link to the live DomainValue after merging. When merging two uncollapsed DomainValues, place a link to the active DomainValue from the passive DomainValue. This allows old stale references to the passive DomainValue to be updated to point to the active DomainValue. The new resolve() function finds the active DomainValue and updates the pointer. This change makes old live-out lists more useful since they may contain uncollapsed DomainValues that have since been merged into other DomainValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144149 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
d658dd4797ceb57789179c90cb3c2f21897d756d |
09-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track reference count independently from clear(). This allows clear() to be called on a DomainValue with references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144147 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
0ed5f64f1ddf838857a4ce95353906c08b6fafc6 |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Call release() directly when cleaning up the remaining DomainValues. There is no need to involve the LiveRegs array and kill() any longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144133 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
d0ba114a13b4910d965e64d1ba3f1a2d46933bdf |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename all methods to follow style guide. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144132 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
e67e6f16c005165232cf46e2fc0d77e6a7ed7dbf |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle reference counts in one function: release(). This new function will decrement the reference count, and collapse a domain value when the last reference is gone. This simplifies DomainValue reference counting, and decouples it from the LiveRegs array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144131 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
b213765260884e182eb3cf4867181c66a7eb4f83 |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Also add the linkage name to the name accelerator tables if it exists and is different than the normal name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144130 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
a1c31670bc6b110a738165631f18dce1de36544c |
08-Nov-2011 |
Dan Gohman <gohman@apple.com> |
Add a hack to the scheduler to disable pseudo-two-address dependencies in basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f1e88bba7b7dcc346b415c6551c458e40b740127 |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear old DomainValue after merging. The old value may still be referenced by some live-out list, and we don't wan't to collapse those instructions twice. This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC builds. <rdar://problem/10413292> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144117 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
c57daf29566e89d93a9d5e00314b947d9fc5b104 |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add the base ObjC method name to the names lookup table as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144105 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
22d43e3f0991cb2710cdb79eb6c37ae8ba53e4f4 |
08-Nov-2011 |
Lang Hames <lhames@gmail.com> |
Lower mem-ops to unaligned i32/i16 load/stores on ARM where supported. Add support for trimming constants to GetDemandedBits. This fixes some funky constant generation that occurs when stores are expanded for targets that don't support unaligned stores natively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
67f02679340e056f50120a84b128b3c6188d693d |
08-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Added invariant field to the DAG.getLoad method and changed all calls. When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144100 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
68e7c6959f1a3d0542e752b34f1a7816ccdd75bf |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
A few more places where we can avoid multiple size queries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144099 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
5cba0ca062c582fdc6462dbf3407cde17970c4e0 |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Don't evaluate Data.size() on every iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144095 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
a26ebbe5cc71869e8fc0194756f6584f7c4b4d03 |
08-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318. Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144055 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
986fcd68d34814f40d35413b30a69254a3daefe7 |
08-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert r144034 while I try to track down a crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f581dc9bc08dd1f09915d7ba280ce77a4923fb6b |
08-Nov-2011 |
Bill Wendling <isanbard@gmail.com> |
This code is dead, what with the new EH model and the auto-upgraders in place. Delete! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144043 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
751936b14d14c89e74e23a5073b9ae4373288898 |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Kill and collapse outstanding DomainValues. DomainValues that are only used by "don't care" instructions are now collapsed to the first possible execution domain after all basic blocks have been processed. This typically means the PS domain on x86. For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are completely collapsed to the PS domain instead of containing a mix of execution domains created by isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144037 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
2278edcb4a5a89eabc1bbe5a54535c7848e4f61a |
07-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144034 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8b2139f5e988cd975f74dec8238aa74541a7658d |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add all completed and named types to the dwarf type accelerator tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
16fb58ad0ba061c7059b1cb5fd53a9b46a33d5c3 |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a reverse post order instead of a DFS order. The enterBasicBlock() function is combining live-out values from predecessor blocks. The RPO traversal means that more predecessors have been visited when that happens, only back-edges are missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144025 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
69ff8cf1ab1470541fc43ecf083670ce95a773af |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Move the hash function to using and taking a StringRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
|
26bab293425c448bb5c2b63838d123543d6fd0ec |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Simple destructor to delete the hash data we created earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144023 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
|
d6a721a10a161a0919c06d5790088ad4d8e40666 |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract two methods. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144020 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
731f8d28dedbbb1e7136ff450d5a5d06404aff32 |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MBB doesn't need to be a class member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144015 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
f318b3db94d3336dd82dc4574e2741b70e0be294 |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix pass name after the source was moved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144014 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
80f3344904fb0678f06a2e69067421990d2e39df |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Use StringRef::startswith to do some string comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143982 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1f857842c5408e2ae4412123142132ef87edc6ce |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Avoid the use of a local temporary for comment twines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143974 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
408c5673bbf5f504e2ef411738127d83d5e71de0 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Allow for the case where the name of the subprogram is "". Fixes a self-host error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143970 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
47f1ffe0789ece734d58f5c476db7513e559a30c |
07-Nov-2011 |
Richard Osborne <richard@xmos.com> |
Don't introduce custom nodes after legalization in TargetLowering::BuildSDIV() and TargetLowering::BuildUDIV(). Fixes PR11283 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
0565071e15ddcb379568d87b3a2725aab501e476 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Remove unnecessary addition to API. Replace with something much simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143925 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
74851494443271fd4935594e4632ef6f27a230a2 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add new files to cmake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143924 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
fcb83a41ff8645804794400d6a8c0d77ccc93042 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add the support code to enable the dwarf accelerator tables. Upcoming patches to fix the types section (all types, not just global types), and testcases. The code to do the final emission is disabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143923 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3dec3fd0e97ff2eb6bb39cbcb0d89ad154aec604 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add a new dwarf accelerator table prototype with the goal of replacing the pubnames and pubtypes tables. LLDB can currently use this format and a full spec is forthcoming and submission for standardization is planned. A basic summary: The dwarf accelerator tables are an indirect hash table optimized for null lookup rather than access to known data. They are output into an on-disk format that looks like this: .-------------. | HEADER | |-------------| | BUCKETS | |-------------| | HASHES | |-------------| | OFFSETS | |-------------| | DATA | `-------------' where the header contains a magic number, version, type of hash function, the number of buckets, total number of hashes, and room for a special struct of data and the length of that struct. The buckets contain an index (e.g. 6) into the hashes array. The hashes section contains all of the 32-bit hash values in contiguous memory, and the offsets contain the offset into the data area for the particular hash. For a lookup example, we could hash a function name and take it modulo the number of buckets giving us our bucket. From there we take the bucket value as an index into the hashes table and look at each successive hash as long as the hash value is still the same modulo result (bucket value) as earlier. If we have a match we look at that same entry in the offsets table and grab the offset in the data for our final match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143921 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
|
51b8262989192fc12300402296602ac57f288faf |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Expose a way to get the beginning of the dwarf string section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e56902effc5e67c0a1c53a712f8d67b55aa9ce97 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Fix up comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143919 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b2d6f982de5813bb3b8ddd1001c27d090d8930eb |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143918 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
916f8baa0d9d984e37c02c70d67f04992352568e |
05-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add an option to pad an uleb128 to MCObjectWriter and remove the uleb128 encoding from the DWARF asm printer. As a side effect we now print dwarf ulebs with .ascii directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143809 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
4eb73c59bcd1055e9a3f324d836ce3898fbb7c81 |
05-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add more PRI.64 macros for MSVC and use them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143799 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
|
daef113e7190442de92b85ad3b187fd8ee7dae7b |
05-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Added missing &. Fixes <rdar://problem/10393723> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143753 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
5ad16989828cd342609b2035ec54e5c75b4e01f9 |
04-Nov-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Emit declarations before definitions if they are available. This causes DW_AT_specification to point back in the file in the included testcase. Fixes PR11300. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
dd21ce80415edf09fa66a0bfebc812ce682409bf |
03-Nov-2011 |
Dan Gohman <gohman@apple.com> |
Reapply r143206, with fixes. Disallow physical register lifetimes across calls, and only check for nested dependences on the special call-sequence-resource register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143660 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
4e6a98b84017a74a3f78bee72a70499d785757ba |
03-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Reverted r143600 - selector reference change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143646 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
00ade8bab0045bde35b13d2489021b8642aeb0cc |
03-Nov-2011 |
Daniel Dunbar <daniel@zuster.org> |
build: Add initial cut at LLVMBuild.txt files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143634 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/LLVMBuild.txt
LVMBuild.txt
electionDAG/LLVMBuild.txt
|
6fbf5c114c68f0c4099b464754be033a46781cf8 |
03-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Treat objc selector reference globals as invariant so that MachineLICM can hoist them out of loops. Fixes <rdar://problem/6027699> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143600 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
37ecce1958a0da3b707b61a2710964c46b6dcd08 |
03-Nov-2011 |
Bill Wendling <isanbard@gmail.com> |
An array of chars of length 8 will also cause the stack protector to be inserted into the function. Reflect that here so that the array will be placed next to the SP. <rdar://problem/10128329> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
2443f9532abf55cb26e4c8e7c485df79e7855368 |
02-Nov-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Don't emit a directory entry for the value in DW_AT_comp_dir, that is always implied by directory index zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143570 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8f27862ad87f3147119f78e004533ff1d8bad1f2 |
02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Begin collecting some of the statistics for block placement discussed on the mailing list. Suggestions for other statistics to collect would be awesome. =] Currently these are implemented as a separate pass guarded by a separate flag. I'm not thrilled by that, but I wanted to be able to collect the statistics for the old code placement as well as the new in order to have a point of comparison. I'm planning on folding them into the single pass if / when there is only one pass of interest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143537 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
LVMTargetMachine.cpp
achineBlockPlacement.cpp
|
183a3672cf6988c80178ceb19fe05ec1cad45e90 |
01-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update split candidate correctly when interference cache is full. No test case, spotted by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143407 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
4c6720ffff2343038bfb4810c7c6efc06ebf2181 |
31-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Cleanup. Document. Make sure that this build_vector optimization only runs before the op legalizer and that the used type is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
90d4087f0dc58f0b20c8f39afa1f4c430b5839d6 |
30-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
81d934ef0702acfdc709b03f484fb220df91213c |
29-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add a new DAGCombine optimization for BUILD_VECTOR. If all of the inputs are zero/any_extended, create a new simple BV which can be further optimized by other BV optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2ad3a89681d15d30b76c36bbd6355ddd78be7e45 |
29-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Revert r143206, as there are still some failing tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
26b4f62e52845638a6e353b58ea72326a0aa7b06 |
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Reapply r143177 and r143179 (reverting r143188), with scheduler fixes: Use a separate register, instead of SP, as the calling-convention resource, to avoid spurious conflicts with actual uses of SP. Also, fix unscheduling of calling sequences, which can be triggered by pseudo-two-address dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
93ce5f573eaaafeabfc41bf60e63fb215a9be288 |
28-Oct-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Dwarf: [PR11022] Fix emitting DW_AT_const_value(>i64), to be host-endian-neutral. Don't assume APInt::getRawData() would hold target-aware endianness nor host-compliant endianness. rawdata[0] holds most lower i64, even on big endian host. FIXME: Add a testcase for big endian target. FIXME: Ditto on CompileUnit::addConstantFPValue() ? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
b008e84283246609598c7a54aabec162e526d446 |
28-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use BranchProbability compare operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143190 91177308-0d34-0410-b5e6-96231b3b80d8
achineBranchProbabilityInfo.cpp
|
48665489a07cf7db7fb78f70e9cabb730f29e32e |
28-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Speculatively disable Dan's commits 143177 and 143179 to see if it fixes the dragonegg self-host (it looks like gcc is miscompiled). Original commit messages: Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW on every node as it legalizes them. This makes it easier to use hasOneUse() heuristics, since unneeded nodes can be removed from the DAG earlier. Make LegalizeOps visit the DAG in an operands-last order. It previously used operands-first, because LegalizeTypes has to go operands-first, and LegalizeTypes used to be part of LegalizeOps, but they're now split. The operands-last order is more natural for several legalization tasks. For example, it allows lowering code for nodes with floating-point or vector constants to see those constants directly instead of seeing the lowered form (often constant-pool loads). This makes some things somewhat more complicated today, though it ought to allow things to be simpler in the future. It also fixes some bugs exposed by Legalizing using RAUW aggressively. Remove the part of LegalizeOps that attempted to patch up invalid chain operands on libcalls generated by LegalizeTypes, since it doesn't work with the new LegalizeOps traversal order. Instead, define what LegalizeTypes is doing to be correct, and transfer the responsibility of keeping calls from having overlapping calling sequences into the scheduler. Teach the scheduler to model callseq_begin/end pairs as having a physical register definition/use to prevent calls from having overlapping calling sequences. This is also somewhat complicated, though there are ways it might be simplified in the future. This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others. Please direct high-level questions about this patch to management. Delete #if 0 code accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
a4f0ca4a19c91ec0a6a99538f55c3648f0f3eed6 |
28-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Always use the string pool, even when it makes the .o larger. This may help tools that read the debug info in the .o files by making the DIE sizes more consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143186 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
|
da230071f0303ae6b210f89b27f14a46f417d5e4 |
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete #if 0 code accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0ffd02dc922213fed7eb0d055d76e260027adcdd |
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW on every node as it legalizes them. This makes it easier to use hasOneUse() heuristics, since unneeded nodes can be removed from the DAG earlier. Make LegalizeOps visit the DAG in an operands-last order. It previously used operands-first, because LegalizeTypes has to go operands-first, and LegalizeTypes used to be part of LegalizeOps, but they're now split. The operands-last order is more natural for several legalization tasks. For example, it allows lowering code for nodes with floating-point or vector constants to see those constants directly instead of seeing the lowered form (often constant-pool loads). This makes some things somewhat more complicated today, though it ought to allow things to be simpler in the future. It also fixes some bugs exposed by Legalizing using RAUW aggressively. Remove the part of LegalizeOps that attempted to patch up invalid chain operands on libcalls generated by LegalizeTypes, since it doesn't work with the new LegalizeOps traversal order. Instead, define what LegalizeTypes is doing to be correct, and transfer the responsibility of keeping calls from having overlapping calling sequences into the scheduler. Teach the scheduler to model callseq_begin/end pairs as having a physical register definition/use to prevent calls from having overlapping calling sequences. This is also somewhat complicated, though there are ways it might be simplified in the future. This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others. Please direct high-level questions about this patch to management. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
2be084a25b1f79f17520d824d0feb8c7854b5f31 |
27-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Teach our Dwarf emission to use the string pool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
56b16aed0966010a2f355fe8167ccbf9622f4672 |
27-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't crash on 128-bit sdiv by constant. Found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143095 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3835309e48a98f541d52a640424791e712a09ace |
27-Oct-2011 |
Lang Hames <lhames@gmail.com> |
Rename NonScalarIntSafe to something more appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143080 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2e5d3abd4e9f450ae30362d440a09aca26fc9c30 |
27-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Reflow lines, fix comments for doxygen style, fix whitespace. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143074 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
005192a3bfd0029ff01dd80df06c3ae6d6b459f4 |
26-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Simplify SplitVecRes_UnaryOp by removing all the code that is trying to legalize the operand types when only the result type is required to be legalized - the type legalization machinery will get round to the operands later if they need legalizing. There can be a point to legalizing operands in parallel with the result: when this saves compile time or results in better code. There was only one case in which this was true: when the operand is also split, so keep the logic for that bit. As a result of this change, additional operand legalization methods may need to be introduced to handle nodes where the result and operand types can differ, like SIGN_EXTEND, but the testsuite doesn't contain any tests where this is the case. In any case, it seems better to require such methods (and die with an assert if they doesn't exist) than to quietly produce wrong code if we forgot to special case the node in SplitVecRes_UnaryOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
3beff0b3d8dd6c1afa62dc6dc1908ee12fffabc3 |
26-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use floating point to do an integer's job. This code makes different decisions when compiled into x87 instructions because of different rounding behavior. That caused phase 2/3 miscompares on 32-bit Linux when the phase 1 compiler was built with gcc (using x87), and the phase 2 compiler was built with clang (using SSE). This fixes PR11200. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
2442bb2dfc33d75f8acc5a045d4ca5000083f3d1 |
26-Oct-2011 |
Evan Cheng <evan.cheng@apple.com> |
Disable LICM speculation in high register pressure situation again now that Devang has fixed other issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143003 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c9cd0b24214174c7cd0aacdb59c7e4a973f62b36 |
26-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Reapply r142920 with fix: An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143001 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
e87bae364273f1154c1f7b7c4a86cba684d638c7 |
25-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Remove a couple redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8b4d0f91d01f70f59ff7273a1e918d644e969acc |
25-Oct-2011 |
Jim Grosbach <grosbach@apple.com> |
Make assert() message more informative. PR11217. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142956 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
93bec3a742d1350a853f6acb74f3de3104818058 |
25-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Revert commit 142891. Takumi bisected the tablegen miscompiles down to this commit. Original commit message: An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142920 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
db66fb51c47acb2faea916752a90c4baa8f9d0e3 |
25-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Remove dead enum value. There is no DIESectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142912 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
e0c998db1fd339c3818e360d7769e375ac296d06 |
25-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Remove unused forward decl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142892 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
dbdf2008cf077f2b23c7c8fc52db95e0581c1117 |
25-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142891 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c5a8e00ca0bf183012dcf0069ff79c7b655e5cf4 |
25-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Check the visibility of the global variable before placing it into the stubs table. A hidden variable could potentially end up in both lists. <rdar://problem/10336715> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142869 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
830c86601a5b23245db942f9dea322fff197bd41 |
24-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Really unbreak CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
05b663d8a9d66acaa1883a31dfce9da7da046842 |
24-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Unbreak CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142821 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
ea971ef42153132e1ea67873e38c90b3bd4310db |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete the top-down "Latency" scheduler. Top-down scheduling doesn't handle physreg dependencies, and upcoming codegen changes will require proper physreg dependence handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
4c79255574ff3c1e7693f070d3e0c7c2e31bf6d4 |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete the Latency scheduling preference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142815 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
887422c3752cbefb67e6a4367358a38bfcd99c0a |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Change this overloaded use of Sched::Latency to be an overloaded use of Sched::ILP instead, as Sched::Latency is going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
fc0f6d4cf7cfb1f10663472eaf4acde2def926ad |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Change the default scheduler from Latency to ILP, since Latency is going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1b9cf532a9d73e862bb2582c26a173e71d614172 |
24-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Cleanup. Get rid of the old SjLj EH lowering code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142800 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
fcc70a0e836d657f659184e0cff6655200087b61 |
24-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Sink an otherwise unused variable's initializer into the asserts that used it. Fixes an unused variable warning from GCC on release builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142799 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
608a61f637d61dbd44f03e42b50d58c32e7b82b3 |
23-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Now that we have comparison on probabilities, add some static functions to get important constant branch probabilities and use them for finding the best branch out of a set of possibilities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142762 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
90be3bf90f7eb90eab4ab6945c4f8a862cbd8d1d |
23-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove a commented out line of code that snuck by my auditing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142761 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
56b150b1969637892ab3484e08e69e9d12c9cf24 |
23-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Completely re-write the algorithm behind MachineBlockPlacement based on discussions with Andy. Fundamentally, the previous algorithm is both counter productive on several fronts and prioritizing things which aren't necessarily the most important: static branch prediction. The new algorithm uses the existing loop CFG structure information to walk through the CFG itself to layout blocks. It coalesces adjacent blocks within the loop where the CFG allows based on the most likely path taken. Finally, it topologically orders the block chains that have been formed. This allows it to choose a (mostly) topologically valid ordering which still priorizes fallthrough within the structural constraints. As a final twist in the algorithm, it does violate the CFG when it discovers a "hot" edge, that is an edge that is more than 4x hotter than the competing edges in the CFG. These are forcibly merged into a fallthrough chain. Future transformations that need te be added are rotation of loop exit conditions to be fallthrough, and better isolation of cold block chains. I'm also planning on adding statistics to model how well the algorithm does at laying out blocks based on the probabilities it receives. The old tests mostly still pass, and I have some new tests to add, but the nested loops are still behaving very strangely. This almost seems like working-as-intended as it rotated the exit branch to be fallthrough, but I'm not convinced this is actually the best layout. It is well supported by the probabilities for loops we currently get, but those are pretty broken for nested loops, so this may change later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142743 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
047485288f31849a3e66fa0563287523b635c68f |
22-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Make sure that the landing pads themselves have no PHI instructions in them. The assumption in the back-end is that PHIs are not allowed at the start of the landing pad block for SjLj exceptions. <rdar://problem/10313708> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142689 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
50e0b213c6f1bd67b676df51a20856087c47ce5a |
21-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix pr11194. When promoting and splitting integers we need to use ZExtPromotedInteger and SExtPromotedInteger based on the operation we legalize. SetCC return type needs to be legalized via PromoteTargetBoolean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142660 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
c18a0906dacc5afb5772098f2d489ae5962e2184 |
21-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
1. Fix the widening of SETCC in WidenVecOp_SETCC. Use the correct return CC type. 2. Fix a typo in CONCAT_VECTORS which exposed the bug in #1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
1ff890ac0d8f1414f12bcefcefe03d0fd0316e8f |
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add loop aligning to MachineBlockPlacement based on review discussion so it's a bit more plausible to use this instead of CodePlacementOpt. The code for this was shamelessly stolen from CodePlacementOpt, and then trimmed down a bit. There doesn't seem to be much utility in returning true/false from this pass as we may or may not have rewritten all of the blocks. Also, the statistic of counting how many loops were aligned doesn't seem terribly important so I removed it. If folks would like it to be included, I'm happy to add it back. This was probably the most egregious of the missing features, and now I'm going to start gathering some performance numbers and looking at specific loop structures that have different layout between the two. Test is updated to include both basic loop alignment and nested loop alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142645 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
527334f7b96896ebb2388b8f96538326b8cc7812 |
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Implement a block placement pass based on the branch probability and block frequency analyses. This differs substantially from the existing block-placement pass in LLVM: 1) It operates on the Machine-IR in the CodeGen layer. This exposes much more (and more precise) information and opportunities. Also, the results are more stable due to fewer transforms ocurring after the pass runs. 2) It uses the generalized probability and frequency analyses. These can model static heuristics, code annotation derived heuristics as well as eventual profile loading. By basing the optimization on the analysis interface it can work from any (or a combination) of these inputs. 3) It uses a more aggressive algorithm, both building chains from tho bottom up to maximize benefit, and using an SCC-based walk to layout chains of blocks in a profitable ordering without O(N^2) iterations which the old pass involves. The pass is currently gated behind a flag, and not enabled by default because it still needs to grow some important features. Most notably, it needs to support loop aligning and careful layout of loop structures much as done by hand currently in CodePlacementOpt. Once it supports these, and has sufficient testing and quality tuning, it should replace both of these passes. Thanks to Nick Lewycky and Richard Smith for help authoring & debugging this, and to Jakob, Andy, Eric, Jim, and probably a few others I'm forgetting for reviewing and answering all my questions. Writing a backend pass is *sooo* much better now than it used to be. =D git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142641 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
LVMTargetMachine.cpp
achineBlockPlacement.cpp
|
e2338a7e52b768ef65b6c00e03a8ab34986b7796 |
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove a now dead function, fixing -Wunused-function warnings from Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c762bb3e5e4c67063d135312abe691d1c425fb96 |
20-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete the list-tdrr scheduler. Top-down schedulers are going away because they don't support physical register dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f2a8d74936c4305461fdb98860c66f846f1bdbb9 |
20-Oct-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r142579, "Fix a type in the legalization of CONCAT_VECTORS". This is causing one of the unit tests to infinitely loop, which resulted in the buildbots stalling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
626011e7eb2323340260fd19b383686ad9a343ef |
20-Oct-2011 |
Devang Patel <dpatel@apple.com> |
As Evan suggested, loads from constant pool are safe to speculate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142593 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
5e31f2f800bab77260176d39935c746b66a1889d |
20-Oct-2011 |
Devang Patel <dpatel@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142592 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
7d068452f6f82f7be4ff6facf921ee558b24b088 |
20-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a type in the legalization of CONCAT_VECTORS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
3a8e6b7385b5470e5954cc36a5c6a556d7b90e04 |
19-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Improve code generation for vselect on SSE2: When checking the availability of instructions using the TLI, a 'promoted' instruction IS available. It means that the value is bitcasted to another type for which there is an operation. The correct check for the availablity of an instruction is to check if it should be expanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
f5e47ac596c698f1659c86bdad3a60056e68439c |
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
It helps to deallocate memory as well as allocate it. =] This actually cleans up all the chains allocated during the processing of each function so that for very large inputs we don't just grow memory usage without bound. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144533 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
bc83fcd9bd95f8eff83cd5ad77b0aa5312d8a6a5 |
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove an over-eager assert that was firing on one of the ARM regression tests when I forcibly enabled block placement. It is apparantly possible for an unanalyzable block to fallthrough to a non-loop block. I don't actually beleive this is correct, I believe that 'canFallThrough' is returning true needlessly for the code construct, and I've left a bit of a FIXME on the verification code to try to track down why this is coming up. Anyways, removing the assert doesn't degrade the correctness of the algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144532 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
fa97658b1c71f747cfe0f3e1f1bcbd86d7fa9f75 |
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Begin chipping away at one of the biggest quadratic-ish behaviors in this pass. We're leaving already merged blocks on the worklist, and scanning them again and again only to determine each time through that indeed they aren't viable. We can instead remove them once we're going to have to scan the worklist. This is the easy way to implement removing them. If this remains on the profile (as I somewhat suspect it will), we can get a lot more clever here, as the worklist's order is essentially irrelevant. We can use swapping and fold the two loops to reduce overhead even when there are many blocks on the worklist but only a few of them are removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144531 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
340d596509129de8c3fa9dbe4184a2b148b78757 |
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Under the hood, MBPI is doing a linear scan of every successor every time it is queried to compute the probability of a single successor. This makes computing the probability of every successor of a block in sequence... really really slow. ;] This switches to a linear walk of the successors rather than a quadratic one. One of several quadratic behaviors slowing this pass down. I'm not really thrilled with moving the sum code into the public interface of MBPI, but I don't (at the moment) have ideas for a better interface. My direction I'm thinking in for a better interface is to have MBPI actually retain much more state and make *all* of these queries cheap. That's a lot of work, and would require invasive changes. Until then, this seems like the least bad (ie, least quadratic) solution. Suggestions welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144530 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
c4e15628255b24cb17138404abe3d94bde811e25 |
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Reuse the logic in getEdgeProbability within getHotSucc in order to correctly handle blocks whose successor weights sum to more than UINT32_MAX. This is slightly less efficient, but the entire thing is already linear on the number of successors. Calling it within any hot routine is a mistake, and indeed no one is calling it. It also simplifies the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144527 91177308-0d34-0410-b5e6-96231b3b80d8
achineBranchProbabilityInfo.cpp
|
2770c141856eefda6a192622bf5fd5b06bef4963 |
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix an overflow bug in MachineBranchProbabilityInfo. This pass relied on the sum of the edge weights not overflowing uint32, and crashed when they did. This is generally safe as BranchProbabilityInfo tries to provide this guarantee. However, the CFG can get modified during codegen in a way that grows the *sum* of the edge weights. This doesn't seem unreasonable (imagine just adding more blocks all with the default weight of 16), but it is hard to come up with a case that actually triggers 32-bit overflow. Fortuately, the single-source GCC build is good at this. The solution isn't very pretty, but its no worse than the previous code. We're already summing all of the edge weights on each query, we can sum them, check for an overflow, compute a scale, and sum them again. I've included a *greatly* reduced test case out of the GCC source that triggers it. It's a pretty lame test, as it clearly is just barely triggering the overflow. I'd like to have something that is much more definitive, but I don't understand the fundamental pattern that triggers an explosion in the edge weight sums. The buggy code is duplicated within this file. I'll colapse them into a single implementation in a subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144526 91177308-0d34-0410-b5e6-96231b3b80d8
achineBranchProbabilityInfo.cpp
|
194eb71a11a77c7fb576780783a77e64924dfb10 |
14-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use getVNInfoBefore() when it makes sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144517 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveInterval.cpp
achineVerifier.cpp
plitKit.cpp
|
b5856c83ff4fd796c3eabccca2ed3b06173aeb51 |
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Teach machine block placement to cope with unnatural loops. These don't get loop info structures associated with them, and so we need some way to make forward progress selecting and placing basic blocks. The technique used here is pretty brutal -- it just scans the list of blocks looking for the first unplaced candidate. It keeps placing blocks like this until the CFG becomes tractable. The cost is somewhat unfortunate, it requires allocating a vector of all basic block pointers eagerly. I have some ideas about how to simplify and optimize this, but I'm trying to get the logic correct first. Thanks to Benjamin Kramer for the reduced test case out of GCC. Sadly there are other bugs that GCC is tickling that I'm reducing and working on now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144516 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
6c9cc21d85cdef79b971f710ace287f3a2f847a3 |
14-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use kill slots instead of the previous slot in shrinkToUses. It's more natural to use the actual end points. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144515 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c0f05b3c3fe191b09e04a5f3d16be9f4f8cc036e |
13-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Cleanup some 80-columns violations and poor formatting. These snuck by when I was reading through the code for style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144513 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
1f81e316b042c02c841801a71e7439e166ffa2a0 |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Terminate all dead defs at the dead slot instead of the 'next' slot. This makes no difference for normal defs, but early clobber dead defs now look like: [Slot_EarlyClobber; Slot_Dead) instead of: [Slot_EarlyClobber; Slot_Register). Live ranges for normal dead defs look like: [Slot_Register; Slot_Dead) as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144512 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
plitKit.cpp
|
d14614e6777771f8fec3062bcaf2986c189ac84d |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify early clobber slots a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144507 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
10252db69bdddb445e53892b388fbe5921114b86 |
13-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Enhance the assertion mechanisms in place to make it easier to catch when we fail to place all the blocks of a loop. Currently this is happening for unnatural loops, and this logic helps more immediately point to the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144504 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
2debd48ca790ac01be6e12e094fdf4fdcadc8364 |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename SlotIndexes to match how they are used. The old naming scheme (load/use/def/store) can be traced back to an old linear scan article, but the names don't match how slots are actually used. The load and store slots are not needed after the deferred spill code insertion framework was deleted. The use and def slots don't make any sense because we are using half-open intervals as is customary in C code, but the names suggest closed intervals. In reality, these slots were used to distinguish early-clobber defs from normal defs. The new naming scheme also has 4 slots, but the names match how the slots are really used. This is a purely mechanical renaming, but some of the code makes a lot more sense now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144503 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveDebugVariables.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
achineVerifier.cpp
egisterCoalescer.cpp
enderMachineFunction.cpp
lotIndexes.cpp
piller.cpp
plitKit.cpp
plitter.cpp
trongPHIElimination.cpp
|
6527ecc9189058b762c699521462956995f59dd8 |
13-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Teach MBP to force-merge layout successors for blocks with unanalyzable branches that also may involve fallthrough. In the case of blocks with no fallthrough, we can still re-order the blocks profitably. For example instruction decoding will in some cases continue past an indirect jump, making laying out its most likely successor there profitable. Note, no test case. I don't know how to write a test case that exercises this logic, but it matches the described desired semantics in discussions with Jakob and others. If anyone has a nice example of IR that will trigger this, that would be lovely. Also note, there are still assertion failures in real world code with this. I'm digging into those next, now that I know this isn't the cause. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144499 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
f3fc0050abc1698504cbaede7766c4180c076928 |
13-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Hoist another gross nested loop into a helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144498 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
729bec89bd8c4368a741359fb882967ce01a6909 |
13-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add a missing doxygen comment for a helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144497 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
9fd4e056e433b286f0e6576046ef2242365bfc38 |
13-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Hoist a nested loop into its own method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144496 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
df234353fb396e84e7a3a1cdd94f73681e65bd88 |
13-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rewrite #3 of machine block placement. This is based somewhat on the second algorithm, but only loosely. It is more heavily based on the last discussion I had with Andy. It continues to walk from the inner-most loop outward, but there is a key difference. With this algorithm we ensure that as we visit each loop, the entire loop is merged into a single chain. At the end, the entire function is treated as a "loop", and merged into a single chain. This chain forms the desired sequence of blocks within the function. Switching to a single algorithm removes my biggest problem with the previous approaches -- they had different behavior depending on which system triggered the layout. Now there is exactly one algorithm and one basis for the decision making. The other key difference is how the chain is formed. This is based heavily on the idea Andy mentioned of keeping a worklist of blocks that are viable layout successors based on the CFG. Having this set allows us to consistently select the best layout successor for each block. It is expensive though. The code here remains very rough. There is a lot that needs to be done to clean up the code, and to make the runtime cost of this pass much lower. Very much WIP, but this was a giant chunk of code and I'd rather folks see it sooner than later. Everything remains behind a flag of course. I've added a couple of tests to exercise the issues that this iteration was motivated by: loop structure preservation. I've also fixed one test that was exhibiting the broken behavior of the previous version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144495 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
569561c7eedbd96b8f78c30505d2bdc265a1efc5 |
13-Nov-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Prune more RALinScan. RALinScan was also here! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144487 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
|
0cb80d9f0f71ff3faaf890bb9f023e53f4e8e3dc |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
More dead code elimination in VirtRegMap. This thing is looking a lot like a virtual register map now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144486 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
cb39064e7aee2273da1d00e6b800db84ddc34b6b |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop tracking spill slot uses in VirtRegMap. Nobody cared, StackSlotColoring scans the instructions to find used stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144485 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveDebugVariables.cpp
egAllocGreedy.cpp
piller.cpp
irtRegMap.cpp
irtRegMap.h
|
3cb0b0edd9ec537a9415eaff97edd042a07fd16e |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead code and data from VirtRegMap. Most of this stuff was supporting the old deferred spill code insertion mechanism. Modern spillers just edit machine code in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144484 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
929e4da68ba95f0616172d326b8547f888f5eb37 |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop tracking unused registers in VirtRegMap. The information was only used by the register allocator in StackSlotColoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144482 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
irtRegMap.cpp
irtRegMap.h
|
334575e79b93500547e73519f5a68c7d99d1efaf |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -color-ss-with-regs option. It was off by default. The new register allocators don't have the problems that made it necessary to reallocate registers during stack slot coloring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144481 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
6e49be7101a69b0af3a435060aa3b2b02c5d4c17 |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete VirtRegRewriter. And there was much rejoicing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144480 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
irtRegRewriter.cpp
irtRegRewriter.h
|
c3f2722615c600ac2cca9ac7aad6b7e05b840c97 |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch PBQP to VRM's trivial rewriter. The very complicated VirtRegRewriter is going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144479 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
f5eeaf221c0b8acdc1ffbd5cefe01b61474cb7e8 |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete the old spilling framework from LiveIntervalAnalysis. This is dead code, all register allocators use InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144478 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5d9b1091811106ebad0517a7e0c7936a95cb38ad |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete the 'standard' spiller with used the old spilling framework. The current register allocators all use the inline spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144477 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
cfa81014099254bd42f246a4d434dc2ca1463c6c |
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch PBQP to the modern InlineSpiller framework. It is worth noting that the old spiller would split live ranges around basic blocks. The new spiller doesn't do that. PBQP should do its own live range splitting with SplitEditor::splitSingleBlock() if desired. See RAGreedy::tryBlockSplit(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144476 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
799c1ede712854f56ed85b74702e611b88b49436 |
12-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete the linear scan register allocator. RegAllocGreedy has been the default for six months now. Deleting RegAllocLinearScan makes it possible to also delete VirtRegRewriter and clean up the spiller code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144475 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
asses.cpp
egAllocLinearScan.cpp
|
d1ac3a47f2c2993e8bbda0a9f1c843e9efd0f00f |
12-Nov-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
The dwarf standard says that the only differences between a out-of-line instance and a concrete inlined instance are the use of DW_TAG_subprogram instead of DW_TAG_inlined_subroutine and the who owns the tree. We were also omitting DW_AT_inline from the abstract roots. To fix this, make sure we mark abstract instance roots with DW_AT_inline even when we have only out-of-line instances referring to them with DW_AT_abstract_origin. FileCheck is not a very good tool for tests like this, maybe we should add a -verify mode to llvm-dwarfdump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144441 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
501852423d34578bc41a745681783b04124dd0db |
12-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't try to form pre/post-indexed loads/stores until after LegalizeDAG runs. Fixes PR11029. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
|
0e3642a58746a26f50709179a2bcb25f335e2dac |
12-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Some cleanup and bulletproofing for node replacement in LegalizeDAG. To maintain LegalizeDAG invariants, whenever we a node is replaced, we must attempt to delete it, and if it still has uses after it is replaced (which can happen in rare cases due to CSE), we must revisit it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7b8c2f8587763e0a8ce48f9b7b67287930129c8d |
11-Nov-2011 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Add a custom safepoint method, in order for language implementers to decide which machine instruction gets to be a safepoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144399 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
d61c34ba30888c49f4f223422f30b018a41594da |
11-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Initialize variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
d117fbb2311f6b05770ee680135eaac4eb6d16d1 |
11-Nov-2011 |
Eric Christopher <echristo@apple.com> |
If we have a DIE with an AT_specification use that instead of the normal addr DIE when adding to the dwarf accelerator tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144354 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
01b55b4a808d04cbff7b62f55eaeb62019340bc0 |
10-Nov-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Check in getOrCreateSubprogramDIE if a declaration exists and if so output it first. This is a more general fix to pr11300. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144324 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
8bd36eafca6992754006cbace5ba471884631d08 |
10-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Make types and namespaces take multiple DIEs for the accelerator tables as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144319 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
1b3f9198ab3880be34b6252423b9e388b5cd6a5e |
10-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Move type handling to make sure we get all created types that aren't forward decls and have names into the dwarf accelerator types table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144306 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
0ffe2b4dd6f26fa19827f85bf9e4a766539a859c |
10-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Rework adding function names to the dwarf accelerator tables, allow multiple dies per function and support C++ basenames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144304 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
623a7e146bd86747dc46a6f8bb9993fc217d6b78 |
10-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Use a bigger hammer to fix PR11314 by disabling the "forcing two-address instruction lower optimization" in the pre-RA scheduler. The optimization, rather the hack, was done before MI use-list was available. Now we should be able to implement it in a better way, perhaps in the two-address pass until a MI scheduler is available. Now that the scheduler has to backtrack to handle call sequences. Adding artificial scheduling constraints is just not safe. Furthermore, the hack is not taking all the other scheduling decisions into consideration so it's just as likely to pessimize code. So I view disabling this optimization goodness regardless of PR11314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144267 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
17afb0664861507c9bd968f1678d8cca69b2851d |
10-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Strip old implicit operands after foldMemoryOperand. The TII.foldMemoryOperand hook preserves implicit operands from the original instruction. This is not what we want when those implicit operands refer to the register being spilled. Implicit operands referring to other registers are preserved. This fixes PR11347. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144247 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
0948f0acca745eef8db6922edfd8836f717396b4 |
09-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add check so we don't try to perform an impossible transformation. Fixes issue from PR11319. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
983c4578b0e84eb3b4ae319b49a8079c5cd322c6 |
09-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ef0b3ca3a8935b5390633dc7bb4adcdb99e0c26a |
09-Nov-2011 |
Duncan Sands <baldrick@free.fr> |
Speculatively revert commit 144124 (djg) in the hope that the 32 bit dragonegg self-host buildbot will recover (it is complaining about object files differing between different build stages). Original commit message: Add a hack to the scheduler to disable pseudo-two-address dependencies in basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0c45f7d1a7a158e94817b21b9cca5456414a4760 |
09-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Take advantage of the zero byte in StringMap when emitting dwarf stringpool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144184 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7deb94ae9fbafe44094e4cd58a7cdc2efcb40e73 |
09-Nov-2011 |
Logan Chien <loganchien@google.com> |
Disable vector element type promotion by default. Promote element is an optimization which tries to promote the vector type with small element type to the vector type with large element type, such as <2 x i8> -> <2 x i32>. However, the code generator (instruction selector and type legalizer) of ARM is not ready for this optimization. As a result, ARM backend is not working when NEON is enabled. By disabling this optimization, it is possible to enable NEON for ARM. Note: This is only a workaround for b/5270646 , and should be reverted after the upstream completes the implementation of the promote elements optimization on ARM target. Change-Id: I80d5a33634e4eececd54d1c55f524ecda48ef877
electionDAG/TargetLowering.cpp
|
c6bcf4315c568610b89e4c79898cfe36ff2e4905 |
09-Nov-2011 |
Devang Patel <dpatel@apple.com> |
Remove extra ';' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
|
dfa30e1ab243990eda4732a6dffb91e965e7a755 |
09-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Remove the pubnames section, no one consumes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144169 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f4c4768fb2277cb940a90cb2f0e9a747ebc671c3 |
09-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Collapse DomainValues across loop back-edges. During the initial RPO traversal of the basic blocks, remember the ones that are incomplete because of back-edges from predecessors that haven't been visited yet. After the initial RPO, revisit all those loop headers so the incoming DomainValues on the back-edges can be properly collapsed. This will properly fix execution domains on software pipelined code, like the included test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144151 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
dbc372f47e3a77343e6ef1ab4a88bc46f532f774 |
09-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Link to the live DomainValue after merging. When merging two uncollapsed DomainValues, place a link to the active DomainValue from the passive DomainValue. This allows old stale references to the passive DomainValue to be updated to point to the active DomainValue. The new resolve() function finds the active DomainValue and updates the pointer. This change makes old live-out lists more useful since they may contain uncollapsed DomainValues that have since been merged into other DomainValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144149 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
737e9a2db27b9c3b212ff64fda7af5537ecbfb45 |
09-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track reference count independently from clear(). This allows clear() to be called on a DomainValue with references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144147 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
0fdb05deb9ccbebe55c05f2fb4af6ea813c97a98 |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Call release() directly when cleaning up the remaining DomainValues. There is no need to involve the LiveRegs array and kill() any longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144133 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
6bcb9a783b3220561ee3413322ad1037983d63cb |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename all methods to follow style guide. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144132 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
35e932483a86a2b417d874648b903f6290ec3157 |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle reference counts in one function: release(). This new function will decrement the reference count, and collapse a domain value when the last reference is gone. This simplifies DomainValue reference counting, and decouples it from the LiveRegs array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144131 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
74d8a87f40dd89ec263071c0af4d77104b166f4a |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Also add the linkage name to the name accelerator tables if it exists and is different than the normal name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144130 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
9cae2d2225ba58a70ef8ff057feab6873f4af520 |
08-Nov-2011 |
Dan Gohman <gohman@apple.com> |
Add a hack to the scheduler to disable pseudo-two-address dependencies in basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e1b3e11c15b705ad55c5ff2b04a0b790599013ea |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear old DomainValue after merging. The old value may still be referenced by some live-out list, and we don't wan't to collapse those instructions twice. This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC builds. <rdar://problem/10413292> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144117 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
67a917d495d38004e3a4a134eec81b312a71a164 |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add the base ObjC method name to the names lookup table as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144105 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5207bf2177e9ef1e68d9408ea4b44f1c8a5ef9c0 |
08-Nov-2011 |
Lang Hames <lhames@gmail.com> |
Lower mem-ops to unaligned i32/i16 load/stores on ARM where supported. Add support for trimming constants to GetDemandedBits. This fixes some funky constant generation that occurs when stores are expanded for targets that don't support unaligned stores natively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d752e0f7e64585839cb3a458ef52456eaebbea3c |
08-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Added invariant field to the DAG.getLoad method and changed all calls. When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144100 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
30b4d8b83b7b3995ac1b53f35d3110d48676b187 |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
A few more places where we can avoid multiple size queries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144099 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
ec8ffc29c04e5e11d8637f1ba1df67d97bafb499 |
08-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Don't evaluate Data.size() on every iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144095 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
2efa35f779213a828fa15d6aa3a508fc81d75d73 |
08-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318. Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144055 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
58dd0fec4d4b8b1dc87e8a6a080b776d0d425cad |
08-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert r144034 while I try to track down a crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e13eba26711c8ea48059697e406f90cebccc9243 |
08-Nov-2011 |
Bill Wendling <isanbard@gmail.com> |
This code is dead, what with the new EH model and the auto-upgraders in place. Delete! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144043 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
b26c7727c9a45613d9bae69995cfd719c57c5614 |
08-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Kill and collapse outstanding DomainValues. DomainValues that are only used by "don't care" instructions are now collapsed to the first possible execution domain after all basic blocks have been processed. This typically means the PS domain on x86. For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are completely collapsed to the PS domain instead of containing a mix of execution domains created by isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144037 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
1b4f6f2532e9a6a99fcab5fde5b4a2187c9c9c2b |
07-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144034 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
56c2b109f73f895b591d2303128c8adcf0bc2c3d |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add all completed and named types to the dwarf type accelerator tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
a59ce0379134b249a3c949f7dcd6ec3566c4d7e3 |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a reverse post order instead of a DFS order. The enterBasicBlock() function is combining live-out values from predecessor blocks. The RPO traversal means that more predecessors have been visited when that happens, only back-edges are missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144025 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
2dd5e1e64d718a0aeaaf988a54d5acc0ec70f243 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Move the hash function to using and taking a StringRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
|
e77546c3c3634863a79ffc3adea52882685db454 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Simple destructor to delete the hash data we created earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144023 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
|
25265d0e7af83f30e64851458c29c5b0c01befeb |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract two methods. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144020 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
d8f9f342307b1351a05c081cd5c7fe92678d3c1f |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MBB doesn't need to be a class member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144015 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
cd7dcad82a30363132d2dbabb45d60f1d2164a92 |
07-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix pass name after the source was moved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144014 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
2ea402541fa1bd2aa9942abf7b281ef01f9a10ff |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Use StringRef::startswith to do some string comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143982 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c545322c276f933759e4140027e5f84e480d15d6 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Avoid the use of a local temporary for comment twines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143974 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
|
7135457efff83960bfad420f2dc3a5b4b58e8d07 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Allow for the case where the name of the subprogram is "". Fixes a self-host error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143970 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
19a4daff9bbe18dab2620e25ac6cbf0635639ec6 |
07-Nov-2011 |
Richard Osborne <richard@xmos.com> |
Don't introduce custom nodes after legalization in TargetLowering::BuildSDIV() and TargetLowering::BuildUDIV(). Fixes PR11283 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
76a4e1a0682c8e855f8b7c0a05d802dce8c07d7a |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Remove unnecessary addition to API. Replace with something much simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143925 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2c802b7e88718f2c033fe1e7e602e341501b5d80 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add new files to cmake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143924 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
09ac3d841367d5d56328eade506c951e0dc3a72d |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add the support code to enable the dwarf accelerator tables. Upcoming patches to fix the types section (all types, not just global types), and testcases. The code to do the final emission is disabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143923 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.h
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bcbd3a4637f33036d05833364e180f9dfaabb67c |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Add a new dwarf accelerator table prototype with the goal of replacing the pubnames and pubtypes tables. LLDB can currently use this format and a full spec is forthcoming and submission for standardization is planned. A basic summary: The dwarf accelerator tables are an indirect hash table optimized for null lookup rather than access to known data. They are output into an on-disk format that looks like this: .-------------. | HEADER | |-------------| | BUCKETS | |-------------| | HASHES | |-------------| | OFFSETS | |-------------| | DATA | `-------------' where the header contains a magic number, version, type of hash function, the number of buckets, total number of hashes, and room for a special struct of data and the length of that struct. The buckets contain an index (e.g. 6) into the hashes array. The hashes section contains all of the 32-bit hash values in contiguous memory, and the offsets contain the offset into the data area for the particular hash. For a lookup example, we could hash a function name and take it modulo the number of buckets giving us our bucket. From there we take the bucket value as an index into the hashes table and look at each successive hash as long as the hash value is still the same modulo result (bucket value) as earlier. If we have a match we look at that same entry in the offsets table and grab the offset in the data for our final match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143921 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfAccelTable.cpp
smPrinter/DwarfAccelTable.h
|
d8a8752d5b7f546fd7ebb295366a43b2b76afbd6 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Expose a way to get the beginning of the dwarf string section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6370118b16da30f20b5a68ccb814f3a8b8bc58b6 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Fix up comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143919 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
33aa20f737e9ebb3c29c93508da0c041a6a772c7 |
07-Nov-2011 |
Eric Christopher <echristo@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143918 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
c25c90897781f116d5dbabab170bafcf65900fa7 |
05-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add an option to pad an uleb128 to MCObjectWriter and remove the uleb128 encoding from the DWARF asm printer. As a side effect we now print dwarf ulebs with .ascii directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143809 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
41a964931a0e0943ceef28b0c691843bf8ca87b7 |
05-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add more PRI.64 macros for MSVC and use them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143799 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
|
9c58aa743d5232a3eb78c0ee329281709a50b2f6 |
05-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Added missing &. Fixes <rdar://problem/10393723> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143753 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
b0527283682c5f44fae24ae0a7e2e794f019fade |
04-Nov-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Emit declarations before definitions if they are available. This causes DW_AT_specification to point back in the file in the included testcase. Fixes PR11300. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
65fd6564b8aedd053845c81ede1ac594acb470e4 |
03-Nov-2011 |
Dan Gohman <gohman@apple.com> |
Reapply r143206, with fixes. Disallow physical register lifetimes across calls, and only check for nested dependences on the special call-sequence-resource register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143660 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
71fccadbed49b555d9582198ee58301494109410 |
03-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Reverted r143600 - selector reference change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143646 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a3a2dfd4a2a8265a9a0c962cb776e2e6ba123956 |
03-Nov-2011 |
Daniel Dunbar <daniel@zuster.org> |
build: Add initial cut at LLVMBuild.txt files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143634 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/LLVMBuild.txt
LVMBuild.txt
electionDAG/LLVMBuild.txt
|
d1ffc739c1f88352c79a63ff17b828b3a529777e |
03-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Treat objc selector reference globals as invariant so that MachineLICM can hoist them out of loops. Fixes <rdar://problem/6027699> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143600 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9c674bb012c23622bd31d5e82cb0baeda9aac3a5 |
03-Nov-2011 |
Bill Wendling <isanbard@gmail.com> |
An array of chars of length 8 will also cause the stack protector to be inserted into the function. Reflect that here so that the array will be placed next to the SP. <rdar://problem/10128329> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
6c1a703e5418b2ba9d7b47b0c9345e9928ea5a68 |
02-Nov-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Don't emit a directory entry for the value in DW_AT_comp_dir, that is always implied by directory index zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143570 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
37efc9fe42a4867c81526cac7fca9fe0ea04a484 |
02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Begin collecting some of the statistics for block placement discussed on the mailing list. Suggestions for other statistics to collect would be awesome. =] Currently these are implemented as a separate pass guarded by a separate flag. I'm not thrilled by that, but I wanted to be able to collect the statistics for the old code placement as well as the new in order to have a point of comparison. I'm planning on folding them into the single pass if / when there is only one pass of interest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143537 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
LVMTargetMachine.cpp
achineBlockPlacement.cpp
|
7bdf0060a00f04ad03d3c6f294d8db6f4951dbc2 |
01-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update split candidate correctly when interference cache is full. No test case, spotted by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143407 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
f47368bbbe1ebcf77efd202362bfd1125a2126c7 |
31-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Cleanup. Document. Make sure that this build_vector optimization only runs before the op legalizer and that the used type is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
50bf86ea8a757be4059a56a2c38270873dcf9e2e |
30-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b00418af67b36dcd7d70a268ebba3480c1011348 |
29-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add a new DAGCombine optimization for BUILD_VECTOR. If all of the inputs are zero/any_extended, create a new simple BV which can be further optimized by other BV optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6f3ddef7c51f03945644ad0e69068dfb24d4b092 |
29-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Revert r143206, as there are still some failing tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
bf923b815d6da97367e3eedab69230918bf128a3 |
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Reapply r143177 and r143179 (reverting r143188), with scheduler fixes: Use a separate register, instead of SP, as the calling-convention resource, to avoid spurious conflicts with actual uses of SP. Also, fix unscheduling of calling sequences, which can be triggered by pseudo-two-address dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
c3e48c38bf87ad081904eccf16e4ddd99c36d070 |
28-Oct-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Dwarf: [PR11022] Fix emitting DW_AT_const_value(>i64), to be host-endian-neutral. Don't assume APInt::getRawData() would hold target-aware endianness nor host-compliant endianness. rawdata[0] holds most lower i64, even on big endian host. FIXME: Add a testcase for big endian target. FIXME: Ditto on CompileUnit::addConstantFPValue() ? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
91bbe237167bf84ce41d01eff3c028ff2b10be26 |
28-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use BranchProbability compare operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143190 91177308-0d34-0410-b5e6-96231b3b80d8
achineBranchProbabilityInfo.cpp
|
62c1d00dfd38996f381edae55e1028b8e52a1107 |
28-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Speculatively disable Dan's commits 143177 and 143179 to see if it fixes the dragonegg self-host (it looks like gcc is miscompiled). Original commit messages: Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW on every node as it legalizes them. This makes it easier to use hasOneUse() heuristics, since unneeded nodes can be removed from the DAG earlier. Make LegalizeOps visit the DAG in an operands-last order. It previously used operands-first, because LegalizeTypes has to go operands-first, and LegalizeTypes used to be part of LegalizeOps, but they're now split. The operands-last order is more natural for several legalization tasks. For example, it allows lowering code for nodes with floating-point or vector constants to see those constants directly instead of seeing the lowered form (often constant-pool loads). This makes some things somewhat more complicated today, though it ought to allow things to be simpler in the future. It also fixes some bugs exposed by Legalizing using RAUW aggressively. Remove the part of LegalizeOps that attempted to patch up invalid chain operands on libcalls generated by LegalizeTypes, since it doesn't work with the new LegalizeOps traversal order. Instead, define what LegalizeTypes is doing to be correct, and transfer the responsibility of keeping calls from having overlapping calling sequences into the scheduler. Teach the scheduler to model callseq_begin/end pairs as having a physical register definition/use to prevent calls from having overlapping calling sequences. This is also somewhat complicated, though there are ways it might be simplified in the future. This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others. Please direct high-level questions about this patch to management. Delete #if 0 code accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
6a7efcfc02ea5370fb0da66d750165a3ffe93ab7 |
28-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Always use the string pool, even when it makes the .o larger. This may help tools that read the debug info in the .o files by making the DIE sizes more consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143186 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfCompileUnit.cpp
|
3799efab8c028c8928bf55ddd7d39da0e6b62cea |
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete #if 0 code accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2ba60e593012ba9b2a9d20b86733eadca288bcb2 |
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW on every node as it legalizes them. This makes it easier to use hasOneUse() heuristics, since unneeded nodes can be removed from the DAG earlier. Make LegalizeOps visit the DAG in an operands-last order. It previously used operands-first, because LegalizeTypes has to go operands-first, and LegalizeTypes used to be part of LegalizeOps, but they're now split. The operands-last order is more natural for several legalization tasks. For example, it allows lowering code for nodes with floating-point or vector constants to see those constants directly instead of seeing the lowered form (often constant-pool loads). This makes some things somewhat more complicated today, though it ought to allow things to be simpler in the future. It also fixes some bugs exposed by Legalizing using RAUW aggressively. Remove the part of LegalizeOps that attempted to patch up invalid chain operands on libcalls generated by LegalizeTypes, since it doesn't work with the new LegalizeOps traversal order. Instead, define what LegalizeTypes is doing to be correct, and transfer the responsibility of keeping calls from having overlapping calling sequences into the scheduler. Teach the scheduler to model callseq_begin/end pairs as having a physical register definition/use to prevent calls from having overlapping calling sequences. This is also somewhat complicated, though there are ways it might be simplified in the future. This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others. Please direct high-level questions about this patch to management. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
390c40d96adb2eb4a778a0890c6c8743057e289e |
27-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Teach our Dwarf emission to use the string pool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
fd58cd75630b1a2ace727d6caaee8c9308ba0240 |
27-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't crash on 128-bit sdiv by constant. Found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143095 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
15701f8969fcb36899a75ca2df6fdcbc52141106 |
27-Oct-2011 |
Lang Hames <lhames@gmail.com> |
Rename NonScalarIntSafe to something more appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143080 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
746cb670c3cd4f79b288d56d8e9f195685a5381a |
27-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Reflow lines, fix comments for doxygen style, fix whitespace. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143074 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
a921a468542a804ccebb680935175798ac48868b |
26-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Simplify SplitVecRes_UnaryOp by removing all the code that is trying to legalize the operand types when only the result type is required to be legalized - the type legalization machinery will get round to the operands later if they need legalizing. There can be a point to legalizing operands in parallel with the result: when this saves compile time or results in better code. There was only one case in which this was true: when the operand is also split, so keep the logic for that bit. As a result of this change, additional operand legalization methods may need to be introduced to handle nodes where the result and operand types can differ, like SIGN_EXTEND, but the testsuite doesn't contain any tests where this is the case. In any case, it seems better to require such methods (and die with an assert if they doesn't exist) than to quietly produce wrong code if we forgot to special case the node in SplitVecRes_UnaryOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
794439183a29102c784484720c3d0b1960b297e6 |
26-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use floating point to do an integer's job. This code makes different decisions when compiled into x87 instructions because of different rounding behavior. That caused phase 2/3 miscompares on 32-bit Linux when the phase 1 compiler was built with gcc (using x87), and the phase 2 compiler was built with clang (using SSE). This fixes PR11200. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
73b5bb38650a1a1441fcf210c79f188d08990946 |
26-Oct-2011 |
Evan Cheng <evan.cheng@apple.com> |
Disable LICM speculation in high register pressure situation again now that Devang has fixed other issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143003 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a823e3d42c48ceeb2f5011f7402031bf02fa0fe1 |
26-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Reapply r142920 with fix: An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143001 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
9312613137caf4f1e7b4747964b8daf3de79c190 |
25-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Remove a couple redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ca30f75703fa4f032b256bba445608c79e2bd82c |
25-Oct-2011 |
Jim Grosbach <grosbach@apple.com> |
Make assert() message more informative. PR11217. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142956 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
51583ce4b6938a44a246df65977e29e0509a7f5b |
25-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Revert commit 142891. Takumi bisected the tablegen miscompiles down to this commit. Original commit message: An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142920 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
000b9bdd3396ca322413c4e419d41cd3a6235e74 |
25-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Remove dead enum value. There is no DIESectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142912 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
fd747b24a3fb08805336f2070b9316ded6b57810 |
25-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Remove unused forward decl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142892 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
86ed4089e367956ea7134dd7e99334a084fec6df |
25-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142891 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
671215464c8335e383fa2db90df2eab73ef83b10 |
25-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Check the visibility of the global variable before placing it into the stubs table. A hidden variable could potentially end up in both lists. <rdar://problem/10336715> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142869 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
88d734de43984df03ed909f9163986fe873b8d1e |
24-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Really unbreak CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
91336cde455c21429ae89c075a435503d1e84686 |
24-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Unbreak CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142821 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
83dae4466e3abfd1493453588809e9f9ff10ebca |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete the top-down "Latency" scheduler. Top-down scheduling doesn't handle physreg dependencies, and upcoming codegen changes will require proper physreg dependence handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
d5333d6922fa5ce8954df600a61605e4ca1d92f6 |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete the Latency scheduling preference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142815 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
692c1d85353249124caa1885cfeda513146c6d81 |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Change this overloaded use of Sched::Latency to be an overloaded use of Sched::ILP instead, as Sched::Latency is going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8c2d270ae8b460912633883f24346c0763373a56 |
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Change the default scheduler from Latency to ILP, since Latency is going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d2dae0cfa00ca3c5164b2543ed712ace6c08386b |
24-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Cleanup. Get rid of the old SjLj EH lowering code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142800 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
e4617c04c863b2fb342d08408d45ba3bf50b97a0 |
24-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Sink an otherwise unused variable's initializer into the asserts that used it. Fixes an unused variable warning from GCC on release builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142799 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
66d847c8ffff5199248fccc10cb27f80c5cf9ebe |
23-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Now that we have comparison on probabilities, add some static functions to get important constant branch probabilities and use them for finding the best branch out of a set of possibilities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142762 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
4f780536953cdd3d92c21111301763ddd57ab720 |
23-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove a commented out line of code that snuck by my auditing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142761 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
3071363bcdfd75e81326b4033970d8bee5b1b376 |
23-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Completely re-write the algorithm behind MachineBlockPlacement based on discussions with Andy. Fundamentally, the previous algorithm is both counter productive on several fronts and prioritizing things which aren't necessarily the most important: static branch prediction. The new algorithm uses the existing loop CFG structure information to walk through the CFG itself to layout blocks. It coalesces adjacent blocks within the loop where the CFG allows based on the most likely path taken. Finally, it topologically orders the block chains that have been formed. This allows it to choose a (mostly) topologically valid ordering which still priorizes fallthrough within the structural constraints. As a final twist in the algorithm, it does violate the CFG when it discovers a "hot" edge, that is an edge that is more than 4x hotter than the competing edges in the CFG. These are forcibly merged into a fallthrough chain. Future transformations that need te be added are rotation of loop exit conditions to be fallthrough, and better isolation of cold block chains. I'm also planning on adding statistics to model how well the algorithm does at laying out blocks based on the probabilities it receives. The old tests mostly still pass, and I have some new tests to add, but the nested loops are still behaving very strangely. This almost seems like working-as-intended as it rotated the exit branch to be fallthrough, but I'm not convinced this is actually the best layout. It is well supported by the probabilities for loops we currently get, but those are pretty broken for nested loops, so this may change later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142743 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
0ad56122e585d3d27ea852115390a9e53cabc9d5 |
22-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Make sure that the landing pads themselves have no PHI instructions in them. The assumption in the back-end is that PHIs are not allowed at the start of the landing pad block for SjLj exceptions. <rdar://problem/10313708> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142689 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
a054bcb4cf26f9710bf6b7b256ba7313260a7335 |
21-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix pr11194. When promoting and splitting integers we need to use ZExtPromotedInteger and SExtPromotedInteger based on the operation we legalize. SetCC return type needs to be legalized via PromoteTargetBoolean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142660 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
4bd222ae26d0411d5c67fd0ab5c043422b5f201b |
21-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
1. Fix the widening of SETCC in WidenVecOp_SETCC. Use the correct return CC type. 2. Fix a typo in CONCAT_VECTORS which exposed the bug in #1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
4a85cc982a977ddeb0249eb9304326deabe3a7a5 |
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add loop aligning to MachineBlockPlacement based on review discussion so it's a bit more plausible to use this instead of CodePlacementOpt. The code for this was shamelessly stolen from CodePlacementOpt, and then trimmed down a bit. There doesn't seem to be much utility in returning true/false from this pass as we may or may not have rewritten all of the blocks. Also, the statistic of counting how many loops were aligned doesn't seem terribly important so I removed it. If folks would like it to be included, I'm happy to add it back. This was probably the most egregious of the missing features, and now I'm going to start gathering some performance numbers and looking at specific loop structures that have different layout between the two. Test is updated to include both basic loop alignment and nested loop alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142645 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockPlacement.cpp
|
db35087d21f09fdde81cab7e12fc0bcd8b7d00e9 |
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Implement a block placement pass based on the branch probability and block frequency analyses. This differs substantially from the existing block-placement pass in LLVM: 1) It operates on the Machine-IR in the CodeGen layer. This exposes much more (and more precise) information and opportunities. Also, the results are more stable due to fewer transforms ocurring after the pass runs. 2) It uses the generalized probability and frequency analyses. These can model static heuristics, code annotation derived heuristics as well as eventual profile loading. By basing the optimization on the analysis interface it can work from any (or a combination) of these inputs. 3) It uses a more aggressive algorithm, both building chains from tho bottom up to maximize benefit, and using an SCC-based walk to layout chains of blocks in a profitable ordering without O(N^2) iterations which the old pass involves. The pass is currently gated behind a flag, and not enabled by default because it still needs to grow some important features. Most notably, it needs to support loop aligning and careful layout of loop structures much as done by hand currently in CodePlacementOpt. Once it supports these, and has sufficient testing and quality tuning, it should replace both of these passes. Thanks to Nick Lewycky and Richard Smith for help authoring & debugging this, and to Jakob, Andy, Eric, Jim, and probably a few others I'm forgetting for reviewing and answering all my questions. Writing a backend pass is *sooo* much better now than it used to be. =D git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142641 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
LVMTargetMachine.cpp
achineBlockPlacement.cpp
|
2e5a5ee613fae456a8ed4282acede56860682f4f |
21-Oct-2011 |
Logan Chien <loganchien@google.com> |
Apply changes to migrate to upstream Oct 20th 2011. Change-Id: I2bb819151f3fa5ce18690ef373bf071205d3f278
ndroid.mk
smPrinter/Android.mk
electionDAG/Android.mk
|
ec0e5475fdb9d7d3a4d8206d84f469bc83be1cf1 |
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove a now dead function, fixing -Wunused-function warnings from Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
ff764815e6531be6b2d944bd6a3f1fcfc682db01 |
20-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete the list-tdrr scheduler. Top-down schedulers are going away because they don't support physical register dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e65177f965063c16321166c13d90a91aa57b5ee8 |
20-Oct-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r142579, "Fix a type in the legalization of CONCAT_VECTORS". This is causing one of the unit tests to infinitely loop, which resulted in the buildbots stalling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
06e16bbec02d289552f942abe7a6353b51cdb5ea |
20-Oct-2011 |
Devang Patel <dpatel@apple.com> |
As Evan suggested, loads from constant pool are safe to speculate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142593 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
e6de9f30cbdbeca7f6632420f2cd5728d9a2dc1c |
20-Oct-2011 |
Devang Patel <dpatel@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142592 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
28e65b52458f944c8204fecf7eab466c90b6686f |
20-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a type in the legalization of CONCAT_VECTORS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
815af82b74fa0901e818f5d16ee418675f399101 |
19-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Improve code generation for vselect on SSE2: When checking the availability of instructions using the TLI, a 'promoted' instruction IS available. It means that the value is bitcasted to another type for which there is an operation. The correct check for the availablity of an instruction is to check if it should be expanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
0ebc07a576037e4e36f68bf5cece32740ca120c0 |
19-Oct-2011 |
Logan Chien <loganchien@google.com> |
Merge with LLVM upstream 2011/10/20 (r142530) Conflicts: lib/Support/Unix/Host.inc Change-Id: Idc00db3b63912dca6348bddd9f8a1af2a8d5d147
|
ca58c722674ed7b564f68d1d9697cd01504edef2 |
19-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for the vector-widening of vselect and vector-setcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142488 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
20b2b788b4f3914757789fe1ee835b70759ce4ec |
19-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Missed a spot! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142436 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
024170f859112518adb5796060607574bf1e6015 |
19-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix some typo/formatting issues. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142435 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.h
|
fbf19ef1860e33b202ff73a269b8b0bf9157460e |
19-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in the legalization of vector anyext-load and trunc-store. Mem Index starts with zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
db2b18febaea04d01b3dcb24fc44d5be7bd27a00 |
18-Oct-2011 |
Bob Wilson <bob.wilson@apple.com> |
Fix a DAG combiner assertion failure when constant folding BUILD_VECTORS. svn r139159 caused SelectionDAG::getConstant() to promote BUILD_VECTOR operands with illegal types, even before type legalization. For this testcase, that led to one BUILD_VECTOR with i16 operands and another with promoted i32 operands, which triggered the assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
17001ce25cc205ac1cd2604492c2bce310964220 |
18-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Fix a bunch of unused variable warnings when doing a release build with gcc-4.6. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
46bb70cd23762d58173dbbc4c5a1bd6964624381 |
18-Oct-2011 |
Hal Finkel <hfinkel@anl.gov> |
Fix comment to refer to correct instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142334 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d5d52132d78e006842a0cf9b6ef5a9feec661711 |
18-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Minor style cleanup, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142307 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
44d798d9763bc32aaf49fe7c10d604845f4b6685 |
18-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add support for a new extension to the .file directive: .file filenumber "directory" "filename" This removes one join+split of the directory+filename in MC internals. Because bitcode files have independent fields for directory and filenames in debug info, this patch may change the .o files written by existing .bc files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142300 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
LVMTargetMachine.cpp
|
13a7121858238bc3490b27206a609bf8a2ce1f21 |
18-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Now Igor, throw the switch...give my creation life! Use the custom inserter for the ARM setjmp intrinsics. Instead of creating the SjLj dispatch table in IR, where it frequently violates serveral assumptions -- in particular assumptions made by the landingpad instruction about what can branch to a landing pad and what cannot. Performing this in the back-end allows us to violate these assumptions without the IR getting angry at us. It also allows us to perform a small optimization. We can shove the address of the dispatch's basic block into the function context and not have to add code around the setjmp to check for the return value and jump to the dispatch. Neat, huh? <rdar://problem/10116753> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142294 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
419eb3668b5cec965a1764f626084d647462a9c6 |
17-Oct-2011 |
Cameron Zwarich <zwarich@apple.com> |
When deleting a phi cycle after looking through copies, constrain the register to match its final use. With this change, all of test-suite compiles for Thumb2 with -verify-coalescing enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142287 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizePHIs.cpp
|
1025cce290d99fd325bccd0c1e89dab49eea8140 |
17-Oct-2011 |
Evan Cheng <evan.cheng@apple.com> |
Constraint register class with constrainRegClass() to CSE a virtual into another. rdar://10293289 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142234 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
3c5e60994f53eef2808a33b5ca6c3dffc2168054 |
17-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Correct over-zealous removal of hack. Some code want to check that *any* call within a function has the 'returns twice' attribute, not just that the current function has one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
728662f9e869251ff9b5a847b0cb0daa99d1d250 |
17-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Now that we have the ReturnsTwice function attribute, this method is obsolete. Check the attribute instead. <rdar://problem/8031714> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
60655413ceecfeb15a5abe6aa2fe6be249f85fab |
17-Oct-2011 |
Chad Rosier <mcrosier@apple.com> |
Removed set, but unused variable. Patch by Joe Abbey <jabbey@arxan.com>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
6c15fec3c5b4770570a4d681762a7bd510e65077 |
17-Oct-2011 |
Devang Patel <dpatel@apple.com> |
It is safe to speculate load from GOT. This fixes performance regression caused by r141689. Radar 10281206. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142202 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
8fb06b3e8f7fc92e472e17fecf5ee3ba44fbb6ab |
16-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Enable element promotion type legalization by deafault. Changed tests which assumed that vectors are legalized by widening them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142152 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
962bad70f4277841cf6278306caa93ebce304b48 |
16-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Let printf do the formatting instead aligning strings ourselves. While at it, merge some format strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
47b8798c0bf0944b24051bc21d85d93a2732676a |
16-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Twinify better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142139 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
e9b58d0aac4e89b53a4be0e6f289b66649e1512b |
15-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Move the legalization of vector loads and stores into LegalizeVectorOps. In some cases we need the second type-legalization pass in order to support all cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
|
4ed1fb009543effaeb31547fd1d4795a649c3b93 |
15-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Clear out the landing pad to call site map for each function. This isn't put into the 'clear()' method because the information needs to stick around (at least for a little bit) after the selection DAG is built. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142032 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b10946a5a938a433ca4d7301b8b5ff5a8c11a7ff |
14-Oct-2011 |
Evan Cheng <evan.cheng@apple.com> |
A few 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141988 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
ac7caa0d436fa9fe96234c4e009cdacd7cd6b124 |
14-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update live-in lists when splitting critical edges. Fixes PR10814. Patch by Jan Sjödin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141960 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
312b7c950a27f72a811b3fdbed26e2e08eb20c31 |
14-Oct-2011 |
Jim Grosbach <grosbach@apple.com> |
Fix typo. "__sync_fetch_and-xor_4" should be "__sync_fetch_and_xor_4". Pointed out by George Russell. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141956 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a80444f88d88d88513b096c97474c453a4c3bcf6 |
14-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add value numbers when spilling dead defs. When spilling around an instruction with a dead def, remember to add a value number for the def. The missing value number wouldn't normally create problems since there would be an incoming live range as well. However, due to another bug we could spill a dead V_SET0 instruction which doesn't read any values. The missing value number caused an empty live range to be created which is dangerous since it doesn't interfere with anything. This fixes part of PR11125. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141923 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
fe28ef41e34e842e6b77d9aa4bdf2bc2d6f17cae |
13-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Don't forget to reconstruct D after changing the scope that we're looking at. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141892 91177308-0d34-0410-b5e6-96231b3b80d8
exicalScopes.cpp
|
326e491ce7f7ad61014339c36a8cd90b33af98b9 |
13-Oct-2011 |
Cameron Zwarich <zwarich@apple.com> |
Use an existing method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141855 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
dec1b10161a3bc1b49ab8d35e1bd6488486dfd4a |
13-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
If MI is deleted then remove it from the set. If a new MI is created, it could have the same address as the one we deleted, and we don't want that in the set yet. Noticed by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141849 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
ea3abd553668e272772f04ae1536034cd37e70d1 |
13-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Tabs to spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141844 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
3821b1885e13dcdda6aa2853f1317d3288256685 |
13-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add missing braces to pacify GCC's -Wparentheses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141842 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
dee83c90bb7bda57f6d0db2d8f9138f411ecdbbc |
13-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also inflate register classes around inline asm. Now that MI->getRegClassConstraint() can also handle inline assembly, don't bail when recomputing the register class of a virtual register used by inline asm. This fixes PR11078. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141836 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
f5916976e9057177100badee7b7388bd7ba76ac3 |
13-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::getRegClassConstraint(). Most instructions have some requirements for their register operands. Usually, this is expressed as register class constraints in the MCInstrDesc, but for inline assembly the constraints are encoded in the flag words. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141835 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9dfaacb696d1ad850f9f5f49a94fdb81cf8ae018 |
13-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract a method for finding the inline asm flag operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141834 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
459b74b9644c4741d93fe73adc2b06ca6bdb366d |
13-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Encode register class constreaints in inline asm instructions. The inline asm operand constraint is initially encoded in the virtual register for the operand, but that register class may change during coalescing, and the original constraint is lost. Encode the original register class as part of the flag word for each inline asm operand. This makes it possible to recover the actual constraint required by inline asm, just like we can for normal instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141833 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAGBuilder.cpp
|
f6fb7ed53c786228445fc55e8d495ccead59b9ae |
13-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
We need to verify that the machine instruction we're using as a replacement for our current machine instruction defines a register with the same register class as what's being replaced. This showed up in the SPEC 403.gcc benchmark, where it would ICE because a tail call was expecting one register class but was given another. (The machine instruction verifier catches this situation.) <rdar://problem/10270968> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141830 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
5c75af6eb72bd74bc35f46e5037dd5646e04f3b6 |
13-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Use a utility from MathExtras to clarify a check and avoid undefined behavior. Based on patch by Ahmed Charles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141829 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7007e4c5564f32fe4f06765a9740218039e7b492 |
12-Oct-2011 |
Evan Cheng <evan.cheng@apple.com> |
Disable machine LICM speculation check (for profitability) until I have time to investigate the regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141813 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
980df169203a5f60793e758cdc5cbcad853ca9eb |
12-Oct-2011 |
Cameron Zwarich <zwarich@apple.com> |
To find the exiting VN of a LiveInterval from a block, use the previous slot rather than the previous index. If a block has a single instruction, the previous index may be in a different basic block. I have no clue how this used to work on all of test-suite, because now this failure is seen quite often when trying to compile code with -strong-phi-elim. This fixes PR10252. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141812 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
9e15d658c99c3f0717cb83cc2bd2aa29abdbcdbb |
12-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Fix a thinko that Nick noticed. The previous code actually worked as intended, but only by accident. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a2e87912d826b1843bb5b1058670f09b87aea905 |
12-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Expand the check for a landing pad so that it looks at the basic block's containing loop's header to see if that's a landing pad. If it is, then we don't want to hoist instructions out of the loop and above the header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141767 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
22e8a366adf5a4c78148928ff64e7e00c1088492 |
12-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use an existing function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141763 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7efba85d414949febe51100e298077233526787c |
12-Oct-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix r141744. 1. The speculation check may not have been performed if the BB hasn't had a load LICM candidate. 2. If the candidate would be CSE'ed, then go ahead and speculatively LICM the instruction even if it's in high register pressure situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141747 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
fad62874883ab78af47b4eeba042775a67ea7515 |
12-Oct-2011 |
Evan Cheng <evan.cheng@apple.com> |
Refine r141689 with a tri-state variable. Also teach MachineLICM to avoid "speculation" when register pressure is high. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141744 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6618a241f7ba2571a1a55b3733c4441d467baf42 |
12-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Add a new wrapper node for a DILexicalBlock that encapsulates it and a file. Since it should only be used when necessary propagate it through the backend code generation and tweak testcases accordingly. This helps with code like in clang's test/CodeGen/debug-info-line.c where we have multiple #line directives within a single lexical block and want to generate only a single block that contains each file change. Part of rdar://10246360 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141729 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
exicalScopes.cpp
|
5ba7b501fd4b88e3fea590499e9464b4b2c153a4 |
12-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c83693f5b0aa26de55881345a79f4202ef9c3088 |
12-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
N.B. This is with the new EH scheme: The blocks with invokes have branches to the dispatch block, because that more correctly models the behavior of the CFG. The dispatch of course has edges to the landing pads. Those landing pads could contain invokes, which then have branches back to the dispatch. This creates a loop. The machine LICM pass looks at this loop and thinks it can hoist elements out of it. But because the dispatch is an alternate entry point into the program, the hoisted instructions won't be executed. I wasn't able to get a testcase which was small and could reproduce all of the time. The function_try_block.cpp in llvm-test was where this showed up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141726 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
2e350479478ccf809e2142a4f0ad8062342577cc |
11-Oct-2011 |
Devang Patel <dpatel@apple.com> |
Add dominance check for the instruction being hoisted. For example, MachineLICM should not hoist a load that is not guaranteed to be executed. Radar 10254254. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141689 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6fe4e515470a9c2ffa1324261674dde0ede32e72 |
11-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for legalization of vector SHL/SRA/SRL instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
884b918c2d7ed8dbd804bda72f25729f84a16ab0 |
11-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for legalization of vector trunc-store where the saved scalar type is illegal (for example, v2i16 on systems where the smallest store size is i32) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c2b2e1333d66e37c657e25fc09dc79e4ea1d79d9 |
11-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Cleanup the trunc-store legalization code and add asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141659 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
db7334dbc55fb4b86fa3db19bff08ec02ba474d5 |
11-Oct-2011 |
Devang Patel <dpatel@apple.com> |
Revert r141569 and r141576. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141594 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
735fe0f9d00facc5961fbb8b822844f5088cd81d |
10-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Give targets a chance to expand even standard pseudos. Allow targets to expand COPY and other standard pseudo-instructions before they are expanded with copyPhysReg(). This allows the target to examine the COPY instruction for extra operands indicating it can be widened to a preferable super-register copy. See the ARM -widen-vmovs option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141578 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
|
6b50bc9d88538c155503582b095fdba518070257 |
10-Oct-2011 |
Devang Patel <dpatel@apple.com> |
If loop header is also loop exiting block then it may not be safe to hoist instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141576 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9ac743a4ee61cb845bbe22a2f6898f38c2adafce |
10-Oct-2011 |
Devang Patel <dpatel@apple.com> |
Add dominance check for the instruction being hoisted. For example, MachineLICM should not hoist a load that is not guaranteed to be executed. Radar 10254254. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141569 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d5d170097241534401bbbebb4be59451d5c312ca |
08-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Use the code that lowers the arguments and spills any values which are alive across unwind edges. This is for the back-end which expects such things. The code is from the original SjLj EH pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141463 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
ce370cfd891386d613d4bd0d28449d2705705d16 |
07-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Thread the chain through the eh.sjlj.setjmp intrinsic, like it's documented to do. This will be useful later on with the new SJLJ stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e8deca83c157999062b4894163fd6b5023c5cf91 |
07-Oct-2011 |
Andrew Trick <atrick@apple.com> |
PostRA scheduler fix. Clear stale loop dependencies. Fixes <rdar://problem/10235725> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141357 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
4563bbaba7fad4403acf0236cbd75805c68f2a90 |
07-Oct-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141356 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
8540101252d3ff69f288e83821aa9f27b366227b |
07-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Remove the old atomic instrinsics. autoupgrade functionality is included with this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141333 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
30e6740f2e3d518ce1cfcd484ef728ac5764a645 |
06-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Modify the mapping from landing pad to call sites to accept more than one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
84fb7dd09e35ee7d32f9d1d88f7dbc3dc706ad7d |
06-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Add an ivar that maps a landing pad's EH symbol to the call sites that may jump to the landing pad. This will be used by the back-end to generate the jump tables for dispatching the arriving longjmp in sjlj eh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141224 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
6f500541eac11413364f1d79320a2307079d3bbd |
06-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Small refactoring. Cache the FunctionInfo->MBB into a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b4a0221e85eeb4015a37f30738099dc680ac32d7 |
06-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix sub-register operand verification. PhysReg operands are not allowed to have sub-register indices at all. For virtual registers with sub-reg indices, check that all registers in the register class support the sub-reg index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141220 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
2130ab0131ca0c0f5607937fe1f6ed48c28d39a2 |
06-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Fix comment to reflect the new EH stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141218 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
6e39290baf236020f130d8695f7624004706bb08 |
05-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused DstSubIdx argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141214 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
d2ed2d71c95462a6b14e7c7c8c82cb727ed342eb |
05-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify EXTRACT_SUBREG emission. EXTRACT_SUBREG is emitted as %dst = COPY %src:sub, so there is no need to constrain the %dst register class. RegisterCoalescer will apply the necessary constraints if it decides to eliminate the COPY. The %src register class does need to be constrained to something with the right sub-registers, though. This is currently done manually with COPY_TO_REGCLASS nodes. They can possibly be removed after this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141207 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
2c3bef8a15c84ad8ef043f8e8ff08ffe1b96720b |
05-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify INSERT_SUBREG emission. The register class created by INSERT_SUBREG and SUBREG_TO_REG must be legal and support the SubIdx sub-registers. The new getSubClassWithSubReg() hook can compute that. This may create INSERT_SUBREG instructions defining a larger register class than the sub-register being inserted. That is OK, RegisterCoalescer will constrain the register class as needed when it eliminates the INSERT_SUBREG instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
b0e1bc7b99809e2b45726affd73f72c60c506ea0 |
05-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a FIXME. TwoAddressInstructionPass should annotate instructions with <undef> flags when it lower REG_SEQUENCE instructions. LiveIntervals should not be in the business of modifying code (except for kill flags, perhaps). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141187 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
200a8cef256f6aade13692752a8fa8f6120cf04f |
05-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also add <imp-use,kill> flags for redefined super-registers. For example: %vreg10:dsub_0<def,undef> = COPY %vreg1 %vreg10:dsub_1<def> = COPY %vreg2 is rewritten as: %D2<def> = COPY %D0, %Q1<imp-def> %D3<def> = COPY %D1, %Q1<imp-use,kill>, %Q1<imp-def> The first COPY doesn't care about the previous value of %Q1, so it doesn't read that register. The second COPY is a partial redefinition of %Q1, so it implicitly kills and redefines that register. This makes it possible to recognize instructions that can harmlessly clobber the full super-register. The write and don't read the super-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141139 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
b077cf338bd85a6a7397ec88d65278f02f0ed06f |
05-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also add <def,undef> flags when coalescing sub-registers. RegisterCoalescer can create sub-register defs when it is joining a register with a sub-register. Add <undef> flags to these new sub-register defs where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141138 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
2fec6c5ff153786744ba7d0d302b73179731c5e9 |
05-Oct-2011 |
Owen Anderson <resistor@mac.com> |
Teach the MC to output code/data region marker labels in MachO and ELF modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141135 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a8512edb6d1c52209bad2d6b989599bc4872c913 |
05-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Create a mapping between the landing pad basic block and the call site index for later use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
7016cf66ee21ddf3f7823d4e332b2cb84953bebd |
04-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow <undef> flags on def operands as well as uses. The <undef> flag says that a MachineOperand doesn't read its register, or doesn't depend on the previous value of its register. A full register def never depends on the previous register value. A partial register def may depend on the previous value if it is intended to update part of a register. For example: %vreg10:dsub_0<def,undef> = COPY %vreg1 %vreg10:dsub_1<def> = COPY %vreg2 The first copy instruction defines the full %vreg10 register with the bits not covered by dsub_0 defined as <undef>. It is not considered a read of %vreg10. The second copy modifies part of %vreg10 while preserving the rest. It has an implicit read of %vreg10. This patch adds a MachineOperand::readsReg() method to determine if an operand reads its register. Previously, this was modelled by adding a full-register <imp-def> operand to the instruction. This approach makes it possible to determine directly from a MachineOperand if it reads its register. No scanning of MI operands is required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141124 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
da7e6a9c8888fe9c4198214cc19f6f55e21e72e4 |
04-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Generic cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141050 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
f8520d564c095e3ee278090b605c4b827604c817 |
04-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't carry over the dispatchsetup hack from the old system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141040 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
631d11765b9f7ebdb49679c92bd41083fbab3f62 |
03-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Move the grabbing of the jump buffer into the caller function, eliminating the need for returning a std::pair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141026 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
8cf5e74a9cc7482901125b810f1e482d24e9404d |
03-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141005 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
1aeb7ac6246c39703e08089ab0dc2f35631b8bb5 |
03-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cbf26e3b574366fabfda50222817950b85517608 |
01-Oct-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Moved type construction out of the loop and added an assert on the legality of the type. Formatted lines to the 80 char limit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e09b2a0d4964e6a34ea6393e94a9f5a76ba56f1a |
01-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
When inferring the pointer alignment, if the global doesn't have an initializer and the alignment is 0 (i.e., it's defined globally in one file and declared in another file) it could get an alignment which is larger than the ABI allows for that type, resulting in aligned moves being used for unaligned loads. For instance, in file A.c: struct S s; In file B.c: struct { // something long }; extern S s; void foo() { struct S p = s; // ... } this copy is a 'memcpy' which is turned into a series of 'movaps' instructions on X86. But this is wrong, because 'struct S' has alignment of 4, not 16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140902 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8de34006cf4cd67ef11cac59dd037bb722b18166 |
01-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Promote comment to doxycomment. Adjust whitespace. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e27e1ca3c90b69e78242c98a669337f84ccded7f |
01-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move getCommonSubClass() into TRI. It will soon need the context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140896 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
achineRegisterInfo.cpp
egisterCoalescer.cpp
electionDAG/InstrEmitter.cpp
|
d398bae0e008f089037e7c3c316e2b6b194daefc |
30-Sep-2011 |
Torok Edwin <edwintorok@gmail.com> |
Comment grammar fixes. thanks to Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140850 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
10a11ecb59b8b9d5de462930960df0d4bd4bf801 |
30-Sep-2011 |
Torok Edwin <edwintorok@gmail.com> |
Instead of crashing when MCAsmInfo is NULL, add an assert. This helps with porting code from 2.9 to 3.0 as TargetSelect.h changed location, and if you include the old one by accident you will trigger this assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140848 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
bb5a7442e362776621112dc9453e546a55878e79 |
29-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Clean up uses of switch instructions so they are not dependent on the operand ordering. Patch by Stepan Dyatkovskiy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140803 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9a7d48ae67d1f151d5339d37ce66c57179de77b4 |
29-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
Place this bracket according to the LLVM style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cc84cda91997bf6fc93512a56c3a12eecaaa2d88 |
29-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove NumImplicitOps which is now unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140767 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
12eb3ad5d6b7dea67ef5aa3b0618d95acf3f8acd |
29-Sep-2011 |
Eric Christopher <echristo@apple.com> |
Use the local we already set up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140745 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3627a462938c92c00053a24828b35da5195d0d68 |
29-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rewrite MachineInstr::addOperand() to avoid NumImplicitOps. The function needs to scan the implicit operands anyway, so no performance is won by caching the number of implicit operands added to an instruction. This also fixes a bug when adding operands after an implicit operand has been added manually. The NumImplicitOps count wasn't kept up to date. MachineInstr::addOperand() will now consistently place all explicit operands before all the implicit operands, regardless of the order they are added. It is possible to change an MI opcode and add additional explicit operands. They will be inserted before any existing implicit operands. The only exception is inline asm instructions where operands are never reordered. This is because of a hack that marks explicit clobber regs on inline asm as <implicit-def> to please the fast register allocator. This hack can go away when InstrEmitter and FastIsel can add exact <dead> flags to physreg defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140744 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
cc8cf97be434b4e2b9c0388db1bfb709f09098eb |
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Have the SjLjEHPrepare pass do some more heavy lifting. Upon further review, most of the EH code should remain written at the IR level. The part which breaks SSA form is the dispatch table, so that part will be moved to the back-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140730 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
42e5c799b61ce70620d4d4d4d20e847750a185c3 |
28-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
A typeid of zero means a cleanup, not a catch. This case occurs when there is both a catch and a cleanup. Correct the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140686 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
adbf7b2c567d42fcb12cfd69c2692da03d34d384 |
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Strip off pointer casts when looking at the eh.sjlj.functioncontext's argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
eef108d5608c50742450a36ed6149e040b14a988 |
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Bitcast the alloca to an i8* to match the intrinsic's signature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140677 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
6ef94175d1bbab95f195770bb3c559b3ab38c4e5 |
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Create and use an llvm.eh.sjlj.functioncontext intrinsic. This intrinsic is used to pass the index of the function context to the back-end for further processing. The back-end is in charge of filling in the rest of the entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
2b6bd7ba5819d8c73c89291c6de89a86dbbffe9c |
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
In the new EH model, setup the function context and the call site info. The DWARF exception pass uses the call site information, which is set up here. A pre-RA pass is too late for it to use this information. So create and setup the function context here, and then insert the call site values here (and map the call sites for the DWARF EH pass). This is simpler than the original pass, and doesn't make the CFG lose its SSA-ness. It's a win-win-win-win-lose-win-win situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140675 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
4b6736bdb02e21e4611522d033247f015aa6c4aa |
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't conditionalize execution of the SjLj EH prepare pass. We may need an SjLj EH preparation pass for some call site information, at least in the short term. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140674 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
56ab875e554d30feb953052c3133ac36f88a3782 |
28-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename class and clean up source. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140664 91177308-0d34-0410-b5e6-96231b3b80d8
xecutionDepsFix.cpp
|
d4d4fca9c368b6d075c45a7e5651f2d0545a6dc1 |
28-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename SSEDomainFix -> lib/CodeGen/ExecutionDepsFix. I'll clean up the source in the next commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140663 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
xecutionDepsFix.cpp
|
0481d29d49cc26a944d0d502360f044cb493a4b5 |
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
This is the start of the new SjLj EH preparation pass, which will replace the current IR-level pass. The old SjLj EH pass has some problems, especially with the new EH model. Most significantly, it violates some of the new restrictions the new model has. For instance, the 'dispatch' table wants to jump to the landing pad, but we cannot allow that because only an invoke's unwind edge can jump to a landing pad. This requires us to mangle the code something awful. In addition, we need to keep the now dead landingpad instructions around instead of CSE'ing them because the DWARF emitter uses that information (they are dead because no control flow edge will execute them - the control flow edge from an invoke's unwind is superceded by the edge coming from the dispatch). Basically, this pass belongs not at the IR level where SSA is king, but at the code-gen level, where we have more flexibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140646 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d6d9dd647f6194be8da274420aba3fd5014f994f |
27-Sep-2011 |
Cameron Zwarich <zwarich@apple.com> |
Remove an invalid assert that is really just asserting when the scheduler emits a suboptimal schedule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140643 91177308-0d34-0410-b5e6-96231b3b80d8
coreboardHazardRecognizer.cpp
|
5405d58e21402a8ba3aaaa580ca65155bee00443 |
27-Sep-2011 |
Jim Grosbach <grosbach@apple.com> |
Rename AddSelectionDAGCSEId() to addSelectionDAGCSEId(). Naming conventions consistency. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a3c42f3d4e5d14c8f4fb9bb123e7759c425d041b |
27-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Cleanup PromoteIntOp_EXTRACT_VECTOR_ELT and PromoteIntRes_SETCC. Add a new method: getAnyExtOrTrunc and use it to replace the manual check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140603 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
|
a1c415cfc2dba4446021f322e4b7a43534a96f1a |
27-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Revert r140463; The patch assumes that <4 x i1> is saved to memory as 4 x i8, while the decision is to bit-pack small values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
439780eeaef1a2c6a1105fb705a27c5c819e8d0e |
26-Sep-2011 |
James Molloy <james.molloy@arm.com> |
Fix emission of debug data for global variables. getContext() on DIGlobalVariables is not valid any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140539 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
c291e2f5780c3a8470113a2a58c1fa680cd54b20 |
25-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add target hook for pseudo instruction expansion. Many targets use pseudo instructions to help register allocation. Like the COPY instruction, these pseudos can be expanded after register allocation. The early expansion can make life easier for PEI and the post-ra scheduler. This patch adds a hook that is called for all remaining pseudo instructions from the ExpandPostRAPseudos pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140472 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
|
0eba4fe292a0bb343da5fb2667850a39459cef0b |
25-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
[vector-select] Address one of the issues in pr10902. EXTRACT_VECTOR_ELEMENT SDNodes may return values which are wider than the incoming element types. In this patch we fix the integer promotion of these nodes. Fixes spill-q.ll when running -promote-elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
74e2d6ea66a9289fc3c00583f3c2b2abd84e1866 |
25-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up code after renaming LowerSubregs -> ExpandPostRAPseudos. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140470 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPostRAPseudos.cpp
LVMTargetMachine.cpp
|
fb96574fca53631bb643307c4f1fa8f808d45fc1 |
25-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename LowerSubregs to ExpandPostRAPseudos. I'll fix the file contents in the next commit. This pass is currently expanding the COPY and SUBREG_TO_REG pseudos. I am going to add a hook so targets can expand more pseudo-instructions after register allocation. Many targets have pseudo-instructions that assist the register allocator. They can be expanded after register allocation, before PEI and PostRA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140469 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
xpandPostRAPseudos.cpp
owerSubregs.cpp
|
17e76bda552d5afa652c4bb45f6dbdad67dc5c20 |
24-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Implement Duncan's suggestion to use the result of getSetCCResultType if it is legal (this is always the case for scalars), otherwise use the promoted result type. Fix test/CodeGen/X86/vsplit-and.ll when promote-elements is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
0d5357e3d5bd3edbe4ad09791e69e1fb85d4b17f |
24-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
[Vector-Select] Address one of the problems in 10902. When generating the trunc-store of i1's, we need to use the vector type and not the scalar type. This patch fixes the assertion in CodeGen/Generic/bool-vector.ll when running with -promote-elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140463 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5adc07ebe80688a4b4b96dc088341a7d87eb614f |
24-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that terminators follow non-terminators. This exposes a -segmented-stacks bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140429 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
bde81d5be9bdc3837c77f8f3c63c013b6e4bbc8d |
24-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10998: It is not legal to sink an instruction past the terminator of a block; make sure we don't do that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140428 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4c19e12d28749c717d3b384962c9ec92796af1c9 |
23-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
Tweak the handling of MERGE_VALUES nodes: remove the need for DecomposeMERGE_VALUES to "know" that results are legalized in a particular order, by passing it the number of the result being legalized (the type legalization core provides this, it just needs to be passed on). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
c56d65f63cd632ef57d9f80b4539f15a2f937364 |
23-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Vector-Select: Address one of the problems in pr10902. Add handling for the integer-promotion of CONCAT_VECTORS. Test: test/CodeGen/X86/widen_shuffle-1.ll This patch fixes the above tests (when running in with -promote-elements). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
7b316c93273b2156f173fb2877c5e482f13f6778 |
23-Sep-2011 |
Dan Gohman <gohman@apple.com> |
Fix SimplifySelectCC to add newly created nodes to the DAGCombiner worklist, as it may be possible to perform further optimization on them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
08f5cdf5b33b8202edddb24abee6af2a0b3ae49c |
22-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Constrain register classes instead of emitting copies. Sometimes register class constraints are trivial, like GR32->GR32_NOSP, or GPR->rGPR. Teach InstrEmitter to simply constrain the virtual register instead of emitting a copy in these cases. Normally, these copies are handled by the coalescer. This saves some coalescer work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
91fb536a345dc268e5b73dbddb9bee4cba87b28f |
22-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a MinNumRegs argument to MRI::constrainRegClass(). The function will refuse to use a register class with fewer registers than MinNumRegs. This can be used by clients to avoid accidentally increase register pressure too much. The default value of MinNumRegs=0 doesn't affect how constrainRegClass() works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140339 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
711395527e6b19d4bf26e22586f2c13591970ba6 |
22-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Use the C personality function instead of the C++ personality function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140318 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
1dd4e56d5565d59e9d40ad9e088a05e06f4b70f8 |
22-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Do not unnecessarily use AT_specification DIE because it does not add any value. Few weeks ago, llvm completely inverted the debug info graph. Earlier each debug info node used to keep track of its compile unit, now compile unit keeps track of important nodes. One impact of this change is that the global variable's do not have any context, which should be checked before deciding to use AT_specification DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140282 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
3ca2ad11567f83883ae2719c5fac5afc30c7b3d1 |
22-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Attempt to update the shadow stack GC pass to the new EH model. This inserts a cleanup landingpad instruction and a resume to mimic the old unwind instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140277 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
fe59d853c6bee18aeca1da5f703fc442068853a7 |
21-Sep-2011 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. Whitepsace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140275 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
1147248e6f40f2e5655f3d8243fe7ba49ed75d0a |
21-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
[VECTOR-SELECT] Address one of the bugs in pr10902. Vector SetCC result types need to be type-legalized. This code worked before because scalar result types are known to be legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
3be654f8082dcbdff011a6716a7c90486e28fc9e |
21-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Lower ARM adds/subs to add/sub after adding optional CPSR operand. This is still a hack until we can teach tblgen to generate the optional CPSR operand rather than an implicit CPSR def. But the strangeness is now limited to the selection DAG. ADD/SUB MI's no longer have implicit CPSR defs, nor do we allow flag setting variants of these opcodes in machine code. There are several corner cases to consider, and getting one wrong would previously lead to nasty miscompilation. It's not the first time I've debugged one, so this time I added enough verification to ensure it won't happen again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140228 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
|
e97190fdf875843e8161a942f2046fd3ef81330f |
21-Sep-2011 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add a DAGCombine for subvector extracts to remove useless chains of subvector inserts and extracts. Initial patch by Rackover, Zvi with some tweak done by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
83a8031336a1155e6b0c3e9a84164324e08d1c8b |
20-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Restore hasPostISelHook tblgen flag. No functionality change. The hook makes it explicit which patterns require "special" handling. i.e. it self-documents tblgen deficiencies. I plan to add verification in ExpandISelPseudos and Thumb2SizeReduce to catch any missing hasPostISelHooks. Otherwise it's too fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
|
4815d56bb2c356a610f46753c5f1cefafa113b21 |
20-Sep-2011 |
Andrew Trick <atrick@apple.com> |
ARM isel bug fix for adds/subs operands. Modified ARMISelLowering::AdjustInstrPostInstrSelection to handle the full gamut of CPSR defs/uses including instructins whose "optional" cc_out operand is not really optional. This allowed removal of the hasPostISelHook to simplify the .td files and make the implementation more robust. Fixes rdar://10137436: sqlite3 miscompile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140134 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
|
3af7a67629292840f0dbae8fad4e333b009e69dd |
20-Sep-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
|
b6266fb6026bdd900d8f045bf01300ef549e1802 |
18-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
white space cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
76f58d20313a23758399a59ceec0fbc6c2c16397 |
16-Sep-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Namespacify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139892 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
ebac0c1747d20e48f359d76dd454444107080d83 |
16-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Spill mode: Hoist back-copies locally. The leaveIntvAfter() function normally inserts a back-copy after the requested instruction, making the back-copy kill the live range. In spill mode, try to insert the back-copy before the last use instead. That means the last use becomes the kill instead of the back-copy. This lowers the register pressure because the last use can now redefine the same register it was reading. This will also improve compile time: The back-copy isn't a kill, so hoisting it in hoistCopiesForSize() won't force a recomputation of the source live range. Similarly, if the back-copy isn't hoisted by the splitter, the spiller will not attempt hoisting it locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139883 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
69cf1cac3f62e60a50ff0aa9808ea4d317e273ef |
16-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable local spill hoisting for non-killing copies. If the source register is live after the copy being spilled, there is no point to hoisting it. Hoisting inside a basic block only serves to resolve interferences by shortening the live range of the source. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139882 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
331120b1a482b782e8dffce63033bb8514ba2a96 |
15-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Some legalization fixes for atomic load and store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
b9edad0163296e02f7b4dbbc22b50615dede357c |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an option to disable spill hoisting. When -split-spill-mode is enabled, spill hoisting is performed by SplitKit instead of by InlineSpiller. This hidden command line option is for testing the splitter spill mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139845 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
01afdb3a45f63af540b43b414c6094220a8f91e7 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
VirtRegMap is counting spill slots, not register spills. Fix the stats counters to reflect that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139819 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
d205f7a940dd38480ff6283328c7d429201cdf27 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count correctly when a COPY turns into a spill or reload. The number of spills could go negative since a folded COPY is just a spill, and it may be eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139815 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
79c40a011b15f59e5b128c870c04893c3f1eddf9 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count inserted spills and reloads more accurately. Adjust counters when removing spill and reload instructions. We still don't account for reloads being removed by eliminateDeadDefs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139806 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
6b6e32d954233ddeeae7f99e358ff85059f1176a |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trace through sibling PHIs in bulk. When traceSiblingValue() encounters a PHI-def value created by live range splitting, don't look at all the predecessor blocks. That can be very expensive in a complicated CFG. Instead, consider that all the non-PHI defs jointly dominate all the PHI-defs. Tracing directly to all the non-PHI defs is much faster that zipping around in the CFG when there are many PHIs with many predecessors. This significantly improves compile time for indirectbr interpreters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139797 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
031432f9ad24963282b7f71bd0592080f6229d20 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Speed up LiveIntervals::shrinkToUse with some caching. Blocks with multiple PHI successors only need to go on the worklist once. Use a SmallPtrSet to track the live-out blocks that have already been handled. This is a lot faster than the two live range check we would otherwise do. Also stop recomputing hasPHIKill flags. Like RenumberValues(), it is conservatively correct to leave them in, and they are not used for anything important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139792 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9b82d50d209adf915d3c7f871dc82cb73349db80 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r139782, "RemoveCopyByCommutingDef doesn't need hasPHIKill()." It does, after all. RemoveCopyByCommutingDef rewrites the uses of one particular value number in A. It doesn't know how to rewrite phi uses, so there can't be any. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139787 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
df8412c4c1a3a798c5a849ebc3f56904568d40c4 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop verifying hasPHIKill() flags. There is only one legitimate use remaining, in addIntervalsForSpills(). All other calls to hasPHIKill() are only used to update PHIKill flags. The addIntervalsForSpills() function is part of the old spilling framework, only used by linearscan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139783 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
de07abe35de24e551783ee20a4213729b3524baa |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
RemoveCopyByCommutingDef doesn't need hasPHIKill(). Instead, let HasOtherReachingDefs() test for defs in B that overlap any phi-defs in A as well. This test is slightly different, but almost identical. A perfectly precise test would only check those phi-defs in A that are reachable from AValNo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139782 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
4ea24e993f179113a9bb76ee152cc490e738c936 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
It is safe to remat a value killed by phis. The source live range is recomputed using shrinkToUses() which does handle phis correctly. The hasPHIKill() condition was relevant in the old days when ReMaterializeTrivialDef() tried to recompute the live range itself. The shrinkToUses() function will mark the original def as dead when no more uses and phi kills remain. It is then removed by runOnMachineFunction(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139781 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
573a32d4870ff4af7f59fc020caf07fb6ef61e37 |
15-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Leave hasPHIKill flags alone in LiveInterval::RenumberValues. It is conservatively correct to keep the hasPHIKill flags, even after deleting PHI-defs. The calculation can be very expensive after taildup has created a quadratic number of indirectbr edges in the CFG, and the hasPHIKill flag isn't used for anything after RenumberValues(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139780 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
b1afbac64b7c4c06959350acc175fb3552012f57 |
15-Sep-2011 |
Andrew Trick <atrick@apple.com> |
[regcoalescing] bug fix for RegistersDefinedFromSameValue. An improper SlotIndex->VNInfo lookup was leading to unsafe copy removal. Fixes PR10920 401.bzip2 miscompile with no IV rewrite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139765 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
734a67cda5a02be1654a2f89b811d7b6cbe3f5e5 |
15-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Add support to emit debug info for C++0x nullptr type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139751 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
0d4fea786670473b53d285be378e619399e03488 |
14-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ignore the cloning of unknown registers. THe LRE_DidCloneVirtReg callback may be called with vitual registers that RAGreedy doesn't even know about yet. In that case, there are no data structures to update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139702 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
c4c633852fbb8ab9ef2679b679d2862746d2fa3e |
14-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hoist back-copies to the least busy dominator. When a back-copy is hoisted to the nearest common dominator, keep looking up the dominator tree for a less loopy dominator, and place the back-copy there instead. Don't do this when a single existing back-copy dominates all the others. Assume the client knows what he is doing, and keep the dominating back-copy. This prevents us from hoisting back-copies into loops in most cases. If a value is defined in a loop with multiple exits, we may still hoist back-copies into that loop. That is the speed/size tradeoff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139698 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
436fe8498a0a3368d2690290e805213a0f114d0d |
14-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add integer promotion support for vselect git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
393bfcb263fa46e4badc73c6aa56306986f94dcf |
14-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Distinguish complex mapped values from forced recomputation. When a ParentVNI maps to multiple defs in a new interval, its live range may still be derived directly from RegAssign by transferValues(). On the other hand, when instructions have been rematerialized or hoisted, it may be necessary to completely recompute live ranges using LiveRangeCalc::extend() to all uses. Use a bit in the value map to indicate that a live range must be recomputed. Rename markComplexMapped() to forceRecompute(). This fixes some live range verification errors when -split-spill-mode=size hoists back-copies by recomputing source ranges when RegAssign kills can't be moved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139660 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
b21abfed813fa46976f896439ca2f9fbd2eba9ba |
14-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement -split-spill-mode=size. Whenever the complement interval is defined by multiple copies of the same value, hoist those back-copies to the nearest common dominator. This ensures that at most one copy is inserted per value in the complement inteval, and no phi-defs are needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139651 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
596f447467b35d7513c997cd9098026938676461 |
14-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix check for unaligned load/store so it doesn't catch over-aligned load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fe731214d2529f7b30527fc312964af411867dd0 |
13-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Error out on CodeGen of unaligned load/store. Fix test so it isn't accidentally testing that case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8f28aaf72c61a493dfcd1b838ff8c5050352b5cd |
13-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix the assertion which checks the size of the input operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139633 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
aec5861bb6ace3734163c000cb75ca2e22e29caa |
13-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add vselect target support for targets that do not support blend but do support xor/and/or (For example SSE2). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139623 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
|
3a2d80df88c28dc8b2d3a855c3ebd7935c8ad125 |
13-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Use a cache to maintain list of machine basic blocks for a given UserValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139616 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
e5a2e366322ef5f0d597b1fb8dbf55f2cf36cf15 |
13-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SplitEditor::markOverlappedComplement(). This function is used to flag values where the complement interval may overlap other intervals. Call it from overlapIntv, and use the flag to fully recompute those live ranges in transferValues(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139612 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
abcc73e8ba3131c7c4f198840ece31453a0101ac |
13-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate the extendRange() wrapper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139608 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
ee5655dca467d3812145a2f965c31edf4875c93e |
13-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch extendInBlock() to take a kill slot instead of the last use slot. Three out of four clients prefer this interface which is consistent with extendIntervalEndTo() and LiveRangeCalc::extend(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139604 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveRangeCalc.cpp
plitKit.cpp
|
c1c622ef0dd29d1bafd580790aec5231af50abf2 |
13-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a separate LiveRangeCalc for the complement in spill modes. The complement interval may overlap the other intervals created, so use a separate LiveRangeCalc instance to compute its live range. A LiveRangeCalc instance can only be shared among non-overlapping intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139603 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
edd4f8ba4bed5b999c6a726b7991241cf1840350 |
13-Sep-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Unbreak msvc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139581 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeCalc.cpp
iveRangeCalc.h
|
b5a457c4cbc71db6ae313ef1bf8eadac65767ab0 |
13-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract live range calculations from SplitKit. SplitKit will soon need two copies of these data structures, and the algorithms will also be useful when LiveIntervalAnalysis becomes independent of LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139572 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
iveRangeCalc.cpp
iveRangeCalc.h
plitKit.cpp
plitKit.h
|
3669915c6dc8d57a4525fb0c592e6c8c1df098f5 |
12-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Introduce a bit of a hack. Splitting a landing pad takes considerable care because of PHIs and other nasties. The problem is that the jump table needs to jump to the landing pad block. However, the landing pad block can be jumped to only by an invoke instruction. So we clone the landingpad instruction into its own basic block, have the invoke jump to there. The landingpad instruction's basic block's successor is now the target for the jump table. But because of PHI nodes, we need to create another basic block for the jump table to jump to. This is definitely a hack, because the values for the PHI nodes may not be defined on the edge from the jump table. But that's okay, because the jump table is simply a construct to mimic what is happening in the CFG. So the values are mysteriously there, even though there is no value for the PHI from the jump table's edge (hence calling this a hack). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139545 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
a16a25ddeaf495b78b04e2a19feeac00d9824e63 |
12-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -compact-regions flag. It has been enabled by default for a while, it was only there to allow performance comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139501 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
708d06f7fb5dfd9c8559aea07b042a88c65645f8 |
12-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an interface for SplitKit complement spill modes. SplitKit always computes a complement live range to cover the places where the original live range was live, but no explicit region has been allocated. Currently, the complement live range is created to be as small as possible - it never overlaps any of the regions. This minimizes register pressure, but if the complement is going to be spilled anyway, that is not very important. The spiller will eliminate redundant spills, and hoist others by making the spill slot live range overlap some of the regions created by splitting. Stack slots are cheap. This patch adds the interface to enable spill modes in SplitKit. In spill mode, SplitKit will assume that the complement is going to spill, so it will allow it to overlap regions in order to avoid back-copies. By doing some of the spiller's work early, the complement live range becomes simpler. In some cases, it can become much simpler because no extra PHI-defs are required. This will speed up both splitting and spilling. This is only the interface to enable spill modes, no implementation yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139500 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
3d4ec14ffc6b957b9418578567a5751ef6f80fdb |
12-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update comments to reflect some (not so) recent changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139498 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.h
|
2e3734e2d948af7c61c1957742811cdfca0e2516 |
10-Sep-2011 |
Richard Trieu <rtrieu@google.com> |
Fix asserts in CodeGen from: assert("error"); to: assert(0 && "error"); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139449 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
|
c3ab388ba9574eb93c44ed57ea46acd4f623b5dc |
10-Sep-2011 |
Chris Lattner <sabre@nondot.org> |
tidy up a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9db817fd0ce0949d0358f5cedfd9ca5a9f1726dd |
09-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make the SelectionDAG verify that all the operands of BUILD_VECTOR have the same type. Teach DAGCombiner::visitINSERT_VECTOR_ELT not to make invalid BUILD_VECTORs. Fixes PR10897. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
1ab7c8ea03d52c6fdae6fe0efae57a36c2f701c3 |
09-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r139247: Cache intermediate results during traceSiblingValue. In some cases such as interpreters using indirectbr, the CFG can be very complicated, and live range splitting may be forced to insert a large number of phi-defs. When that happens, traceSiblingValue can spend a lot of time zipping around in the CFG looking for defs and reloads. This patch causes more information to be cached in SibValues, and the cached values are used to terminate searches early. This speeds up spilling by 20x in one interpreter test case. For more typical code, this is just a 10% speedup of spilling. The previous version had bugs that caused miscompilations. They have been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139378 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
9aee335c23bec4f6d1b2cab3bca76231d7b0d556 |
09-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Directly point debug info to the stack slot of the arugment, instead of trying to keep track of vreg in which it the arugment is copied. The LiveDebugVariable can keep track of variable's ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0472e040cba6d15ff3810685c3bd1bbdade3e568 |
07-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r139247 "Cache intermediate results during traceSiblingValue." It broke the self host and clang-x86_64-darwin10-RA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139259 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
2c207a0f677a2d78b768acb559e6b9f6f112a50d |
07-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cache intermediate results during traceSiblingValue. In some cases such as interpreters using indirectbr, the CFG can be very complicated, and live range splitting may be forced to insert a large number of phi-defs. When that happens, traceSiblingValue can spend a lot of time zipping around in the CFG looking for defs and reloads. This patch causes more information to be cached in SibValues, and the cached values are used to terminate searches early. This speeds up spilling by 20x in one interpreter test case. For more typical code, this is just a 10% speedup of spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139247 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
b950585cc5a0d665e9accfe5ce490cd269756f2e |
07-Sep-2011 |
James Molloy <james.molloy@arm.com> |
Refactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling to llvm-mc. Reviewed by Owen Anderson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139237 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
981a010c095b8fb57422df6fb90b6d802082afc5 |
07-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Relax the MemOperands on atomics a bit. Fixes -verify-machineinstrs failures for atomic laod/store on ARM. (The fix for the related failures on x86 is going to be nastier because we actually need Acquire memoperands attached to the atomic load instrs, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
541a81cc2bb8b66960e788b1d8441536354b79b8 |
07-Sep-2011 |
Devang Patel <dpatel@apple.com> |
While sinking machine instructions, sink matching DBG_VALUEs also otherwise live debug variable pass will drop DBG_VALUEs on the floor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139208 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
28b77e968d2b01fc9da724762bd8ddcd80650e32 |
06-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
Add codegen support for vector select (in the IR this means a select with a vector condition); such selects become VSELECT codegen nodes. This patch also removes VSETCC codegen nodes, unifying them with SETCC nodes (codegen was actually often using SETCC for vector SETCC already). This ensures that various DAG combiner optimizations kick in for vector comparisons. Passes dragonegg bootstrap with no testsuite regressions (nightly testsuite as well as "make check-all"). Patch mostly by Nadav Rotem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139159 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
4a544a79bd735967f1d33fe675ae4566dbd17813 |
06-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
Split the init.trampoline intrinsic, which currently combines GCC's init.trampoline and adjust.trampoline intrinsics, into two intrinsics like in GCC. While having one combined intrinsic is tempting, it is not natural because typically the trampoline initialization needs to be done in one function, and the result of adjust trampoline is needed in a different (nested) function. To get around this llvm-gcc hacks the nested function lowering code to insert an additional parent variable holding the adjust.trampoline result that can be accessed from the child function. Dragonegg doesn't have the luxury of tweaking GCC code, so it stored the result of adjust.trampoline in the memory GCC set aside for the trampoline itself (this is always available in the child function), and set up some new memory (using an alloca) to hold the trampoline. Unfortunately this breaks Go which allocates trampoline memory on the heap and wants to use it even after the parent has exited (!). Rather than doing even more hacks to get Go working, it seemed best to just use two intrinsics like in GCC. Patch mostly by Sanjoy Das. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
7ab15f6d4b9b9fd03c8ab6327ac2b1b3c4b4d04b |
03-Sep-2011 |
Owen Anderson <resistor@mac.com> |
Fix a truly heinous bug in DAGCombine related to AssertZext. If we have a chain of zext -> assert_zext -> zext -> use, the first zext would get simplified away because of the later zext, and then the later zext would get simplified away because of the assert. The solution is to teach SimplifyDemandedBits that assert_zext demands all of the high bits of its input, rather than only those demanded by its users. No testcase because the only example I have manifests as llvm-gcc miscompiling LLVM, and I haven't found a smaller case that reproduces this problem. Fixes <rdar://problem/10063365>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8040e064346cc3b78dece7d8ac50593a1c834c46 |
02-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify by using isFullCopy(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139019 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
147272b8a70db7984a6bdfad3b5efabcb794a42e |
02-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
Darwin wants ctors/dtors to be ordered the other way round to linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139015 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6b13cd415493187b4c597fc1a60fae314067cdb2 |
02-Sep-2011 |
Dan Gohman <gohman@apple.com> |
Revert r131152, r129796, r129761. This code is currently considered to be unreliable on platforms which require memcpy calls, and it is complicating broader legalize cleanups. It is hoped that these cleanups will make memcpy byval easier to implement in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
36a16015ac108e2f0dd2d6d96a6d364bc74c50d7 |
02-Sep-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't drop alignment info on local common symbols. - On COFF the .lcomm directive has an alignment argument. - On ELF we fall back to .local + .comm Based on a patch by NAKAMURA Takumi. Fixes PR9337, PR9483 and PR10128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138976 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4a0a18af4a9a47466a6077a158387ba4f57bf636 |
01-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Permit remat of partial register defs when it is safe. An instruction may define part of a register where the other bits are undefined. In that case, it is safe to rematerialize the instruction. For example: %vreg2:ssub_0<def> = VLDRS <cp#0>, 0, pred:14, pred:%noreg, %vreg2<imp-def> The extra <imp-def> operand indicates that the instruction does not read the other parts of the virtual register, so a remat is safe. This patch simply allows multiple def operands for the virtual register. It is MI->readsVirtualRegister() that determines if we depend on a previous value so remat is impossible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138953 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
ae779eea27f41d31268931a6508bd0536cfbc724 |
01-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r138794, "Do not try to rematerialize a value from a partial definition." The problem is fixed for all register allocators by r138944, so this patch is no longer necessary. <rdar://problem/10032939> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138945 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
9d548d0343774636e72713d678a078c8e808ed29 |
01-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Prevent remat of partial register redefinitions. An instruction that redefines only part of a larger register can never be rematerialized since the virtual register value depends on the old value in other parts of the register. This was fixed for the inline spiller in r138794. This patch fixes the problem for all register allocators, and includes a small test case. <rdar://problem/10032939> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138944 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
61560e205a7997749f066dcceaadd5f4b9b5e1be |
01-Sep-2011 |
Evan Cheng <evan.cheng@apple.com> |
Teach MachineLICM reg pressure tracking code to deal with MVT::untyped. Sorry, I can't come up with a small test case. rdar://10043690 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138934 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
340d78f4e7b95c235d0ecf315b755bebefd0a168 |
01-Sep-2011 |
Andrew Trick <atrick@apple.com> |
PreRA scheduler should avoid cloning compares. Added canClobberReachingPhysRegUse() to handle a particular pattern in which a two-address instruction could be forced to interfere with EFLAGS, causing a compare to be unnecessarilly cloned. Fixes rdar://problem/5875261 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138924 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
94fca8300d61cc038030c31014116df38b74e986 |
31-Aug-2011 |
David Greene <greened@obbligato.org> |
Fix Size Typing Stores sizes as uint64_t to avoid possible truncation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138901 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fcd75e5efb482f35cfc22fd4b64e047930130fd6 |
31-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Misc cleanup; addresses Duncan's comments on r138877. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138887 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
62bb16cfd10dd271eab6c31d982bca4d79138602 |
31-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fill in type legalization for MERGE_VALUES in all the various cases. Patch by Micah Villmow. (No testcase because the issue only showed up in an out-of-tree backend.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138877 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
ba567d670d32e102a70b106fbfe284835085cb3f |
31-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Generic expansion for atomic load/store into cmpxchg/atomicrmw xchg; implements 64-bit atomic load/store for ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
d92e2e4f88fccd4b3a497d8d9eade7bfd8564798 |
31-Aug-2011 |
David Greene <greened@obbligato.org> |
Compress Repeated Byte Output Emit a repeated sequence of bytes using .zero. This saves an enormous amount of asm file space for certain programs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138864 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e81abfd30b7c81735e9f3d79006c2653690aa592 |
31-Aug-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Spelling and grammar fixes to problems found by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138858 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
76927d758657b3a511c73467ec5a7288795c1513 |
30-Aug-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Emit segmented-stack specific code into function prologues for X86. Modify the pass added in the previous patch to call this new code. This new prologues generated will call a libgcc routine (__morestack) to allocate more stack space from the heap when required Patch by Sanjoy Das. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138812 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
37fefc20d3a1e3934a377567d54a141f67752227 |
30-Aug-2011 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to r138791. Add a instruction flag: hasPostISelHook which tells the pre-RA scheduler to call a target hook to adjust the instruction. For ARM, this is used to adjust instructions which may be setting the 's' flag. ADC, SBC, RSB, and RSC instructions have implicit def of CPSR (required since it now uses CPSR physical register dependency rather than "glue"). If the carry flag is used, then the target hook will *fill in* the optional operand with CPSR. Otherwise, the hook will remove the CPSR implicit def from the MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
|
e497906e87c8dcf79bfd2f283679da9d99718861 |
30-Aug-2011 |
Bob Wilson <bob.wilson@apple.com> |
Do not try to rematerialize a value from a partial definition. I don't currently have a good testcase for this; will try to get one tomorrow. <rdar://problem/10032939> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138794 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
f8e1e3e729473b8b2b7ee6134b6417976af84d05 |
30-Aug-2011 |
Jim Grosbach <grosbach@apple.com> |
Thumb2 parsing and encoding for IT blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138773 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fd9c4f76f4a1ec06891a3405198fc907f8253958 |
28-Aug-2011 |
Duncan Sands <baldrick@free.fr> |
Fix PR5329: pay attention to constructor/destructor priority when outputting them. With this, the entire LLVM testsuite passes when built with dragonegg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138724 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8557e6c0c17a94ac6655aa6b5f56a23709410081 |
27-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
These splits should be done whether they are critical edges or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138697 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
e8ef4cc053257c8cc330d4995aa775785e7f3f04 |
26-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Update the dominator tree with the correct dominator for the new 'unwind' block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138664 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
51fb91c04c920703fbd4a67ac3f85c0971b2c5a5 |
26-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Split the landing pad block only if it's a critical edge. Also intelligently split it in the other place where we're splitting critical edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138658 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
069e2ed794a90cb5108a35627ee148866795f140 |
26-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Atomic load/store on ARM/Thumb. I don't really like the patterns, but I'm having trouble coming up with a better way to handle them. I plan on making other targets use the same legalization ARM-without-memory-barriers is using... it's not especially efficient, but if anyone cares, it's not that hard to fix for a given target if there's some better lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
09908c4b4a0b25eab4cb496d95d9dcc93f2214f2 |
26-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Look at only the terminators of the basic block. Also, if we're using the new EH scheme, return 'true' so that it doesn't try to run the old EH scheme's fixup on the new code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138605 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
327236cd6c211e54fc6288b0ac2b413901cc0611 |
24-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Basic x86 code generation for atomic load and store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
3e74d6fdd248e20a280f1dff3da9a6c689c2c4c3 |
24-Aug-2011 |
Evan Cheng <evan.cheng@apple.com> |
Move TargetRegistry and TargetSelect from Target to Support where they belong. These are strictly utilities for registering targets and components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
LVMTargetMachine.cpp
|
ee61d67c2f1105e23b2ea5110389f3b7b713b504 |
24-Aug-2011 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138437 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3ae96d69ef0695460eb3d046427d22dcda10d9f0 |
24-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Add the sentinal "no handle" value to the ResumeInst. A value of -1 at a call site tells the personality function that this call isn't handled by the current function. Since the ResumeInsts are converted to calls to _Unwind_SjLj_Resume, add a (volatile) store of -1 to its 'call site'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138416 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
fc8713ff74c2ed83d453057b24c578a0709fc180 |
24-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't replace *all* uses with the new stuff. This is not necessarily the first or dominating use of the EH values. The IR breaks if it's not. So replace the specific value in the instruction with the new value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138406 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
cfcccef926bd142c885dfa3f506bff933939350c |
24-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Look at the end of the entry block for an invoke. The invoke could be at the end of the entry block. If it's the only one, then we won't process all of the landingpad instructions correctly. This code is currently ugly, but should be made much nicer once the new EH switch is thrown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138397 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
4477d691ed9fa63f051986dcb98e358054c8281f |
23-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
A landingpad instruction is neither folded nor dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1dafa70585bf9807efefb54c1f311bfe7bd9a3f3 |
23-Aug-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix 80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
aef508dfc1d844bb3a4f7606f54bf4c616c10eff |
23-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Split the landing pad's edge. Then for all uses of a landingpad instruction's value, we insert a load of the exception object and selector object from memory, which is where it actually resides. If it's used by a PHI node, we follow that to where it is being used. Eventually, all landingpad instructions should have no uses. Any PHI nodes that were associated with those landingpads should be removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138302 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
cb08f18d5b88ffa4ba8efd7cac0b8820d6f0ec71 |
23-Aug-2011 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to Jim's r138278. This fixes commuteInstruction so it handles two-address instructions correctly. I'll let Jim add a test case. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138289 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
d36b3e36811e8b50476076ee4986068481916f66 |
22-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Some whitespace fixes and #include reordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138256 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
33e94fa99c5771f7c078267a0d201f6389b617b4 |
22-Aug-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Be less redundant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
93d39be5300702d8c9892ec04a492a6056926462 |
20-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Do not use named md nodes to track variables that are completely optimized. This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138145 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
deaa64546ea1d0922aa4671a05f13be3d7c9d53c |
20-Aug-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Roll back the rest of r126557. It's a hack that will break in some obscure cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5aa5d574f464ff9ff15a4c01360aaabc9bdc8a8f |
19-Aug-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Eli points out that this is what report_fatal_error() is for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138091 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
d133bf8f27af57c9ed807a033f2375d80bf644a2 |
19-Aug-2011 |
Nick Lewycky <nicholas@mxc.ca> |
This is not actually unreachable, so don't use llvm_unreachable for it. Since the intent seems to be to terminate even in Release builds, just use abort() directly. If program flow ever reaches a __builtin_unreachable (which llvm_unreachable is #define'd to on newer GCCs) then the program is undefined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
61b2d7f20780409143f312bcfa29149d237f99d8 |
19-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add llc flags to disable machine DCE and CSE. This is useful for unit tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138028 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a67f14bf53737f9bb0afefa28e08c4aac6ec4804 |
19-Aug-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make a bunch of symbols private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138025 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
cheduleDAG.cpp
|
201f2463a72f88121a3a31e7386029e99d2d75da |
19-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't treat a partial <def,undef> operand as a read. Normally, a partial register def is treated as reading the super-register unless it also defines the full register like this: %vreg110:sub_32bit<def> = COPY %vreg77:sub_32bit, %vreg110<imp-def> This patch also uses the <undef> flag on partial defs to recognize non-reading operands: %vreg110:sub_32bit<def,undef> = COPY %vreg77:sub_32bit This fixes a subtle bug in RegisterCoalescer where LIS->shrinkToUses would treat a coalesced copy as still reading the register, extending the live range artificially. My test case only works when I disable DCE so a dead copy is left for RegisterCoalescer, so I am not including it. <rdar://problem/9967101> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138018 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f1f6de1c9b658c78baa36c1af7a94c1deba91851 |
19-Aug-2011 |
Renato Golin <renato.golin@arm.com> |
add the comments of each declaration follow it, making it easier to read and compare to GCC's result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138009 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
28bea08e531452992ff1e25e8584883dfbd4c232 |
19-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Eliminate unnecessary forwarding function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138006 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
49e2f03849064d9dc26db3865ae419f17daadca6 |
19-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Add new DIE into the map asap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137998 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
74af88a6661ad5185924bf39164fb4aa144d32cf |
19-Aug-2011 |
Ivan Krasin <krasin@chromium.org> |
FastISel: avoid function calls between the materialization of the constant and its use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2ac0e6be05d53323d305155fcf53d50c87d6a9b2 |
17-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Add the support in code-gen for the landingpad instruction lowering. The landingpad instruction is lowered into the EXCEPTIONADDR and EHSELECTION SDNodes. The information from the landingpad instruction is harvested by the 'AddLandingPadInfo' function. The new EH uses the current EH scheme in the back-end. This will change once we switch over to the new scheme. (Reviewed by Jakob!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
a65a3bc1a18c559f52a749dd13063b6ae3fdc779 |
17-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert patch. Forgot a dependent commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4eb20621438eb98fdbcdb0b224de7609d5ef76f2 |
17-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Add the body of 'visitLandingPad'. This generates the SDNodes for the new exception handling scheme. It takes the two values coming from the landingpad instruction and assigns them to the EXCEPTIONADDR and EHSELECTION nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137873 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
35adbb3e4829d3a14784c2bb8ec768b6154c2107 |
17-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Modify for the new EH scheme. Things are much saner now. We no longer need to modify the laning pads, because of the invariants we impose upon them. The only thing DwarfEHPrepare needs to do is convert the 'resume' instruction into a call to '_Unwind_Resume'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137855 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
94c7ddb6f52a5200983fed0ce74dc602a7737879 |
17-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Until now all debug info MDNodes referred to a root MDNode, a compile unit. This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL. MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137778 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1b84cce77f8bccc905b4800927ce9016f76c1c40 |
16-Aug-2011 |
Jim Grosbach <grosbach@apple.com> |
Remove unused Target argument from AsmParser construction methods. The argument is unused, and is a layering violation in any case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137735 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
e26a1352487c350acaee62bc5f7fa4002b9bf524 |
16-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Remove unnecessary version check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137728 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6d1f5d951bab2222096210e76e6f7e18e88ae547 |
16-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Revert r137562 because it caused PR10674 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137719 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
02e603f87a9745768a05411e16c47c558d2cbd6e |
16-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137689 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3655a21b15e135927826eeb1917b42299ac95d67 |
16-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Continue to hoist uses of getCompileUnit() up. The goal is to get rid of uses of getCompileUnit(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137683 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d30243402bf5db25e8b947bd3de2677d0f6c9637 |
16-Aug-2011 |
Devang Patel <dpatel@apple.com> |
This is somewhat déjà -vu, but avoid using getCompileUnit() as much as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137668 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d0b5a5ece4f6bf1a29bacefcdd07eaa7ba83e316 |
16-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. Variables are part of compile unit so let CompileUnit create new variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137663 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
7a328270be871f640d94fcebfd48dee02950fb8c |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
There is no need to maintain a set to keep track of variables that use location expressions. In such cases, AT_location attribute's value will be a label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137659 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c890b19226673d7004eaff7433834b2e5223bdea |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Fix warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137658 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ff9dd0ac55bc7eb06e7ba8cccf255e64757863cc |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Simplify. Let DbgVariable keep track of variable's DBG_VALUE machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137656 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5a1a67cd3f35b82bcae5dc5dce6ffd9b9549a5c0 |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Simplify mapping to variable from its abstract variable info. When a variable is inlined multiple places, abstract variable keeps name, location, type etc.. info and all other concreate instances of the variable directly refers to abstract variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a098c506a24a5f1a4e7c7344b53b2e586801a415 |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137632 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
59bc4093d5009ecda4a4f70ed04c78502e28474f |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6f9d8ffe5e47e3d11176298e849cc8545c2169a2 |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. Global variables are part of compile unit so let CompileUnit create new global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
dbc64af76d769596903485668a1dfc2d6640c4fb |
15-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. A subprogram is part of compile unit so let CompileUnit construct new subprogram. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137618 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5cbba0167165c61deb8f3223143643083013f046 |
13-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix PR 10635. When generating integer constants, the constant element type may be illegal, even if the requested vector type is legal. Testcase is one of the disabled ARM tests in the vector-select patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137562 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e6e8826870bee3facb04f950f0bd725f8a88623d |
12-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Initial commit of the 'landingpad' instruction. This implements the 'landingpad' instruction. It's used to indicate that a basic block is a landing pad. There are several restrictions on its use (see LangRef.html for more detail). These restrictions allow the exception handling code to gather the information it needs in a much more sane way. This patch has the definition, implementation, C interface, parsing, and bitcode support in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
cd9f6c53de95f5301c0152cab2ccc78d653d6270 |
12-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137485 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3ebb64946bc8e7c8feba1b2044e7a47f80b3a83f |
12-Aug-2011 |
Chris Lattner <sabre@nondot.org> |
switch to use the new api for structtypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137480 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
2e85b1bfa7412577dd61f21ea10a686d3685144b |
12-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Provide fast path as Jakob suggested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137478 91177308-0d34-0410-b5e6-96231b3b80d8
exicalScopes.cpp
|
c796ae1d68c92026be5d353584b514311cc3eb0d |
12-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Revert r137310 because it does not optimize any code on ToT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137466 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1f6a329f79b3568d379142f921f59c4143ddaa14 |
12-Aug-2011 |
Duncan Sands <baldrick@free.fr> |
Silence a bunch (but not all) "variable written but not read" warnings when building with assertions disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
egisterScavenging.cpp
cheduleDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
9b7ff12dd1e5e93d3305b366f79896308bed4a60 |
12-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the interference checking code a bit. This is possible now that we now longer provide an interface to iterate the interference overlaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137397 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
8facc7def811aeb3db20233de0aef1c69f0d1922 |
12-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the InterferenceResult class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137381 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
fe026e182993a94381d197f140b19b999c3e17ec |
12-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate the last use of InterferenceResult. The Query class now holds two iterators instead of an InterferenceResult instance. The iterators are used as bookmarks for repeated collectInterferingVRegs calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137380 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
9942ba9c0ed45c77298cdeb7a9326f04745d5709 |
11-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove more dead code. collectInterferingVRegs will be the primary function for interference checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137354 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
98985f959c57f2b8c0b6e4b5ee519252e71e9cd9 |
11-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Privatize an unused part of the LiveIntervalUnion::Query interface. No clients are iterating over interference overlaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137350 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
egAllocBasic.cpp
|
bb688cec09d08fb4c5e17d82c86bba11f0ce3168 |
11-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove some dead code. The InterferenceResult iterator turned out to be less important than we thought it would be. LiveIntervalUnion clients want higher level information, like the list of interfering virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137346 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
0fa5e053a914cbbea7c66f13da190d96f8fe2a2c |
11-Aug-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug a memory leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137321 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f80a894bf03ea65624a25b8f64bfcc9c6cf7f80f |
11-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
[AVX] When joining two XMM registers into a YMM register, make sure that the lower XMM register gets in first. This will allow the SUBREG pattern to elliminate the first vector insertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f4ea68fa5a85d3e883cf35075133e64de4dfc046 |
11-Aug-2011 |
Chris Lattner <sabre@nondot.org> |
fix PR10605 / rdar://9930964 by adding a pretty scary missed check. It's somewhat surprising anything works without this. Before we would compile the testcase into: test: # @test movl $4, 8(%rdi) movl 8(%rdi), %eax orl %esi, %eax cmpl $32, %edx movl %eax, -4(%rsp) # 4-byte Spill je .LBB0_2 now we produce: test: # @test movl 8(%rdi), %eax movl $4, 8(%rdi) orl %esi, %eax cmpl $32, %edx movl %eax, -4(%rsp) # 4-byte Spill je .LBB0_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137303 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5bc942cc3cc970836d48d8ad276ef3b2b1120ffc |
11-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Stay within 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137283 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
exicalScopes.cpp
|
b549bcfe6c19dbb24162c75bbcc06d4a5fa90cb8 |
10-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Distinguish between two copies of one inlined variable. Take 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137253 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c722c3d5ffd4ad07e17f81c2b2eb7f8074559600 |
10-Aug-2011 |
Devang Patel <dpatel@apple.com> |
While extending definition range of a debug variable, consult lexical scopes also. There is no point extending debug variable out side its lexical block. This provides 6x compile time speedup in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137250 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
9ce256421a90cd0413db220f1d60df65cb8344b6 |
10-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Revert unintentional parts of previous check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137249 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bf47fdb91c3bc7c26fb7eb6096ca3657c69bd26f |
10-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Start using LexicalScopes utility. No intetional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137246 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
103b8e653c981fe916b855f1b96cb35e01c4543e |
10-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Provide utility to extract and use lexical scoping information from machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137237 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
exicalScopes.cpp
|
c66d36028b21077aa1715331c22347b47b4da94f |
10-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trim an unneeded header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137184 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
ailDuplication.cpp
|
4a74b3b933e2944ff313dc5d24da6f9e8ec4c1c4 |
09-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Inflate register classes after coalescing. Coalescing can remove copy-like instructions with sub-register operands that constrained the register class. Examples are: x86: GR32_ABCD:sub_8bit_hi -> GR32 arm: DPR_VFP2:ssub0 -> DPR Recompute the register class of any virtual registers that are used by less instructions after coalescing. This affects code generation for the Cortex-A8 where we use NEON instructions for f32 operations, c.f. fp_convert.ll: vadd.f32 d16, d1, d0 vcvt.s32.f32 d0, d16 The register allocator is now free to use d16 for the temporary, and that comes first in the allocation order because it doesn't interfere with any s-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137133 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
6d1fd0b979cb88809ebb77a24f4da69e1d67606b |
09-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move CalculateRegClass to MRI::recomputeRegClass. This function doesn't have anything to do with spill weights, and MRI already has functions for manipulating the register class of a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137123 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveRangeEdit.cpp
achineRegisterInfo.cpp
|
a2b552d0aec83b1d030b878a130c8fefafe4d3c3 |
09-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Print variable's inline location in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137096 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
c19e6dd64fe4fa825c8d79e1d097e301c66eaf72 |
09-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename member variables to follow coding standards. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137094 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
egisterCoalescer.h
|
8e0cca6945ec09bad0decf34ecd832f7e84dc7f1 |
09-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move the RegisterCoalescer private to its implementation file. RegisterCoalescer.h still has the CoalescerPair class interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137088 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
egisterCoalescer.h
|
27215676c7114132a0374f7b5c9ea73d9354d329 |
09-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refer to the RegisterCoalescer pass by ID. A public interface is no longer needed since RegisterCoalescer is not an analysis any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137082 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
plitter.cpp
|
2df3f58a0b3937f2cbd76d3417d2905ca86cf8fa |
08-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hoist hasLoadFromStackSlot and hasStoreToStackSlot. These the methods are target-independent since they simply scan the memory operands. They can live in TargetInstrInfoImpl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137063 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
c0405292693dc463cd14ce20b3ead7dcd1260e8e |
08-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Simplify by creating parent first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137056 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
69145baf36219b07a49d8ce14b4a04870e72a123 |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix typo. Thanks, Andy! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137023 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
ccfa446450c9e3e0b3591343c4c5bea1e4cdc043 |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reject RS_Spill ranges from local splitting as well. All new local ranges are marked as RS_New now, so there is no need to attempt splitting of RS_Spill ranges any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137002 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a9c41d39d1adc92107e095aca6f851aed71b6a5f |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only mark remainder intervals as RS_Spill after per-block splitting. The local ranges created get to stay in the RS_New stage, just like for local and region splitting. This gives tryLocalSplit a bit more freedom the first time it sees one of these new local ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137001 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
1f8804263ffc5e6843d81f5c7bd9c739aa90fde5 |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to update LiveDebugVariables after per-block splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136996 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
dab35d33ae17353cb01aaaa42abbcb28b33eb98a |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract per-block splitting into its own method. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136994 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
75e28f74b051e72ca3fc1aa38e5e43a5204a65ce |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete getMultiUseBlocks and splitSingleBlocks. These functions are no longer used, and they are easily replaced with a loop calling shouldSplitSingleBlock and splitSingleBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136993 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
b3ef7f6b97eb4a61bbafc0a97fb94086919dcbd6 |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also use shouldSplitSingleBlock() in the fallback splitting mode. Drop the use of SplitAnalysis::getMultiUseBlocks, there is no need to go through a SmallPtrSet any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136992 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
2d6d86be84ee355223ccd20b7f87a0c9971c50c9 |
06-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Split around single instructions to enable register class inflation. Normally, we don't create a live range for a single instruction in a basic block, the spiller does that anyway. However, when splitting a live range that belongs to a proper register sub-class, inserting these extra COPY instructions completely remove the constraints from the remainder interval, and it may be allocated from the larger super-class. The spiller will mop up these small live ranges if we end up spilling anyway. It calls them snippets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136989 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
f39031b360f135ece3bdc86151804dd1f3f51733 |
05-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Detect proper register sub-classes. Some instructions require restricted register classes, but most of the time that doesn't affect register allocation. For example, some instructions don't work with the stack pointer, but that is a reserved register anyway. Sometimes it matters, GR32_ABCD only has 4 allocatable registers. For such a proper sub-class, the register allocator should try to enable register class inflation since that makes more registers available for allocation. Make sure only legal super-classes are considered. For example, tGPR is not a proper sub-class in Thumb mode, but in ARM mode it is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136981 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
egisterClassInfo.h
|
54cfeda74574ee167fc1261ddc71d64ee94add11 |
05-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix liveness computations in BranchFolding. The old code would look at kills and defs in one pass over the instruction operands, causing problems with this code: %R0<def>, %CPSR<def,dead> = tLSLri %R5<kill>, 2, pred:14, pred:%noreg %R0<def>, %CPSR<def,dead> = tADDrr %R4<kill>, %R0<kill>, pred:14, %pred:%noreg The last instruction kills and redefines %R0, so it is still live after the instruction. This caused a register scavenger crash when compiling 483.xalancbmk for armv6. I am not including a test case because it requires too much bad luck to expose this old bug. First you need to convince the register allocator to use %R0 twice on the tADDrr instruction, then you have to convince BranchFolding to do something that causes it to run the register scavenger on he bad block. <rdar://problem/9898200> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136973 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
4147f39769d404cab02da4beea852ad2600dadbb |
05-Aug-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Temporarily revert r135528 which distinguishes between two copies of one inlined variable, based on the discussion in PR10542. This explodes the runtime of several passes down the pipeline due to a large number of "copies" remaining live across a large function. This only shows up with both debug and opt, but when it does it creates a many-minute compile when self-hosting LLVM+Clang. There are several other cases that show these types of regressions. All of this is tracked in PR10542, and progress is being made on fixing the issue. Once its addressed, the re-instated, but until then this restores the performance for self-hosting and other opt+debug builds. Devang, let me know if this causes any trouble, or impedes fixing it in any way, and thanks for working on this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136953 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c219d191aadb4f9532bcaea5c5e66f66912656ca |
04-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count the total amount of stack space used in compiled functions. Patch by Ivan Krasin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136921 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4d3586dd230a3b16018da138404dbb87faf2008d |
04-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Print DBG_VALUE variable's location info as a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136916 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d9f3fc7faaa7686af3e1a004d86397da9c8e0449 |
04-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Increment counter inside insertDebugValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136915 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
ad90d3a343ca73c32693e2b05b74462ccd9659cd |
04-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Add counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136901 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
79513ed8598bd5ebc25b0764961f326d34aaf388 |
04-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Correctly handle multiple DBG_VALUE instructions at the same SlotIndex. It is possible to have multiple DBG_VALUEs for the same variable: 32L TEST32rr %vreg0<kill>, %vreg0, %EFLAGS<imp-def>; GR32:%vreg0 DBG_VALUE 2, 0, !"i" DBG_VALUE %noreg, %0, !"i" When that happens, keep the last one instead of the first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136842 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
a92afc18a8ff72b905902d75a2a4920d5438ca0c |
04-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable compact region splitting by default. This helps generate better code in functions with high register pressure. The previous version of compact region splitting caused regressions because the regions were a bit too large. A stronger negative bias applied in r136832 fixed this problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136836 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
5787124820f9f544216675c020ff0b33e090d181 |
04-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Do not drop undef debug values. These are used as range termination marker by live debug variable pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b87f91b063a0ac853735f2af3bd94fb8551a11ff |
04-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more conservative when forming compact regions. Apply twice the negative bias on transparent blocks when computing the compact regions. This excludes loop backedges from the region when only one of the loop blocks uses the register. Previously, we would include the backedge in the region if the loop preheader and the loop latch both used the register, but the loop header didn't. When both the header and latch blocks use the register, we still keep it live on the backedge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136832 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
pillPlacement.cpp
pillPlacement.h
|
32668ea7a290ee1cb6bfe8cd677cdd4e5df05b4d |
04-Aug-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix some warnings from Clang in release builds: lib/CodeGen/RegAllocGreedy.cpp:1176:18: warning: unused variable 'B' [-Wunused-variable] if (unsigned B = Cand.getBundles(BundleCand, BestCand)) { ^ lib/CodeGen/RegAllocGreedy.cpp:1188:18: warning: unused variable 'B' [-Wunused-variable] if (unsigned B = Cand.getBundles(BundleCand, 0)) { ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136831 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
0767267790e5cc91ffe3cc318d22f043b2633b26 |
04-Aug-2011 |
Jakub Staszak <jstaszak@apple.com> |
Fix typo in #include which revealed in the case-sensitive filesystem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136828 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
990f78d53bfe3cf2c82147bc34b457b01e651f25 |
04-Aug-2011 |
Jakub Staszak <jstaszak@apple.com> |
Use MachineBranchProbabilityInfo in If-Conversion instead of its own heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136826 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
8ea45231dc6c30d0c4a55ce038a08edccc308a73 |
03-Aug-2011 |
Jakub Staszak <jstaszak@apple.com> |
Add more constantness in BlockFrequencyInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136816 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockFrequencyInfo.cpp
|
26689ac37ebec3b358588089415509285e558de9 |
03-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
New approach to r136737: insert the necessary fences for atomic ops in platform-independent code, since a bunch of platforms (ARM, Mips, PPC, Alpha are the relevant targets here) need to do essentially the same thing. I think this completes the basic CodeGen for atomicrmw and cmpxchg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
cfc55c2fc94a7b58e9b9090bc47eb791e029d7a2 |
03-Aug-2011 |
Bob Wilson <bob.wilson@apple.com> |
Some revisions to Devang's change r136759 for merged global debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136802 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
027cbf9329854e6b02d8db36cbe4f361ee0038cd |
03-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Use byte offset, instead of element number, to access merged global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136759 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3f5beede1bb97ba4e06dc300e00b70e1013e7216 |
03-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the precomputed def presence in RAGreedy::calcSpillCost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136742 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
5ebca793db6262386d7464d03cdaefeb5b640ad3 |
03-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Inform SpillPlacement about blocks with defs. This information is not used for anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136741 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
fe62d92b7bbaf73e576bec0c0b11cfa6c191aa87 |
03-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename {First,Last}Use to {First,Last}Instr. With a 'FirstDef' field right there, it is very confusing that FirstUse refers to an instruction that may be a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136739 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
77ee1140a3297e6fbd6cb7cf586872af6d00d07e |
03-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a BlockInfo::FirstDef field. This is either an invalid SlotIndex, or valno->def for the first value defined inside the block. PHI values are not counted as defined inside the block. The FirstDef field will be used when estimating the cost of spilling around a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136736 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
4751eb760e7f4e51cfd594cbe46c7d0d7865d693 |
03-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete BlockInfo::LiveThrough. It wasn't used any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136735 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
0e0a8806d49038b60a0c20427d9f410b01cbb012 |
02-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extend the SpillPlacement interface with two new features. The PrefBoth constraint is used for blocks that ideally want a live-in value both on the stack and in a register. This would be used by a block that has a use before interference forces a spill. Secondly, add the ChangesValue flag to BlockConstraint. This tells SpillPlacement if a live-in value on the stack can be reused as a live-out stack value for free. If the block redefines the virtual register, a spill would be required for that. This extra information will be used by SpillPlacement to more accurately calculate spill costs when a value can exist both on the stack and in a register. The simplest example is a basic block that reads the virtual register, but doesn't change its value. Spilling around such a block requires a reload, but no spill in the block. The spiller already knows this, but the spill placer doesn't. That can sometimes lead to suboptimal regions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136731 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
pillPlacement.h
|
6cdc1f43e6a6dd7ba38a334b0b2f8fa70d4dc4cd |
02-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't create a ridiculous EXTRACT_ELEMENT. PR10563. The testcase looks extremely fragile, so I'm adding an assertion which should catch any cases like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b899d959332871eb62dc22a9ffd81e0e97d96710 |
01-Aug-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove an unnecessary cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136609 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dccc03b2423fe65efb5963ae816b99c24fc53374 |
31-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Add the 'resume' instruction for the new EH rewrite. This adds the 'resume' instruction class, IR parsing, and bitcode reading and writing. The 'resume' instruction resumes propagation of an existing (in-flight) exception whose unwinding was interrupted with a 'landingpad' instruction (to be added later). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136589 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
hadowStackGC.cpp
|
c47690264abd6ec6bdeab86ce057e99bb5d39fe4 |
31-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Time the emission of debug values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136584 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
21384c4ea8e1a8097a1feef1813c1414af9dae2a |
30-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r136528 "Enable compact region splitting by default." While this generally helped x86-64, there was some large regressions for i386. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136571 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
10c6d12a9fd4dab411091f64db4db69670b88850 |
30-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338, r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444, r136445, r136446, r136253 pending review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136556 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
hadowStackGC.cpp
|
4af0f5fecb42563ff3ca5bd7fddb2f4f111e2fef |
30-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Don't check liveness of unallocatable registers." The ARM target depends on CPSR liveness being tracked after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136548 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
egisterScavenging.cpp
|
eeb57c7701ded683d660ed616966cfe7b1750337 |
30-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't check liveness of unallocatable registers. This includes registers like EFLAGS and ST0-ST7. We don't check for liveness issues in the verifier and scavenger because registers will never be allocated from these classes. While in SSA form, we do care about the liveness of unallocatable unreserved registers. Liveness of EFLAGS and ST0 neds to be correct for MachineDCE and MachineSinking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136541 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
egisterScavenging.cpp
|
93e6f02759a9d98c0c0621540382074219aa374a |
30-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check for multiple defs in the machine code verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136535 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
73e7dced3892f2abb4344526147d4df0f62aee61 |
30-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an isSSA() flag to MachineRegisterInfo. This flag is true from isel to register allocation when the machine function is required to be in SSA form. The TwoAddressInstructionPass and PHIElimination passes clear the flag. The SSA flag wil be used by the machine code verifier to check for SSA form, and eventually an assertion can enforce it in +Asserts builds. This will catch the common target error of creating machine code with multiple defs of a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136532 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
c8f34de5d615b858319f33d4e19c24622d971416 |
30-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Do not lose branch weights when lowering SwitchInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
9162abb39f13146c0dea159e92ac291e4ea900bf |
30-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable compact region splitting by default. This helps generate better code in functions with high register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136528 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
95ece8efc0eac972366f1a5e97e3c7ae69a73600 |
29-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Remove unneeded const_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136506 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3bbb6f79b718e5d972ac3e1c949f3139419b4603 |
29-Jul-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix a lot of typos, improve (but not necessarily fix) grammaros and reflow some lines. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136458 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
|
55ba816883842e793cdeb32fcb805c4e011b527f |
29-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be working on x86 (at least for trivial testcases); other architectures will need more work so that they actually emit the appropriate instructions for orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC, Mips, and Alpha backends need such changes.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
741bf790b85595659c91d511c4ff60975180449f |
29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Use the pointer type size. With this, we can now compile a simple EH program. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136446 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7d44c453511ce4c43e0a3c128f018f04c330d390 |
29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
And now something that compiles... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
744b4bd170365a1e2953e8d28b676a26ee5425ba |
29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Make sure to sext or trunc the result from the register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ac03e736c77bcf7e8deb515fc16a7e55d343dc8d |
29-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rewrite the CMake build to use explicit dependencies between libraries, specified in the same file that the library itself is created. This is more idiomatic for CMake builds, and also allows us to correctly specify dependencies that are missed due to bugs in the GenLibDeps perl script, or change from compiler to compiler. On Linux, this returns CMake to a place where it can relably rebuild several targets of LLVM. I have tried not to change the dependencies from the ones in the current auto-generated file. The only places I've really diverged are in places where I was seeing link failures, and added a dependency. The goal of this patch is not to start changing the dependencies, merely to move them into the correct location, and an explicit form that we can control and change when necessary. This also removes a serialization point in the build because we don't have to scan all the libraries before we begin building various tools. We no longer have a step of the build that regenerates a file inside the source tree. A few other associated cleanups fall out of this. This isn't really finished yet though. After talking to dgregor he urged switching to a single CMake macro to construct libraries with both sources and dependencies in the arguments. Migrating from the two macros to that style will be a follow-up patch. Also, llvm-config is still generated with GenLibDeps.pl, which means it still has slightly buggy dependencies. The internal CMake 'llvm-config-like' macro uses the correct explicitly specified dependencies however. A future patch will switch llvm-config generation (when using CMake) to be based on these deps as well. This may well break Windows. I'm getting a machine set up now to dig into any failures there. If anyone can chime in with problems they see or ideas of how to solve them for Windows, much appreciated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136433 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
367853733247b46f2fa49359dd3490bada3cd111 |
29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Visit the landingpad instruction. This generates the correct SDNodes for the landingpad instruction. It makes an assumption that the result of the landingpad instruction has at least two values. And that the first value is a pointer to the exception object and the second value is the "selector." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136430 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e963a3814f3f8fde394da263340bc0888011291c |
29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Add the AddLandingPadInfo function. AddLandingPadInfo takes a landingpad instruction and grabs all of the information from it that it needs for EH table generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136429 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
ff03048c1350fcc4fda1ef6d6c57252f3a950854 |
28-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
LangRef and basic memory-representation/reading/writing for 'cmpxchg' and 'atomicrmw' instructions, which allow representing all the current atomic rmw intrinsics. The allowed operands for these instructions are heavily restricted at the moment; we can probably loosen it a bit, but supporting general first-class types (where it makes sense) might get a bit complicated, given how SelectionDAG works. As an initial cut, these operations do not support specifying an alignment, but it would be possible to add if we think it's useful. Specifying an alignment lower than the natural alignment would be essentially impossible to support on anything other than x86, but specifying a greater alignment would be possible. I can't think of any useful optimizations which would use that information, but maybe someone else has ideas. Optimizer/codegen support coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
f6c690019b7ba9d121e658d16b9d99831df7428f |
28-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle REG_SEQUENCE with implicitly defined operands. Code like that would only be produced by bugpoint, but we should still handle it correctly. When a register is defined by a REG_SEQUENCE of undefs, the register itself is undef. Previously, we would create a register with uses but no defs. Fixes part of PR10520. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136401 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
1ddaa9c1c684bd46102300e5c680dfa767a88214 |
28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Use ArrayRef instead of requiring an std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136396 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
7379b6650008fba555d5472d5c76e8efc59e8a21 |
28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
The personality function should be a Function* and not just a Value*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136392 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
cc07e04262fe4bc35469fbadc53d2ec7bfd02fe2 |
28-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reverse order of RS_Split live ranges under -compact-regions. There are two conflicting strategies in play: - Under high register pressure, we want to assign large live ranges first. Smaller live ranges are easier to place afterwards. - Live range splitting is guided by interference, so splitting should be deferred until interference is as realistic as possible. With the recent changes to the live range stages, and with compact regions enabled, it is less traumatic to split a live range too early. If some of the split products were too big, they can often be split again. By reversing the RS_Split order, we get this queue order: 1. Normal live ranges, large to small. 2. RS_Split live ranges, large to small. The large-to-small order improves RAGreedy's puzzle solving skills under high register pressure. It may cause a bit more iterated splitting, but we handle that better now. With this change, -compact-regions is mostly an improvement on SPEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136388 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
b4904503de3195fb611a0aca2e58f4b770ccff51 |
28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Initial code to convert ResumeInsts into calls to _Unwind_Resume. This should be the only code necessary for DWARF EH prepare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136387 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
2ff4bc615584fa9f32e64959767d64f2cb09fb99 |
28-Jul-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
CR fix: The ANY_EXTEND can be removed because the input and putput type must be identical. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
14648468011c92a4210f8118721d58c25043daf8 |
28-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Code generation for 'fence' instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
9a24f1f070f7a9e18f7fc46214c2f2d0a38ab0f9 |
28-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Use BlockFrequency instead of uint32_t in BlockFrequencyInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136278 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockFrequencyInfo.cpp
|
0748f83d3740582c408ab31c66261c2491565a84 |
28-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Remove outdated FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136275 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
772fe17a6d07304ae2e6b3052bbb24ebb751f0f3 |
27-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Merge the contents from exception-handling-rewrite to the mainline. This adds the new instructions 'landingpad' and 'resume'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
hadowStackGC.cpp
|
a44defeb2208376ca3113ffdddc391570ba865b8 |
27-Jul-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Explicitly cast narrowing conversions inside {}s that will become errors in C++0x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136211 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
cbdccdeea96f26198fc8225c1a32c04ca01f8a26 |
27-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Revert r136156, which broke several buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
26a92003cd88355f5b027a2703b5016bb4b7870d |
27-Jul-2011 |
Devang Patel <dpatel@apple.com> |
It is quiet possible that inlined function body is split into multiple chunks of consequtive instructions. But, there is not any way to describe this in .debug_inline accelerator table used by gdb. However, describe non contiguous ranges of inlined function body appropriately using AT_range of DW_TAG_inlined_subroutine debug info entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
00005782fa860f4b48b3b5261d92541c61ee2495 |
27-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add support for multi-way live range splitting. When splitting global live ranges, it is now possible to split for multiple destination intervals at once. Previously, we only had the main and stack intervals. Each edge bundle is assigned to a split candidate, and splitAroundRegion will insert copies between the candidate intervals and the stack interval as needed. The multi-way splitting is used to split around compact regions when enabled with -compact-regions. The best candidate register still gets all the bundles it wants, but everything outside the main interval is first split around compact regions before we create single-block intervals. Compact region splitting still causes some regressions, so it is not enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136186 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
3b92527885c905e2d14f10eabbe45d1efda04bbf |
27-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the MBB live-in registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136178 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
e4709777e38b58b856cf8395e071a3326d50a402 |
27-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate copies of undefined values during coalescing. These copies would coalesce easily, but the resulting value would be defined by a deleted instruction. Now we also remove the undefined value number from the destination register. This fixes PR10503. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136174 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
egisterCoalescer.h
|
c680b92460abaa8daa7796c05447f64b01b9f11b |
27-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Delete unnecessarily cautious LastCALLSEQ code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
24f05334e60bd2b2b614d5eb72ee6c92ad0a9bc8 |
26-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add obvious missing case to switch. PR10497. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
a671a3092a9d86819bd740b4433ac217365bbfd7 |
26-Jul-2011 |
Devang Patel <dpatel@apple.com> |
While extracting lexical scopes from machine instruction stream, work on one machine basic block at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136106 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7becbc41ab2875153868c21a84153eca442cc28f |
26-Jul-2011 |
Duncan Sands <baldrick@free.fr> |
SrcDef is only written and never read. Remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136080 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
165e231c4295deb5cabd124d08e231b551bcc0b2 |
26-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert to RA_Assign when a virtreg separates into components. When dead code elimination deletes a PHI value, the virtual register may split into multiple connected components. In that case, revert each component to the RS_Assign stage. The new components are guaranteed to be smaller (the original value numbers are distributed among the components), so this will always be making progress. The components are now allowed to evict other live ranges or be split again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136034 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
28c85a81a17dd719a254dc00cbeb484774893197 |
26-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename createCodeEmitter to createMCCodeEmitter; createObjectStreamer to createMCObjectStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136031 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
94b9550a32d189704a8eae55505edf62662c0534 |
26-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename TargetAsmParser to MCTargetAsmParser and TargetAsmLexer to MCTargetAsmLexer; rename createAsmLexer to createMCAsmLexer and createAsmParser to createMCAsmParser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
78c10eeaa57d1c6c4b7781d3c0bcb0cfbbc43b5c |
26-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136010 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
47f3513dd574535aeb40c9eb11134f0899e92269 |
26-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Initial implementation of 'fence' instruction, the new C++0x-style replacement for llvm.memory.barrier. This is just a LangRef entry and reading/writing/memory representation; optimizer+codegen support coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
ed4b4272ba2c2ff68f839738ba8147c3606d8885 |
26-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure this DAGCombine actually returns an UNDEF of the correct type; PR10476. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f55c1c85881afd65647bde5346f64d9685235c7c |
25-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Rename BlockFrequency to BlockFrequencyInfo and MachineBlockFrequency to MachineBlockFrequencyInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135937 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
achineBlockFrequency.cpp
achineBlockFrequencyInfo.cpp
|
49743b18f50ac0f7e065f4754a26965d4db388de |
25-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an RS_Split2 stage used for loop prevention. This mechanism already exists, but the RS_Split2 stage makes it clearer. When live range splitting creates ranges that may not be making progress, they are marked RS_Split2 instead of RS_New. These ranges may be split again, but only in a way that can be proven to make progress. For local ranges, that means they must be split into ranges used by strictly fewer instructions. For global ranges, region splitting is bypassed and the RS_Split2 ranges go straight to per-block splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135912 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
fa89a0344bba7a0ae87d3de204d18bb1ecaa5955 |
25-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename live range stages to better reflect how they are used. The stage is used to control where a live range is going, not where it is coming from. Live ranges created by splitting will usually be marked RS_New, but some are marked RS_Spill to avoid wasting time trying to split them again. The old RS_Global and RS_Local stages are merged - they are really the same thing for local and global live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135911 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a9203109f4ac95aa7e9624f2838e3d89623ec902 |
25-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert GetElementPtrInst to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135904 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
81d686edbe6effe624add9394673bd571d89bfb7 |
24-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never extend live ranges for <undef> uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135886 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b09701db9e74298912164d988ddf40bb1b5ec19b |
24-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Correctly handle <undef> tied uses when rewriting after a split. This fixes PR10463. A two-address instruction with an <undef> use operand was incorrectly rewritten so the def and use no longer used the same register, violating the tie constraint. Fix this by always rewriting <undef> operands with the register a def operand would use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135885 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
87972fa63f0e2631778166e0c258c456ec12db7c |
23-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add RAGreedy::calcCompactRegion. This method computes the edge bundles that should be live when splitting around a compact region. This is independent of interference. The function returns false if the live range was already a compact region, or the compact region doesn't have any live bundles - it would be the same as splitting around basic blocks. Compact regions are computed using the normal spill placement code. We pretend there is interference in all live-through blocks that don't use the live range. This removes all edges from the Hopfield network used for spill placement, so it converges instantly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135847 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
fe9b2d142a0feb87b06579509479957f25d7d0a4 |
23-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix bug in SplitEditor::splitLiveThroughBlock when switching registers. If there is no interference and no last split point, we cannot enterIntvBefore(Stop) - that function needs a real instruction. Use enterIntvAtEnd instead for that very easy case. This code doesn't currently run, it is needed by multi-way splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135846 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b4666364f4db4889883d7a6c02a177ebcde7c240 |
23-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Prepare RAGreedy::growRegion for compact regions. A split candidate can have a null PhysReg which means that it doesn't map to a real interference pattern. Instead, pretend that all through blocks have interference. This makes it possible to generate compact regions where the live range doesn't go through blocks that don't use it. The live range will still be live between directly connected blocks with uses. Splitting around a compact region tends to produce a live range with a high spill weight, so it may evict a less dense live range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135845 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
e60f103d2d3541e57a6ca8d788e959e03b615e5f |
23-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a simple method for marking blocks with interference in and out. This method matches addLinks - All the listed blocks are considered to have interference, so they add a negative bias to their bundles. This could also be done by addConstraints, but that requires building a separate BlockConstraint array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135844 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
pillPlacement.h
|
c7931fd725b390142f9112952b1426560000e6b4 |
23-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow null interference cursors to be queried. They always report 'no interference'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135843 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
nterferenceCache.h
|
a7cfc08ebe737062917b442830eb5321b0f79e89 |
23-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where they belong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
b4263a6ff4f9696fc84a8f75b5d09564ff06381f |
22-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Fix more MSVC warnings caused by a cases I missed when converting ConstantExpr::getGetElementPtr to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135762 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
0a2a60ace9b79164b71794ce7ff981171c61e442 |
22-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert IRBuilder::CreateGEP and IRBuilder::CreateInBoundsGEP to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135761 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
23f34f1c22db8df6e767a29365d668ac9ede112c |
22-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Allow getBlockFreq to return 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135742 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockFrequency.cpp
|
4e2710c266c0f5b074589602d17066ff5f23a641 |
22-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Revert patch which broke some IfConversion tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135738 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6b598748b1e03b6b188726d5a0fef2a6abc29562 |
22-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Fix typo in #include which revealed in the case-sensitive filesystem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135734 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
8592d903e1c9b48a247c0f91e28617b309eff6be |
22-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Use MachineBranchProbabilityInfo instead of MachineLoopInfo in IfConversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135724 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
9d81c97c8a3bbce302d0675feffec2c801cdf718 |
22-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Add missing getAnalysisUsage in MachineBlockFrequency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135714 91177308-0d34-0410-b5e6-96231b3b80d8
achineBlockFrequency.cpp
|
3737b89098a6aa954d7742277d218f293d38956a |
21-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135633 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
40c7e4142e2327a540eceb640392a6da4ccfb3bf |
21-Jul-2011 |
Devang Patel <dpatel@apple.com> |
There are two ways to map a variable to its lexical scope. Lexical scope information is embedded in MDNode describing the variable. It is also available as a part of DebugLoc attached with DBG_VALUE instruction. DebugLoc attached with an instruction is less reliable in optimized code so use information embedded in the MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135629 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4ec14b0dee433a4f134d832e326a20839b1f777e |
20-Jul-2011 |
Devang Patel <dpatel@apple.com> |
While emitting constant value, look through derived type and use underlying basic type to determine size and signness of the constant value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135627 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae |
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc. There is still a bit more refactoring left to do in Targets. But we are now very close to fixing all the layering issues in MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135611 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
argetLoweringObjectFileImpl.cpp
|
0381c21d2ddc182aebfef25c6500d781ddb428fe |
20-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10421: Fix a straightforward bug in the widening logic for CONCAT_VECTORS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135595 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
34ad6db8b958fdc0d38e122edf753b5326e69b03 |
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Move CodeModel from a TargetMachine global option to MCCodeGenInfo. - Introduce JITDefault code model. This tells targets to set different default code model for JIT. This eliminates the ugly hack in TargetMachine where code model is changed after construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135580 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ebf5f0962932032481ae306b42c96c68c3a0be95 |
20-Jul-2011 |
Logan Chien <loganchien@google.com> |
Merge with LLVM upstream r135568 (Jul 20th 2011) Conflicts: lib/Bitcode/Reader/BitcodeReader.cpp Change-Id: Iebed76d2f7d281e742947e31d9a0b78174daf2d6
|
e76a33b9567d78a5744dc52fcec3a6056d6fb576 |
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add MCObjectFileInfo and sink the MCSections initialization code from TargetLoweringObjectFileImpl down to MCObjectFileInfo. TargetAsmInfo is done to one last method. It's *almost* gone! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135569 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/DwarfCFIException.cpp
LFWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
argetLoweringObjectFileImpl.cpp
|
70955c2d12bd64dbb2faa626ea8fe18abb621e1c |
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious typo that's preventing x86 (32-bit) from using .literal16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135535 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
c8fcfc9cd9c0940e8afdaba8b815f8f489b457ba |
20-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Distinguish between two copies of one inlined variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135528 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8fbbb3980755d74539a0aed02bc18842ed2bd18d |
19-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert TargetData::getIndexedOffset to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135478 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
439661395fd2a2a832dba01c65bc88718528313c |
19-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Introduce MCCodeGenInfo, which keeps information that can affect codegen (including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
497a397f3e4edeb102bb2e2509a3795feafaf742 |
19-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Revert r135423. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
e060a5cd0688caea0e3de670f642f92a4d0b326e |
19-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Add a frame with the compact unwind encoding if it exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7d36534d2235c6969b6f51c1f20ac1413f54eb67 |
19-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Rename CompactEncoding to CompactUnwindEncoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135448 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
a67dcea0721c02ef543618f0d3b5014ffb3efc8f |
19-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Move the compact encoding from the target-specific library to the code-gen library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135443 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
2d28617de2b0b731c08d1af9e830f31e14ac75b4 |
19-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for better location welcome). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135438 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/Win64Exception.cpp
|
3ba292dbc2acee2d1052fb7ffe332e2164147b47 |
18-Jul-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity errors like the one corrected by r135261. Migrate all LLVM callers of the old constructor to the new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135431 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/SelectionDAG.cpp
|
0e6a052331f674dd70e28af41f654a7874405eab |
18-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
|
1360bc8eb029d51d426c77c4b1410849ff308893 |
18-Jul-2011 |
Devang Patel <dpatel@apple.com> |
During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases. [take 2] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
fc47933db5c8fea9bc89470d83cc5af7ca36f2a3 |
18-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a crash when building 177.mesa for armv6. When splitting a live range immediately before an LDR_POST instruction that redefines the address register, make sure to use the correct value number in leaveIntvBefore. We need the value number entering the instruction. <rdar://problem/9793765> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135413 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
39b5abf507b43da6b92f68b86406e0015ead18e9 |
18-Jul-2011 |
Frits van Bommel <fvbommel@gmail.com> |
Migrate LLVM and Clang to use the new makeArrayRef(...) functions where previously explicit non-default constructors were used. Mostly mechanical with some manual reformatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135390 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
egAllocGreedy.cpp
egisterClassInfo.h
|
7941350101bdfa3b016dd8a5347a92064947dd31 |
18-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR10387. When trying to rematerialize a value before an instruction that has an early-clobber redefine of the virtual register, make sure to look up the correct value number. Early-clobber defs are moved one slot back, so getBaseIndex is needed to find the used value number. Bugpoint was unable to reduce the test case for this, see PR10388. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135378 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
smPrinter/AsmPrinter.cpp
LFWriter.cpp
ntrinsicLowering.cpp
achineFunction.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
tackProtector.cpp
|
811ad8690b798cdcbd9d80a2b6a404145222b9a9 |
17-Jul-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Minor code cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135362 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
ab0dd224163f2d0089c63fe12f524c1d2dcd4aee |
17-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Fix Android.mk.
ndroid.mk
|
2f49da6809f7df96491b8d28d4f541edef6b7cc5 |
17-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r135360 at Sun. 17th July 2011.
|
975eb99cf3e3efaf83cfeddde982800d6a84f704 |
16-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Remove unused LoopRanges from RegAllocGreedy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135354 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
59a9dab4d8650d3408efa431907183e13b91867b |
16-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Add MachineBlockFrequency analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135352 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
achineBlockFrequency.cpp
|
a71642b2a4944eaa269d881cf71b02b8e8fe5638 |
16-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r135343 at Sat. 16th July 2011.
|
f9d7fb6b3c45abc64ad52cd8a9a8a7dd5aa9f4bb |
16-Jul-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Silence unused variable warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135339 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
af4e40c2f41a7d60b86958e034b00542d551b5f2 |
16-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
He said *before* the last split point. This should unbreak the build-self-4-mingw32 tester. I have a very complicated test case that I will try to clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135329 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
e63e5ab50ab37fd59cc6e815fffcb90e75537ca3 |
16-Jul-2011 |
Dan Gohman <gohman@apple.com> |
LegalizeDAG doesn't need its own copy of this enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
75b10047fc57c30c86bb7c9ea0ee923ff3c33a7e |
16-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Delete LegalizeDAG's own version of isTypeLegal and getTypeAction and just use the ones from TargetLowering directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ea0270298de4d2a4186454fc39a6836e99271f1d |
16-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Delete an unused variable and a redundant assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b4ddedce599183362b0f0333922c2fe0e163a129 |
15-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract parts of RAGreedy::splitAroundRegion as SplitKit methods. This gets rid of some of the gory splitting details in RAGreedy and makes them available to future SplitKit clients. Slightly generalize the functionality to support multi-way splitting. Specifically, SplitEditor::splitLiveThroughBlock() supports switching between different register intervals in a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135307 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
6a109f9d70bf7f75541400145a7a89880cc48166 |
15-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Modernize comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
133b09953c40b9cceb559e765bca461c38bb4c51 |
15-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Use DebugLoc directly to map inlined functions' instructions to respective lexical scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1e479fb5c1937e586cb485f1d6a1f09e5f08c957 |
15-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Eliminate redundant map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135278 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a3efbb15ddd5aa9006564cd79086723640084878 |
15-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert CallInst and InvokeInst APIs to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
hadowStackGC.cpp
tackProtector.cpp
|
a83bba46b38c255e18ebbe1262ea339431a1ef94 |
15-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Reverting r135232. It's causing infinite looping in DbgScope::openInsnRange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135254 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0bf164605dd83d65f6c510dad26449fcf9a79a51 |
15-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Do not get confused by multiple empty lexical scopes inlined at one location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135232 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1abf2cb59b8d63415780a03329307c0997b2670c |
15-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135219 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9b4a172ac07dfc639cab7f8851d5fad3a70101a5 |
15-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135212 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4f455d6f258ae209291006e96b007111978fa1e0 |
15-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Eliminate redundant LLVMContext argument. Improve DbgScope->dump() output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135207 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5427edeb68d653ced860ed14f83848ebbb01b64b |
14-Jul-2011 |
Eric Christopher <echristo@apple.com> |
Check register class matching instead of width of type matching when determining validity of matching constraint. Allow i1 types access to the GR8 reg class for x86. Fixes PR10352 and rdar://9777108 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
eb9a85f09e18b3fe88499710404b38d3a9128f62 |
14-Jul-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Change Intrinsic::getDeclaration and friends to take an ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135154 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
d0f3ef807ee4210b97a7a6bc4231e89403145b83 |
14-Jul-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
[VECTOR-SELECT] During type legalization we often use the SIGN_EXTEND_INREG SDNode. When this SDNode is legalized during the LegalizeVector phase, it is scalarized because non-simple types are automatically marked to be expanded. In this patch we add support for lowering SIGN_EXTEND_INREG manually. This fixes CodeGen/X86/vec_sext.ll when running with the '-promote-elements' flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135144 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
aeb86fab3e875b6ffebea42f4f4dd3e7791ae365 |
14-Jul-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add assertion for the chain value type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f1c709837bd11c5383fce3b8a026a7c8eaabba86 |
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r135121 with a fixed copy constructor. Original commit message: Count references to interference cache entries. Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new register. This makes it possible to have multiple live cursors examining interference for different physregs. The total number of live cursors into a cache must be kept below InterferenceCache::getMaxCursors(). Code generation should be unaffected by this change, and it doesn't seem to affect the cache replacement strategy either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135130 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
nterferenceCache.h
egAllocGreedy.cpp
|
49c19f778b62df6f2a28798113a17d5cb3582bda |
14-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135127 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3ff25514ce24a521fc9524eefb257a1f5f262d84 |
14-Jul-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't emit a bit test if there is only one case the test can yield false. A simple SETNE is sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d77ec6208cef2a8e615181c2bf0fc5a50a37a20b |
14-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Simplify and delay extracting DebugLoc elements, scope and InlinedAt, as much as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135124 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
7332e6ee25378e19c0f621c80c32b283b07f428a |
14-Jul-2011 |
Eric Christopher <echristo@apple.com> |
Add a dag combine pattern for folding C2-(A+C1) -> (C2-C1)-A Fixes rdar://9761830 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4fcfcf498436533ea9bc59404d10751bc76cfd2c |
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r135121 which broke a gcc-4.2 builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135122 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
nterferenceCache.h
egAllocGreedy.cpp
|
6a9feaac935c9345f825b272cf3225248e282f3f |
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count references to interference cache entries. Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new register. This makes it possible to have multiple live cursors examining interference for different physregs. The total number of live cursors into a cache must be kept below InterferenceCache::getMaxCursors(). Code generation should be unaffected by this change, and it doesn't seem to affect the cache replacement strategy either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135121 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
nterferenceCache.h
egAllocGreedy.cpp
|
0cd0c248cc7bbc6045b614940f14fb0a886f27f6 |
14-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Simplify. Compile unit check inside hasValidLocation() did not add any value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135118 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c66a37df73f70ec3dbed06277763624f33ee3512 |
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r135074 and r135080 with a fix. The cache entry referenced by the best split candidate could become clobbered by an unsuccessful candidate. The correct fix here is to use reference counts on the cache entries. Coming up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135113 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.h
egAllocGreedy.cpp
|
0f16a4eecc14a0455d0b9dd55742b1c4ebaa1575 |
14-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Fix typo in DEBUG message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135111 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5fc0d886da2253b3cd1f319cca7185327a447ba4 |
14-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Add DEBUG messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135110 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
54c74e906a622c1a2d95d2fc11a7dae88a61963e |
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r135074 and r135080. They broke clamscan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135096 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.h
egAllocGreedy.cpp
|
3bae1bf62eba1a2715ec22d9800799184cc495e6 |
13-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only keep the global split candidates that work out. Some pysical registers create split solutions that would spill anywhere. They should not even be considered in future multi-way global splits. This does not affect code generation (yet). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135080 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
1337e2b75a6fc52ced7f6c2b2ad05ac62b8cbdca |
13-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move the InterferenceCache cursor into the GlobalSplitCand struct. This is in preparation of supporting multiple global split candidates in a single live range split operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135074 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.h
egAllocGreedy.cpp
|
9bc402c8d4b547ab644d39a37033c1e4ef67c3cd |
13-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix up TargetLoweringObjectFile ctors to properly initialize fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135068 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
fc6d3a49867cd38954dc40936a88f1907252c6d2 |
13-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
5fdd6c8793462549e3593890ec61573da06e3346 |
12-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Second attempt at de-constifying LLVM Types in FunctionType::get(), StructType::get() and TargetData::getIntPtrType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134982 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
jLjEHPrepare.cpp
|
2280ebd61416b73d0b6137f275b25af82e268d1f |
12-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r134893 and r134888 (and related patches in other trees). It was causing an assert on Darwin llvm-gcc builds. Assertion failed: (castIsValid(op, S, Ty) && "Invalid cast!"), function Create, file /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.llvm-gcc-i386-darwin9-RA/llvm.src/lib/VMCore/Instructions.cpp, li\ ne 2067. etc. http://smooshlab.apple.com:8013/builders/llvm-gcc-i386-darwin9-RA/builds/2354 --- Reverse-merging r134893 into '.': U include/llvm/Target/TargetData.h U include/llvm/DerivedTypes.h U tools/bugpoint/ExtractFunction.cpp U unittests/Support/TypeBuilderTest.cpp U lib/Target/ARM/ARMGlobalMerge.cpp U lib/Target/TargetData.cpp U lib/VMCore/Constants.cpp U lib/VMCore/Type.cpp U lib/VMCore/Core.cpp U lib/Transforms/Utils/CodeExtractor.cpp U lib/Transforms/Instrumentation/ProfilingUtils.cpp U lib/Transforms/IPO/DeadArgumentElimination.cpp U lib/CodeGen/SjLjEHPrepare.cpp --- Reverse-merging r134888 into '.': G include/llvm/DerivedTypes.h U include/llvm/Support/TypeBuilder.h U include/llvm/Intrinsics.h U unittests/Analysis/ScalarEvolutionTest.cpp U unittests/ExecutionEngine/JIT/JITTest.cpp U unittests/ExecutionEngine/JIT/JITMemoryManagerTest.cpp U unittests/VMCore/PassManagerTest.cpp G unittests/Support/TypeBuilderTest.cpp U lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp U lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp U lib/VMCore/IRBuilder.cpp G lib/VMCore/Type.cpp U lib/VMCore/Function.cpp G lib/VMCore/Core.cpp U lib/VMCore/Module.cpp U lib/AsmParser/LLParser.cpp U lib/Transforms/Utils/CloneFunction.cpp G lib/Transforms/Utils/CodeExtractor.cpp U lib/Transforms/Utils/InlineFunction.cpp U lib/Transforms/Instrumentation/GCOVProfiling.cpp U lib/Transforms/Scalar/ObjCARC.cpp U lib/Transforms/Scalar/SimplifyLibCalls.cpp U lib/Transforms/Scalar/MemCpyOptimizer.cpp G lib/Transforms/IPO/DeadArgumentElimination.cpp U lib/Transforms/IPO/ArgumentPromotion.cpp U lib/Transforms/InstCombine/InstCombineCompares.cpp U lib/Transforms/InstCombine/InstCombineAndOrXor.cpp U lib/Transforms/InstCombine/InstCombineCalls.cpp U lib/CodeGen/DwarfEHPrepare.cpp U lib/CodeGen/IntrinsicLowering.cpp U lib/Bitcode/Reader/BitcodeReader.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134949 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
jLjEHPrepare.cpp
|
eeb64ae6e52ac2a7980884fe89c01508014af6a9 |
11-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
De-constify Types in StructType::get() and TargetData::getIntPtrType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134893 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
f362affa3a695164a94d275fb44d18f44ebb855a |
11-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
De-constify Types in FunctionType::get(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134888 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
|
59ee62d2418df8db499eca1ae17f5900dc2dcbba |
11-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Eliminate MCCodeEmitter's dependency on TargetMachine. It now uses MCInstrInfo and MCSubtargetInfo. - Added methods to update subtarget features (used when targets automatically detect subtarget features or switch modes). - Teach X86Subtarget to update MCSubtargetInfo features bits since the MCSubtargetInfo layer can be shared with other modules. - These fixes .code 16 / .code 32 support since mode switch is updated in MCSubtargetInfo so MC code emitter can do the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134884 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f81b7f6069b27c0a515070dcb392f6828437412f |
10-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Use BranchProbability instead of floating points in IfConverter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134858 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2b33f4cbad43dcaca944d02a6ea67991ff9db9cf |
10-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Don't analyze block if it's not considered for ifcvt anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134856 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
1afcace3a3a138b1b18e5c6270caa8dae2261ae2 |
09-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Land the long talked about "type system rewrite" patch. This patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134829 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
ffc0e73046f737d75e0a62b3a83ef19bcef111e3 |
09-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Change createAsmParser to take a MCSubtargetInfo instead of triple, CPU, and feature string. Parsing some asm directives can change subtarget state (e.g. .code 16) and it must be reflected in other modules (e.g. MCCodeEmitter). That is, the MCSubtargetInfo instance must be shared. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134795 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
4f4a6fcd165293c347a42b543e5e55aa42a09bb2 |
09-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Oops, didn't mean to commit that. Spills should be hoisted out of loops, but we don't want to hoist them to dominating blocks at the same loop depth. That could cause the spills to be executed more often. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134782 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
56573cc1aee419b5cc9e3446a59a73577bf26fac |
09-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hoist spills within a basic block. Try to move spills as early as possible in their basic block. This can help eliminate interferences by shortening the live range being spilled. This fixes PR10221. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134776 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
33390848a7eca75301d04a59b89b516d83e19ee0 |
08-Jul-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add an intrinsic and codegen support for fused multiply-accumulate. The intent is to use this for architectures that have a native FMA instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
51458ed09e6db0e424cd528e10b879f59915abe4 |
08-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more aggressive about following hints. RAGreedy::tryAssign will now evict interference from the preferred register even when another register is free. To support this, add the EvictionCost struct that counts how many hints are broken by an eviction. We don't want to break one hint just to satisfy another. Rename canEvict to shouldEvict, and add the first bit of eviction policy that doesn't depend on spill weights: Always make room in the preferred register as long as the evictees can be split and aren't already assigned to their preferred register. Also make the CSR avoidance more accurate. When looking for a cheaper register it is OK to use a new volatile register. Only CSR aliases that have never been used before should be avoided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134735 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocGreedy.cpp
irtRegMap.h
|
90b40414a092a5cbf35b80eb03e38787eea1a363 |
08-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134703 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
80efd4e96b0be13e80c26acd737c287d39b9c00f |
08-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Make provision to have floating point constants in .debug_loc expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134702 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3492a4af129f6068739bbbe3f8c7fbe7e4af2fcb |
08-Jul-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Apparently we can't expect a BinaryOperator here. Should fix llvm-gcc selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9c64030445cbe6ac486b90c5f459f91e06770474 |
08-Jul-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Emit a more efficient magic number multiplication for exact sdivs. We have to do this in DAGBuilder instead of DAGCombiner, because the exact bit is lost after building. struct foo { char x[24]; }; long bar(struct foo *a, struct foo *b) { return a-b; } is now compiled into movl 4(%esp), %eax subl 8(%esp), %eax sarl $3, %eax imull $-1431655765, %eax, %eax instead of movl 4(%esp), %eax subl 8(%esp), %eax movl $715827883, %ecx imull %ecx movl %edx, %eax shrl $31, %eax sarl $2, %edx addl %eax, %edx movl %edx, %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134695 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/TargetLowering.cpp
|
ebdeeab812beec0385b445f3d4c41a114e0d972f |
08-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate asm parser's dependency on TargetMachine: - Each target asm parser now creates its own MCSubtatgetInfo (if needed). - Changed AssemblerPredicate to take subtarget features which tablegen uses to generate asm matcher subtarget feature queries. e.g. "ModeThumb,FeatureThumb2" is translated to "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134678 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
LVMTargetMachine.cpp
|
09ad0b6894ae4eab9837970ccd4574681097eb6e |
08-Jul-2011 |
Eric Christopher <echristo@apple.com> |
Remove a FIXME. All of the standard ones are in the list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134647 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
476df5f64f1536330af0dacdfce768efc625dc41 |
07-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Add DEBUG message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134643 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9194c6716be13e2b8d2cf8e45273bf6c79f8b32c |
07-Jul-2011 |
Devang Patel <dpatel@apple.com> |
If known DebugLocs do not match then two DBG_VALUE machine instructions are not identical. For example, DBG_VALUE 3.310000e+02, 0, !"ds"; dbg:sse.stepfft.c:138:18 @[ sse.stepfft.c:32:10 ] DBG_VALUE 3.310000e+02, 0, !"ds"; dbg:sse.stepfft.c:138:18 @[ sse.stepfft.c:31:10 ] These two MIs represent identical value, 3.31..., for one variable, ds, but they are not identical because the represent two separate instances of inlined variable "ds". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134620 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
944520f38c79f3cbf1abfca92a5414458d639029 |
07-Jul-2011 |
Lang Hames <lhames@gmail.com> |
Add functions 'hasPredecessor' and 'hasPredecessorHelper' to SDNode. The hasPredecessorHelper function allows predecessors to be cached to speed up repeated invocations. This fixes PR10186. X.isPredecessorOf(Y) now just calls Y.hasPredecessor(X) Y.hasPredecessor(X) calls Y.hasPredecessorHelper(X, Visited, Worklist) with empty Visited and Worklist sets (i.e. no caching over invocations). Y.hasPredecessorHelper(X, Visited, Worklist) caches search state in Visited and Worklist to speed up repeated calls. The Visited set is searched for X before going to the worklist to further search the DAG if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134592 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7986289a9cc99b45941adf98c64e6f3dbbc917cc |
07-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Add DEBUG messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134572 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a38cfb2fceb266bd78164021c08284dc59a1e8a3 |
07-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
When tail-merging multiple blocks, make sure to correctly update the live-in list on the merged block to correctly account for the live-outs of all the predecessors. They might not be the same in all cases (the testcase I have involves a PHI node where one of the operands is an IMPLICIT_DEF). Unfortunately, the testcase I have is large and confidential, so I don't have a test to commit at the moment; I'll see if I can come up with something smaller where this issue reproduces. <rdar://problem/9716278> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134565 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
90369eb209f5cfa52d683f4248b4c0a9cfd9b916 |
07-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134561 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a462d6e8ebe90f3732891b02a057a88038ac1228 |
07-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134559 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
882e1e1c5d157a8bb2f001f2f4cacf0f0dd722a3 |
07-Jul-2011 |
Eric Christopher <echristo@apple.com> |
Grammar and 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b262799d49891b036daa00eddf51947487346c98 |
06-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
createMCInstPrinter doesn't need TargetMachine anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134525 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
cheduleDAGEmit.cpp
|
9da9934e27dfb48de77b80a3e20ed2d869b52024 |
06-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Introduce "expect" intrinsic instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134516 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
|
c74ddd87e032de966f9190296e72209e15084bda |
06-Jul-2011 |
Ying Wang <wangying@google.com> |
Remove duplicate to mute build warning. Change-Id: If00021c251e0e3bd43d41f113b139d1b10d98b2b
ndroid.mk
|
9c04b5bd282bd5d03ab2114339d670ca95073664 |
06-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Remove the ObjC ARC passes from the default optimization list, and add extension points to be used by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134444 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
549019792a8b14500cab093ac8f3c5f7331e86d7 |
05-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Break infinite loop when the Hopfield network oscillates. This is impossible in theory, I can prove it. In practice, our near-zero threshold can cause the network to oscillate between equally good solutions. <rdar://problem/9720596> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134428 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
9693d4c3f0d0e8c91e4748eb1c18799b1de7551c |
05-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR10277. Remat during spilling triggers dead code elimination. If a phi-def becomes unused, that may also cause live ranges to split into separate connected components. This type of splitting is different from normal live range splitting. In particular, there may not be a common original interval. When the split range is its own original, make sure that the new siblings are also their own originals. The range being split cannot be used as an original since it doesn't cover the new siblings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134413 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
|
2b0f4abfbe1c651fe6bd233bf89373d276c535a8 |
05-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak comment and debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134412 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
25483911049304c069b76f0a3b2f4f6b2216ef51 |
04-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move early tail duplication earlier. This fixes the issue noted in PR10251 where early tail dup of bbs with indirectbr would cause a bb to be duplicated into a loop preheader and then into its predecessors, creating phi nodes with identical operands just before register allocation. This helps with jsinterp.o size (__TEXT goes from 163568 to 126656) and a bit with performance 1.005x faster on sunspider (jits still enabled). The result on webkit with the jit disabled is more significant: 1.021x faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134372 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6a9d2b13fdc14d19b27776666cf50684bcfddc8d |
04-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move most of the pre BB code to TailDuplicateAndUpdate. Change the HasIndirectbr variable to be just that. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134371 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
c0af352038e43bd51ef3ea11e7d43647e4df42bf |
04-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reduce indentation and fix the count of how many PHIs we have inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134370 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
736a0118b5384daa52b82dfb398ad980afdb7bb4 |
04-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR10244. A split point inserted in a block with a landing pad successor may be hoisted above the call to ensure that it dominates all successors. The code that handles the rest of the basic block must take this into account. I am not including a test case, it would be very fragile. PR10244 comes from building clang with exceptions enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134369 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
65268575c419a890052a446d28329f9e81302a05 |
03-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix an easy fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134364 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
017205d3c12a1b6b04c63f402eed1023c4c83c3e |
02-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use getVNInfoAt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134312 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
9d812a2805161665d56a78734da98b58f39ce0fc |
02-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Better diagnostics when inline asm fails to allocate. asm.c:2:7: error: ran out of registers during register allocation asm(""::"r"(0), "r"(1), "r"(2), "r"(3), "r"(4), "r"(5), "r"(6), "r"(7), "r"(8), "r"(9)); ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134310 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocFast.cpp
|
a9badd250cac2e5090eb950bb0456c37ee6c8f7a |
02-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Check the VN of the src register at the two copies, not just the register number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134309 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
1ffcf07d9fb7a7db5737ca7307ae8e0aa713f278 |
02-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r134306 at Sat. 2nd July 2011.
|
d519de082766bb71e13f6a516b305ff841c6b48c |
02-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include a source location when complaining about bad inline assembly. Add a MI->emitError() method that the backend can use to report errors related to inline assembly. Call it from X86FloatingPoint.cpp when the constraints are wrong. This enables proper clang diagnostics from the backend: $ clang -c pr30848.c pr30848.c:5:12: error: Inline asm output regs must be last on the x87 stack __asm__ ("" : "=u" (d)); /* { dg-error "output regs" } */ ^ 1 error generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134307 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f899bd4a462884aa91b9d0c93ab2dbc605dac116 |
02-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Fix Android.mk.
ndroid.mk
|
1a988004dba412deb5d6b8e93b955dfc837065f0 |
02-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a new strategy for preventing eviction loops in RAGreedy. Every live range is assigned a cascade number the first time it is involved in an eviction. As the evictor, it gets a new cascade number. Every evictee is assigned the same cascade number as the evictor. Eviction is prohibited if the evictor has a lower assigned cascade number than the evictee. This means that assigned cascade numbers are monotonically increasing with every eviction, yet they are bounded by NextCascade which can only be incremented by new live ranges. Thus, infinite loops cannot happen, but eviction cascades can still be triggered by new live ranges as we want. Thanks to Andy for explaining this to me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134303 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
c20fb63ebdbc8caec4566eaa7bc5be7f0a14cca1 |
02-Jul-2011 |
Cameron Zwarich <zwarich@apple.com> |
Take a stab at fixing the llvm-x86_64-linux-checks failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134287 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5b1b4489cf3a0f56f8be0673fc5cc380a32d277b |
01-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename TargetSubtarget to TargetSubtargetInfo for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134259 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
53d48080e55bf0c99cb7ca9de5b15a084d7324b5 |
01-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r134237 at Fri. 1st July 2011. Conflicts: lib/Target/ARM/ARMCodeEmitter.cpp
|
ed5bc470aab7097c30e5f881158112f7830472f3 |
01-Jul-2011 |
Duncan Sands <baldrick@free.fr> |
Disable commit 134216 ("Add 134199 back, but disable the optimization when the second copy is a kill") to see if it fixes the i386 dragonegg buildbot, which is timing out because gcc built with dragonegg is going into an infinite loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134237 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
8f1bdac3eba0e065c8ebe2a9c671e299c1fc6797 |
01-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Avoid DenseMap lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134231 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
fe11caaa73782e3182a4d4840ee00336dab9490a |
01-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix off by one error. I misunderstood the comment about killedAt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134229 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
1c8b97cbc03e0e1966d244a27b55e74bde35671e |
01-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Check the liveinterval, not the kill flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134228 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
5e9ae090d8afd994c8c8e81779dd2c074ecf9369 |
01-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't inflate register classes used by inline asm. The constraints are represented by the register class of the original virtual register created for the inline asm. If the register class were included in the operand descriptor, we might be able to do this. For now, just give up on regclass inflation when inline asm is involved. No test case, this bug hasn't happened yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134226 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
0c13e9471a4aa32207923d84c0990eeb9bb898ab |
01-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add 134199 back, but disable the optimization when the second copy is a kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134216 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
15e96be3c70ab2e4a50c505c2b90e4ce1095dbd6 |
01-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert my previous patch while I debug llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134201 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
c747acb8d97d4df51d738383b49b8115519b88fb |
01-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't give up on coalescing A and B when we find A = X B = X Instead, proceed as if we had found A = X B = A git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134199 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
cfe5254cd34d9414d9f6b8aa02dc1239d71a703f |
30-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Create a isFullCopy predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134189 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
ef17e01725740a91bd12723520f6edb2f12526d2 |
30-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134148 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.h
|
87360f73ae205854f100ba5fb7eef7b90ac3bc27 |
30-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r134047 now that the world is ready for it. This patch will sometimes choose live range split points next to interference instead of always splitting next to a register point. That means spill code can now appear almost anywhere, and it was necessary to fix code that didn't expect that. The difficult places were: - Between a CALL returning a value on the x87 stack and the corresponding FpPOP_RETVAL (was FpGET_ST0). Probably also near x87 inline assembly, but that didn't actually show up in testing. - Between a CALL popping arguments off the stack and the corresponding ADJCALLSTACKUP. Both are fixed now. The only place spill code can't appear is after terminators, see SplitAnalysis::getLastSplitPoint. Original commit message: Rewrite RAGreedy::splitAroundRegion, now with cool ASCII art. This function has to deal with a lot of special cases, and the old version got it wrong sometimes. In particular, it would sometimes leave multiple uses in the stack interval in a single block. That causes bad code with multiple reloads in the same basic block. The new version handles block entry and exit in a single pass. It first eliminates all the easy cases, and then goes on to create a local interval for the blocks with difficult interference. Previously, we would only create the local interval for completely isolated blocks. It can happen that the stack interval becomes completely empty because we could allocate a register in all edge bundles, and the new local intervals deal with the interference. The empty stack interval is harmless, but we need to remove a SplitKit assertion that checks for empty intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134125 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
5244c4cc2fd31e49bae2b192bd824a94b6ad5331 |
30-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Remove getRegClassForInlineAsmConstraint and all dependencies. Fixes rdar://9643582 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
272511f518127aae8c96935689b5607455542863 |
30-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Revert r133953 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134116 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
00258d17cd7152237141648d26e1b096cf0e882b |
29-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
make compose and isMoveInstr static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134093 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
egisterCoalescer.h
|
bdd1ef2dbec63d4e428f4ff19d54821dc08fa168 |
29-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert a part of r126557 which could create unschedulable DAGs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2c0cbce763a258ac58590a8ca3c28ff722093fef |
29-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r134047 while investigating a llvm-gcc-i386-linux-selfhost miscompile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134053 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
ab8be96fd30ca9396e6b84fdddf1ac6208984cad |
29-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sink SubtargetFeature and TargetInstrItineraries (renamed MCInstrItineraries) into MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134049 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
achineLICM.cpp
cheduleDAGInstrs.cpp
coreboardHazardRecognizer.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
4d517e34e5c8431adb724c94a14b02362a9cfe67 |
29-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rewrite RAGreedy::splitAroundRegion, now with cool ASCII art. This function has to deal with a lot of special cases, and the old version got it wrong sometimes. In particular, it would sometimes leave multiple uses in the stack interval in a single block. That causes bad code with multiple reloads in the same basic block. The new version handles block entry and exit in a single pass. It first eliminates all the easy cases, and then goes on to create a local interval for the blocks with difficult interference. Previously, we would only create the local interval for completely isolated blocks. It can happen that the stack interval becomes completely empty because we could allocate a register in all edge bundles, and the new local intervals deal with the interference. The empty stack interval is harmless, but we need to remove a SplitKit assertion that checks for empty intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134047 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
d5b03f252c0db6b49a242abab63d7c5a260fceae |
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Move CallFrameSetupOpcode and CallFrameDestroyOpcode to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134030 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e837dead3c8dc3445ef6a0e2322179c57e264a13 |
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
xpandISelPseudos.cpp
fConversion.cpp
achineBasicBlock.cpp
achineCSE.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
achineVerifier.cpp
eepholeOptimizer.cpp
egAllocFast.cpp
egisterCoalescer.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
coreboardHazardRecognizer.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
ailDuplication.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
27ce3b96e51887995f94d8c78a6c7e79bf7cdcdd |
28-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print registers by name instead of by number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134013 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
0b3b58df1bad0c0d05a36c943ea5ee9e8c9a5411 |
28-Jun-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix CMake build by removing this now dead file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133981 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
1e0bd63477da6e9b1dc5111bafba2b1cf143bfba |
28-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a bad iterator dereference that Evan uncovered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133978 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
f46e7e3d7ff56d91572350c45ade83f4deea0139 |
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Remove RegClass2VRegMap from MachineRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133967 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
f10711fb8c8b5596e973bcc27b5af6203fec34b4 |
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Remove the experimental (and unused) pre-ra splitting pass. Greedy regalloc can split live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133962 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
|
016c5829a5dacc3b28cb264b4b6d166552e3d568 |
28-Jun-2011 |
Devang Patel <dpatel@apple.com> |
During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133953 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
15993f83a419950f06d2879d6701530ae6449317 |
27-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
More refactoring. Move getRegClass from TargetOperandInfo to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133944 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
alcSpillWeights.cpp
riticalAntiDepBreaker.cpp
achineLICM.cpp
achineVerifier.cpp
egisterCoalescer.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGRRList.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
|
702110159a53481227b01fed81fa4eec0ad3cc46 |
27-Jun-2011 |
Owen Anderson <resistor@mac.com> |
The index stored in the RegDefIter is one after the current index. When getting the index, decrement it so that it points to the current element. Fixes an off-by-one bug encountered when trying to make use of MVT::untyped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
|
4ef4c171dba8e479f5f3fe7acb22e9fe97a4d6f8 |
27-Jun-2011 |
Andrew Trick <atrick@apple.com> |
pre-RA-sched: Cleanup register pressure tracking. Removed the check that peeks past EXTRA_SUBREG, which I don't think makes sense any more. Intead treat it as a normal register def. No significant affect on x86 or ARM benchmarks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
f27229ee5ad121247b9c79e7605b19fccf781d8d |
27-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track live-out physical registers in MachineDCE. Patch by Sanjoy Das! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133910 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
f792fa90f1125553008659c743cba85b9b5d2e5e |
27-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Distinguish early clobber output operands from clobbered registers. Both become <earlyclobber> defs on the INLINEASM MachineInstr, but we now use two different asm operand kinds. The new Kind_Clobber is treated identically to the old Kind_RegDefEarlyClobber for now, but x87 floating point stack inline assembly does care about the difference. This will pop a register off the stack: asm("fstp %st" : : "t"(x) : "st"); While this will pop the input and push an output: asm("fst %st" : "=&t"(r) : "t"(x)); We need to know if ST0 was a clobber or an output operand, and we can't depend on <dead> flags for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133902 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuilder.cpp
|
7a2ecd3f99ae4dede7e8c1984c2a08984be69363 |
27-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Decode and pretty print inline asm operand descriptors. The INLINEASM MachineInstrs have an immediate operand describing each original inline asm operand. Decode the bits in MachineInstr::print() so it is easier to read: INLINEASM <es:rorq $1,$0>, $0:[regdef], %vreg0<def>, %vreg1<def>, $1:[imm], 1, $2:[reguse] [tiedto:$0], %vreg2, %vreg3, $3:[regdef-ec], %EFLAGS<earlyclobber,imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133901 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ca08dcc4834341e44abf02b92a67ac7d1a708e1d |
27-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove unused methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133900 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.h
|
5b220213bfe9c37c2bb41a7ae0804e06a14f1007 |
27-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
There is only one register coalescer. Merge it into the base class and remove the analysis group. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133899 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
egisterCoalescer.h
plitKit.cpp
|
655739de7b09dcfecd9f3e5f1734e53ec90a19f3 |
27-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Merge SimpleRegisterCoalescing.cpp into RegisterCoalescer.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133897 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
|
b0efa94fb63d55c7aa5eb3c7c23d39a763036c24 |
26-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
merge SimpleRegisterCoalescing.h into RegisterCoalescer.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133896 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.h
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
plitter.cpp
|
fdf16ca44f130afe80c57481d0c08130aa08cc09 |
26-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move RegisterCoalescer.h to lib/CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133895 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
egisterCoalescer.h
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
79db6a1db623a574eeaef746b08b1eb1d26a6914 |
26-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove unnecessary wrapper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133886 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
e6b8bf8c4a74d48ad5c46c37f3754361acdeda61 |
25-Jun-2011 |
Owen Anderson <resistor@mac.com> |
The scheduler needs to be aware on the existence of untyped nodes when it performs type propagation for EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
8594d429e02c688d428036f8563f09572da3fbff |
24-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Handle debug info for i128 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133821 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
|
40179bf8748b2729d6c733022428dfa1061325c9 |
24-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133798 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
d7f35fa824165eea799a583ff5af678f2d842b87 |
24-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Now that bb with phis are not considered simple, duplicate them even if we cannot duplicate to every predecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133797 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
1f71549a2ef24fc5d0fc9f0bb3b49fda770fe3d2 |
24-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Simplify now that blocks with phis are not considered simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133793 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
a347f85dbeee37a7f2bb68df1a7d4cdfbb7b576d |
24-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Starting to refactor Target to separate out code that's needed to fully describe target machine from those that are only needed by codegen. The goal is to sink the essential target description into MC layer so we can start building MC based tools without needing to link in the entire codegen. First step is to refactor TargetRegisterInfo. This patch added a base class MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to separate register description from the rest of the stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133782 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.h
|
8012bd3687ad40b9bb18505c51ab5cf88eb00c45 |
23-Jun-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r133718, Fri. 24th June 2011.
|
4c0c446d7458ffcfbe108ea71f1915f387e150e7 |
23-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Use the presence of the __compact_unwind section to indicate that a target supports compact unwind info instead of having a separate flag indicating this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133685 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
9dbbd87938a0dc2ffe23f4205ec61618e052ca92 |
23-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move more logic to shouldTailDuplicate and only duplicate regular bb before register allocation if it has a indirectbr or if we can duplicate it to every predecessor. This fixes the SingleSource/Benchmarks/Shootout-C++/matrix.cpp regression but keeps the previous improvements to sunspider. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133682 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
bb5c18c80e7ae4ce49eb9067b664f0559ec50965 |
23-Jun-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r133679 at Thu. 23th Jun 2011.
|
1a3ab63cb59d7f7726b47cdda3b9509e999d1653 |
23-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Add a flag that indicates whether a target supports compact unwind info or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133662 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
d6379a993c7e40521bd5c8c6469e32697b4c41d1 |
23-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reenable tail duplication of bb with just an unconditional jump, but don't remove blocks that have their address taken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133659 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
aa0a8f317791b4de07a6c7a2b9705c4183052b54 |
23-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Add a __LD,__compact_unwind section. If the linker supports it, this will hold the CIE and FDE information in a compact format. The implementation of the compact unwinding emission is coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133658 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
f78b5952c30b69c764ff48270eb56540a3fa56f3 |
22-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r133607. This is causing failures in the Clang gccTestSuite. Specifically, gcc.c-torture/compile/pr21356.c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133646 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
5b7ac1402f3c84a751eac96838d4b9676723f0c8 |
22-Jun-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Emit trailing padding on constant vectors when TargetData says that the vector is larger than the sum of the elements (including per-element padding). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
267010864e139781ef5949939e081c41f954de0a |
22-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Replace the existing forms of ConstantArray::get() with a single form that takes an ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
hadowStackGC.cpp
|
c9be25726114b43ac03a4f8f84b537c21ee2bd6d |
22-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reenable the optimization added in 133415, but change the definition of a "simple" bb to be one with only one unconditional branch and no phis. Duplicating the phis in this case is possible, but requeres liveness analysis or breaking edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133607 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
6f373a87cba3b0c88bc76bf1d03ee5f81143764f |
22-Jun-2011 |
Devang Patel <dpatel@apple.com> |
After register is spilled there should not be any DBG_VALUE referring the same register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133569 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
109c22c06232358597afec5d8b7a6b6fd24e19b1 |
22-Jun-2011 |
Owen Anderson <resistor@mac.com> |
Fix some trailing issues from my introduction of MVT::untyped and its use for REGISTER_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0c11218f0a38461a3d74c075ee3b76e511c7ccd0 |
22-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Add verbose EH table printing to SjLj exception tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133561 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
72d9b0e4fce90a635af5c80cb6992ac639279d59 |
22-Jun-2011 |
Devang Patel <dpatel@apple.com> |
There could be more than one DBG_VALUE instructions for variables where all of them have offset based on one register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133560 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
8fcd3e620424372af9afeeed7cd941aa8d5435af |
22-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Improve the comment printing for the EH table. This gives a much more detailed explanation of what the EH table describes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133559 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
9568e5c3c3f1e25288d2ff375dba0fddbf161fd6 |
21-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Teach dag combine to match halfword byteswap patterns. 1. (((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8) => (bswap x) >> 16 2. ((x&0xff)<<8)|((x&0xff00)>>8)|((x&0xff000000)>>8)|((x&0x00ff0000)<<8)) => (rotl (bswap x) 16) This allows us to eliminate most of the def : Pat patterns for ARM rev16 revsh instructions. It catches many more cases for ARM and x86. rdar://9609108 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133503 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b87e37f1b1ce76e34ac1d2c22fd6c22f900f28be |
20-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Disable again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133446 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
689c24768bce1a3bf33b47559e9398525d11142d |
20-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Re enable 133415 with two fixes * Don't introduce a duplicated bb in the CFG * When making a branch unconditional, clear the PredCond array so that it is really unconditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133432 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
2ee2d932328522267d845402e8b31d1d06f8bdd1 |
20-Jun-2011 |
Duncan Sands <baldrick@free.fr> |
Disable the logic added by rafael in commit 133415 to see if it brings the dragonegg buildbots back to life. Original commit message: Teach early dup how to duplicate basic blocks with one successor and only phi instructions into more complex blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133430 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
2a73c7f188f16049faa9282c9bd1217f878bd5d2 |
17-Jun-2011 |
Nowar Gu <nowar100@gmail.com> |
Fix source list of Android.mk.
ndroid.mk
smPrinter/Android.mk
|
907af0f20f58f2ea26da7ea64e1f094cd6880db7 |
17-Jun-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r133240 at Fri. 17th Jun 2011. Conflicts: lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/Target/ARM/ARMCodeEmitter.cpp
|
4720611025276f01b158a1522620391332ffdc32 |
20-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix PromoteIntRes_TRUNCATE: Add support for cases where the source vector type is to be split while the target vector is to be promoted. (eg: <4 x i64> -> <4 x i8> ) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133424 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
289a27946fc11ae6b5a9aa517639d94efa4d91d9 |
20-Jun-2011 |
Francois Pichet <pichet2000@gmail.com> |
Fix MSVC build. next() function already exists in the MSVC headers. This create a overload conflict. Make sure we pick up the llvm one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133416 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
275c1f9f93bf71bcf97fe0315bbd9b86dd020177 |
20-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Teach early dup how to duplicate basic blocks with one successor and only phi instructions into more complex blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133415 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
b065b06c12dba6001b8140df2744d0c856ef6ea1 |
20-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
Revamp the "ConstantStruct::get" methods. Previously, these were scattered all over the place in different styles and variants. Standardize on two preferred entrypoints: one that takes a StructType and ArrayRef, and one that takes StructType and varargs. In cases where there isn't a struct type convenient, we now add a ConstantStruct::getAnon method (whose name will make more sense after a few more patches land). It would be "really really nice" if the ConstantStruct::get and ConstantVector::get methods didn't make temporary std::vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133412 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
7d715dfe6d66be257926f626df96a0e2bd38dc1f |
19-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Fix a FIXME by making GlobalVariable::getInitializer() return a const Constant *. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LFWriter.h
|
5b82c2f8911e7e7bcaa563cf15b5d03cf0292379 |
19-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Code cleanups: Remove duplicated logic in PromotInteRes_BITCAST, reserve vector space, reuse types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
0928c9e18a1decd856501beeea1bd12453a366b3 |
19-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Calls to AssertZext and getZeroExtendInReg must be made using scalar types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
c6341e6e50cddc31a6411d9ac82be30747bc111e |
19-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
When promoting the vector elements in CopyToParts, use vector trunc instead of scalarizing, and doing an element-by-element truncat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133382 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b2318662b6d2e6d9ea9917fd280dde0ba9a938ad |
19-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
fix the varargs version of StructType::get to not require an LLVMContext, making usage much cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133364 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
4e39f8facb710ee204ecbda2a936a388449a434d |
18-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133350 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
22a54c1cd711afccd4558374918d12a939e1cca5 |
18-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't allocate empty read-only SmallVectors during SelectionDAG deallocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
1396c403897e3d3e04fbf59f6c5fe77cbbab74a6 |
18-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused but set variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
|
a3071455e540530ecb644a2e59098129f70ce705 |
18-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Fix UMULO support for 2x register width to allow the full range without a libcall to a new mulo<mode> libcall that we'd have to create. Finishes the rest of rdar://9090077 and rdar://9210061 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
bed9711ca81e2bfe24df46ae2147417df4b3902e |
18-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only call TRI::getRawAllocationOrder to resolve a target-dependent hint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133313 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
5e687ac6158bc28f1831699d7dbfa39d3120b892 |
18-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
e266ce6c6eaf52ebe2b18d85b5e23788cf2f6ef4 |
17-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Use the verbose asm flag instead of a new flag for decoding the LSDA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133292 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
362fee90b9a1d64ac091755466caf6a94ade22eb |
17-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Lower multiply with overflow checking to __mulo<mode> calls if we haven't been able to lower them any other way. Fixes rdar://9090077 and rdar://9210061 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133288 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
916a94b870042772568fca7995cf45aef7a6e333 |
17-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Add an option that allows one to "decode" the LSDA. The LSDA is a bit difficult for the non-initiated to read. Even with comments, it's not always clear what's going on. This wraps the ASM streamer in a class that retains the LSDA and then emits a human-readable description of what's going on in it. So instead of having to make sense of: Lexception1: .byte 255 .byte 155 .byte 168 .space 1 .byte 3 .byte 26 Lset0 = Ltmp7-Leh_func_begin1 .long Lset0 Lset1 = Ltmp812-Ltmp7 .long Lset1 Lset2 = Ltmp913-Leh_func_begin1 .long Lset2 .byte 3 Lset3 = Ltmp812-Leh_func_begin1 .long Lset3 Lset4 = Leh_func_end1-Ltmp812 .long Lset4 .long 0 .byte 0 .byte 1 .byte 0 .byte 2 .byte 125 .long __ZTIi@GOTPCREL+4 .long __ZTIPKc@GOTPCREL+4 you can read this instead: ## Exception Handling Table: Lexception1 ## @LPStart Encoding: omit ## @TType Encoding: indirect pcrel sdata4 ## @TType Base: 40 bytes ## @CallSite Encoding: udata4 ## @Action Table Size: 26 bytes ## Action 1: ## A throw between Ltmp7 and Ltmp812 jumps to Ltmp913 on an exception. ## For type(s): __ZTIi@GOTPCREL+4 __ZTIPKc@GOTPCREL+4 ## Action 2: ## A throw between Ltmp812 and Leh_func_end1 does not have a landing pad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133286 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
981d82674c59b0e6415d3a30b2f9da625e438852 |
17-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
getSuccWeight returns now default 0 if Weights vector is empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133271 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
a6591969ffa7b022656db25f33788fcf57361ac5 |
17-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
Allow empty Weights vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133265 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
db3983bd762a53f197f6c8a6de401974f39f4789 |
17-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Two fixes relating to debug value: * We should change the generated code because of a debug use. * Avoid creating debug uses of undef, as they become a kill. Test to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133255 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
8d857660ce194f05eca3e21d149e8cf3101da9e4 |
17-Jun-2011 |
Lang Hames <lhames@gmail.com> |
Add a hook for PBQP clients to run a custom pre-alloc pass to run prior to PBQP allocation. Patch by Arnaud Allard de Grandmaison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133249 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
ec324e5ae44025c6bdb930b78198f30f807e355b |
17-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Enable early duplication of small blocks. There are still improvements to be made, but this is already a win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133240 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
dd5a8471526ceadf9bceb1a1221299b3db49c33a |
17-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename TRI::getAllocationOrder() to getRawAllocationOrder(). Also switch the return type to ArrayRef<unsigned> which works out nicely for ARM's implementation of this function because of the clever ArrayRef constructors. The name change indicates that the returned allocation order may contain reserved registers as has been the case for a while. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133216 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
egAllocLinearScan.cpp
|
c02a6fa7d8f0ccf2e0059bc40978a466fff3fcab |
17-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use register classes larger than TLI->getRegClassFor(VT). In Thumb mode we cannot handle GPR virtual registers, even though some instructions can. When isel is lowering a CopyFromReg, it should limit itself to subclasses of getRegClassFor(VT). <rdar://problem/9624323> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
fa796dd720f1b34596a043f17f098fac18ecc028 |
16-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach antidependency breakers to use RegisterClassInfo. No functional change was intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133202 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
|
714c0eb811340a41a602509b70ca83cd4b2f2868 |
16-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move PBQP off allocation_order_begin. No functional change intended. I think PBQP could use RegisterClassInfo, but it didn't fit neatly with the external interfaces that PBQP uses, so I'll leave that to Lang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133186 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
7cc2b07437a1243c33324549a1904fefc5f1845e |
16-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
Introduce MachineBranchProbabilityInfo class, which has similar API to BranchProbabilityInfo (expect setEdgeWeight which is not available here). Branch Weights are kept in MachineBasicBlocks. To turn off this analysis set -use-mbpi=false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133184 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
achineBasicBlock.cpp
achineBranchProbabilityInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
1300f3019e5d590231bbc3d907626708515d3212 |
16-Jun-2011 |
Owen Anderson <resistor@mac.com> |
Change the REG_SEQUENCE SDNode to take an explict register class ID as its first operand. This operand is lowered away by the time we reach MachineInstrs, so the actual register-allocation handling of them doesn't need to change. This is intended to support using REG_SEQUENCE SDNode's with type MVT::untyped, and is part of the long road to eliminating some of the hacks we currently use to support register pairs and other strange constraints, particularly on ARM NEON. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133178 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
43641a5d17e525f339d6cf51010a42a9479dc2a5 |
16-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch linear scan to using RegisterClassInfo. This avoids the manual filtering of reserved registers and removes the dependency on allocation_order_begin(). Palliative care... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133177 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
12af5ff7205630a802fe4b4ca355fa143c1449f1 |
16-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133174 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
79c890f64f3b67f9b11341aa452c4302b75184aa |
16-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add TargetRegisterInfo::getRawAllocationOrder(). This virtual function will replace allocation_order_begin/end as the one to override when implementing custom allocation orders. It is simpler to have one function return an ArrayRef than having two virtual functions computing different ends of the same array. Use getRawAllocationOrder() in place of allocation_order_begin() where it makes sense, but leave some clients that look like they really want the filtered allocation orders from RegisterClassInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133170 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
enderMachineFunction.cpp
electionDAG/SelectionDAGBuilder.cpp
|
c06b5bf34004a9b01048905c8750761146094586 |
16-Jun-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add a DAGCombine for (ext (binop (load x), cst)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3c397eb741d1b6c5ecf2aa5c3632b7ce3abf55d4 |
16-Jun-2011 |
Anna Zaks <ganna@apple.com> |
Function::getNumBlockIDs() should be used instead of Function::size() to set the upper limit on the block IDs since basic blocks might get removed (simplified away) after being initially numbered. Plus the test case, in which SelectionDAGBuilder::visitBr() calls llvm::MachineFunction::removeFromMBBNumbering(), which introduces the hole in numbering leading to an assert in llc (prior to the fix). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133113 91177308-0d34-0410-b5e6-96231b3b80d8
dgeBundles.cpp
|
9fbd318d36e618fb08fb53bb48b7c848e617a8a7 |
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
The ARC language-specific optimizer. Credit to Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133108 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
77b4b13c2a525faf646a6784b24692cf0459b75e |
16-Jun-2011 |
Owen Anderson <resistor@mac.com> |
Add a new MVT::untyped. This will be used in future work for modelling ISA features like register pairs and lists with "interesting" constraints (such as ARM NEON contiguous register lists or even-odd paired registers). We need to be able to generate these instructions (often from intrinsics), but don't want to have to assign a legal type to them. Instead, we'll use an "untyped" edge to bypass the type-checking and simply ensure that the register classes match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133106 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.h
|
aeb6da46ce7c55440215fca1fb11122ecddeec44 |
15-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Handle jump tables. Test to follow soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133083 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4cb971ce1c8b254f29365c988b55f6dcfe86d21e |
15-Jun-2011 |
Andrew Trick <atrick@apple.com> |
Added -stress-sched flag in the Asserts build. Added a test case for handling physreg aliases during pre-RA-sched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133063 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
8e614322498f9b38995a6bf41100ca617180eacb |
15-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
getZeroExtendInReg needs to get a scalar type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
baff46f192fd028af8950f2e3824ea7c71fbd76e |
15-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Enable the simplification of truncating-store after fixing the usage of GetDemandBits (which must operate on the vector element type). Fix the a usage of getZeroExtendInReg which must also be done on scalar types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133052 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.h
|
92bcd96bbcf42911a76570cc0974e513bc7f261d |
15-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
When pattern matching during instruction selection make sure shl x,1 is not converted to add x,x if x is a undef. add undef, undef does not guarantee that the resulting low order bit is zero. Fixes <rdar://problem/9453156> and <rdar://problem/9487392>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0fc3015ae8a70152895536ddd8395ce8f6219164 |
14-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert r133004 ; it's breaking nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133007 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b8018d8f885f29df3745fa5596bbbfc4c2fa53d2 |
14-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Partial revert of 132882. Dan noted that this would work on the case shown on the commit message. I think the case that was failing was a bb ending with a redundant conditional jump: ... jne foo foo: ... I was unable to find any such case in the tests or in a debug build of clang, so I will revert this part of the patch and watch the bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f924dea8ddb74df8d591f8fdc409fc5b8b5e10d4 |
14-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add 132986 back, but avoid non-determinism if a bb address gets reused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132995 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
7a07083c25074b560fea1198a86facf3a95af850 |
14-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
revert 132986 to see if the bots go green. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132988 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
c2492c28ef04dbc77c5d47ec81ffc64c5407771f |
14-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add a testcase for checking the integer-promotion of many different vector types (with power of two types such as 8,16,32 .. 512). Fix a bug in the integer promotion of bitcast nodes. Enable integer expanding only if the target of the conversion is an integer (when the type action is scalarize). Add handling to the legalization of vector load/store in cases where the saved vector is integer-promoted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132985 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
c7cb7ed013d7672bccba61c8df5e921d8bd3ae75 |
14-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Disable trunc-store simplification on vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132984 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f5b5c5156c0ac6250d2980f51e47145096851d6f |
14-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Implement Jakob's suggestion on how to detect fall thought without calling AnalyzeBranch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9a767330f555f21d6ef311d3a348d3a44f306d35 |
14-Jun-2011 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add one more argument to the prefetch intrinsic to indicate whether it's a data or instruction cache access. Update the targets to match it and also teach autoupgrade. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132976 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3a42565ccb169ec4acf79698b38d7da880f13364 |
14-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make the threshold used by branch folding softer. Before we would get a sharp all or nothing transition when one extra predecessor was added. Now we still test first ones for merging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132974 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
00404bfaef2cd9516191fd35cc08a94a536b1048 |
13-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in FindMemType. When widening vector loads, use a wider memory type only if the number of packed elements is a power of two. Bug found in Duncan's testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
5e5ed4457749995b46d46e9769e657fcc0818e2c |
13-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be less aggressive about hinting in RAFast. In particular, don't spill dirty registers only to satisfy a hint. It is not worth it. The attached test case provides an example where the fast allocator would spill a register when other registers are available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132900 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
687397c01387534e98d2e8332d4b91536290d778 |
13-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include callee-saved registers in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132899 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
fb66f477a1c1cdde2670163bd60e42139a5009d8 |
13-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix invalid uses of Twine. Hopefully this fixes the problem that Takumi is having. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132898 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
0c3e67860af417febb1fa9e870ece912a16085ac |
12-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix a bug in the calculation of the vectorTypeBreakdown into registers. Odd types such as i33 were rounded to i32. Originated from Duncan's testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b05f14b3b9b372316f4274de246b8a58cf6063eb |
12-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Improve the generated code by getCopyFromPartsVector for promoted integer types. Instead of scalarizing, and doing an element-by-element truncat, use vector truncate. Add support for scalarization of vectors: i8 -> <1 x i1> (from Duncan's testcase). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132892 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1edc08b09ff723f3ff80dba28401b58b3ee4569e |
12-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Really fix the fall-through logic. Add a triple to the tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132885 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
571e20fc50fc20cf612c7b928f7b49a3c41e078a |
12-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix silly bug I introduce in the previous commit. Fixes debug builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132883 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4509ec42b88e9220f61bca5654411e65368ac53a |
12-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
AnalyzeBranch doesn't change which successors a bb has, just the order we try to branch to them. Before we were creating successor lists with duplicated entries. Fixing that found a bug in isBlockOnlyReachableByFallthrough that would causes it to return the wrong answer for ----------- ... jne foo jmp bar foo: ---------- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132882 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8c1ec5a0a21dcb3364aace8174f29f209ff3224e |
11-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r132871. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e4c705667b9c5eae973e1bc0d7fd2ca995260701 |
11-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b3e009a165a423536acfa5861c12ef631239d9e4 |
11-Jun-2011 |
Eric Christopher <echristo@apple.com> |
80-col cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
33b465877255cc75241216817247c61374958a36 |
10-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Removed tabs. Also fixed my editor... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132857 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
a50760f43bafbb46f72fc22426075204a69ce178 |
10-Jun-2011 |
Cameron Zwarich <zwarich@apple.com> |
Rename the ParmContext enum values to make a bit more sense and add a small comment on their meaning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132854 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
a0f803a2e3a6b2962417cae23e2980535ea39ff9 |
10-Jun-2011 |
Cameron Zwarich <zwarich@apple.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132853 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
cbd09bdf4b521350c9910dedae9b4e7c9b305c8d |
10-Jun-2011 |
Cameron Zwarich <zwarich@apple.com> |
Remove a pointless const_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132852 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
9a9a3a5c0fff9647a7a6454d974c058a4fb187d7 |
10-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove duplicated test. Thanks Bob Wilson for noticing it! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132851 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
348d542199f83418481bde6eba1c94f6fdb45b85 |
10-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Ensure that EmitGlobalVariable is correctly differentiating between declarations and definitions when emitting global variables. This was causing global declarations to be emitted as if they were definitions. Fixes <rdar://problem/9429892>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132825 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d3f4eeaec177ed34a54fede9faea4ffa94c4d0af |
10-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make the optional verification step more strict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132822 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
4d7b4573f97157877f6875b69c9d32b2cb8c5329 |
10-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Avoid a gcc warning about multiline comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132821 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
689d7d5dffc02993eef367be3380f2b4c49e434f |
10-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
On last fix to the early tail duplication. With this I am able to bootstrap clang with early tail duplication enabled for any small bb and setting tail-dup-size to a relatively large value(8) to stress this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132816 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
0f28c3f0c30769c1a96e5664eea4acbc48eed6a4 |
10-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Also consider phi nodes when deciding if a register is live out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132814 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
2a6d9eb10bc268df18ff57531c34b8928f858471 |
10-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Change this DAGCombine to build AND of SHR instead of SHR of AND; this matches the ordering we prefer in instcombine. Part of rdar://9562809. The potential DAGCombine which enforces this more generally messes up some other very fragile patterns, so I'm leaving that alone, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132809 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a899b223109ca5dba7b44439e955148a03f23d4c |
09-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
AnalyzeBranch modifies the bb, but we don't want to modify a bb with eh edges. Swap the order of the checks to avoid it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132806 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
c2e9a50dfb523964bd9d7598ee27b37669f9a5b8 |
09-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
A PHI in this basic block is a use in another basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132805 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
54c256233f8dcd29406d5fe6f8a5be79a826cef3 |
09-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Refactor some checks into shouldTailDuplicate. Update comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132798 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
622ab4ab505a8f07d648d7e15016a56bacdaddd1 |
09-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Recommit r132764 since it didn't cause the windows buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132776 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
7b3f72ff815894eba25b2112658df0ee41e3dfd7 |
09-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Temporarily revert 132764 to see if it fixes the Windows buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132771 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
efe12907dd58d1d34ab10b0bd2ae9a099b996f53 |
09-Jun-2011 |
Eric Christopher <echristo@apple.com> |
If the alignment of the byval argument is greater than the alignment of the frame then increase the maximum alignment of the frame to match. Fixes PR6965 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132764 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
471e4224809f51652c71f319532697a879a75a0d |
09-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Add a parameter to CCState so that it can access the MachineFunction. No functional change. Part of PR6965 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132763 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
8ae3edacfaebfeed3e65bbbcf18a6fb21b09feaf |
08-Jun-2011 |
Andrew Trick <atrick@apple.com> |
Remove a temporary test case probe in CheckForLiveRegDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d69f85eb416c08e5f803bffccd974745be3d1b2e |
08-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132749 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
0cdca089b289845664d660f0b285499800822919 |
08-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Count how many phis we are creating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132748 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
aaa5f14d7c8cf0757e062046e8a3780ef80ebb10 |
08-Jun-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix an issue where the two-address conversion pass incorrectly rewrites untied operands to an early clobber register. This fixes <rdar://problem/9566076>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132738 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d846e3fb5a36c625df1bea3d4ef4e337b7b6e917 |
08-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a silly error I introduce in r131951. Fixes PR10095. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132735 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
9d507aec07c7e22c6ba83dfd75e23c8630cd25cd |
07-Jun-2011 |
Andrew Trick <atrick@apple.com> |
Fix a merge bug in preRAsched for handling physreg aliases. I've been sitting on this long enough trying to find a test case. I think the fix should go in now, but I'll keep working on the test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
b3e705f88987608d4eb49668dac0e235d04df884 |
07-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify local live range splitting's safeguard to fix PR10070. When local live range splitting creates a live range with the same number of instructions as the old range, mark it as RS_Local. When such a range is seen again, require that it be split in a way that reduces the number of instructions. That guarantees we are making progress while still being able to perform 3 -> 2+3 splits as required by PR10070. This also means that the PrevSlot map is no longer needed. This was also used to estimate new spill weights, but that is no longer necessary after slotIndexes::insertMachineInstrInMaps() got the extra Late insertion argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132697 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a46a100945c839a9b9baa6da0dcafafcd42d1085 |
06-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Get allocation orders from RegisterClassInfo when possible. Only target-dependent hints require callbacks. The RCI allocation order has CSR aliases last according to their order of appearance in the getCalleeSavedRegs list. This can depend on the calling convention. This way, AllocationOrder::next doesn't have to check for reserved registers, and CSRs are always allocated last, even with weird calling conventions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132690 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
llocationOrder.h
|
fc3623bc50aa9e2a56736775edbd3ae919565351 |
06-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add methods to support the integer-promotion of vector types. Methods to legalize SDNodes such as BUILD_VECTOR, EXTRACT_VECTOR_ELT, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132689 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
57f1fde7fcda84a7e1d7490163fbad18c3755d40 |
06-Jun-2011 |
Stuart Hastings <stuart@apple.com> |
Avoid FGETSIGN of 80-bit types. Fixes PR10085. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132681 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7c48913af62ced0da03ba58755cf5f53ad587ba8 |
06-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't try to be clever, just preserve the target's allocation order. The order of registers returned by getCalleeSavedRegs is used to lay out the fixed stack slots for CSRs. Some targets like their CSRs used from one end, and some targets want them used from the other end. When computing an allocation order, simply preserve the relative ordering of CSRs that the target specifies in its allocation order. Reordering CSRs would break some targets, ARM in particular. We still place volatiles before the CSRs, providing slightly better results with different calling conventions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132680 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
0b4d96baecf3fe6af0fd45ba815bacf91a017f97 |
06-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10077: fix fast-isel of extractvalue of aggregate constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ab5f788f6711f473289b9c42726e81872c3d0c47 |
05-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use path API for path concatenation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132668 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0b66636879bc478781ea6ed7541cdc1d13ee714d |
04-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
TypeLegalizer: Add support for passing of vector-promoted types in registers (copyFromParts/copyToParts). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f1c025d1d106905df3d38d2482fde68c8f81b107 |
04-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
TypeLegalizer: Fix a bug in the promotion of elements of integer vectors. (only happens when using the -promote-elements option). The correct legalization order is to first try to promote element. Next, we try to widen vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5f2316a3b55f88dab2190212210770180a32aa95 |
03-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch AllocationOrder to using RegisterClassInfo instead of a BitVector of reserved registers. Use RegisterClassInfo in RABasic as well. This slightly changes som allocation orders because RegisterClassInfo puts CSR aliases last. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132581 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
llocationOrder.h
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
d365fa9415ce31b5f0a6019b33c6f099a82f4e34 |
03-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve the original ordering when a CSR has multiple aliases. Previously, these aliases would be ordered alphabetically. (BH, BL) Print out the computed allocation orders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132580 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
e0b42c02f0764ea9df9c17efffc7838203fb8f16 |
03-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Add a TODO about memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
448ab3ab395ffc9e7fc04d2d6afb41fcac74070d |
03-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid calling TRI->getAllocatableSet in RAFast. When compiling a program with lots of small functions like 483.xalancbmk, this makes RAFast 11% faster. Add some comments to clarify the difference between unallocatable and reserved registers. It's quite subtle. The fast register allocator depends on EFLAGS' not being allocatable on x86. That way it can completely avoid tracking liveness, and it won't mind when there are multiple uses of a single def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132514 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
egisterClassInfo.h
|
100c83341676d8aae8fc34b5452563ed08b14f3e |
03-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Have LowerOperandForConstraint handle multiple character constraints. Part of rdar://9119939 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132510 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
f462e3fac7ac67503657d63dc35330d0b19359b3 |
03-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make it possible to have unallocatable register classes. Some register classes are only used for instruction operand constraints. They should never be used for virtual registers. Previously, those register classes were given an empty allocation order, but now you can say 'let isAllocatable=0' in the register class definition. TableGen calculates if a register is part of any allocatable register class, and makes that information available in TargetRegisterDesc::inAllocatableClass. The goal here is to eliminate use cases for overriding allocation_order_* methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132508 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
6edf90b8a7168e53409d161fb8b285094c4c9182 |
03-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Just use a SmallVector. I was confused whether new uint8_t[] would zero-initialize the returned array, and it seems that so is gcc-4.0. This should fix the test failures on darwin 9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132500 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
egisterClassInfo.h
|
ee1f87881b185873b1e285a2395a2c6a97c47ec4 |
02-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132488 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
e29e8e100ea38be1771e5f010a5511cbb990d515 |
02-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Update DBG_VALUEs while breaking anti dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132487 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
cf4cc84738abc5f63a05b0956e756c66c519ded5 |
02-Jun-2011 |
Devang Patel <dpatel@apple.com> |
During post RA scheduling, do not try to chase reg defs. to preserve DBG_VALUEs. This approach has several downsides, for example, it does not work when dbg value is a constant integer, it does not work if reg is defined more than once, it places end of debug value range markers in the wrong place. It even causes misleading incorrect debug info when duplicate DBG_VALUE instructions point to same reg def. Instead, use simpler approach and let DBG_VALUE follow its predecessor instruction. After live debug value analysis pass, all DBG_VALUE instruction are placed at the right place. Thanks Jakob for the hint! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132483 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
251b4a04057a8397791ad3924377888fe4f8a2ad |
02-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 132424 to fix PR10068. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5d20c3152bd7fe91eda1b58a5eb6da7067874c61 |
02-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use RegisterClassInfo::getOrder in RAFast. This saves two virtual function calls and an Allocatable BitVector test, making RAFast run 2% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132471 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
19e1f633af989f52f066553cbe85dded14686ac3 |
02-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Start with a zeroed CSRNum map. Found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132457 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
ab5ceacbc11b68f1a4993aa38bad11bcfea42a4c |
02-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Initialize members to fix problem found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132456 91177308-0d34-0410-b5e6-96231b3b80d8
egisterClassInfo.cpp
|
fa226bccaa90c520cac154df74069bbabb976eab |
02-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use TRI::has{Sub,Super}ClassEq() where possible. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132455 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
electionDAG/InstrEmitter.cpp
argetInstrInfoImpl.cpp
|
491a13691d3b30b8288dfc6e01ad6a58f69a4ce6 |
02-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a RegisterClassInfo class that lazily caches information about register classes. It provides information for each register class that cannot be determined statically, like: - The number of allocatable registers in a class after filtering out the reserved and invalid registers. - The preferred allocation order with registers that overlap callee-saved registers last. - The last callee-saved register that overlaps a given physical register. This information usually doesn't change between functions, so it is reused for compiling multiple functions when possible. The many possible combinations of reserved and callee saves registers makes it unfeasible to compute this information statically in TableGen. Use RegisterClassInfo to count available registers in various heuristics in SimpleRegisterCoalescing, making the pass run 4% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132450 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egisterClassInfo.cpp
egisterClassInfo.h
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
4ada1d791028041a6609128a8a4f3b5ebf1c837b |
02-Jun-2011 |
Devang Patel <dpatel@apple.com> |
A DBG_VALUE that truncates a range does not start another dbg value range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132433 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c432907eca615dfea2de3c467f4087f00203b2d6 |
02-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Do not drop constant values when a variable's content is described using .debug_loc entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132427 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ec880283b3682982c750c9b78f6a9b4777e21883 |
01-Jun-2011 |
Stuart Hastings <stuart@apple.com> |
Recommit 132404 with fixes. rdar://problem/5993888 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132424 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
9aaa02a1d26a0969e95b285ea1190920a5bb37db |
01-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Allow bitcasts between valid types of the same size and vector types if the vector type is legal. Fixes rdar://9306086 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
96e0c5477c41b316263e894bbb5821c7cdeb25ef |
01-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Refactor LegalizeTypes: Erase LegalizeAction and make the type legalizer use the TargetLowering enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132418 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
76395c9a31444fa86514473e0852cdd67752d0e8 |
01-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r132358 "Simplify the eviction policy by making the failsafe explicit." This commit caused regressions in i386 flops-[568], matrix, salsa20, 256.bzip2, and enc-md5. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132413 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
090bf19de6e7c75fbf34e753f5e0ad58cc2ca15c |
01-Jun-2011 |
Stuart Hastings <stuart@apple.com> |
Fix double FGETSIGN to work on x86_32; followup to 132396. rdar://problem/5660695 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
bdce3726e2131f053d05f07ff135684ad6f11d80 |
01-Jun-2011 |
Stuart Hastings <stuart@apple.com> |
Turn on FGETSIGN for x86. Followup to 132388. rdar://problem/5660695 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b6fbec3a546fd04bb2e79040db2436b0bd629162 |
01-Jun-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
This patch is another step in the direction of adding vector select. In this patch we add a flag to enable a new type legalization decision - to promote integer elements in vectors. Currently, the rest of the codegen does not support this kind of legalization. This flag will be removed when the transition is complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
cf9aa284b332bc2613def3612b80c5883d4b9985 |
01-Jun-2011 |
Andrew Trick <atrick@apple.com> |
Add an issue width check to the postRA scheduler. Patch by Max Kazakov! For targets with no itinerary (x86) it is a nop by default. For targets with issue width already expressed in the itinerary (ARM) it bypasses a scoreboard check but otherwise does not affect the schedule. It does make the code more consistent and complete and allows new targets to specify their issue width in an arbitrary way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132385 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
edac4923dc2e1694f7004123ccd7c1af952d0d68 |
01-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
The ARM stuff already calls the Resume function, not the Resume_or_Rethrow. It turns out that it could cause an infinite loop in some situations. If this code is triggered and it converts a cleanup into a catchall, but that cleanup was in already in a cleanup, then the _Unwind_SjLj_Resume could infinite loop. I.e., the code doesn't consume the exception object and passes it on to _Unwind_SjLj_Resume. But _USjLjR expects it to be consumed (since it's landing at a catchall instead of a cleanup). So it uses the values that are presently there, which are the values that tell it to jump to the fake landing pad. <rdar://problem/9508402> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132381 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
c20bdf194ad4c824ee6a5f163410d73513ae5c81 |
01-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Incomplete type may not have corresponding DIE, so do not check DIEEntry eagerly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
66658e4dff51664a53c56dd729b8abe4d57aadef |
01-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
e9ae06ca987b6c3b6cfbcd50ab85386565a4e0ca |
01-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Include global types, that are referenced through local variables, in debug_pubtypes list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132371 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
d2056e51c662765f98413fa071afbff53d87b384 |
31-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the eviction policy by making the failsafe explicit. When assigned ranges are evicted, they are put in the RS_Evicted stage and are not allowed to evict anything else. That prevents looping automatically. When evicting ranges just to get a cheaper register, use only spill weights to find the possible candidates. Avoid breaking hints for this purpose, it is not worth it. Start implementing more complex eviction heuristics, guarded by the temporary -complex-eviction flag. The initial version permits a heavier range to be evicted if it doesn't have any uses where the evicting range is live. This makes it a good candidate for live ranfge splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132358 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a2e79ef908e0f4179cda9e85e2f75057181bf321 |
30-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r132245 with a fix for the bug that broke the darwin9/i386 build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132309 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
59ed4151d8d0567b7771772cfa2b65e7c25ffb68 |
30-May-2011 |
Charles Davis <cdavis@mines.edu> |
Emit the handler's data area. For GCC-style exceptions under Win64, the handler's data area starts with a 4-byte reference to the personality function, followed by the DWARF LSDA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Win64Exception.cpp
|
626d6fb1903e74337b257c5e165944bcd1273e65 |
29-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r132245, "Create two BlockInfo entries when a live range is discontinuous through a block." This commit seems to have broken a darwin 9 tester. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132299 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
57903357ee4f9fed47dcad6f3739414301136b0f |
29-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR10046 by updating LiveVariables kill info when splitting live ranges. This only affects targets like Mips where branch instructions may kill virtual registers. Most other targets branch on flag values, so virtual registers are not involved. The problem is that MachineBasicBlock::updateTerminator deletes branches and inserts new ones while LiveVariables keeps a list of pointers to instructions that kill virtual registers. That list wasn't properly updated in MBB::SplitCriticalEdge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132298 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
12e3349de9a13e133d8a59ce4c517a8e95bd91c3 |
29-May-2011 |
Charles Davis <cdavis@mines.edu> |
When generating against the Win64 EH scheme, set the handler to the GCC-specific handler. At this moment, only GCC-style exceptions are supported. Other kinds of exceptions, including "traditional" SEH and Microsoft Visual C++ exceptions, need more work--and an compiler exception model that isn't specific to GCC-style exceptions! In particular, I imagine that it would be possible to mix "traditional" SEH with GCC-style EH or Microsoft C++ EH. Currently LLVM has no way (beyond some target-specific defaults and whole-module compiler switches) of knowing which scheme to use when. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132283 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Win64Exception.cpp
|
b6aacae9413adde66d9686cd9e561eb836b3ee34 |
28-May-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Refactor the type legalizer. Switch TargetLowering to a new enum - LegalizeTypeAction. This patch does not change the behavior of the type legalizer. The codegen produces the same code. This infrastructural change is needed in order to enable complex decisions for vector types (needed by the vector-select patch). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
33858016eaaf0f701fd59d1d36dfa81892fa3775 |
28-May-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Erase instructions _after_ checking their type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132256 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
d7c10862016939c9850cadfe5e1c35513c0adf28 |
28-May-2011 |
John McCall <rjmccall@apple.com> |
Implement and document the llvm.eh.resume intrinsic, which is transformed by the inliner into a branch to the enclosing landing pad (when inlined through an invoke). If not so optimized, it is lowered DWARF EH preparation into a call to _Unwind_Resume (or _Unwind_SjLj_Resume as appropriate). Its chief advantage is that it takes both the exception value and the selector value as arguments, meaning that there is zero effort in recovering these; however, the frontend is required to pass these down, which is not actually particularly difficult. Also document the behavior of landing pads a bit better, and make it clearer that it's okay that personality functions don't always land at landing pads. This is just a fact of life. Don't write optimizations that rely on pushing things over an unwind edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132253 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
f46337004ab08076774932785679460ec3d3bb9a |
28-May-2011 |
Charles Davis <cdavis@mines.edu> |
When generating code for Win64 EH, emit StartProc and EndProc directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/Win64Exception.cpp
|
c9cf9e94ec4daca659e2eb4e30d3f7d7f9b6b067 |
28-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Create two BlockInfo entries when a live range is discontinuous through a block. Delete the Kill and Def markers in BlockInfo. They are no longer necessary when BlockInfo describes a continuous live range. This only affects the relatively rare kind of basic block where a live range looks like this: |---x o---| Now live range splitting can pretend that it is looking at two blocks: |---x o---| This allows the code to be simplified a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132245 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
b2abfa0bf30edf292a27a06e091d03983e644c9b |
28-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SplitAnalysis::getNumLiveBlocks(). It is important that this function returns the same number of live blocks as countLiveBlocks(CurLI) because live range splitting uses the number of live blocks to ensure it is making progress. This is in preparation of supporting duplicate UseBlock entries for basic blocks that have a virtual register live-in and live-out, but not live-though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132244 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
d6a8136e66f0095c7306cad022d792a57e88ba01 |
28-May-2011 |
Devang Patel <dpatel@apple.com> |
Select DW_AT_const_value size based on global variable size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132239 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
7bf114c1bd0390f4f485905d2fe9c7c6a048b8b7 |
28-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix the root cause of the bootstrap failure: There was no way to check if a given register/mode pair was valid. We now return an error code (-2) instead of asserting. If anyone thinks that an assert at this point is really needed, we can autogen a hasValidDwarfRegNum instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132236 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d652b1368b1e381382951f450e5eeca870d91dd6 |
28-May-2011 |
Charles Davis <cdavis@mines.edu> |
Stub out support for Win64-style exceptions. Note that this is merely using the Win64 EH mechanism to implement GCC-style exceptions. LLVM supports hardly anything else at this point! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132234 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/CMakeLists.txt
smPrinter/DwarfException.h
smPrinter/Win64Exception.cpp
LVMTargetMachine.cpp
|
37afca128db40b086752f3f62464ba08128c3b4d |
28-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a regression I recently introduced by removing DwarfRegNum of subregisters: When a value is in a subregister, at least report the location as being the superregister. We should extend the .td files to encode the bit range so that we can produce a DW_OP_bit_piece. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132224 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5b23b7fe3150b2050d6fcd6981d64f30930fd3ef |
28-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make size computation less brittle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132222 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
88c816453fac630e23785dbd1755675d139603db |
27-May-2011 |
Charles Davis <cdavis@mines.edu> |
Add the suffix to the Win64 EH data sections' names if given. Add a test for this. XFAIL'd, because the COFF AsmParser can't handle .section yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132220 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
2d6dcb34b7f39682f3eed08180631189fb4b6636 |
27-May-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Refactor getActionType and getTypeToTransformTo ; place all of the 'decision' code in one place. Re-apply 131534 and fix the multi-step promotion of integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132217 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
045c1d4e48e5e06ca05d04af340f7c487bc9975d |
27-May-2011 |
Devang Patel <dpatel@apple.com> |
Keep this simple. Use DIType to get signness and size of a type. Based on size, select appropraite form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132206 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
72f0d9cdefa3086715e1e2547a9843321690b4d9 |
27-May-2011 |
Devang Patel <dpatel@apple.com> |
Handle signed types gracefully. This fixes regressions reported by buildbots as a fallout of r132193. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132197 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
b58128e2b2375173aafb07905bd53014d622e4ba |
27-May-2011 |
Devang Patel <dpatel@apple.com> |
Select DW_AT_const_value size based on variable size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132193 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
f031d0977f8b03288ed32ff14f71c79e81914f39 |
27-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR10029 - VerifyCoalescing failure on patterns_dfa.c of 445.gobmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132181 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
95ba669e09c30f9aa1a7d754199548b8e6a227ce |
26-May-2011 |
Devang Patel <dpatel@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132149 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
785badb83e09ebae485c40f3fd86576581dd516e |
26-May-2011 |
Devang Patel <dpatel@apple.com> |
During branch folding avoid inserting redundant DBG_VALUE machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132148 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
cfb2bbba734a8af7282eb017068a75fc7ab5f2aa |
26-May-2011 |
Charles Davis <cdavis@mines.edu> |
Revert r132111. I built Release (without Asserts), so I didn't know about the assert that prevented setting alignment on section creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132113 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
fad99ae6e7ecb66eaaab3a42d6e6e97550e13349 |
26-May-2011 |
Charles Davis <cdavis@mines.edu> |
Align Win64 EH Table sections to 4 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132111 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
2aa0f23e1cb5afc96981ecc057980d1958c0be72 |
26-May-2011 |
Stuart Hastings <stuart@apple.com> |
Reverting 132105: it broke some LLVM-GCC DejaGNU tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132108 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
aa4e6afc9be330770e0b5d41e79aa26c3115bcca |
26-May-2011 |
Stuart Hastings <stuart@apple.com> |
Correctly handle a one-word struct passed byval on x86_64. rdar://problem/6920088 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132105 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
b8d936bc179ddf31b6350015d74900b74db6b450 |
26-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a RAGreedy::canEvict function. This doesn't change functionality (much), but it allows for a more fine-grained eviction policy. The current policy only compares spill weights, and that is not always the best thing to do. Spill weights are designed to serve linear scan, and they don't consider live range splitting. Add a mechanism so canEvict() can request that a live range be evicted and split/spilled. This is to avoid infinite eviction loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132101 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
76927d7303046058c627691bd45d6bff608f49f4 |
26-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Rewrite fast-isel integer cast handling to handle more cases, and to be simpler and more consistent. The practical effects here are that x86-64 fast-isel can now handle trunc from i8 to i1, and ARM fast-isel can handle many more constructs involving integers narrower than 32 bits (including loads, stores, and many integer casts). rdar://9437928 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132099 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8a115d5bf42af0a3b4b87d2937502a66c63ff743 |
25-May-2011 |
Devang Patel <dpatel@apple.com> |
Remove unused statistical counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fc2bb8c4448fa884d79e437cc2d2627a7d7740a8 |
25-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Replace the -unwind-tables option with a per function flag. This is more LTO friendly as we can now correctly merge files compiled with or without -fasynchronous-unwind-tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132033 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/AsmPrinter.cpp
|
8ec0c1c07b51d3332ac0d0fc4d643ba982803a18 |
24-May-2011 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131974 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e6657980977ed63df8bbd2604c9fefe513ac4126 |
24-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Explain FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131952 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
10c3e128efc9a2efd28414400827fa8b457def4d |
24-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix the defaults for .eh_frame. We were marking it as writable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131951 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
b5a55d979c84e100f383ce11c5c5e3b616b9dcc4 |
24-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Teach SelectionDAG::isKnownNeverZero to return true (op x, c) when c is non-zero. - Teach X86 cmov optimization to eliminate the cmov from ctlz, cttz extension when the source of X86ISD::BSR / X86ISD::BSF is proven to be non-zero. rdar://9490949 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a9b324be9ca4a1f46d1ddf39ea0f6b6bbec86ae9 |
24-May-2011 |
Devang Patel <dpatel@apple.com> |
Fix debug info for blocks' variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131940 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c481b70a6aeadb54c880f70422631044af4856b9 |
24-May-2011 |
Devang Patel <dpatel@apple.com> |
Remove unnecessary comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131936 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9728ea2447e689ae6e884cf044f226b99c4a47da |
24-May-2011 |
Devang Patel <dpatel@apple.com> |
Revert 121907 (it causes llc crash) and apply original patch from PR9817. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
233857537f61a8f4ab93624986676c25b2271bc7 |
23-May-2011 |
Devang Patel <dpatel@apple.com> |
Preserve debug info during iSel by keeping DanglingDebugInfoMap live until end of function. Patch by Micah Villmow git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131908 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
35b6994608b2b7c86714cc464dfb2d086b0cafca |
23-May-2011 |
Devang Patel <dpatel@apple.com> |
While replacing all uses of a SDValue with another value, do not forget to transfer SDDbgValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131907 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9db20f3bd89e51e0765ef21a9992f6dd5364a81e |
23-May-2011 |
Chris Lattner <sabre@nondot.org> |
Eliminate some temporary variables, and don't call getByValTypeAlignment when we're just going to throw the result away. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
402d9d9935fc1ee4e13675aae7f95072da50db69 |
22-May-2011 |
Chris Lattner <sabre@nondot.org> |
eliminate dependence on StandardPasses.h. The code generator's pass pipeline should eventually convert to PMBuilder, but I don't plan to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131819 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f55d26e78851c2c09f8b09cfd7e7bbda7130d93b |
21-May-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Implement mulo x, 2 -> addo x, x in DAGCombiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131800 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
345968c82d73d7b770a377d91ecea53c4672d48b |
21-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR9962 by properly constraining register classes in RemoveCopyByCommutingDef(). This actually fixes most of the VerifyCoalescing failures in test-suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131768 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
98eb7be103f4e8dc9a584b551f81df389222f90d |
21-May-2011 |
Charles Davis <cdavis@mines.edu> |
Fix typo. When will I learn? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131765 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
f3ffc2cd76267b7901088ec5e46e875a2701bda9 |
21-May-2011 |
Charles Davis <cdavis@mines.edu> |
Add .pdata and .xdata sections to the COFF TLOF implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131763 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
958b68140e08df76e1b8f3287cd0a24d0fb35734 |
20-May-2011 |
Jim Grosbach <grosbach@apple.com> |
No reason not to allow defining the CFA as a reg w/ offset zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131760 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
1585ce7e8c1bd1b3521a9ef4406dbac728685e70 |
20-May-2011 |
Jim Grosbach <grosbach@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131757 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
2b6f7117f5be1b8449e63baffe58c52197f19418 |
20-May-2011 |
Jim Grosbach <grosbach@apple.com> |
Add support for frame info use of the .cfi_def_cfa directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131756 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
21a70bf4a57568d64b535771fd20d25fc0ed9112 |
20-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR9960 by teaching SimpleRegisterCoalescing::AdjustCopiesBackFrom() to preserve the phikill flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131717 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5a4b3d8c8f52ee225ffc65c7d6cebc78b1ec7808 |
20-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR9955 by only attaching load memory operands to load instructions and similarly for stores. Now "make check" passes with the MachineVerifier forced on with the VerifyCoalescing option! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131705 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3dfc4b12229acafee5c69c5ee1673b08027f0438 |
19-May-2011 |
Stuart Hastings <stuart@apple.com> |
Update some currently-disabled code, preparing for eventual use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6fcb6e454b08c5e5aaed125860b01bc08dc6cc49 |
19-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Revert r128961 because it didn't include a test and causes the verifier to fail on CodeGen/X86/2007-05-07-InvokeSRet.ll. There is probably a bug here that was fixed by r128961, but since there is no test or reference to a source file I have to revert it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131618 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
d6dde76090dd673a673ce363c982c22ea924502a |
18-May-2011 |
Duncan Sands <baldrick@free.fr> |
Revert commit 131534 since it seems to have broken several buildbots. Original log entry: Refactor getActionType and getTypeToTransformTo ; place all of the 'decision' code in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
fe3f5d7538954474731dbbed70430016600fa477 |
18-May-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Refactor getActionType and getTypeToTransformTo ; place all of the 'decision' code in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131534 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
54f0d1e02123683c957bc2c2c2a1adde4d374da4 |
18-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate dead dead code elimination code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131524 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
c6b9ebdd6400c5ade1b5b211252cd251b6ef07ae |
18-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also use shrinkToUses after AdjustCopiesBackFrom(). The 'last use' may not be in the same basic block, and we still want a correct live range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131523 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
fc2fcb4165f10fb1708c528014379cb9e1738bab |
18-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly shrink live ranges after deleting dead copies. Clean up after all joined copies. LiveInterval::shrinkToUses recomputes the live range from scratch instead of removing snippets. This should avoid the problem with dangling live ranges. Leave physreg identity copies alone. They can be created when joining a virtreg with a physreg. They don't affect register allocation, and they will be removed by the rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131521 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9c4dae6b0bd1b4667b7a6ce5d804f60615bac639 |
18-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make fast-isel miss counting in -stats and -fast-isel-verbose take terminators into account; since there are many fewer isel misses with recent changes, misses caused by terminators are more significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131502 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1b32896bd2a6e001c8513fcf182d5a92ab7d487a |
18-May-2011 |
Dan Gohman <gohman@apple.com> |
Misc. code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131497 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
71dc7c9d895afc1e678b28d24a1ecc85ecd42178 |
18-May-2011 |
Dan Gohman <gohman@apple.com> |
Misc. code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131495 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6db2c2fe216637f4120899c7734a8600c64af0e8 |
17-May-2011 |
Stuart Hastings <stuart@apple.com> |
Revert 131467 due to buildbot complaint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131469 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
504421e327a5af90dbb42f33086b6db6f6738477 |
17-May-2011 |
Stuart Hastings <stuart@apple.com> |
Fix an obscure issue in X86_64 parameter passing: if a tiny byval is passed as the fifth parameter, insure it's passed correctly (in R9). rdar://problem/6920088 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131467 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
6e3b3e21227d3498d7f5d9d314a49a9ee4cbb873 |
17-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak cross-class coalescing to be more aggressive when the target class is small. The greedy register allocator has live range splitting and register class inflation, so it can actually fully undo this join, including restoring the original register classes. We still don't want to do this for long live ranges, mostly because of the high register pressure of there are many constrained live ranges overlapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131466 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f5497fb1b474028709f0a6d8556251dc21e34c26 |
17-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach LiveInterval::isZeroLength about null SlotIndexes. When instructions are deleted, they leave tombstone SlotIndex entries. The isZeroLength method should ignore these null indexes. This causes RABasic to sometimes spill a callee-saved register in the abi-isel.ll test, so don't run that test with -regalloc=basic. Prioritizing register allocation according to spill weight can cause more registers to be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131436 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
975716af1b9a09274df6c2d92683449015bd8564 |
17-May-2011 |
Dan Gohman <gohman@apple.com> |
Delete unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131430 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
b3dbd4a0b61d9c26df358384bdb66a41326f1a9d |
17-May-2011 |
Dan Gohman <gohman@apple.com> |
Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131429 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f316eb70743e88227b8919370fe38587ffe93512 |
17-May-2011 |
Dan Gohman <gohman@apple.com> |
Fix whitespace and 80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
62427ae8d311d3dda8f5257ddf34d13c19c214bb |
16-May-2011 |
Jim Grosbach <grosbach@apple.com> |
Track how many insns fast-isel successfully selects as well as how many it misses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
227dfdb3c44c5cc5ec140b4be89f618bdc59a133 |
16-May-2011 |
Devang Patel <dpatel@apple.com> |
Preserve debug info for unused zero extended boolean argument. Radar 9422775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
482feb33b2bba677d47bab859d9e1e95d67016bd |
16-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make fast-isel work correctly s/uadd.with.overflow intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a4c920db7a3620f365144eac9aaad7ca23062caa |
16-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix silly typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2586b8f9366aed5a1efa44d3f18d095511601642 |
16-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Basic fast-isel of extractvalue. Not too helpful on its own, given the IR clang generates for cases like this, but it should become more useful soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0e00c6c561181be7e9cc75ad2fee9cd4cbbfca1e |
16-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't do tail calls in a function that call setjmp. The stack might be corrupted when setjmp returns again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d0118a2371f35faa6af97e67be69e1debc615c42 |
14-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a FIXME by moving the fast-isel implementation of the objectsize intrinsic from the x86 code to the generic code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131332 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3fa82837441d716a225427f7a924f36d21db3a32 |
13-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make codegen able to handle values of empty types. This is one way to fix PR9900. I will keep it open until sable is able to comment on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131294 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
88882247d2e1bb70103062faf5bd15dd8a30b2d1 |
13-May-2011 |
Stuart Hastings <stuart@apple.com> |
Since I can't reproduce the failures from 131261, re-trying with a simplified version. <rdar://problem/9298790> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8ad145d7299dbeb8b816ce0549d9323630bbae1a |
13-May-2011 |
Stuart Hastings <stuart@apple.com> |
Revert 131266 and 131261 due to buildbot complaints. rdar://problem/9298790 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131269 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5adc64638084c1b8d33ac56e2498b83f1f4bd6e2 |
13-May-2011 |
Stuart Hastings <stuart@apple.com> |
Non-fast-isel followup to 129634; correctly handle branches controlled by non-CMP expressions. The executable test case (129821) would test this as well, if we had an "-O0 -disable-arm-fast-isel" LLVM-GCC tester. Alas, the ARM assembly would be very difficult to check with FileCheck. The thumb2-cbnz.ll test is affected; it generates larger code (tst.w vs. cmp #0), but I believe the new version is correct. rdar://problem/9298790 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6175e03825070f53b17deeb9156935ac1ac06672 |
13-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131258 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
201e6cdc39d5dca4e70cdd331f6f5055b3af3534 |
12-May-2011 |
Devang Patel <dpatel@apple.com> |
Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name. s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131244 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
7139d3516526317497e70348e33a57b52ddc053c |
12-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable branchfolding common code hoisting optimization. Fixed a liveness test bug and also taught it to update liveins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131241 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b11f80e94b590c90d07254dfa2406cf504e09cd3 |
12-May-2011 |
Devang Patel <dpatel@apple.com> |
Let Objective-C front-end identify class extension, in dwarf output, using an attribute DW_AT_APPLE_objc_class_extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131238 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
30adced41b17cc9a5c301386e80567faccaff04f |
12-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily disable the transformation. It's breaking 186.crafty in some configuration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131235 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
cbc988be22bc9411d95215c8b7251b5f85710674 |
12-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit 131172 with fix. MachineInstr identity checks should check dead markers. In some cases a register def is dead on one path, but not on another. This is passing Clang self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131214 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
achineInstr.cpp
|
4243e67bd5eeae930060824d4290f8071a66e28f |
11-May-2011 |
Devang Patel <dpatel@apple.com> |
Identify end of prologue (and beginning of function body) using DW_LNS_set_prologue_end line table opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
443443cc8399d6753cac828516ea27531e296769 |
11-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid hoisting spills when looking at a copy from another register that is also about to be spilled. This can only happen when two extra snippet registers are included in the spill, and there is a copy between them. Hoisting the spill creates problems because the hoist will mark the copy for later dead code elimination, and spilling the second register will turn the copy into a spill. <rdar://problem/9420853> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131192 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
42febc6e9963f82d5c56c3c7e6afe5e00769af41 |
11-May-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fixes a bug in the DAGCombiner. LoadSDNodes have two values (data, chain). If there is a store after the load node, then there is a chain, which means that there is another user. Thus, asking hasOneUser would fail. Instead we ask hasNUsesOfValue on the 'data' value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
41cdc16e7301c91d2460aa14412f592695b0d4ed |
11-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 131172 as it is causing clang to miscompile itself. I will try to provide a reduced testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131176 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
|
61512ba251097888963a8f07a35605564bcfc537 |
11-May-2011 |
Bill Wendling <isanbard@gmail.com> |
Give the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmp intrinsic call. This prevents it from being reordered so that it appears *before* the setjmp intrinsic (thus making it completely useless). <rdar://problem/9409683> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131174 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
7e20a574eb3f4fc3840a0490c814443d756e2e0e |
11-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add a late optimization to BranchFolding that hoist common instruction sequences at the start of basic blocks to their common predecessor. It's actually quite common (e.g. about 50 times in JM/lencod) and has shown to be a nice code size benefit. e.g. pushq %rax testl %edi, %edi jne LBB0_2 ## BB#1: xorb %al, %al popq %rdx ret LBB0_2: xorb %al, %al callq _foo popq %rdx ret => pushq %rax xorb %al, %al testl %edi, %edi je LBB0_2 ## BB#1: callq _foo LBB0_2: popq %rdx ret rdar://9145558 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131172 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
|
354c82bdf554bc5e6fa5c77f7c357577860d66d8 |
10-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Initialize moveTypeModule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131157 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
7f33d677a9d6ea575795ac5948d492bb0f4c8fed |
10-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Disable my little CopyToReg argument hack with fast-isel. rdar://problem/9413587 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d673057c968ee6da2fc9084a26cbd1a500002d2b |
10-May-2011 |
Stuart Hastings <stuart@apple.com> |
Correctly walk through nested and adjacent CALLSEQ_START nodes. No test case; I've only seen this on a release branch, and I can't get it to reproduce on trunk. rdar://problem/7662569 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131152 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6253c7ca60e3e5c9b10743721b921aa34307d625 |
10-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Produce a __debug_frame section on darwin ARM when appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131151 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/CMakeLists.txt
smPrinter/DwarfException.h
smPrinter/DwarfSjLjException.cpp
|
dc52ecf6fdbee63652d2dac0dccc17e23ac7797f |
10-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Rename DwarfRequiresRelocationForStmtList to DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131148 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e29887b4ee42ae78790a8c1886a7babee9ef18e5 |
10-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use .cfi_sections to put the unwind info in .debug_frame when possible. With this clang will use .debug_frame in, for example, clang -g -c -m32 test.c This matches gcc's behaviour. It looks like .debug_frame is a bit bigger than .eh_frame, but has the big advantage of not being allocated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131140 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfException.h
|
bdda37d7fbafe6876f248341837423a4100f95a5 |
10-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR9883. Make sure all caches are invalidated when a live range is repaired. The previous invalidation missed the alias interference caches. Also add a stats counter for the number of repaired ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131133 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
plitKit.cpp
|
a3f486762f943136da84bfe590e7153fd434c7ad |
10-May-2011 |
Devang Patel <dpatel@apple.com> |
Do not ignore InlinedAt while walking up scope chain to find subprogram node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131106 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cef81b7e519764c6a008a689bc4c6dfc9119f8e9 |
09-May-2011 |
Eric Christopher <echristo@apple.com> |
Look through struct wrapped types for inline asm statments. Patch by Evan Cheng. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131093 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
c356f33aaf6de0e2fb6495113ea2c9059f64973d |
09-May-2011 |
Duncan Sands <baldrick@free.fr> |
Indent properly, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131082 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cf724f078623e786fc92335fdb0ec70b46f2e86d |
08-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove an assertion to fix PR9872. It can happen that a live debug variable is the last use of a sub-register, and the register allocator will pick a larger register class for the virtual register. If the allocated register doesn't support the sub-register index, just use %noreg for the debug variables instead of asserting. In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD register. The register is split and one part is inflated to GR32 and assigned %ESI because there are no more normal uses of sub_8bit_hi. Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will simply insert a %noreg instead, and the debug variable will be marked unavailable in that range. We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I don't know if DWARF even supports that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131073 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
achineInstr.cpp
|
bf4e10f2f69db24c107cb61d6fe10ed5b2047374 |
06-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Emit a proper error message when register allocators run out of registers. This can't be just an assertion, users can always write impossible inline assembly. Such an assembly statement should be included in the error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131024 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
|
9b668535a8900a0a86dfa410e2ed843db4b5555e |
06-May-2011 |
Andrew Trick <atrick@apple.com> |
Added an assertion, and updated a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131022 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
ce1cdac94207a3bdfeb6b3b1b666e588dfdc6c3d |
06-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fc5d305597ea6336d75bd7f3b741e8d57d6a5105 |
06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make the logic for determining function alignment more explicit. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131012 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/TargetLowering.cpp
|
8265e6ab4fb5ff178266d960c5d894f5828bb8ce |
06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Use array_lengthof. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6212f9a304d7f8061c87920d39bddbc19afecb0c |
06-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Iterate backwards over debug locations when splitting them so they can be safely erased. This should unbreak dragonegg-i386-linux and build-self-4-mingw32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131007 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
89fd43778e47b0698582f906e3dac900c376102e |
06-May-2011 |
Andrew Trick <atrick@apple.com> |
Typo: Reviewed by Alistair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131001 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
f42b66169d75301346e3685fd2b3e45e47806367 |
06-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update LiveDebugVariables after live range splitting. After a virtual register is split, update any debug user variables that resided in the old register. This ensures that the LiveDebugVariables are still correct after register allocation. This may create DBG_VALUE instructions that place a user variable in a register in parts of the function and in a stack slot in other parts. DwarfDebug currently doesn't support that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130998 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
iveDebugVariables.h
iveRangeEdit.h
egAllocGreedy.cpp
|
e77150bbcbf1f53b3830904be4d243c618c00b14 |
06-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use TargetMachine hooks to properly print debug variable locations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130997 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
cf5e5f3cc08a3c7ede5b423ee4b18586cb1079e9 |
06-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also count identity copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130996 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
15ab3594eba495ffd1f070207a4aceeae9492c11 |
06-May-2011 |
Andrew Trick <atrick@apple.com> |
Post-RA scheduler compile time fix. Quadratic computation of DAG node depth. The post-ra scheduler was explicitly updating the depth of a node's successors after scheduling it, regardless of whether the successor was ready. This is quadratic for DAGs with transitively redundant edges. I simply removed the useless update of depth, which is lazilly computed later. Fixes <rdar://problem/9044332> compiler takes way too long to build TextInput. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130992 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
31c5d05a26b5b9eec88558d34e9c20d12e0d53d7 |
06-May-2011 |
Devang Patel <dpatel@apple.com> |
Move CompileUnit::getOrCreateNameSpace() and CompileUnit::addPubType() from DwarfDebug.cpp to DwarfCompileUnit.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
|
af25768415eb280affde138e75273a8d5263041e |
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Nothing else uses this label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130989 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0125d5056999ca4a428251ef2ced5bad34d1133b |
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Yet more dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130988 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
ffa6408f9cb30cd639eb8eb71ee4aa6f48d0c7a7 |
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130987 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
ba39f88d0ede1d889a9a564562422d9c9c5134a0 |
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
More dead code elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130985 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
f2b04232006142eb7933972fb21d9ffb9b8c2646 |
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Dead code elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130984 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5e926ac651ac497ab782439a3a42840d0ef6f57c |
06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Re-revert r130877; it's apparently causing a regression on 197.parser, possibly related to cbnz formation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130977 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
97a12165812e67782749bc18d22ba1edcaf11a6c |
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove DwarfTableException. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130964 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DwarfException.h
smPrinter/DwarfSjLjException.cpp
smPrinter/DwarfTableException.cpp
|
254784f9e0ae59fc060ccd54b39cd1e94ac91356 |
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the DwarfTable enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130959 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
51a04adc5ebc82830ee679830495424e330406cf |
06-May-2011 |
Devang Patel <dpatel@apple.com> |
Remove little used statistical counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130955 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ecf58b9e3c4f0d1e0abc7aa7ce95dd42c674acee |
05-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Implement a really simple DwarfSjLjException. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130947 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/CMakeLists.txt
smPrinter/DwarfException.h
smPrinter/DwarfSjLjException.cpp
|
2d57a6470181e7cc6396caae69e045cd0549d10e |
05-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
List all exception types in a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130944 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ee1091589225d8de4cb8bc065bff9376bbe661eb |
05-May-2011 |
Andrew Trick <atrick@apple.com> |
ARM post RA scheduler compile time fix. BuildSchedGraph was quadratic in the number of calls in the basic block. After this fix, it keeps only a single call at the top of the DefList so compile time doesn't blow up on large blocks. This reduces postRA sched time on an external test case from 81s to 0.3s. Although r130800 (reduced ARM register alias defs) also partially fixes the issue by reducing the constant overhead of checking call interference by an order of magnitude. Fixes <rdar://problem/7662664> very poor compile time with post RA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130943 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
f405b1ad19940ddd0b66ec0761e636b953af2c2e |
05-May-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130942 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
d71867a8f4b1ab6ab8cc8f5b1a732184ec5bad1b |
05-May-2011 |
Owen Anderson <resistor@mac.com> |
Allow FastISel of three-register-operand instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d96efb83c11454f511f6b16bbf1fb07d8a14ef66 |
05-May-2011 |
Devang Patel <dpatel@apple.com> |
If debug info for inlined function is missing then handle it gracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130933 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e9bd4ea5fda4957c373a3bbc14803d9670041dcc |
05-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add some statistics to the splitting and spilling frameworks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130931 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
plitKit.cpp
|
23d3243e620064c69e4e6308156208f3205342c1 |
05-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Avoid extra vreg copies for arguments passed in registers. Specifically, this can make MachineCSE more effective in some cases (especially in small functions). PR8361 / part of rdar://problem/8259436 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
6005b875b09ed1b3c5bc90a304db307b67886f75 |
05-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Small syntax cleanup; we don't need to #define constants in C++. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5f6bf5d44138a3537822ac057cd7576375c94df1 |
05-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Minor correction to r130877; fixes PR9846 and hopefully the buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130925 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
087aad44cb37b361e8ed84f197138b366c764f9a |
05-May-2011 |
Bill Wendling <isanbard@gmail.com> |
Remove a flag that would set the ".eh" symbol as .globl. MachO was the only one who used this flag, and it now emits CFI and doesn't emit this anymore. All other targets left this flag "false". <rdar://problem/8486371> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130918 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfTableException.cpp
argetLoweringObjectFileImpl.cpp
|
7a2718a3c185dc4b52d04ac701a0abe173b2e273 |
05-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable physical register coalescing by default. Joining physregs is inherently dangerous because it uses a heuristic to avoid creating invalid code. Linear scan had an emergency spilling mechanism to deal with those rare cases. The new greedy allocator does not. The greedy register allocator is much better at taking hints, so this has almost no impact on code size and quality. The few cases where it matters show up as unit tests that now have -join-physregs enabled explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130896 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d29052bf26fec78a35665b6ccd563b62d2d1cf14 |
05-May-2011 |
Bill Wendling <isanbard@gmail.com> |
SjLj EH could produce a machine basic block that legitimately has more than one landing pad as its successor. SjLj exception handling jumps to the correct landing pad via a switch statement that's generated right before code-gen. Loosen the constraint in the machine instruction verifier to allow for this. Note, this isn't the most rigorous check since we cannot determine where that switch statement came from. But it's marginally better than turning this check off when SjLj exceptions are used. <rdar://problem/9187612> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130881 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
baf717a08a0bc8cb0a7931ea3ce51d063a8fe6f0 |
05-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Re-commit r130862 with a minor change to avoid an iterator running off the edge in some cases. Original message: Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130877 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
24d4c9911e7707eb0c35872f33c8ca01b3edcd7f |
04-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Back out r130862; it appears to be breaking bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130867 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
49cec1d818d0c7d801e786c458896a60eb424524 |
04-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130862 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
597a7664e1bbe2ea5f757eb6e853bd1d2fe98d6c |
04-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Producing a DW_FORM_addr for DW_AT_stmt_list is probably correct, but it is both inefficient and unexpected by dwarfdump. Change to a DW_FORM_data4. While in here, change the predicate name to reflect that the position is not really absolute (it is an offset), just that the linker needs a relocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130846 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
91266017705c13496e062208d1ad7a4c39b20220 |
04-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename -disable-physical-join to -join-physregs and invert it. Physreg joining is still on by default, but I will turn it off shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130844 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a938dd0dc9737779dfd476e3099e0bad617aad4a |
04-May-2011 |
Devang Patel <dpatel@apple.com> |
Tighten up check for empty (i.e. no meaningful debug info) module. This fixes dwarf-die2.c test case from gcc test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130842 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ee4a3abede8fe895030bc75e560020ee6bac2deb |
03-May-2011 |
Devang Patel <dpatel@apple.com> |
Even if the subprogram is going to use AT_specification, emit DW_AT_MIPS_linkage_name. This helps gdb and fixes var-path-expr.exp regression reported by gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130794 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7d6b6a05b549da70b4473f015c97954c2a422724 |
03-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Gracefully handle invalid live ranges. Fix PR9831. Register coalescing can sometimes create live ranges that end in the middle of a basic block without any killing instruction. When SplitKit detects this, it will repair the live range by shrinking it to its uses. Live range splitting also needs to know about this. When the range shrinks so much that it becomes allocatable, live range splitting fails because it can't find a good split point. It is paranoid about making progress, so an allocatable range is considered an error. The coalescer should really not be creating these bad live ranges. They appear when coalescing dead copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130787 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
30692abac7da49376b7d3b33d74612893d72f547 |
03-May-2011 |
Devang Patel <dpatel@apple.com> |
If the front end has emitted llvm.dbg.cu and other debug info anchors (clang does it now) then use them directly. This saves one scan of entire module, to collect debug info, which in turns saves few machine cycles at compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130759 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f7710af4ba78aa7a0cc9c226f334d8f2b6ab31bf |
03-May-2011 |
Owen Anderson <resistor@mac.com> |
Other parts of the SelectionDAG framework assume that targets use their pointer type for vector indices. Make the vector unrolling code respect that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d61c40360c3acc847263c5e5184b715c17528b09 |
02-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle <def,undef> in the second loop as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130718 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e2f669fb3fa7a6bee4196999b119a98f31c072a3 |
02-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the PrintReg adaptor to correctly print live-in registers in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130715 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
2048e4ab7fb4ed45bae2159bae600ddf610303b1 |
02-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only ignore <undef> use operands, keep the <def,undef> ops. Def operands may also have an <undef> flag, but that just means that a sub-register redef doesn't actually read the super-register. For physical registers, it has no meaning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130714 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
c455bb7dc795b8eef66d35ec30650f39ee8b61ab |
02-May-2011 |
Devang Patel <dpatel@apple.com> |
Emit debug info for global variables first. This works around a limitation in gdb which is reported by following inherit.exp test failures from gdb testsuite. gdb.cp/inherit.exp: print g_vB.vB::vb gdb.cp/inherit.exp: print g_vB.vB::vx gdb.cp/inherit.exp: print g_vC.vC::vc gdb.cp/inherit.exp: print g_vC.vC::vx gdb.cp/inherit.exp: print g_vD.vB::vb ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130702 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e17e6c01c8d64b1081661ff7fbf0355bab75754c |
02-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Only produce the eh_frame section if we have at least one personality function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130692 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
bb30dd40ed0873e39fec4dfa321091a0c8d1abfc |
02-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Minimize the slot indexes spanned by register ranges created when splitting. When an interfering live range ends at a dead slot index between two instructions, make sure that the inserted copy instruction gets a slot index after the dead ones. This makes it possible to avoid the interference. Ideally, there shouldn't be interference ending at a deleted instruction, but physical register coalescing can sometimes do that to sub-registers. This fixes PR9823. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130687 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
plitKit.cpp
|
5426a9ee37667660935d80841c5392d78e254318 |
01-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
GCC uses a different encoding of pointers in the FDE when using -fno-dwarf2-cfi-asm. Implement the same behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfTableException.cpp
argetLoweringObjectFileImpl.cpp
|
ec7e4fff960f166be8a8a39b7ba8cc7baac6b02c |
30-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When a physreg is live-in and live through a basic block, make sure its live range covers the entire block. The live range can't be terminated at a random instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130619 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6ee56e658a6f676e01a06d7a53d1d5c87710f3c3 |
30-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid using stale entries form the sibling value map. This could happen when trying to use a value that had been eliminated after dead code elimination and folding loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130597 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
66446c803a11a26e4bb39b74091d146ac850ae4c |
30-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use hysteresis for local live range splitting as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130596 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
f1a5c7ec04002769f1638e64f7439589f0f926e6 |
30-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add all the plumbing needed for MC to expand cfi to the old tables in the final assembly. It is the same technique used when targeting assemblers that don't support .loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130587 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
141f529bafb5f464ee5db7031d29c9b0b33085bc |
30-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130582 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
5aa3211e2d9c618f1f2ae590792067dbcb572741 |
30-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a greedy algorithm for allocating registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130568 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
d65ba721cccb0d0998750908bf2533e08b106f38 |
30-Apr-2011 |
Bill Wendling <isanbard@gmail.com> |
Print out the 'nontemporal' info on a store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130562 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b2b03fc2fa87cb5604dd8ec2e8476d051186cdb3 |
30-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make FastEmit_ri_ try a bit harder to succeed for supported operations; FastEmit_i can fail for non-Thumb2 ARM. Makes ARMSimplifyAddress work correctly, and reduces the number of fast-isel bailouts on non-Thumb ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
49a3ff9d1733cb16bdc97590e5b90508b8656565 |
29-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Hoist MCLineEntry construction AsmPrinter so that anyone who derives from AsmPrinter can have line number entries. PR 9810 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ac3ba1b27e686410f249cb0475909a8d2abfe57d |
29-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
The last hack for producing bit identical output with cfi on OS X. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130504 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
7b11a4cbdc613c768871a0e4aad4ad3ae7cab5de |
29-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change DwarfCFIException's member variables to track what it actually emmits: .cfi_personality, .cfi_lsda and the moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130503 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfException.h
|
a432997745f668e85e45826106430f69238b1d1e |
29-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Factor some code to needsCFIMoves. Avoid printing moves when we don't have to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130501 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCFIException.cpp
|
c26f5447e39b43a6dd9c1a9d88227f4adf3b5600 |
28-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Teach dwarf writer to handle complex address expression for .debug_loc entries. This fixes clang generated blocks' variables' debug info. Radar 9279956. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bd1253809bc1b2455793a64d2801db3d6317b08e |
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a silly mistake in r130338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
60246a96224c8b790177253bf25433b93b335d2b |
28-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove unnecessary argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
argetLoweringObjectFileImpl.cpp
|
7afec9cc0ff1654619d30b6f30e2a4d13369c8bf |
28-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Rename getPersonalityPICSymbol to getCFIPersonalitySymbol, document it, and give it a bit more responsibility. Also implement it for MachO. If hacked to use cfi, 32 bit MachO will produce .cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr and 64 bit will produce .cfi_presonality ___gxx_personality_v0 The general idea is that .cfi_personality gets passed the final symbol. It is up to codegen to produce it if using indirect representation (like 32 bit MachO), but it is up to MC to decide which relocations to create. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130341 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
argetLoweringObjectFileImpl.cpp
|
e1cdf84ee5ca72a38f4dedd6b12cce21cf83e415 |
28-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Simplify handling of variables with complex address (i.e. blocks variables) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
2790ba8e5a7bb6e00fdac9997d840598fb60271c |
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make the fast-isel code for literal 0.0 a bit shorter/faster, since 0.0 is common. rdar://problem/9303592 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130338 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
161b887506fb79dc68fb507b72de03eaf48f467a |
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130337 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
018e38c6dd8794c6c58be518ddaae99033f6d080 |
27-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130331 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
0be77dff1147488814b8eea6ec8619f56e3d9f5e |
27-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Revert r130178. It turned out to be not the optimal path to emit complex location expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130326 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
309db7c947de7f0f9730dff5f95bc1cc5bd1db7d |
27-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
If converter was being too cute. It look for root BBs (which don't have successors) and use inverse depth first search to traverse the BBs. However that doesn't work when the CFG has infinite loops. Simply do a linear traversal of all BBs work just fine. rdar://9344645 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130324 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
93e110ba344ddc901dfb2af61d9c21002d8d3080 |
27-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also add <imp-def> operands for defined and dead super-registers when rewriting. We cannot rely on the <imp-def> operands added by LiveIntervals in all cases as demonstrated by the test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130313 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
9f4b893b84d9c2b56aa2abc3c96ce1e5ccc465e5 |
27-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a safe-guard against repeated splitting for some rare cases. The number of blocks covered by a live range must be strictly decreasing when splitting, otherwise we can't allow repeated splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130249 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
554daa67bd1c4f01fb7a00f2f4255a52b81e9fa3 |
26-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Be careful about scheduling nodes above previous calls. It increase usages of more callee-saved registers and introduce copies. Only allows it if scheduling a node above calls would end up lessen register pressure. Call operands also has added ABI restrictions for register allocation, so be extra careful with hoisting them above calls. rdar://9329627 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
fea8fea58328d561eeccd5e0f896dbddf17ddb38 |
26-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Print the label if we will use it in debug_frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130232 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
116da2fbe93861bb60ffff26dce1d0e76d9ccf15 |
26-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Refactor code. Keep dwarf register operation selection logic at one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130231 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
|
1394e6d9252ed188dbd73a59bcb4f15526641363 |
26-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the new TRI->getLargestLegalSuperClass hook to constrain register class inflation. This has two effects: 1. We never inflate to a larger register class than what the sub-target can handle. 2. Completely unconstrained virtual registers get the largest possible register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130229 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
a61e73bda5125c28e48b52e573d115370838596b |
26-Apr-2011 |
Dan Gohman <gohman@apple.com> |
Fast-isel support for simple inline asms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
bffc2b4af1abe9d25392819b5d9a14f2f228abd4 |
26-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
don't emit the symbol name twice for local bss and common symbols. For example, don't emit: .comm _i,4,2 ## @i ## @i instead emit: .comm _i,4,2 ## @i git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130192 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b16d06f88a81a5163e0caffad4bb268a8e1d0204 |
26-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
b28d4f152ee9b76d8798b2bdcb06cb8d106841e6 |
26-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Print all the moves at a given label instead of just the first one. Remove previous DwarfCFI hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130187 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
|
0c99861836741911300587c579d4f9d3fe1d2a39 |
26-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Let dwarf writer allocate extra space in the debug location expression. This space, if requested, will be used for complex addresses of the Blocks' variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130178 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9341d10f9443da6c6b0833f8a208afec69505f6e |
26-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Rename a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130171 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b865d46d95a4c5073d0c006ccc1773641f88fc98 |
26-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Rename a method to match what it really does. s/addVariableAddress/addFrameVariableAddress/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130170 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
80925f5dca36e34c6c28ae080d2fd2bf861fb346 |
26-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Do not drop a variable's complex address if it is not based on frame base. Observed this while reading code, so I do not have a test case handy here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130167 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
06104e3743afc8988892bf66aab76e7fd5a885b3 |
25-Apr-2011 |
Devang Patel <dpatel@apple.com> |
A dbg.declare may not be in entry block, even if it is referring to an incoming argument. However, It is appropriate to emit DBG_VALUE referring to this incoming argument in entry block in MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e54e785be5ed4ca2022728e39128e27fe5face0c |
24-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Simplify the logic. Noticed by aKor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
7ed673244784e16cac58d69e5a7010fda8fe92bd |
24-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Synchronize the conditions for producing a .cfi_startproc and a .cfi_endproc. Fixes PR9787. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130115 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
6796e4fc889d99c4ad97ec5ad86e4c8cf75e52a4 |
24-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Give SplitKit.h a header guard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130095 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.h
|
ddcdcc88631c6bd4ad43d9198b98bc9a829be036 |
23-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove unused STL header includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
egAllocLinearScan.cpp
electionDAG/SelectionDAGBuilder.h
piller.cpp
|
d74ea775af55782e3b0d5b10fa7602f8822a2f72 |
23-Apr-2011 |
Owen Anderson <resistor@mac.com> |
Teach FastISel to deal with instructions that have two immediate operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5e06bb83f4d7b1b86659ad851324350afb04f5b0 |
23-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Let front-end tie subprogram declaration with subprogram definition directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130028 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
200729882a47535d4c2496283d26600171531fad |
23-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Always compare the cost of region splitting with the cost of per-block splitting. Sometimes it is better to split per block, and we missed those cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130025 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
b686af053e6544191420978f6a3adc7e74ab0192 |
22-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Recommit the fix for rdar://9289512 with a couple tweaks to fix bugs exposed by the gcc dejagnu testsuite: 1. The load may actually be used by a dead instruction, which would cause an assert. 2. The load may not be used by the current chain of instructions, and we could move it past a side-effecting instruction. Change how we process uses to define the problem away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e7cf062537e898f830565db5dbf99ae9c928399e |
22-Apr-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombine: fold "(zext x) == C" into "x == (trunc C)" if the trunc is lossless. On x86 this allows to fold a load into the cmp, greatly reducing register pressure. movzbl (%rdi), %eax cmpl $47, %eax -> cmpb $47, (%rdi) This shaves 8k off gcc.o on i386. I'll leave applying the patch in README.txt to Chris :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
eac0c9dc7759b013bbe831ace1afa37bc46915c6 |
22-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Do not leak argument's DbgVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d8a16241229a6d3f761e2e9fd19cbe08e614f113 |
22-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129970 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
d3dbd5f5cdb54b5e9472ec6040612fc4d898d297 |
22-Apr-2011 |
Bill Wendling <isanbard@gmail.com> |
Branch folding is folding a landing pad into a regular BB. An exception is thrown via a call to _cxa_throw, which we don't expect to return. Therefore, the "true" part of the invoke goes to a BB that has 'unreachable' as its only instruction. This is lowered into an empty MachineBB. The landing pad for this invoke, however, is directly after the "true" MBB. When the empty MBB is removed, the landing pad is directly below the BB with the invoke call. The unconditional branch is removed and then the two blocks are merged together. The testcase is too big for a regression test. <rdar://problem/9305728> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129965 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
acc381bee95b5eafcdf3eaa85a66e83a5773aacb |
21-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129938 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
ae5fbeec23cff833cad9e6b2a638efd1f48bef49 |
21-Apr-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Don't recycle loop variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129928 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
5928046306d8bbe7db35707c294689f515f90e56 |
21-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow allocatable ranges from global live range splitting to be split again. These intervals are allocatable immediately after splitting, but they may be evicted because of later splitting. This is rare, but when it happens they should be split again. The remainder intervals that cannot be allocated after splitting still move directly to spilling. SplitEditor::finish can optionally provide a mapping from new live intervals back to the original interval indexes returned by openIntv(). Each original interval index can map to multiple new intervals after connected components have been separated. Dead code elimination may also add existing intervals to the list. The reverse mapping allows the SplitEditor client to treat the new intervals differently depending on the split region they came from. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129925 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
2c4b4b195fa86715622d04bf87b9391fc06f3dca |
21-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Add comment in output stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129921 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
63c21deee15516723d3ebcf70ba34bb07116e974 |
21-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Revert r1296656, "Fix rdar://9289512 - not folding load into compare at -O0...", which broke a couple GCC test suite tests at -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129914 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3b7d917dec53a742fcb14802557ee75d35185968 |
21-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add debug output for rematerializable instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129883 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
08c5a347a05e73a34c70ec8b694b1e89b96a6bf5 |
21-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Permit remat when a virtual register has multiple defs. TII::isTriviallyReMaterializable() shouldn't depend on any properties of the register being defined by the instruction. Rematerialization is going to create a new virtual register anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129882 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
6bfba2e5af163442a1c6b11fe14aa9df9101cfd7 |
20-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Prefer cheap registers for busy live ranges. On the x86-64 and thumb2 targets, some registers are more expensive to encode than others in the same register class. Add a CostPerUse field to the TableGen register description, and make it available from TRI->getCostPerUse. This represents the cost of a REX prefix or a 32-bit instruction encoding required by choosing a high register. Teach the greedy register allocator to prefer cheap registers for busy live ranges (as indicated by spill weight). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129864 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
|
c73158730d43e7c8bdef32b2107566a6e78a8538 |
20-Apr-2011 |
Stuart Hastings <stuart@apple.com> |
ARM byval support. Will be enabled by another patch to the FE. <rdar://problem/7662569> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129858 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
4788c3e839203dc75ba9fe2026f315095677715c |
20-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove unused arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129844 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
argetLoweringObjectFileImpl.cpp
|
abbbfbd6726c7af8b27479b4311fe6bb6c40b52b |
20-Apr-2011 |
Eric Christopher <echristo@apple.com> |
Rewrite the expander for umulo/smulo to remember to sign extend the input manually and pass all (now) 4 arguments to the mul libcall. Add a new ExpandLibCall for just this (copied gratuitously from type legalization). Fixes rdar://9292577 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129842 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
558692fd0a31d4d3ae4fd09a3a02f80da2e44e5c |
20-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
ADT/Triple: Renambe isOSX... methods to isMacOSX for consistency with the OS triple component. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129838 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
ebc5066b9bcf1a3ead167613bb496b24f8c67f8b |
19-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
CodeGen: Eliminate a use of getDarwinMajorNumber(). - There is a minor semantic change here (evidenced by the test change) for Darwin triples that have no version component. I debated changing the default behavior of isOSVersionLT, but decided it made more sense for triples to be explicit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129802 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
567cac0c511c2361ddb76eb4b8d49d306107a921 |
19-Apr-2011 |
Stuart Hastings <stuart@apple.com> |
Delete unnecessary variable. <rdar://problem/7662569> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129796 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f6a4d3c2f3e1029af252a0f6999edfa3c2f326ee |
19-Apr-2011 |
Bob Wilson <bob.wilson@apple.com> |
Avoid write-after-write issue hazards for Cortex-A9. Add a avoidWriteAfterWrite() target hook to identify register classes that suffer from write-after-write hazards. For those register classes, try to avoid writing the same register in two consecutive instructions. This is currently disabled by default. We should not spill to avoid hazards! The command line flag -avoid-waw-hazard can be used to enable waw avoidance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129772 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
430721cff8bc3b5baceab7700bcb9b6a51d70327 |
19-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Force the greedy register allocator to be linked alongside linear scan. This means that the new register allocator can be used with 'clang -mllvm -regalloc=greedy'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129764 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
37d38bfbbf2b8db2c75b2edbd8cd30c51746fd5d |
19-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
SelectBasicBlock is rather slow even when it doesn't do anything; skip the unnecessary work where possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129763 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fc52163a45b9ea147db1c20a1db3edff0f0bf652 |
19-Apr-2011 |
Stuart Hastings <stuart@apple.com> |
Support nested CALLSEQ_BEGIN/END; necessary for ARM byval support. <rdar://problem/7662569> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129761 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
832e4943598d821687cec79f512803c1ca03cff7 |
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Implement support for x86 fastisel of small fixed-sized memcpys, which are generated en-mass for C++ PODs. On my c++ test file, this cuts the fast isel rejects by 10x and shrinks the generated .s file by 5% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6dda9163585660a080c7fe0484a0dd75aceea00d |
18-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify declarations slightly by using typedefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129720 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
3f3bf9387b75f4c932e4c59bd7af719d26ae4b99 |
18-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Reduce clutter in asm output. Do not emit source location as comment for each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129715 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
5d5ef4a886290565570703747264cd47800765fc |
18-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle spilling around an instruction that has an early-clobber re-definition of the spilled register. This is quite common on ARM now that some stores have early-clobber defines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129714 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
d574bb5a6ee6cbe4d2387e4fa7f7f5ab099ea05f |
18-Apr-2011 |
Eric Christopher <echristo@apple.com> |
Fix a bug where we were counting the alias sets as completely used registers for fast allocation a different way. This has us updating used registers only when we're using that exact register. Fixes rdar://9207598 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129711 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
f051c1a29dd040b4b5ca0c5696d47a9058f87481 |
18-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
while we're at it, handle 'sdiv exact' of a power of 2 also, this fixes a few rejects on c++ iterator loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129694 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
090ca9108b35a60e8b97b67987d00cf47a383dba |
18-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix rdar://9297011 - udiv by power of two causing fast-isel rejects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129693 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
602fc0681726155942907debee1fe0b8b44ffc1b |
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
1. merge fast-isel-shift-imm.ll into fast-isel-x86-64.ll 2. implement rdar://9289501 - fast isel should fold trivial multiplies to shifts 3. teach tblgen to handle shift immediates that are different sizes than the shifted operands, eliminating some code from the X86 fast isel backend. 4. Have FastISel::SelectBinaryOp use (the poorly named) FastEmit_ri_ function instead of FastEmit_ri to simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129666 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
685090f5988a03da1a515493bad1e592d26b9956 |
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix an oversight which caused us to compile the testcase (and other less trivial things) into a dummy lea. Before we generated: _test: ## @test movq _G@GOTPCREL(%rip), %rax leaq (%rax), %rax ret now we produce: _test: ## @test movq _G@GOTPCREL(%rip), %rax ret This is part of rdar://9289558 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129662 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fd3f6351035f6bf1a6bfc851da00c0fb24d6db09 |
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix rdar://9289512 - not folding load into compare at -O0 The basic issue here is that bottom-up isel is matching the branch and compare, and was failing to fold the load into the branch/compare combo. Fixing this (by allowing folding into any instruction of a sequence that is selected) allows us to produce things like: cmpb $0, 52(%rax) je LBB4_2 instead of: movb 52(%rax), %cl cmpb $0, %cl je LBB4_2 This makes the generated -O0 code run a bit faster, but also speeds up compile time by putting less pressure on the register allocator and generating less code. This was one of the biggest classes of missing load folding. Implementing this shrinks 176.gcc's c-decl.s (as a random example) by about 4% in (verbose-asm) line count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8bdc251dc5392fdf4854dcf588d73927d6ef64b3 |
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
split a complex predicate out to a helper function. Simplify two for loops, which don't need to check for falling off the end of a block *and* end of phi nodes, since terminators are never phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129655 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fff65b354f9895f5add84d99e0f62176f5d3f0f6 |
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix rdar://9289583 - fast isel should handle non-canonical commutative binops allowing us to fold the immediate into the 'and' in this case: int test1(int i) { return 8&i; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129653 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e545d38a2871dd4fc93802d9405373325baf1e21 |
17-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR9055: extend the fix to PR4050 (r70179) to apply to zext and anyext. Returning a new node makes the code try to replace the old node, which in the included testcase is killed by CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129650 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cbc5f407eff618225a2fd4363f67d660607e6c2d |
16-Apr-2011 |
Francois Pichet <pichet2000@gmail.com> |
Unbreak the MSVC 2010 build. For further information on this particular issue see: http://connect.microsoft.com/VisualStudio/feedback/details/520043/error-converting-from-null-to-a-pointer-type-in-std-pair git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129642 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
e5060984aa4d8c473e5081cb6c36d8e0a23e5d25 |
16-Apr-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129639 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
|
30deafc84adf88f643cdc39dc97a37537155347f |
16-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Put each personality function in a section. This fixes the gnu ld warning: error in foo.o; no .eh_frame_hdr table will be created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129635 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCFIException.cpp
argetLoweringObjectFileImpl.cpp
|
65279cb9bd985721ac6ad090fed02298396ba06d |
16-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix divmod libcall lowering. Convert to {S|U}DIVREM first and then expand the node to a libcall. rdar://9280991 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129633 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e9db5e29e3af91eec572bfeb8dcec908213298b0 |
16-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Introduce support to encode Objective-C property information in debugging information generated for an interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129624 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
126ae6815263aeffe4fbaa6dff1e4428aa8f0a91 |
15-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Some refactoring suggested by Anton Korobeynikov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129600 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
|
44b7ae2355a32035ea286555736d173755a1c5e2 |
15-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach the SplitKit blitter to handle multiply defined values as well. The transferValues() function can now handle both singly and multiply defined values, as long as the resulting live range is known. Only rematerialized values have their live range recomputed by extendRange(). The updateSSA() function can now insert PHI values in bulk across multiple values in multiple target registers in one pass. The list of blocks received from transferValues() is in layout order which seems to work well for the iterative algorithm. Blocks from extendRange() are still in reverse BFS order, but this function is used so rarely now that it doesn't matter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129580 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
806562cc59ad35e6c742abe9109e9b8090b3f820 |
15-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to set flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129579 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
f0adba9a7ec8a3031876575a6ffb7db5f1b6f855 |
15-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add 129518 back with a fix for when we are producing eh just because of debug info. Change ELF systems to use CFI for producing the EH tables. This reduces the size of the clang binary in Debug builds from 690MB to 679MB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129571 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCFIException.cpp
|
7a2bdde0a0eebcd2125055e0eacaca040f0b766c |
15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a ton of comment typos found by codespell. Patch by Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
smPrinter/DwarfDebug.cpp
odePlacementOpt.cpp
LF.h
LFWriter.cpp
xpandISelPseudos.cpp
iveDebugVariables.cpp
iveIntervalAnalysis.cpp
rologEpilogInserter.cpp
EADME.txt
egAllocLinearScan.cpp
enderMachineFunction.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
hrinkWrapping.cpp
trongPHIElimination.cpp
irtRegRewriter.cpp
|
bcb8c6d09ee426e0f774e3412912f6ae9e5f78dd |
15-Apr-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r129518, "Change ELF systems to use CFI for producing the EH tables. This reduces the" It broke several builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129557 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCFIException.cpp
|
a34d93630ea5864fde8066d5c9638fdda86e1fc1 |
14-Apr-2011 |
Owen Anderson <resistor@mac.com> |
Fix another instance of the DAG combiner not using the correct type for the RHS of a shift. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3dae6e7333b8fae7b79ddb99757ab5de73890af9 |
14-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change ELF systems to use CFI for producing the EH tables. This reduces the size of the clang binary in Debug builds from 690MB to 679MB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCFIException.cpp
|
12f0dc6bb556976f22d89ebcf42bce273c9e7d38 |
14-Apr-2011 |
Andrew Trick <atrick@apple.com> |
In the pre-RA scheduler, maintain cmp+br proximity. This is done by pushing physical register definitions close to their use, which happens to handle flag definitions if they're not glued to the branch. This seems to be generally a good thing though, so I didn't need to add a target hook yet. The primary motivation is to generate code closer to what people expect and rule out missed opportunity from enabling macro-op fusion. As a side benefit, we get several 2-5% gains on x86 benchmarks. There is one regression: SingleSource/Benchmarks/Shootout/lists slows down be -10%. But this is an independent scheduler bug that will be tracked separately. See rdar://problem/9283108. Incidentally, pre-RA scheduling is only half the solution. Fixing the later passes is tracked by: <rdar://problem/8932804> [pre-RA-sched] on x86, attempt to schedule CMP/TEST adjacent with condition jump Fixes: <rdar://problem/9262453> Scheduler unnecessary break of cmp/jump fusion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
c0c7fca2fedd2259569b7b84338259c62d38802d |
14-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
sink a call into its only use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129503 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7adf862eb24f7c6cbf12fbc9e3e8229f6f863b8a |
14-Apr-2011 |
Owen Anderson <resistor@mac.com> |
During post-legalization DAG combining, be careful to only create shifts where the RHS is of the legal type for the new operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
65705d559af0ac7002320dd582cb0d59ce70485a |
13-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Remove extra bytes that were added for gdb. We do not have good poiner to understand actual reason behind this fixme. Spot checking suggest that newer gdb does not need this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129461 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fd1cced726469e83915f428877a521ba737d35f3 |
13-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop using dead function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129442 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
87896d9368e08d93493427ce7bf8272d1e5cca35 |
13-Apr-2011 |
Andrew Trick <atrick@apple.com> |
Recommit r129383. PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency. Additional fixes: Do something reasonable for subtargets with generic itineraries by handle node latency the same as for an empty itinerary. Now nodes default to unit latency unless an itinerary explicitly specifies a zero cycle stage or it is a TokenFactor chain. Original fixes: 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 the ndoe latency adjustments 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129421 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
d31df87f41891c9ea459282c666c6e1cab9bd4c7 |
13-Apr-2011 |
Eric Christopher <echristo@apple.com> |
Temporarily revert r129408 to see if it brings the bots back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129417 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
8e98de9979fa08dac650bc6ae884e809da2cfdaa |
13-Apr-2011 |
Eric Christopher <echristo@apple.com> |
Fix a bug where we were counting the alias sets as completely used registers for fast allocation. Fixes rdar://9207598 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129408 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
161b2f45c2413a9aa3bb3003d043f58c21dfd319 |
13-Apr-2011 |
Devang Patel <dpatel@apple.com> |
I missed this new file in previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129407 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.cpp
|
513edf62fa63ca9051cd95de9af04a3506d1e902 |
13-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Simplify. There is no need to use static variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5d6076383171cb4f676b24bead5292f8e3fc4973 |
13-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Do not reuse parameter name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129405 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
|
3cbee30eacd5d918a00f21c08dbd10ee9ae73925 |
13-Apr-2011 |
Devang Patel <dpatel@apple.com> |
This mechanical patch moves type handling into CompileUnit from DwarfDebug. In case of multiple compile unit in one object file, each compile unit is responsible for its own set of type entries anyway. This refactoring makes this obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129402 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0b756349a718e046abba84c316877a682eb0ff2f |
13-Apr-2011 |
Eric Christopher <echristo@apple.com> |
Add more comments... err debug statements to the fast allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129400 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
5db4289e404d76664f8aabe2675a4cc2d7b0e98e |
12-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
SparseBitVector is SLOW. Use a Bitvector instead, we didn't need the smaller memory footprint anyway. This makes the greedy register allocator 10% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129390 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.h
|
c558bf397257f5ef902bdb45a28e622ee2b5b4f2 |
12-Apr-2011 |
Andrew Trick <atrick@apple.com> |
Revert 129383. It causes some targets to hit a scheduler assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129385 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
3eb4319313b3fb9189cd4be5b3e5375be9bdc2f9 |
12-Apr-2011 |
Andrew Trick <atrick@apple.com> |
PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
fd5c51342a429ecab86a645282d0b36b216c0256 |
12-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Create new intervals for isolated blocks during region splitting. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129379 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
e1b43c3b4000ee7201fcac8d1c8e75bb9fb547e3 |
12-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SplitKit API to query and select the current interval being worked on. This makes it possible to target multiple registers in one pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129374 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
dfaf0e2c0ef01a6f6fd31f2e099ab63c5a7f7cc0 |
12-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a bug in RegAllocBase::addMBBLiveIns() where a basic block could accidentally be skipped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129373 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
860cf9693a2a09d4a316deb9b829fc9e1641c16e |
12-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Remove dead typedef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129368 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
8b9df62d0227beab8c7adb487fb909e67bbc7237 |
12-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Refactor CompileUnit into a separate header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129367 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfCompileUnit.h
smPrinter/DwarfDebug.cpp
|
bbfc3b30986ff89487350cade99ea7c90e2c8165 |
12-Apr-2011 |
Eric Christopher <echristo@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129334 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
560ab9ebf78532df11188770c916c4eb6dcce1b2 |
12-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reuse live interval union between functions. This saves a bit of compile time when compiling many small functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129321 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
egAllocBasic.cpp
|
5ea5c61589e62a1068746ddcc52c6aa39ec0f8b0 |
12-Apr-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Just because a GlobalVariable's initializer is [N x { i32, void ()* }] doesn't 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129307 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
3f5bedf5cbde2cc2badc86b1a0b377f6efcde71c |
11-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Speed up eviction by stopping collectInterferingVRegs as soon as the spill weight limit has been exceeded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129305 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocGreedy.cpp
|
cc88595bce813464f4dc0c8351f7311bb233a3e2 |
11-Apr-2011 |
Bill Wendling <isanbard@gmail.com> |
The default of the dispatch switch statement was to branch to a BB that executed 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> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129302 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
d67705faaa526a31feab831ac1e5e15ee37880a1 |
11-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Look pass copies when determining whether hoisting would end up inserting more copies. rdar://9266679 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129297 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6d73c7dad165bde864769ae1a351bce27b261565 |
11-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a faster algorithm for computing MBB live-in registers after register allocation. LiveIntervals::findLiveInMBBs has to do a full binary search for each segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129292 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
cfea985f5319991fcb1feac3e66f645da4a0b507 |
11-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix a couple of places where changes are made but not tracked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129287 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
achineSink.cpp
|
0fb215a154a5f9f54eea1ce8b006ba9bce5defa1 |
11-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't add live ranges for sub-registers when clobbering a physical register. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129283 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
11983cd861614cd5593c628268542d2688bbe15a |
11-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Speed up LiveIntervalUnion::unify by handling end insertion specially. This particularly helps with the initial transfer of fixed intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129277 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
|
bd1926dfd4fbc8ca09941e00ac507eb5637e9c25 |
11-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Time the initial seeding of live registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129276 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
1edc3cf65d54130542fc91bac67ecf616ef88d48 |
11-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't shrink live ranges after dead code elimination unless it is going to help. In particular, don't repeatedly recompute the PIC base live range after rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129275 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
562b84b3aea359d1f918184e355da82bf05eb290 |
11-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Don't include Operator.h from InstrTypes.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129271 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c3e4e59d1017178fdff33d6e34635f498c98592f |
09-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Avoid excess precision issues that lead to generating host-compiler-specific code. Switch lowering probably shouldn't be using FP for this. This resolves PR9581. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8feda7ee332f1f91e4d3a42d9f7ad729012ed174 |
09-Apr-2011 |
Jush Lu <jush.msn@gmail.com> |
Merge upstream r129128
|
f4afdfc501b7185d24a0ef184fe3d0c0bbe22e0c |
09-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Build the Hopfield network incrementally when splitting global live ranges. It is common for large live ranges to have few basic blocks with register uses and many live-through blocks without any uses. This approach grows the Hopfield network incrementally around the use blocks, completely avoiding checking interference for some through blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129188 91177308-0d34-0410-b5e6-96231b3b80d8
dgeBundles.cpp
egAllocGreedy.cpp
pillPlacement.cpp
pillPlacement.h
plitKit.cpp
plitKit.h
|
9d29cbad32814f31c91cd2464a3c74df412b0aac |
09-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Precompute interference for neighbor blocks as long as there is no interference. This doesn't require seeking in the live interval union, so it is very cheap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129187 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
nterferenceCache.h
|
b3452ea35c3e78d1a8c7d92f9448b0054d36e740 |
09-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
have dag combine zap "store undef", which can be formed during call lowering with undef arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129185 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3f932a74be207eaad700ac7898f63c06131097ea |
09-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Simplify array bound checks and clarify comments. One element array can have same non-zero number as lower bound as well as upper bound. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129170 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fb6e8d65547b744b1804b74b263f163e9879b901 |
08-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Do not emit DW_AT_upper_bound and DW_AT_lower_bound for unbouded array. If lower bound is more then upper bound then consider it is an unbounded array. An array is unbounded if non-zero lower bound is same as upper bound. If lower bound and upper bound are zero than array has one element. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4da0c7c0c9081107bea5f6bac440f0f1eb47748f |
08-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Change -arm-trap-func= into a non-arm specific option. Now Intrinsic::trap is lowered into a call to the specified trap function at sdisel time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129152 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
2c44a80d991df258a45e2f5fa76d5ada9e99015c |
08-Apr-2011 |
Nick Lewycky <nicholas@mxc.ca> |
llvm.global_[cd]tor is defined to be either external, or appending with an array of { i32, void ()* }. Teach the verifier to verify that, deleting copies of checks strewn about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129128 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
54699765064842fd08d1466adc93453660bc2a85 |
07-Apr-2011 |
Andrew Trick <atrick@apple.com> |
Added a check in the preRA scheduler for potential interference on a induction variable. The preRA scheduler is unaware of induction vars, so we look for potential "virtual register cycles" instead. Fixes <rdar://problem/8946719> Bad scheduling prevents coalescing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129100 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
e815dab69f57da3f0ff365709491c7409cbb71bd |
07-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Recompute hasPHIKill flags when shrinking live intervals. PHI values may be deleted, causing the flags to be wrong. This fixes PR9616. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129092 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f34ae32a6bf06f0d80b0bcbbe56d5488781f4f3c |
07-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid moving iterators when the previous block was just visited. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129081 91177308-0d34-0410-b5e6-96231b3b80d8
nterferenceCache.cpp
|
0bd2bd9ecc8abd3c3ed91a51aa8c51aaab401b5d |
07-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Prefer multiplications to divisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129080 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
|
7b41fbe87234f3ceef6ae11209730cbed4b69092 |
07-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract SpillPlacement::addLinks for handling the special transparent blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129079 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
pillPlacement.cpp
pillPlacement.h
|
1adb47cc11e708e6009007eeab58caf4310df30f |
07-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Remove dead code. rdar://9221736. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129044 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
9a54352879e5aaac2e2c37490e5cb7844550db8b |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also account for the spill code that would be inserted in live-through blocks with interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129030 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
1b400e840f58489c7950f815780cf08917cecaa8 |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Abort the constraint calculation early when all positive bias is lost. Without any positive bias, there is nothing for the spill placer to to. It will spill everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129029 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
70d4370b47cdd375bbea98e50452789fe4f1af04 |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of the number of positively biased nodes when adding constraints. If there are no positive nodes, the algorithm can be aborted early. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129021 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
pillPlacement.cpp
pillPlacement.h
|
9efa2a263ea470caacef1c85f6ca45e32bf516d3 |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Break the spill placement algorithm into three parts: prepare, addConstraints, and finish. This will allow us to abort the algorithm early if it is determined to be futile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129020 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
pillPlacement.cpp
pillPlacement.h
|
49460bc49990ddfcf81e6f0670924f896645d9c7 |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Oops. Scary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128986 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
db529a8a5d071610f3a8b467693bc40b073e68ef |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Analyze blocks with uses separately from live-through blocks without uses. About 90% of the relevant blocks are live-through without uses, and the only information required about them is their number. This saves memory and enables later optimizations that need to look at only the use-blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128985 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
71d9e65ee71712b965c79739e63de94fbb8078ad |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Sign error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128963 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b3dd82670aa60cacba81f090d292722c3ef44354 |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't crash when a value is defined after the last split point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128962 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
3e22897fa9f07fc641b07d2e12101d21f84da668 |
06-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Permit blocks to branch directly to a landing pad. Treat the landing pad as a normal successor when that happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128961 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
da19475328ece3da19437a2e9eef035dcafa2814 |
06-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Add support to encode function's template parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128947 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cfafc54040cc9722995558124f253d05a038176b |
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run LiveDebugVariables in RegAllocBasic and RegAllocGreedy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128935 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
|
b4c2bc25439bd4a226a85e1f3d8b420c07590622 |
05-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128929 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bdaa9dc4a45b8831c942437f726895eb24a956ba |
05-Apr-2011 |
Bob Wilson <bob.wilson@apple.com> |
Add an assertion instead of crashing when the scavenger goes past the end of a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128925 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
3520019931c2bad615c35edcb943cd1e8582ebac |
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When dead code elimination removes all but one use, try to fold the single def into the remaining use. Rematerialization can leave single-use loads behind that we might as well fold whenever possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128918 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
|
e050f50443eff5449016d5bd24bd9401685a227c |
05-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Do not emit empty name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128914 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b793bc1ccabef36b3223bae69f5e94a8e98d22eb |
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ensure all defs referring to a virtual register are marked dead by addRegisterDead(). There can be multiple defs for a single virtual register when they are defining sub-registers. The missing <dead> flag was stopping the inline spiller from eliminating dead code after rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128888 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
84397472364ac3ce3b5dbcc1e6aa93e9a584c32f |
05-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Print visibility info for external variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128887 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a2948ef5accab638371615f539ea9f9ec5ff5d03 |
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use std::unique instead of a SmallPtrSet to ensure unique instructions in UseSlots. This allows us to always keep the smaller slot for an instruction which is what we want when a register has early clobber defines. Drop the UsingInstrs set and the UsingBlocks map. They are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128886 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
612f7807c581eafb7c8105e1a55c8d839033bfb3 |
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop precomputing last split points, query the SplitAnalysis cache on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128875 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
1a7744501a80351ce31fcecad42c8e35823bc081 |
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cache the fairly expensive last split point computation and provide a fast inlined path for the common case. Most basic blocks don't contain a call that may throw, so the last split point os simply the first terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128874 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
f05b1dcf870346094f8aaee8e387c92d3e47e98d |
05-Apr-2011 |
Bill Wendling <isanbard@gmail.com> |
Revamp the SjLj "dispatch setup" intrinsic. It needed to be moved closer to the setjmp statement, because the code directly after the setjmp needs to know about values that are on the stack. Also, the 'bitcast' of the function context was causing a dead load. This wouldn't be too horrible, except that at -O0 it wasn't optimized out, and because it wasn't using the correct base pointer (if there is a VLA), it would try to access a value from a garbage address. <rdar://problem/9130540> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128873 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
1809d5fa216bbdc505502468b7bd85629e1e44bc |
05-Apr-2011 |
Stuart Hastings <stuart@apple.com> |
Revert 123704; it broke threaded LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4662a9f270fe2c916c35545718720ed181384c30 |
04-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow coalescing with reserved physregs in certain cases: When a virtual register has a single value that is defined as a copy of a reserved register, permit that copy to be joined. These virtual register are usually copies of the stack pointer: %vreg75<def> = COPY %ESP; GR32:%vreg75 MOV32mr %vreg75, 1, %noreg, 0, %noreg, %vreg74<kill> MOV32mi %vreg75, 1, %noreg, 8, %noreg, 0 MOV32mi %vreg75<kill>, 1, %noreg, 4, %noreg, 0 CALLpcrel32 ... Coalescing these virtual registers early decreases register pressure. Previously, they were coalesced by RALinScan::attemptTrivialCoalescing after register allocation was completed. The lower register pressure causes the mcinst-lowering-cmp0.ll test case to fail because it depends on linear scan spilling a particular register. I am deleting 2008-08-05-SpillerBug.ll because it is counting the number of instructions emitted, and its revision history shows the 'correct' count being edited many times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128845 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
0c1953d8cf02edfae896b0a983d345ad61b13b9f |
04-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract physreg joining policy to a separate method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128844 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
6c8afd728eb02742ce320ecd39bcf3774d8423b7 |
04-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop caching basic block index ranges now that SlotIndexes can keep up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128821 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
5c4c4d4b82a658643c8daefd5cc76d5c712285ed |
04-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete leftover data members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128820 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.h
|
eda0fe8d58b0aaff5f18e7f13edfda3022384e70 |
02-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use InterferenceCache in RegAllocGreedy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128765 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
5907d863659eb972ebb2afe07bc863a4c616f0ef |
02-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an InterferenceCache class for caching per-block interference ranges. When the greedy register allocator is splitting multiple global live ranges, it tends to look at the same interference data many times. The InterferenceCache class caches queries for unaltered LiveIntervalUnions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128764 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
nterferenceCache.cpp
nterferenceCache.h
egAllocGreedy.cpp
|
a122eaaee22750c4f92c33672e149eb2f0c538cb |
02-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use basic block numbers as indexes when mapping slot index ranges. This is more compact and faster than using DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128763 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
ed3caf90866e183380a06c0ae49101204a9f3c28 |
02-Apr-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add a RemoveFromWorklist method to DCI. This is needed to do some complicated transformations in target-specific DAG combines without causing DAGCombiner to delete the same node twice. If you know of a better way to avoid this (see my next patch for an example), please let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128758 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c249e4855883d7b799db61edc839cbfaff50ae81 |
01-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128730 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8380c034b68d9d3768ee09b6fdc937696c93ee3d |
01-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Assign node order numbers to results of call instruction lowering. This should improve src line debug info when sdisel is used. rdar://9199118 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8e23e815ad1136721acdfcce76975a37c8a2c036 |
01-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
Issue libcalls __udivmod*i4 / __divmod*i4 for div / rem pairs. rdar://8911343 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
842759662ba3eae35d6078643983a07266be9aa5 |
01-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
The basic register allocator must also use the inline spiller. It is using a trivial rewriter that doesn't know how to insert spill code requested by the standard spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128688 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
280ea1a7466751c6d27ff343072c65e59a950053 |
31-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't completely eliminate identity copies that also modify super register liveness. Turn them into noop KILL instructions instead. This lets the scavenger know when super-registers are killed and defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128645 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
02ae9f2f273d53fa5c5de4134ffd22ff2cedb115 |
31-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow kill flags on two-address instructions. They are harmless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128643 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
8e53aca51a141c99209ced69c9a51f52f6a8370b |
31-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mark all uses as <undef> when joining a copy. This way, shrinkToUses() will ignore the instruction that is about to be deleted, and we avoid leaving invalid live ranges that SplitKit doesn't like. Fix a misunderstanding in MachineVerifier about <def,undef> operands. The <undef> flag is valid on def operands where it has the same meaning as <undef> on a use operand. It only applies to sub-register defines which also read the full register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128642 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
e62dfcf4b3fcf5397737713b222ab1655df10e03 |
31-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128639 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
314a3ef502c67e9be7a67c9be7ea3ecffce8298b |
31-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix bug found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128634 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
dc5198bac7e3f9b61617c8c46a1c28a84daa9325 |
31-Mar-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
lib/CodeGen/LiveIntervalAnalysis.cpp: [PR9590] Don't use std::pow(float,float) here. We don't expect the real "powf()" on some hosts (and powf() would be available on other hosts). For consistency, std::pow(double,double) may be called instead. Or, precision issue might attack us, to see unstable regalloc and stack coloring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128629 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
312babc93ff837d268b83ae829fdb122f40c34c8 |
31-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pick a conservative register class when creating a small live range for remat. The rematerialized instruction may require a more constrained register class than the register being spilled. In the test case, the spilled register has been inflated to the DPR register class, but we are rematerializing a load of the ssub_0 sub-register which only exists for DPR_VFP2 registers. The register class is reinflated after spilling, so the conservative choice is only temporary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128610 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
efe65ce25c2f475ef7a9ea767660b029310e503a |
30-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix evil VirtRegRewriter bug. The rewriter can keep track of multiple stack slots in the same register if they happen to have the same value. When an instruction modifies a stack slot by defining a register that is mapped to a stack slot, other stack slots in that register are no longer valid. This is a very rare problem, and I don't have a simple test case. I get the impression that VirtRegRewriter knows it is about to be deleted, inventing a last opaque problem. <rdar://problem/9204040> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128562 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
eb1c5dcb120faade429f859e0aa9f6fcda1755a0 |
30-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach VirtRegRewriter about the new virtual register numbers. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128561 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
3ecfc861b4365f341c5c969b40e1afccde676e6f |
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to PHINode::Create() giving the (known or expected) number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128537 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
d8b4fb4aab4d6fedb2b14bed1b846451b17bde7c |
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
(Almost) always call reserveOperandSpace() on newly created PHINodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128535 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
f22ca3fe5f0cfbb832cf41270f97cf5c0134fd7b |
30-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Treat clones the same as their origin. When DCE clones a live range because it separates into connected components, make sure that the clones enter the same register allocator stage as the register they were cloned from. For instance, clones may be split even when they where created during spilling. Other registers created during spilling are not candidates for splitting or even (re-)spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128524 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
egAllocGreedy.cpp
|
83d808329b81ad7589ddc516566169b0331c25d1 |
30-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. 80 columns and trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128504 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6094bd87d845afabba5b99ec4848fa6116bac682 |
29-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Recompute register class and hint for registers created during spilling. The spill weight is not recomputed for an unspillable register - it stays infinite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128490 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
egAllocGreedy.cpp
plitKit.cpp
|
cf610d07de3ba4929bb5d00e084877dd974b44a1 |
29-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to use the correct register when rematerializing for snippets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128469 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
|
c1d22d8adbd40c3e5d704fdae90f9ed2089bb67e |
29-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run dead code elimination immediately after rematerialization. This may eliminate some uses of the spilled registers, and we don't want to insert reloads for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128468 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
3f782f4d7586a4e644850ad4d05ef6a027aabc04 |
29-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
Inline check that's used only once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128465 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
3c288b97879b975e75ae8eab69eee111f3bc3a43 |
29-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
Rework the logic (and removing the bad check for an unreachable block) so that the FailBB dominator is correctly calculated. Believe it or not, there isn't a functionality change here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128455 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
ad7d8a598b17452138c20f7a7acdcd7e1f0053d8 |
29-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't try to add stack protector logic to a dead basic block. It messes up dominator information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128452 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
c8ec765551119d5bdcfeebdaeb869242c098bdc5 |
29-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle the special case when all uses follow the last split point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128450 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
2ef661b0e8de0d4186c5f9cc990adce0a2493b17 |
29-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly enable rematerialization when spilling after live range splitting. The instruction to be rematerialized may not be the one defining the register that is being spilled. The traceSiblingValue() function sees through sibling copies to find the remat candidate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128449 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
2d930db24f1d44a9d68c90cb7a1a58e76abd40da |
29-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
In some cases, the "fail BB dominator" may be null after the BB was split (and becomes reachable when before it wasn't). Check to make sure that it's not null before trying to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128434 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
a7b8c2b6a416052bd7b48d3c0d702d266c6ac3a2 |
29-Mar-2011 |
Daniel Dunbar <daniel@zuster.org> |
Integrated-As: Add support for setting the AllowTemporaryLabels flag via integrated-as. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128431 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ef1f5ccca7efaa18209523b31019d356d302f635 |
28-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Amend debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128398 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
eb29157d80847c207b77910bcd40a6a6c91ca5c5 |
28-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Drop interference reassignment in favor of eviction. The reassignment phase was able to move interference with a higher spill weight, but it didn't happen very often and it was fairly expensive. The existing interference eviction picks up the slack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128397 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
e9c50732f71a6c2f6813f6c40743a9bfa3791ca8 |
26-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use individual register classes when spilling snippets. The main register class may have been inflated by live range splitting, so that register class is not necessarily valid for the snippet instructions. Use the original register class for the stack slot interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128351 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.h
|
7d706ede7d7e5262bb22f75f1972f0eacbf7eab5 |
26-Mar-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Turn SelectionDAGBuilder::GetRegistersForValue into a local function. It couldn't be used outside of the file because SDISelAsmOperandInfo is local to SelectionDAGBuilder.cpp. Making it a static function avoids a weird linkage dance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
adb877d62e5ac88db037d91bcd2e9f7dc2c4cd7a |
26-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Collect and coalesce DBG_VALUE instructions before emitting the function. Correctly terminate the range of register DBG_VALUEs when the register is clobbered or when the basic block ends. The code is now ready to deal with variables that are sometimes in a register and sometimes on the stack. We just need to teach emitDebugLoc to say 'stack slot'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128327 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
15a3ea0628d2e961cecd70b4e284149524aa3019 |
25-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Emit less labels for debug info and stop emitting .loc directives for DBG_VALUEs. The .dot directives don't need labels, that is a leftover from when we created line number info manually. Instructions following a DBG_VALUE can share its label since the DBG_VALUE doesn't produce any code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128284 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
336298cf2cc68d9af163992b9f9cafddd4bb3c8a |
25-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Fix for -pre-RA-sched=source. Yet another case of unchecked NULL node (for physreg copy). May fix PR9509. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d56acb36ab78bf8d0e5cad48bde1f3a74ef2b510 |
25-Mar-2011 |
Nick Lewycky <nicholas@mxc.ca> |
No functionality change. Fix up some whitespace and switch out "" for '' when printing a single character. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128256 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
eb5067e0d9ca182f21db24949b63616ce4bb1eaf |
25-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ignore special ARM allocation hints for unexpected register classes. Add an assertion to linear scan to prevent it from allocating registers outside the register class. <rdar://problem/9183021> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128254 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
23670e5b95fcaf88238239729457393b8cc831ff |
24-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Keep track of directory namd and fIx regression caused by Rafael's patch r119613. A better approach would be to move source id handling inside MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b141099c14bfa86167b2137e8a9544c6ee805955 |
23-Mar-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR9535: add support for splitting and scalarizing vector ISD::FP_ROUND. Also cleaning up some duplicated code while I'm here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
bd47a4a307a54dab25956430442cf4ac103e4158 |
23-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Ensure that def-side physreg copies are scheduled above any other uses so the scheduler can't create new interferences on the copies themselves. Prior to this fix the scheduler could get stuck in a loop creating copies. Fixes PR9509. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0d93a110e31b384f59d91d6be27388d8ded5f03c |
23-Mar-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
01079311e153dae59a38aa0cdf5332eb3e410abf |
23-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't coalesce identical DBG_VALUE instructions prematurely. Each of these instructions may have a RegsClobberInsn entry that can't be ignored. Consecutive ranges are coalesced later when DwarfDebug::emitDebugLoc merges entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128155 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1e6c65dba706de80f5a4ceb8a1fc86bc3d0a61c6 |
23-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Notify the delegate before removing dead values from a live interval. The register allocator needs to know when the range shrinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128145 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
0b5015188e834afa7fb2fe3694a9c190f59fd19c |
23-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow the allocation of empty live ranges that have uses. Empty ranges may represent undef values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128144 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
bf824efcb92aa54d4a7ecc4afff9282c860a3f38 |
23-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dump the register map before rewriting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128143 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a2f45291e1a50a571a15bbf4da38a5f42a2424ef |
23-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Added block number and name to isel debug output. I'm tired of doing this manually for each checkout. If anyone knows a better way debug isel for non-trivial tests feel free to revert and let me know how to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128132 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
28cf1156c93afabedc69fe7b73aa92ce85e323a5 |
22-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r128045 and r128051 with fixes. This will extend the ranges of debug info variables in registers until they are clobbered. Fix 1: Don't mistake DBG_VALUE instructions referring to incoming arguments on the stack with DBG_VALUE instructions referring to variables in the frame pointer. This fixes the gdb test-suite failure. Fix 2: Don't trace through copies to physical registers setting up call arguments. These registers are call clobbered, and the source register is more likely to be a callee-saved register that can be extended through the call instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128114 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
iveDebugVariables.cpp
|
c1dbd5d9c30ea67ae45f190ff90e076cdf8bbc17 |
22-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Revert r128045 and r128051, debug info enhancements. Temporarily reverting these to see if we can get llvm-objdump to link. Hopefully this is not the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
iveDebugVariables.cpp
|
bd17478f2f6dd3630c4e2fafaa71e2424e08c96e |
22-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear map after use. This is likely to fix the segfault in llvm-gcc-x86_64-darwin10-cross-mingw32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128051 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e17232ee4de2f608f0e5d965368c2bc54b6c1e83 |
22-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dont emit 'DBG_VALUE %noreg, ...' to terminate user variable ranges. These ranges get completely jumbled by the post-ra scheduler, and it is not really reasonable to expect it to make sense of them. Instead, teach DwarfDebug to notice when user variables in registers are clobbered, and terminate the ranges there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128045 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
iveDebugVariables.cpp
|
28ed90b95db5f14b60b2cb532a62d407d4faf5e5 |
21-Mar-2011 |
Eric Christopher <echristo@apple.com> |
Grammar-o. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128004 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
a5c177e70a42f48e4885075c4c48aad0816a2817 |
21-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
We need to pass the TargetMachine object to the InstPrinter if we are printing the alias of an InstAlias instead of the thing being aliased. Because we need to know the features that are valid for an InstAlias. This is part of a work-in-progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127986 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2dc455a366e26d8c1085ef617651232304ee097e |
20-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Process all dead defs after rematerializing during splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127973 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
682eed0da8e42770a0e694390ba929fd4d241657 |
20-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also eliminate redundant spills downstream of inserted reloads. This can happen when multiple sibling registers are spilled after live range splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127965 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
01a46c82e0b58f6c2d562282538556159806c4fe |
20-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change an argument to a LiveInterval instead of a register number to save some redundant lookups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127964 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
d2eff137ca94e7c21d90d327f13fcc5dd616fc15 |
20-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace a broken LiveInterval::MergeValueInAsValue() with something simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127960 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
c1655e1a3c3a566b91b0513b56d61b58da1e36ba |
20-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127959 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocGreedy.cpp
|
9344f97108b9d5c8a5d7070d5393f107475aead0 |
19-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Minor code re-structuring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127952 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
|
06cc324b9da1dc8fb7360a560343c28f5e7a940a |
19-Mar-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for legalizing UINT_TO_FP of vectors on platforms which do not have native support for this operation (such as X86). The legalized code uses two vector INT_TO_FP operations and is faster than scalarizing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
65c8bca78854712ab2bf135c2008ed455ef0c9b7 |
19-Mar-2011 |
Stuart Hastings <stuart@apple.com> |
Reapply 127939 since Daniel fixed the breakage. <rdar://problem/9012638> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127944 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
825dd969189357cf0e7084e015d938467b0136eb |
19-Mar-2011 |
Stuart Hastings <stuart@apple.com> |
Revert 127939. <rdar://problem/9012638> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127943 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
7257897402fc61df3c494abad27397a100e5f32c |
19-Mar-2011 |
Stuart Hastings <stuart@apple.com> |
Revise r126127 to address Daniel's comments. <rdar://problem/9012638> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127939 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
31649e61bcead26a63c7cd452da90fff5e000b91 |
18-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Beginnings of MC-JIT code generation. Proof-of-concept code that code-gens a module to an in-memory MachO object. This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld for similarly conceptual work for that part) which will take the compiled object and link it together with the rest of the system, providing back to the JIT a table of available symbols which will be used to respond to the getPointerTo*() queries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127916 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1744e476ec3df0350a1163bf2c6439ea21aefbba |
18-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extend live debug values down the dominator tree by following copies. The llvm.dbg.value intrinsic refers to SSA values, not virtual registers, so we should be able to extend the range of a value by tracking that value through register copies. This greatly improves the debug value tracking for function arguments that for some reason are copied to a second virtual register at the end of the entry block. We only extend the debug value range where its register is killed. All original llvm.dbg.value locations are still respected. Copies from physical registers are ignored. That should not be a problem since the entry block already adds DBG_VALUE instructions for the virtual registers holding the function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127912 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
2a72bfa1b1a634ef6c5aa866cac1c0afda4534e4 |
18-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hoist spills when the same value is known to be in less loopy sibling registers. Stack slot real estate is virtually free compared to registers, so it is advantageous to spill earlier even though the same value is now kept in both a register and a stack slot. Also eliminate redundant spills by extending the stack slot live range underneath reloaded registers. This can trigger a dead code elimination, removing copies and even reloads that were only feeding spills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127868 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
9ef931e71c06a0390d6387859843be1d6d4daad6 |
18-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Accept instructions that read undefined values. This is not supposed to happen, but I have seen the x86 rematter getting confused when rematerializing partial redefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127857 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7cec179a647bff132d7af36d91df877056880c5e |
18-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more accurate about the slot index reading a register when dealing with defs and early clobbers. Assert when trying to find an undefined value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127856 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
1c10b8de46ce8e39178eeded4786b1e53722f099 |
17-Mar-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
BuildUDIV: If the divisor is even we can simplify the fixup of the multiplied value by introducing an early shift. This allows us to compile "unsigned foo(unsigned x) { return x/28; }" into shrl $2, %edi imulq $613566757, %rdi, %rax shrq $32, %rax ret instead of movl %edi, %eax imulq $613566757, %rax, %rcx shrq $32, %rcx subl %ecx, %eax shrl %eax addl %ecx, %eax shrl $4, %eax on x86_64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127829 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6a3dbd3b25bbc99bd1a233d6a74ddea3493ba6ac |
17-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dead code elimination may separate the live interval into multiple connected components. I have convinced myself that it can only happen when a phi value dies. When it happens, allocate new virtual registers for the components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127827 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
iveRangeEdit.h
plitKit.cpp
|
7bbf0ee97c77f7712154648a44ac6eeb57886462 |
17-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
Move more logic into getTypeForExtArgOrReturn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127809 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
44579680111b807613703ab401db3b8c0148e36c |
17-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
Rename getTypeForExtendedInteger() to getTypeForExtArgOrReturn(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
2254227791ea267426b9ac674fc6d87decb65bc1 |
17-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rewrite instructions as part of ConnectedVNInfoEqClasses::Distribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127779 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
plitKit.h
|
1d5b84508173b93faf513032b3847152e6060791 |
16-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a LiveRangeEdit delegate callback before shrinking a live range. The register allocator needs to adjust its live interval unions when that happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127774 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
egAllocGreedy.cpp
|
cc5c4296fda7270e8394626d7254596f5f9c8d82 |
16-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Erase virtual registers that are unused after DCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127773 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
2926733240d0766fbd45df6eb609ad2328f0307d |
16-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tag cached interference with a user-provided tag instead of the virtual register number. The live range of a virtual register may change which invalidates the cached interference information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127772 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
c46570dc05851395829bef904bb6ddb1260400d1 |
16-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clarify debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127771 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveRangeEdit.cpp
egAllocGreedy.cpp
|
ebe8173941238cfbabadb1c63bca7fb7dcf2adbe |
16-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
The x86-64 ABI says that a bool is only guaranteed to be sign-extended to a byte rather than an int. Thankfully, this only causes LLVM to miss optimizations, not generate incorrect code. This just fixes the zext at the return. We still insert an i32 ZextAssert when reading a function's arguments, but it is followed by a truncate and another i8 ZextAssert so it is not optimized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127766 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8df6bf5f5c8a55b089ef8b706bc0cc77ff16906c |
16-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
Don't recompute something that we already have in a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
83320a023c26aa8150761fc0694e7999941febb2 |
16-Mar-2011 |
Daniel Dunbar <daniel@zuster.org> |
Revert r127757, "Patch to a fix dwarf relocation problem on ARM. One-line fix plus the test where it used to break.", which broke Clang self-host of a Debug+Asserts compiler, on OS X. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2589d0aedf97f1f34246fe89b27270c9d998d19f |
16-Mar-2011 |
Renato Golin <renato.golin@arm.com> |
Patch to a fix dwarf relocation problem on ARM. One-line fix plus the test where it used to break. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127757 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
13ba2527f73554fff39ca31250803b253076afba |
15-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trace back through sibling copies to hoist spills and find rematerializable defs. After live range splitting, an original value may be available in multiple registers. Tracing back through the registers containing the same value, find the best place to insert a spill, determine if the value has already been spilled, or discover a reaching def that may be rematerialized. This is only the analysis part. The information is not used for anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127698 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
29ef87599c86b28db94d57705ab2901768253cad |
15-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve both isPHIDef and isDefByCopy bits when copying parent values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127697 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
d158fba3e45547f013bbab4c0ac640f31b5e341f |
15-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add a peephole optimization to optimize pairs of bitcasts. e.g. v2 = bitcast v1 ... v3 = bitcast v2 ... = v3 => v2 = bitcast v1 ... = v1 if v1 and v3 are of in the same register class. bitcast between i32 and fp (and others) are often not nops since they are in different register classes. These bitcast instructions are often left because they are in different basic blocks and cannot be eliminated by dag combine. rdar://9104514 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127668 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
bf34a5ec22389a852f25337eb767e5ad742e6142 |
15-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
sext(undef) = 0, because the top bits will all be the same. zext(undef) = 0, because the top bits will be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
28cc1aa3a748068b6490a19fc4af2443bc7f3dbd |
15-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
There are some situations which can cause the URoR hack to infinitely recurse and then go kablooie. The problem was that it was tracking the PHI nodes anew each time into this function. But it didn't need to. And because the recursion didn't know that a PHINode was visited before, it would go ahead and call itself. There is a testcase, but unfortunately it's too big to add. This problem will go away with the EH rewrite. <rdar://problem/8856298> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127640 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
cf03e35d9009480a416b3546a4ee39093e69d506 |
14-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Place context in member variables instead of passing around pointers. Use the opportunity to get rid of the trailing underscore variable names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127618 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
766faf4b2b7fe2835181777fb50d9f4d1814aba5 |
14-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename members to match LLVM naming conventions more closely. Remove the unused reserved_ bit vector, no functional change intended. This doesn't break 'svn blame', this file really is all my fault. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127607 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
34661e72fc0ae1a993db4cec953e999c61a7569c |
14-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
BIT_CONVERT has been renamed to BITCAST. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5ae1da96f2ac4a68543295f227398f8e93018eb0 |
14-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Minor optimization. sign-ext/anyext of undef is still undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5522e8a936d8735f3366b33901e2d582bedd48dc |
13-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Now that we are deleting unused live intervals during allocation, pointers may be reused. Use the virtual register number as a cache tag instead. They are not reused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127561 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
7792e980c43536814ea42448db9799b4da32fef6 |
13-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tell the register allocator about new unused virtual registers. This allows the allocator to free any resources used by the virtual register, including physical register assignments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127560 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
egAllocGreedy.cpp
|
ba9934648f1b8f5b1749548963f385f1147c1f68 |
12-Mar-2011 |
Duncan Sands <baldrick@free.fr> |
Speculatively revert commit 127478 (jsjodin) in an attempt to fix the llvm-gcc-i386-linux-selfhost and llvm-x86_64-linux-checks buildbots. The original log entry: Remove optimization emitting a reference insted of label difference, since it can create more relocations. Removed isBaseAddressKnownZero method, because it is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127540 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
b1adbd1f67125668ef1a87be62553e0f95cbc4d9 |
12-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include snippets in the live stack interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127530 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
10a433238fe4679c8da17f3eb19611466332e312 |
12-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Spill multiple registers at once. Live range splitting can create a number of small live ranges containing only a single real use. Spill these small live ranges along with the large range they are connected to with copies. This enables memory operand folding and maximizes the spill to fill distance. Work in progress with known bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127529 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocBasic.cpp
|
55768d763d3d955c07d5819c3ef2e9d1ca6d2baf |
12-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
That's it, I am declaring this a failure of the C++03 STL. There are too many compatibility problems with using mixed types in std::upper_bound, and I don't want to spend 110 lines of boilerplate setting up a call to a 10-line function. Binary search is not /that/ hard to implement correctly. I tried terminating the binary search with a linear search, but that actually made the algorithm slower against my expectation. Most live intervals have less than 4 segments. The early test against endIndex() does pay, and this version is 25% faster than plain std::upper_bound(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127522 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
53aac15a607d66926e586c7fc57634f6be4ef443 |
11-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix the GCC test suite issue exposed by r127477, which was caused by stack protector insertion not working correctly with unreachable code. Since that revision was rolled out, this test doesn't actual fail before this fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127497 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
2ce5bf188dfa4329eb246df6011dd1edde5a5979 |
11-Mar-2011 |
Owen Anderson <resistor@mac.com> |
Teach FastISel to support register-immediate-immediate instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e4f6d7461aea7308e85c219c1cea5bd6059d4841 |
11-Mar-2011 |
Jan Sjödin <jan_sjodin@yahoo.com> |
Remove optimization emitting a reference insted of label difference, since it can create more relocations. Removed isBaseAddressKnownZero method, because it is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127478 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
778583ad2864949388a1cc645704f9ee76c9c0b9 |
11-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Replace -dag-chain-limit flag with constant. It has survived a release cycle without being touched, so no longer needs to pollute the hidden-help text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6fd2472b1b2d8f6a64b38874cbca95d3578e16a4 |
11-Mar-2011 |
John Wiegley <johnw@boostpro.com> |
Fix use of CompEnd predicate to be standards conforming The existing CompEnd predicate does not define a strict weak order as required by the C++03 standard; therefore, its use as a predicate to std::upper_bound is invalid. For a discussion of this issue, see http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#270 This patch replaces the asymmetrical comparison with an iterator adaptor that achieves the same effect while being strictly standard-conforming by ensuring an apples-to-apples comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127462 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
9ef82ce4fe8e6f9f49c31abeebcc9672985afad4 |
11-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Avoid replacing the value of a directly stored load with the stored value if the load is indexed. rdar://9117613. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6a951ac63fd6a9aa769c6d98b544b886e5b5d307 |
10-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add an option to disable critical edge splitting in PHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127398 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
47dbf6cef761c25cfeb0aa7d624a6f98288bb96a |
10-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change the Spiller interface to take a LiveRangeEdit reference. This makes it possible to register delegates and get callbacks when the spiller edits live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127389 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.h
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
|
38f6bd0fc8095ef79a89b3db15ff6dc734ac90e7 |
10-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make SpillIs an optional pointer. Avoid creating a bunch of temporary SmallVectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127388 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
nlineSpiller.cpp
iveIntervalAnalysis.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
piller.cpp
piller.h
|
b0519e15f70cef7ba16b712f258d4782ade17e13 |
10-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit 127368 and 127371. They are exonerated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
02d7c9298298f7f8fba1427f249deb2106126e9c |
10-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert 127368 and 127371 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
17adafc6c179f3bad757f932a13522851ee5171f |
09-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Change the definition of TargetRegisterInfo::getCrossCopyRegClass to be more 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
5d96e5a1ccbdc4d64db4e15418392bb7c61e4d6f |
09-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make physreg coalescing independent on the number of uses of the virtual 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127351 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4bbf4678e341e9bf899c0faa3e3bcfe134db81eb |
09-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Improve pre-RA-sched register pressure tracking for duplicate operands. This helps cases like 2008-07-19-movups-spills.ll, but doesn't have an obvious impact on benchmarks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
cc7665f5895e1dd9682ee21d1e755d0de28c161b |
09-Mar-2011 |
Jush Lu <jush.msn@gmail.com> |
Update build scripts after merge r127116
ndroid.mk
smPrinter/Android.mk
|
d7cdc3e1f9df50be73e239c130dc92239c0e5d32 |
09-Mar-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix typo, make helper static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127335 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8104163fd14a1a429800c97f82346614590de8c2 |
09-Mar-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused virtual dtor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127331 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
b5530586d68bd25831a6796b5d3199cb0769a35c |
09-Mar-2011 |
Jush Lu <jush.msn@gmail.com> |
Merge upstream r127116
|
ab2ee2ea7518b0539c6adcd158d52a45028271f4 |
09-Mar-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Add a virtual dtor to Delegate to silence -Wnon-virtual-dtor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127311 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
|
92a55f4bdd120cdd3bb5a004c792d4d24a940311 |
09-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a LiveRangeEdit::Delegate protocol. This will we used for keeping register allocator data structures up to date while LiveRangeEdit is trimming live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127300 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
egAllocGreedy.cpp
|
f46aa914c8bd7995409ac7034e54c8b8c38c1888 |
09-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127295 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.h
|
5881799d0cccbd814ec1b0f0509df9be1f63c6cb |
08-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead code after rematerializing. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127287 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
plitKit.cpp
plitKit.h
|
5bf76cd11913310cef04a21aef6db29897f32939 |
08-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix the build for MSVC 9 whose upper_bound() wants to compare elements in the sorted array. Patch by Olaf Krzikalla! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127264 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
29449448b0f0420dfcf52e278fc01adbf1690d70 |
08-Mar-2011 |
Eric Christopher <echristo@apple.com> |
Fix some latent bugs if the nodes are unschedulable. We'd gotten away 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
3aefa7771d656fe9a0d6825dae35e28e60f0273f |
08-Mar-2011 |
Oscar Fuentes <ofv@wanadoo.es> |
Revert "Make a comparator's argument `const'. This fixes the build for MSVC 9." The "fix" was meaningless. This reverts commit r127245. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127260 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f337fb2fa8be9100f469650f1e32e8474525672f |
08-Mar-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce vector reallocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127254 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
86e4eeb6c79baf1c4bc4569a1e6ffc0c8f4b52b9 |
08-Mar-2011 |
Oscar Fuentes <ofv@wanadoo.es> |
Make a comparator's argument `const'. This fixes the build for MSVC 9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127245 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
0bf56c821c454a960afc34cb5746006bc1f9e1a1 |
08-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Further improvements to pre-RA-sched=list-ilp. This change uses the MaxReorderWindow for both height and depth, which tends to limit the negative effects of high register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0d8ccaa5c8db820b5b93f37e51563148c57ba6b8 |
08-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Let shrinkToUses optionally return a list of now dead machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127192 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1973b3e2541f95c87e4acb7e134362ff306ec9ed |
07-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the UselessRegs argument optional in the LiveRangeEdit constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127181 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
egAllocGreedy.cpp
|
be2119e8e2bc7006cfd638a24367acbfda625d16 |
07-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
Move getRegPressureLimit() from TargetLoweringInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127175 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
electionDAG/ScheduleDAGRRList.cpp
|
a9d5c2715b5e8e0be613d8d31e76c35a5bfff07d |
07-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle the special case of registers begin redefined by early-clobber defs. In this case, the value need to be available at the load index instead of the normal use index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127167 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6154f6c9292179fab6346ae8336f2ad790b52028 |
07-Mar-2011 |
Owen Anderson <resistor@mac.com> |
Use the correct LHS type when determining the legalization of a shift's RHS type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
b43034d700004e1fec3ddf177e21ac89478bcc6c |
06-Mar-2011 |
Eric Christopher <echristo@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127131 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
511cab20cb6ef0575c961cbbcb86bb539b538a1c |
06-Mar-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
lib/CodeGen/AsmPrinter/CMakeLists.txt: Fix CMake build, following up to r127099. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127114 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
3c6e49504e9a57a4818750fd2520967f84634eac |
06-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Disable a couple of experimental heuristics to get the best results from the current implementation of -pre-RA-sched=list-ilp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127113 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
b5e16af9ea04cc1f94ca631104e5e6be96546aa1 |
05-Mar-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Some first rudimentary support for ARM EHABI: print exception table in "text mode". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127099 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/ARMException.cpp
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.h
LVMTargetMachine.cpp
|
6dd97471c43805b3febf598d50498a09a02e93f4 |
05-Mar-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add FrameSetup MI flags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127098 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2b0f9e73d8623b21fc14335ef6208deab2629cdf |
05-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Work around a coalescer bug. The coalescer can in very rare cases leave too large live intervals around after rematerializing cheap-as-a-move instructions. Linear scan doesn't really care, but live range splitting gets very confused when a live range is killed by a ghost instruction. I will fix this properly in the coalescer after 2.9 branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127096 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
afc7d235e91a769f74d87bbe745558ed1b692ff7 |
05-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Be explicit with abs(). Visual Studio workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127075 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
5e84e3ccaa555bd48ecca384e93e55abd76fb40a |
05-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Fix for -sched-high-latency-cycles in sched=list-ilp mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
ab2e3e2d7074207e2a4bb15e2913fa83795bb1ca |
05-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Missing comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e0ef509aeb47b396cf1bdc170ca4f468f799719f |
05-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Increased the register pressure limit on x86_64 from 8 to 12 regs. This is the only change in this checkin that may affects the default scheduler. With better register tracking and heuristics, it doesn't make sense to artificially lower the register limit so much. Added -sched-high-latency-cycles and X86InstrInfo::isHighLatencyDef to give the scheduler a way to account for div and sqrt on targets that don't have an itinerary. It is currently defaults to 10 (the actual number doesn't matter much), but only takes effect on non-default schedulers: list-hybrid and list-ilp. Added several heuristics that can be individually disabled for the non-default sched=list-ilp mode. This helps us determine how much better we can do on a given benchmark than the default scheduler. Certain compute intensive loops run much faster in this mode with the right set of heuristics, and it doesn't seem to have much negative impact elsewhere. Not all of the heuristics are needed, but we still need to experiment to decide which should be disabled by default for sched=list-ilp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
874be74179b087be36a6e7869f3aa8b70732aca1 |
05-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rework the global split cost calculation. The global cost is the sum of block frequencies for spill code that must be inserted because preferences weren't met. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127062 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
96dcd95a45968de6cb05864cf91aae33169cf179 |
05-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Compute the constraints for global live range splitting from an interference pattern. This simplifies the code and makes it faster too. The interference patterns are saved for each candidate register. It will be reused for actually executing the split. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127054 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
27ea9999e84dfb1e6c2baf06ec27a92f12753917 |
05-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Teach the register scavenger to take subregs into account when finding a free register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127049 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
0795abd0d44d3e299978c273f52c2dbf4924a6e9 |
04-Mar-2011 |
Eric Christopher <echristo@apple.com> |
Improve readability with some whitespace! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127043 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
8b6a933498299773243a6b4e05513d6dc11e4d32 |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract a method. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127040 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
d17924b1bd0329acb8be2d7dfc5fc4434c24b832 |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Go back to comparing spill weights when deciding if interference can be evicted. It gives better results. Sometimes, a live range can be large and still have high spill weight. Such a range should not be spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127036 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
979869c28e5bc68e2d4d546c7019525177f1d399 |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Renumber slot indexes locally when possible. Initially, slot indexes are quad-spaced. There is room for inserting up to 3 new instructions between the original instructions. When we run out of indexes between two instructions, renumber locally using double-spaced indexes. The original quad-spacing means that we catch up quickly, and we only have to renumber a handful of instructions to get a monotonic sequence. This is much faster than renumbering the whole function as we did before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127023 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
f0cf2d357cf5540f21400e330028045e65e60835 |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Number SlotIndexes uniformly without looking at the number of defs on each instruction. You can't really predict how many indexes will be needed from the number of defs, so let's keep it simple. Also remove an extra empty index that was inserted after each basic block. It was intended for live-out ranges, but it was never used that way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127014 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
10c5f2dad5e11e2502ebc0b9e9ea56e449f42d16 |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SlotIndex statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127007 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
fb69810a2b617d888b6ea7c6a69fee7364fe233b |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak debug output. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127006 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
|
53dfa78e4133f6cdb5d860279adc337ea099ac15 |
04-Mar-2011 |
Duncan Sands <baldrick@free.fr> |
Revert commit 126684 "Use the correct shift amount type". It is only the correct type after type legalization has completed. Before then it may simply not be big enough to hold the shift amount, particularly on x86 which uses a very small type for shifts (this issue broke stuff in the past which is why LegalizeTypes carefully uses a large type for shift amounts). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
a0807f57caed954545661c23607c507f8d5c3d64 |
04-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Minor pre-RA-sched fixes and cleanup. Fix the PendingQueue, then disable it because it's not required for the current schedulers' heuristics. Fix the logic for the unused list-ilp scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
40a42a2ccaaa19a109667ed7abf224cc8733cd9c |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Precompute block frequencies, pow() isn't free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126975 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
pillPlacement.cpp
pillPlacement.h
|
13ba2dab631636e525a44bb259aaea56a860d1c7 |
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use an IndexedMap instead of a DenseMap for the live-out cache. This speeds up updateSSA() so it only accounts for 5% of the live range splitting time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126972 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
e7147dba733c95aec215f5576539b07f11636ff3 |
04-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
There are times when the landing pad won't have a call to 'eh.selector' in it. It's been assumed up til now that it would be in its immediate successor. However, this isn't necessarily the case. It could be in one of its successor's successors. Modify the code to more thoroughly check for an 'eh.selector' call in successors. It only looks at a successor if we get there as a result of an unconditional branch. Testcase ObjC/exceptions-4.m in r126968. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
81c5ef8649e12ac6083307bb149fd7006d9e0501 |
03-Mar-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert r123908; the code in question is completely untested and wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
bbd0f45b4711ee54f1c636a6de7afa766c855327 |
03-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6f676be5ffdf80543e6e6b4d3c9c6b8b8e838fa5 |
03-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Fix thinko in previous check-in. Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126959 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cb3a65755e5161519355e5aad5107915be750597 |
03-Mar-2011 |
Devang Patel <dpatel@apple.com> |
llvm::Function argument count is not a good indicator of how many arugments does the function have at source level. If we need more space, just resize vector conservatively. This vector is only used once per function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126957 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0f657b156f3d0890584bedda7294932a20b2ea16 |
03-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Allow a target to choose whether to prefer the scavenger emergency spill slot be next to the frame pointer or the stack pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126956 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
2c11eb333c37edd5b15c1d05394861fdfc0eab90 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Renumber slot indexes uniformly instead of spacing according to the number of defs. There are probably much larger speedups to be had by renumbering locally instead of looping over the whole function. For now, the greedy register allocator is 25% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126926 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
f37712f48642bcca04c77083c0579e7fe8d4d916 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Represent sentinel slot indexes with a null pointer. This is much faster than using a pointer to a ManagedStatic object accessed with a function call. The greedy register allocator is 5% faster overall just from the SlotIndex default constructor savings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126925 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
a97ff8a027259b1b9e4dbdb5b6f01cc2195a6948 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid comparing invalid slot indexes, and assert that it doesn't happen. The SlotIndex created by the default construction does not represent a position in the function, and it doesn't make sense to compare it to other indexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126924 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
b64f669b666098b8494660fbd08a18610be228d4 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid comparing invalid slot indexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126922 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
36d61863bc83bd2301e0224adc560098b35ec0dc |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cache basic block bounds instead of asking SlotIndexes::getMBBRange all the time. This speeds up the greedy register allocator by 15%. DenseMap is not as fast as one might hope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126921 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
bece06f0c6936527e2b1c72d09f7d3a949af9a47 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change the SplitEditor interface to a single instance can be shared for multiple splits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126912 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
8701768ae2e93e8741106acfa4a29959e1439487 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only run the updateSSA loop when we have actually seen multiple values. When only a single value has been seen, new PHIDefs are never needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126911 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
c29d9b3495a2d87af524ad5c4b62f46c4265d828 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PHI handling in LiveIntervals::shrinkToUses(). We need to wait until we meet a PHIDef in its defining block before resurrecting PHIKills in the predecessors. This should unbreak the llvm-gcc-build-x86_64-darwin10-x-mingw32-x-armeabi bot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126905 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
254c63e33678a64eaadfd658b79ed362c8572147 |
03-Mar-2011 |
Bob Wilson <bob.wilson@apple.com> |
Avoid exponential blow-up when printing DAGs. David Greene changed CannotYetSelect() to print the full DAG including multiple copies of operands reached through different paths in the DAG. Unfortunately this blows up exponentially in some cases. The depth limit of 100 is way too high to prevent this -- I'm seeing a message string of 150MB with a depth of only 40 in one particularly bad case, even though the DAG has less than 200 nodes. Part of the problem is that the printing code is following chain operands, so if you fail to select an operation with a chain, the printer will follow all the chained operations back to the entry node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a2cae58411b36a58f658f9402e8d039add31ae4d |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Turn the Edit member into a pointer so it can change dynamically. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126898 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
4670353a21fbc6e8159a129cda965f256e73a451 |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Transfer simply defined values directly without recomputing liveness and SSA. Values that map to a single new value in a new interval after splitting don't need new PHIDefs, and if the parent value was never rematerialized the live range will be the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126894 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
plitKit.cpp
plitKit.h
|
e2dc0c978e2435dbbb55cb7fca7750034c3e292a |
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract a method. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126893 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
7e33418671728359325f51faf69a14f630ba7f91 |
02-Mar-2011 |
Stuart Hastings <stuart@apple.com> |
Can't introduce floating-point immediate constants after legalization. Radar 9056407. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f7af396c9571e4efe944c5bf739bce667f99556a |
02-Mar-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix some typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126829 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
1c38ba6355a019b7fc3baa0d0ab31e8ba11f7db1 |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move extendRange() into SplitEditor and delete the LiveRangeMap class. Extract the updateSSA() method from the too long extendRange(). LiveOutCache can be shared among all the new intervals since there is at most one of the new ranges live out from each basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126818 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
4b11a70f7a63dc4c051a96a90ed6687eb0595cda |
02-Mar-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Quiet a compiler warning about unused variable 'ExtVNI'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126815 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f06e6c2ba717429936908254d53fa579bc941388 |
02-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Catch more cases where 2-address pass should 3-addressify instructions. rdar://9002648. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126811 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d3fdaeb69a25bcd21914b80f75606e2c2f1b35c8 |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename mapValue to extendRange because that is its function now. Simplify the signature - The return value and ParentVNI are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126809 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
e0ab24532cc11f082d722ab169080322b39afece |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify LiveIntervals::shrinkToUses() a bit by using the new extendInBlock(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126806 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a4d347357ce04d9101130dca0df33cb62ea35a2f |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126805 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9763e2bf39b84f18bd464b0cda61fe1cd98dcaae |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move LiveIntervalMap::extendTo into LiveInterval itself. This method could probably be used by LiveIntervalAnalysis::shrinkToUses, and now it can use extendIntervalEndTo() which coalesces ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126803 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
plitKit.h
|
edb87555e466e781087e18936f427816c952f3e7 |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126801 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
670ccd18ae1ecec3b3c92885d5b64b21859001c4 |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move the value map from LiveIntervalMap to SplitEditor. The value map is currently not used, all values are 'complex mapped' and LiveIntervalMap::mapValue is used to dig them out. This is the first step in a series changes leading to the removal of LiveIntervalMap. Its data structures can be shared among all the live intervals created by a split, so it is wasteful to create a copy for each. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126800 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
3afab9c57e1afb0b7a4a9fe25a74117461bc0e69 |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete dead code. Local live range splitting is better driven by interference. This code was just guessing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126799 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
1841d14eff2b30a28c8fe951e27da13ec63417e2 |
02-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Drop RAGreedy::trySpillInterferences(). This is a waste of time since we already know how to evict all interferences which is a better approach anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126798 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
0478c15d1ecdbc53cf106419629479bcb2a0f4af |
01-Mar-2011 |
Devang Patel <dpatel@apple.com> |
If argument numbering is encoded in metadata then emit arguments' debug info in that order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126794 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
22a1df6bf24c188dd637a0bb2cf9a2648806b6b1 |
01-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of which stage produced a live range, and bypass earlier stages when revisiting. This effectively disables the 'turbo' functionality of the greedy register allocator where all new live ranges created by splitting would be reconsidered as if they were originals. There are two reasons for doing this, 1. It guarantees that the algorithm terminates. Early versions were prone to infinite looping in certain corner cases. 2. It is a 2x speedup. We can skip a lot of unnecessary interference checks that won't lead to good splitting anyway. The problem is that region splitting only gets one shot, so it should probably be changed to target multiple physical registers at once. Local live range splitting is still 'turbo' enabled. It only accounts for a small fraction of compile time, so it is probably not necessary to do anything about that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126781 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
e80338af3f74089ab9fccd9bfb9fd12b8d555a55 |
01-Mar-2011 |
Duncan Sands <baldrick@free.fr> |
Add a few missed unary cases when legalizing vector results. Put some cases in alphabetical order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126745 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
9d40193d79052fb4ddd0f667f0fe47f07922c72a |
01-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2d76c84514216f51526f2be123315f585995d860 |
01-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Generalize the register matching code in DAGISel a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
69732892087e70182d863cc72453be30f31b7793 |
28-Feb-2011 |
Owen Anderson <resistor@mac.com> |
Use the correct shift amount type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126684 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
c6d160bfa22fcb06c80c4c6cfc10ddbe7d8d28e4 |
28-Feb-2011 |
Owen Anderson <resistor@mac.com> |
Clean whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
00141694fa9fd846a051e335c3ec6ba335aca602 |
28-Feb-2011 |
Dan Gohman <gohman@apple.com> |
Delete the GEPSplitter experiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126671 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f222e595c0137b8a9571408257f7000c2fb95473 |
28-Feb-2011 |
Stuart Hastings <stuart@apple.com> |
Support for byval parameters on ARM. Will be enabled by a forthcoming patch to the front-end. Radar 7662569. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126655 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
4671b174806e6c8577125a644aa85999598e4971 |
28-Feb-2011 |
jush <jush.msn@gmail.com> |
Update build script after merge.
ndroid.mk
|
4d03e416be8cf1f0f502118826b7cbaeec0b79b2 |
28-Feb-2011 |
jush <jush.msn@gmail.com> |
Merge LLVM upstream r119309 into honey
|
9c45251e1165a9ed8c351468ebb01b3859ea1df3 |
27-Feb-2011 |
Duncan Sands <baldrick@free.fr> |
Legalize support for fpextend of vector. PR9309. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
fcd96199f5999988226ee710e842df869720be21 |
27-Feb-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix typos in the comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a91f86c49a63f7a37c662c3a9553055bff33a84b |
27-Feb-2011 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Pass the graph to the DOTGraphTraits.getEdgeAttributes(). This follows the interface of getNodeAttributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126562 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
7466678003f38f985d5b2dffd0917643137b11cf |
26-Feb-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add some DAGCombines for (adde 0, 0, glue), which are useful to optimize legalized code for large integer arithmetic. 1. Inform users of ADDEs with two 0 operands that it never sets carry 2. Fold other ADDs or ADDCs into the ADDE if possible It would be neat if we could do the same thing for SETCC+ADD eventually, but we can't do that in target independent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126557 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
08da6365df66abbada3246d01a3d8df869ea9aa3 |
25-Feb-2011 |
Jim Grosbach <grosbach@apple.com> |
Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126526 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
95771afbfd604ad003fa3723cac66c9370fed55d |
25-Feb-2011 |
Owen Anderson <resistor@mac.com> |
Allow targets to specify a the type of the RHS of a shift parameterized on the type of the LHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126518 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
f754f50805fee2bb4d461a9b41107122a22cd6f6 |
25-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Roll out r126425 and r126450 to see if it fixes the failures on the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126488 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3fc831779843bb4091f931b10ad0db1d97f82bd2 |
25-Feb-2011 |
Jim Grosbach <grosbach@apple.com> |
Fix formatting of debug helper string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8fbbdca45c0eb2ef4a434cdef883f5c36516376c |
25-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Set NumSignBits to 1 if KnownZero/KnownOne are being zero extended. In theory it is possible to do better if the high bit is set in either KnownZero/KnownOne, but in practice NumSignBits is always 1 when we are zero extending because nothing is known about that register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
33b554795def5cd50f961721acbb33246226824b |
25-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
We only want to zero extend the existing information if the bit width is actually larger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
57f1e2cee06f9b57995727d786aeb1031c5376bd |
25-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Try harder to get the hint by preferring to evict hint interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126463 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.h
egAllocGreedy.cpp
|
107d366df762c18294dc00f5de916f62672353ff |
25-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak the register allocator priority queue some more. New live ranges are assigned in long -> short order, but live ranges that have been evicted at least once are deferred and assigned in short -> long order. Also disable splitting and spilling for live ranges seen for the first time. The intention is to create a realistic interference pattern from the heavy live ranges before starting splitting and spilling around it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126451 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
4e671437ed9ff171e83fb34a971388c29cbe2704 |
25-Feb-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
f410608271b6318bfc9e26c0d199f185d5a89ccb |
24-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Enable DebugInfo support for COFF object files. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126425 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8c20ec54d98176d31f310e4684d1d7f2ea0639bc |
24-Feb-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Enable support for vector sext and trunc: Limit the folding of any_ext and sext into the load operation to scalars. Limit the active-bits trunc optimization to scalars. Document vector trunc and vector sext in LangRef. Similar to commit 126080 (for enabling zext). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126424 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0412d5b40a3bde02580db6e3050ada0598205716 |
24-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix llvm-gcc bootstrap with gnu ld. The problem was codegen guessing the wrong values and printing .section .eh_frame,"aMS",@progbits,4 It is not clear at all if Codegen should try to guess, MC is the one that should know the default flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126421 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
0eea95d1cdfb0da79defe45a3cf13debc1b4a6d7 |
24-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Do not use DIFactory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126397 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8ca814c4e0a39e1fcac023f0fb014917da07a796 |
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Merge information about the number of zero, one, and sign bits of live-out registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
9b6af8de58140566a0e6567508bf906027422e7c |
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add a getNumSignBits() method to APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126379 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
324a24f6aa5d6752c57c39e1e19f00b8c8a4ceec |
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add a mechanism for invalidating the LiveOutInfo of a PHI, and use it whenever a block is visited before all of its predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a46cd97818ac6fa336b093adecf2006fb041ca1c |
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Track blocks visited in reverse postorder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
e1497b979166765d97c91813a8e830a1ab8fbe12 |
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Refactor the LiveOutInfo interface into a few methods on FunctionLoweringInfo and make the actual map private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
2dbe2850d019d3d25ec760f34de70ef6c9ac5747 |
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Have isel visit blocks in reverse postorder rather than an undefined order. This allows for the information propagated across basic blocks to be merged at phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b2597268c215e2349905c81bfc22f69849b5ab18 |
24-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the same spill slot for all live ranges that descend form the same original register. This avoids some silly stack slot shuffling when both sides of a copy get spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126353 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
3a4ae32ed7bf117a4fdc438fe0b297eec8e9b1ac |
23-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Use DW_FORM_data2 for DW_AT_language and let users use DW_LANG_lo_user=0x8000 to DW_LANG_hi_user=0xffff range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c70f687dce99ea48ca779e6767006f6663781132 |
23-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
It is safe to ignore LastSplitPoint when the variable is not live out. No code will be inserted after the split point anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126319 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
5129bdecd87c518713765acd6998c80f9eef36a2 |
23-Feb-2011 |
Stuart Hastings <stuart@apple.com> |
Omit private_extern declarations of extern symbols; followup to r124468. Patch by Rafael Avila de Espindola! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d2a50734234a80893ad71da90d9f32032c47e000 |
23-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of how many times a live range has been dequeued, and prioritize new ranges. When a large live range is evicted, it will usually be split when it comes around again. By deferring evicted live ranges, the splitting happens at a time when the interference pattern is more realistic. This prevents repeated splitting and evictions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126282 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
417df0129146e299e9fd273becab824887c384e9 |
23-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a bug in determining if there is only a single interfering register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126277 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
98c8141b6d8fcbb9bd258ebcdd4171f55c5a8e9d |
23-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more aggressive about evicting interference. Use interval sizes instead of spill weights to determine if it is legal to evict interference. A smaller interval can evict interference if all interfering live ranges are larger. Allow multiple interferences to be evicted as along as they are all larger than the live range being allocated. Spill weights are still used to select the preferred eviction candidate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126276 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
98d9648de7d571b2e6d139b65961a70d1833b0d7 |
23-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change the RAGreedy register assignment order so large live ranges are allocated first. This is based on the observation that long live ranges are more difficult to allocate, so there is a better chance of solving the puzzle by handling the big pieces first. The allocator will evict and split long alive ranges when they get in the way. RABasic is still using spill weights for its priority queue, so the interface to the queue has been virtualized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126259 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
75b5409d3a9eb9b7dadcd13fff69590df94122dd |
23-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
80 Col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126258 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
5567869637383969dced0b84dbd19da12682df6b |
22-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
MachineConstantPoolValues are not uniqued, so they need to be freed if they share entries. Add a DenseSet to MachineConstantPool for the MachineCPVs that it owns. This will hopefully fix the MC/ARM/elf-reloc-01.ll failure on the leaks bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126218 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
fcfcdbc86a56ea97cdb87fe662311df778e85fbb |
22-Feb-2011 |
Andrew Trick <atrick@apple.com> |
VirtRegRewriter assertion fix. Apparently it's ok for multiple operands to "kill" the same register. Fixes PR9237. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126190 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
4ecc82e592745d6995db83ea158b3c15011a84f8 |
22-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Roll out r126169 and r126170 in an attempt to fix the selfhost bot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126185 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
92efda7e9183ae16bde7a3ad96b682e779d89cf3 |
22-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Merge information about the number of zero, one, and sign bits of live-out registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
63a8dae64dea89ae4a6f93ee17cf3fbbc2815084 |
22-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Have isel visit blocks in reverse postorder rather than an undefined order. This allows for the information propagated across basic blocks to be merged at phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f8597eb0d94c66c8b4f3dc3b1ccf175417707776 |
22-Feb-2011 |
Eric Christopher <echristo@apple.com> |
Revert r125960, it's breaking darwin10 bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126163 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
cf13af6fdee302c2cc8628ae95b40b2bccfdde4b |
22-Feb-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add more debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126158 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
68e6beeccc0b9ac2e8d3687a8a5b7d4b172edca1 |
22-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns." In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body. This requires some coordination with debugger to get this working. - The debugger needs to be aware of prolog_end attribute attached with line table entries. - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126155 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineRegisterInfo.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
06c0f25499fd502668ca720b0fea4a4dfe6eb44a |
22-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SplitKit::isOriginalEndpoint and use it to force live range splitting to terminate. An original endpoint is an instruction that killed or defined the original live range before any live ranges were split. When splitting global live ranges, avoid creating local live ranges without any original endpoints. We may still create global live ranges without original endpoints, but such a range won't be split again, and live range splitting still terminates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126151 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
6ad82d81cc3061a000799ad8751f018c1301906b |
21-Feb-2011 |
Stuart Hastings <stuart@apple.com> |
Fix to correctly support attribute((section("__DATA, __common"))). Radar 9012638. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126127 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
ed9b934f65d82324506f03e2db2834682c7a8914 |
20-Feb-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix 9267; Add vector zext support. The DAGCombiner folds the zext into complex load instructions. This patch prevents this optimization on vectors since none of the supported targets knows how to perform load+vector_zext in one instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126080 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5bc9fec7ec6db25247dbcc2d463209a22f7da6f0 |
19-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Do not emit empty DW_TAG_lexical_block DIEs. In one test case, size of debug info reduced by almost 7%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126009 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1b847deb26b52051de39f4cbecd224c9fbd0d1c2 |
19-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Give SplitAnalysis a VRM member to access VirtRegMap::getOriginal(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126005 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
0eeca440469e23f2db2bea3d7b136f0f95f6ff1d |
19-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Missed member rename for naming convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126003 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
fd38917d4d040759d75e9d1f4e2c885fb40ba2d7 |
19-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
This method belonged in VirtRegMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126002 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
irtRegMap.h
|
a2ebf60ef2c434428af7f810b13327ab50245a67 |
19-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Separate timers for local and global splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126001 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a778f5c798fc78ca15f813c362cdcdcc1eb86266 |
18-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. This time with a fix that avoids using invalidated DenseMap iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125984 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e324f6e05ff7a157347edb48203db0250805f748 |
18-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use VirtRegMap's Virt2SplitMap to keep track of the original live range before splitting. All new virtual registers created for spilling or splitting point back to their original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125980 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
iveRangeEdit.h
irtRegMap.h
|
6d857ca4d71548f5cdb57b106cc1a12fc2c93e9d |
18-Feb-2011 |
Oscar Fuentes <ofv@wanadoo.es> |
Move library stuff out of the toplevel CMakeLists.txt file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125968 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
ba05c01dabc40373760a20c874103fc58d4377f0 |
18-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add VirtRegMap::rewrite() and use it in the new register allocators. The rewriter works almost identically to -rewriter=trivial, except it also eliminates any identity copies. This makes the new register allocators independent of VirtRegRewriter.cpp which will be going away at the same time as RegAllocLinearScan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125967 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
irtRegMap.cpp
irtRegMap.h
|
5028249fab0e0a5a2f033dd5ff2d4d396d758de1 |
18-Feb-2011 |
Bill Wendling <isanbard@gmail.com> |
Reapply r114997 now that the buildbots have been updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125960 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
1646953538d5faf7baf49e16bd0590f822c231de |
18-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Roll out r125794 to help diagnose the llvm-gcc-i386-linux-selfhost failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
febb0bd0b9b75923dea4c34f22be7e4c7b6b501e |
18-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trim debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125802 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
pillPlacement.cpp
|
a4defc00ebf30f136ea96084b6a10c57441de6e7 |
18-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0db841f9c2b9a25fb5ecb36e350d3a802c35654c |
17-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add basic register allocator statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125789 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
egAllocGreedy.cpp
|
034a80d065358b412cdd270e08fb6f1986e65e50 |
17-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Split local live ranges. A local live range is live in a single basic block. If such a range fails to allocate, try to find a sub-range that would get a larger spill weight than its interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125764 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.h
|
fbd53f79f5d475d103fba9303a4aa7e88567dd1a |
17-Feb-2011 |
Duncan Sands <baldrick@free.fr> |
Fix wrong logic in promotion of signed mul-with-overflow (I pointed this out at the time but presumably my email got lost). Examples where the previous logic got it wrong: (1) a signed i8 multiply of 64 by 2 overflows, but the high part is zero; (2) a signed i8 multiple of -128 by 2 overflows, but the high part is all ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
2598b1f4ac3d8242bb3821414f86e388b24c6046 |
17-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Switch to SmallVector in SimpleRegisterCoalescing for a 3.5% speedup on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125728 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
61a733434d9ee6518b8ddb116594bef7206cb627 |
17-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Adjust indenting of arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125727 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
688521ca6f936cb51549b0d505aa89746561263b |
17-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Return Changed from SplitPHIEdges rather than always returning true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125726 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
a901129169194881a78b7fd8953e09f55b846d10 |
16-Feb-2011 |
Stuart Hastings <stuart@apple.com> |
Swap VT and DebugLoc operands of getExtLoad() for consistency with other getNode() methods. Radar 9002173. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
7bccf6abdc5de989cdb3872369480825ebc9c3a9 |
16-Feb-2011 |
Eric Christopher <echristo@apple.com> |
Refactor zero folding slightly. Clean up todo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125651 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
169e1552e748348b033fb6817df4bffc345e5583 |
16-Feb-2011 |
Eric Christopher <echristo@apple.com> |
The change for PR9190 wasn't quite right. We need to avoid making the transformation if we can't legally create a build vector of the correct type. Check that we can make the transformation first, and add a TODO to refactor this code with similar cases. Fixes: PR9223 and rdar://9000350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e32effb02f28025bcbb1eb6b673f46f8d072627b |
16-Feb-2011 |
Evan Cheng <evan.cheng@apple.com> |
Remove a duplicated check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125625 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
d3526eab46b96509d3195cf3367811af67b6d2c7 |
15-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Ignore DBG_VALUE machine instructions while constructing instruction ranges based on location info. Machine instruction range consisting of only DBG_VALUE MIs only contributes consecutive labels in assembly output, which is harmless, and empty scope entry in DebugInfo, which confuses debugger tools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ab4c366274a582dd8146b2820c6b999cad5fce36 |
15-Feb-2011 |
Duncan Sands <baldrick@free.fr> |
Spelling fix: consequtive -> consecutive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
326d976eb2b03d1f2b7537d7b90dff264fd84378 |
15-Feb-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix thinko. Cmp can be the first instruction in a MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125552 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
2ca5c8644e6c35b3a7910a576ed89cddb7b82c3b |
15-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
convert ConstantVector::get to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
eb9f040f0d07e2fa9b3b5ef46d5ee32511d28811 |
15-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move more fragments of spill weight calculation into CalcSpillWeights.h Simplify the spill weight calculation a bit by bypassing getApproximateInstructionCount() and using LiveInterval::getSize() directly. This changes the computed spill weights, but only by a constant factor in each function. It should not affect how spill weights compare against each other, and so it shouldn't affect code generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125530 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveIntervalAnalysis.cpp
|
5d618ef7f1ad005fc6912f3e9a08c044b082e47f |
14-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Switch llvm to using comdats. For now always use groups with a single section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125526 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
cf75ab597514effb6f8e915f05d74f45debb89ec |
14-Feb-2011 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR8854. Track inserted copies to avoid read before write. Sorry, it's hard to reduce a sensible small test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125523 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
75831904220042260c4faece8507a2807acba47f |
14-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
revert my ConstantVector patch, it seems to have made the llvm-gcc builders unhappy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9de3a0701a06505aeab824fdc88f361a5018e473 |
14-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move broken HasCommonSymbols to ELFWriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125490 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
283c8caccd093f8e1d4f0bdd01ac240b4edbd20a |
14-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Switch ConstantVector::get to use ArrayRef instead of a pointer+size idiom. Change various clients to simplify their code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
593051b4e2c5fb88fa4acbe3bec92581bef554c0 |
14-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
fix PR9210 by implementing some type legalization logic for vector fp conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
463b3c2a9974acf7586d1e6a4416aa7cc004ff0e |
14-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
fix two comment thinkos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1a73cedca0a83d64149ee03577991a196338a9c5 |
14-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add some statistics to StrongPHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125477 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
117be03cc6cfb91d385938ed94a3cf877bd8c12a |
14-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add a statistic to PHIElimination tracking the number of critical edges split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125476 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
0a9481f44fe4fc76e59109992940a76b2a3f9b3b |
13-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Enhance ComputeMaskedBits to know that aligned frameindexes have their low bits set to zero. This allows us to optimize out explicit stack alignment code like in stack-align.ll:test4 when it is redundant. Doing this causes the code generator to start turning FI+cst into FI|cst all over the place, which is general goodness (that is the canonical form) except that various pieces of the code generator don't handle OR aggressively. Fix this by introducing a new SelectionDAG::isBaseWithConstantOffset predicate, and using it in places that are looking for ADD(X,CST). The ARM backend in particular was missing a lot of addressing mode folding opportunities around OR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125470 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
e075118489baf15a7cea2e7f155b4799b93d6d02 |
13-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Revisit my fix for PR9028: the issue is that DAGCombine was generating i8 shift amounts for things like i1024 types. Add an assert in getNode to prevent this from occuring in the future, fix the buggy transformation, revert my previous patch, and document this gotcha in ISDOpcodes.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
915eeb488786379250808d47668c43e010efe566 |
13-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
when legalizing extremely wide shifts, make sure that the shift amounts are in a suitably wide type so that we don't generate out of range constant shift amounts. This fixes PR9028. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d3027738856d57ee22930deca0c7977fdc13e633 |
13-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
fix visitShift to properly zero extend the shift amount if the provided operand is narrower than the shift register. Doing an anyext provides undefined bits in the top part of the register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
609d54ee1e715af57e499c2cd10ff5a9ba89b9f2 |
12-Feb-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
A fix for 9165. The DAGCombiner created illegal BUILD_VECTOR operations. The patch added a check that either illegal operations are allowed or that the created operation is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f94fdb6f571c2cdf8390ead558ba40b267df1172 |
11-Feb-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
SimplifySelectOps can only handle selects with a scalar condition. Add a check that the condition is not a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5a4552ca4256461f402f9d7d2511e77c79316907 |
11-Feb-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix #9190 The bug happens when the DAGCombiner attempts to optimize one of the patterns of the SUB opcode. It tries to create a zero of type v2i64. This type is legal on 32bit machines, but the initializer of this vector (i64) is target dependent. Currently, the initializer attempts to create an i64 zero constant, which fails. Added a flag to tell the DAGCombiner to create a legal zero, if we require that the pass would generate legal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4d96c638af0458f4de637998da942a5e166d6ea5 |
10-Feb-2011 |
Evan Cheng <evan.cheng@apple.com> |
After 3-addressifying a two-address instruction, update the register maps; add a missing check when considering whether it's profitable to commute. rdar://8977508. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125259 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4f5c9d206139f946ae4bb5ee7e3ddb1714057cdb |
10-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete unused code for analyzing and splitting around loops. Loop splitting is better handled by the more generic global region splitting based on the edge bundle graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125243 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
23cd57c29926189ad9d7b2b208024645870884ad |
10-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify using the new leaveIntvBefore() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125238 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
9b057771ba22441b8d312404204433477b4be657 |
10-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the LiveBLocks array for SplitEditor::splitSingleBlocks() as well. This fixes a bug where splitSingleBlocks() could split a live range after a terminator instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125237 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
35edc42f9830af1a6ebf215d7635b04547e8e624 |
09-Feb-2011 |
Mikhail Glushenkov <foldr@codedgers.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125232 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.h
|
f0ac26c51173a9a1d6e5b5794107dccc4c5b5792 |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move calcLiveBlockInfo() and the BlockInfo struct into SplitAnalysis. No functional changes intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125231 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
a372d16f92392bb4cd4184783466f0300a51a9ae |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ignore <undef> uses when analyzing and rewriting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125226 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
e5005d0062fa4c8f5707428f7b8ad8484a002d83 |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert on bad jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125225 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4f6364fd3f2af74330b1bc4e545173af074707a5 |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add tags to live interval unions to avoid using stale queries. The tag is updated whenever the live interval union is changed, and it is tested before using cached information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125224 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
2710638db2eb84cd7eefb8bb9a1b7e5c49413d45 |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Evict a lighter single interference before attempting to split a live range. Registers are not allocated strictly in spill weight order when live range splitting and spilling has created new shorter intervals with higher spill weights. When one of the new heavy intervals conflicts with a single lighter interval, simply evict the old interval instead of trying to split the heavy one. The lighter interval is a better candidate for splitting, it has a smaller use density. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125151 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
c3dca3f9d4a049102fa985aedbc65e53f4cf6c0d |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Set an allocation hint when rematting before a COPY. This almost guarantees that the COPY will be coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125140 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
8a2bbdeee24b40da6187199658646d04329c139e |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix one more case of splitting after the last split point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125137 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a50c539b7a9e74597da34bfaea5429a48481f18b |
09-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reorganize interference code to check LastSplitPoint first. The last split point can be anywhere in the block, so it interferes with the strictly monotonic requirements of advanceTo(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125132 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
d08d77318a095c5f85c077899caa3594a7767113 |
08-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also handle the situation where an indirect branch is the first (and last) instruction in a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125116 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
8a61da8a689ee95874c833af4c7aa965fab5c0a9 |
08-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveIntervals::addKillFlags() to recompute kill flags after register allocation. This is a lot easier than trying to get kill flags right during live range splitting and rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125113 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocGreedy.cpp
|
124e423ccec42e54a8b069e1c2ef9adfaa1e553a |
08-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trim debug spew git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125109 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
7b1f498a7648b790929a4f97fd82228aa7ac7bea |
08-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid folding a load instruction into an instruction that redefines the register. The target hook doesn't know how to do that. (Neither do I). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125108 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
5c716bdccce2fa504e1aa0b67226165d181d2459 |
08-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SplitEditor::overlapIntv() to create small ranges where both registers are live. If a live range is used by a terminator instruction, and that live range needs to leave the block on the stack or in a different register, it can be necessary to have both sides of the split live at the terminator instruction. Example: %vreg2 = COPY %vreg1 JMP %vreg1 Becomes after spilling %vreg2: SPILL %vreg1 JMP %vreg1 The spill doesn't kill the register as is normally the case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125102 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
01cb34b0111a1e8792f327b56c51bc3bbaf83aca |
08-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125101 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
bc4bd92d52be2f6707a8c311873ded27a8f2481f |
08-Feb-2011 |
Andrew Trick <atrick@apple.com> |
Fix PostRA antidependence breaker. Avoid using the same register for two def operands or and earlyclobber def and use operand. This fixes PR8986 and improves on the prior fix for rdar://problem/8959122. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125089 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
11513e5d1e1b40e6113668e4b4357596f33fa6c6 |
08-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveIntervals::shrinkToUses(). After uses of a live range are removed, recompute the live range to only cover the remaining uses. This is necessary after rematerializing the value before some (but not all) uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125058 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
480d1e3a67751c9c809e9ce047ad7e4b23bab9f1 |
07-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Remove comment about an argument that was removed couple of years ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
278ba1f9b6c14ddf79040979c88b978d41f8c036 |
05-Feb-2011 |
Andrew Trick <atrick@apple.com> |
Fix an anti-dep breaker corner case. <rdar://problem/8959122> illegal register operands for UMULL instruction in cfrac nightly test I'm stil working on a unit test, but the case is: rx = movcc rx, r3 r2 = ldr r2, r3 = umull r2, r2 The anti-dep breaker should not convert this into an illegal instruction: r2, r2 = umull git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124932 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
fe3f99f95c7c9ceaac3ceebbea31e40cfbc157e3 |
05-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more strict about the first/last interference-free use. If the interference overlaps the instruction, we cannot separate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124918 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
de71095a1a930eee81696d5770cdce46d3e19a61 |
05-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add assertions to verify that the new interval is clear of the interference. If these inequalities don't hold, we are creating a live range split that won't allocate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124917 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
45e53975f81164d6e5e6322e83dd19030b7d3c88 |
05-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Apparently, it is possible for a block with a landing pad successor to have no calls. In that case we simply ignore the landing pad and split live ranges before the first terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124907 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6c3ea9012e40a95d45592a15c63895d09ece5052 |
04-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Merge .debug_loc entries whenever possible to reduce debug_loc size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124904 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c57ef561423f1ac7f2db5b1840d5681f18a4c0c8 |
04-Feb-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Mark that the return is using EAX so that we don't use it for some other purpose. Fixes PR9080! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124903 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
63935420ef1c323b9d9276eadc0ab74ee86a25b5 |
04-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more accurate about live range splitting at the end of blocks. If interference reaches the last split point, it is effectively live out and should be marked as 'MustSpill'. This can make a difference when the terminator uses a register. There is no way that register can be reused in the outgoing CFG bundle, even if it isn't live out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124900 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
cb6404711b7fe6f583480adce8d7e9d5e4b99ae6 |
04-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveIntervals::getLastSplitPoint(). A live range cannot be split everywhere in a basic block. A split must go before the first terminator, and if the variable is live into a landing pad, the split must happen before the call that can throw. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124894 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
plitKit.cpp
|
9b3d24bf3d4663bfaf98eb97a94081e07a3f62da |
04-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that one of the ranges produced by region splitting is allocatable. We should not be attempting a region split if it won't lead to at least one directly allocatable interval. That could cause infinite splitting loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124893 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
92e946630d5f9bb092853b93501387dd216899b9 |
04-Feb-2011 |
Andrew Trick <atrick@apple.com> |
Introducing a new method of tracking register pressure. We can't precisely track pressure on a selection DAG, but we can at least keep it balanced. This design accounts for various interesting aspects of selection DAGS: register and subregister copies, glued nodes, dead nodes, unused registers, etc. Added SUnit::NumRegDefsLeft and ScheduleDAGSDNodes::RegDefIter. Note: I disabled PrescheduleNodesWithMultipleUses when register pressure is enabled, based on no evidence other than I don't think it makes sense to have both enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124853 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
f827cd717b63fd3f1d9ad16e69087c65e9af8c82 |
04-Feb-2011 |
Devang Patel <dpatel@apple.com> |
DebugLoc associated with a machine instruction is used to emit location entries. DebugLoc associated with a DBG_VALUE is used to identify lexical scope of the variable. After register allocation, while inserting DBG_VALUE remember original debug location for the first instruction and reuse it, otherwise dwarf writer may be mislead in identifying the variable's scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124845 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
c8b90e22a8f2987126a7e2e841adc8db9776521c |
04-Feb-2011 |
Evan Cheng <evan.cheng@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124843 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
9ecd1e71973f555cab00ee862b6f509d0126025a |
04-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Skip unused values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124842 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
45139874a776f4fad581fc3ef81ab77b34b4f593 |
04-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also compute interference intervals for blocks with no uses. When the live range is live through a block that doesn't use the register, but that has interference, region splitting wants to split at the top and bottom of the basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124839 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a7b586ba7410dd2dddbfa82a6a57485985747f2c |
04-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify kill flags conservatively. Allow a live range to end with a kill flag, but don't allow a kill flag that doesn't end the live range. This makes the machine code verifier more useful during register allocation when kill flag computation is deferred. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124838 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
cd5af07c4573c6b1270d6737e76ef3219091a733 |
04-Feb-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
2dfbb3e9125aa0a66feab7a7638815b57da85968 |
03-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ensure that the computed interference intervals actually overlap their basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124815 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
97af98678cc943050cf23951a66c89e922cf21c4 |
03-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak debug output from SlotIndexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124814 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
c50f077b065a328a7ce21d97cfc0a21e5059f735 |
03-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add debug output and asserts to the phi-connecting code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124813 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
08eb8dd616bb4d4213f2ebda1de56b45bb88b6d9 |
03-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix coloring bug when mapping values in the middle of a live-through block. If the found value is not live-through the block, we should only add liveness up to the requested slot index. When the value is live-through, the whole block should be colored. Bug found by SSA verification in the machine code verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124812 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
207c868c9210663d401b7f5ce5cae7c3e0943849 |
03-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Return live range end points from SplitEditor::enter*/leave*. These end points come from the inserted copies, and can be passed directly to useIntv. This simplifies the coloring code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124799 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
9590c7fbca2a3c18d0000676b2a6336f6458ed42 |
03-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Silence an MSVC warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124798 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
|
0f43811903f10394f7088f4634c0b4f9668cbac0 |
03-Feb-2011 |
Eric Christopher <echristo@apple.com> |
Reapply this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124779 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
463a2977b1d9e6679f859db9f32e9e783b075c10 |
03-Feb-2011 |
Eric Christopher <echristo@apple.com> |
Temporarily revert 124765 in an attempt to find the cycle breaking bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124778 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
2cd21119593becfa1962cfaca0319fd67913f545 |
03-Feb-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Defer SplitKit value mapping until all defs are available. The greedy register allocator revealed some problems with the value mapping in SplitKit. We would sometimes start mapping values before all defs were known, and that could change a value from a simple 1-1 mapping to a multi-def mapping that requires ssa update. The new approach collects all defs and register assignments first without filling in any live intervals. Only when finish() is called, do we compute liveness and mapped values. At this time we know with certainty which values map to multiple values in a split range. This also has the advantage that we can compute live ranges based on the remaining uses after rematerializing at split points. The current implementation has many opportunities for compile time optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124765 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
egAllocGreedy.cpp
plitKit.cpp
plitKit.h
|
e7d93877c6e7029d27bfd1c137fceb472f81f390 |
02-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Add support to describe template value parameter in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124755 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
7e2cb116556e1153401cd6b94d0f51db978f6902 |
02-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Add support to describe template parameter type in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124752 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
31959b19a72608051888160514977875a8027dfc |
02-Feb-2011 |
Evan Cheng <evan.cheng@apple.com> |
Given a pair of floating point load and store, if there are no other uses of the load, then it may be legal to transform the load and store to integer load and store of the same width. This is done if the target specified the transformation as profitable. e.g. On arm, this can transform: vldr.32 s0, [] vstr.32 s0, [] to ldr r12, [] str r12, [] rdar://8944252 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124708 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9a14a362d0388da3b7a9b866d23f09f6fe080a29 |
01-Feb-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Take Bill Wendling's suggestion for structuring a couple of asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e9a7ea68653689966417443b8ac2528c1d9d3ccf |
31-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Keep track of incoming argument's location while emitting LiveIns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124611 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineRegisterInfo.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
4e3740ee6ddfc5895061245364de21e3f73517fe |
31-Jan-2011 |
Richard Osborne <richard@xmos.com> |
Fix bug where ReduceLoadWidth was creating illegal ZEXTLOAD instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ed299f6fa9f31c6063b9e187e849bca1ae284d12 |
30-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Clarify the LSDASection NULL check git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124569 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
8352062e52eed6e50786fdb89f5e601fdcbe0d90 |
30-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Respect the -tail-dup-size command line option even when optimizing for size. This is similar to the -unroll-threshold option. There should be no change in behavior when -tail-dup-size is not explicit on the llc command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124564 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
9b108a338d544a6baf2ff087055326e301e6815d |
30-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2c94b4201beccbd061fd679ea7e9db1381fe8357 |
29-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add the missing sub identity "A-(A-B) -> B" to DAGCombine. This happens e.g. for code like "X - X%10" where we lower the modulo operation to a series of multiplies and shifts that are then subtracted from X, leading to this missed optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c3f507f98a0747bd256e1c13536060b6fc5c4b62 |
29-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply r124518 with fix. Watch out for invalidated iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124526 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
b0a42fdb36b575a8ad939ca9624105908aeedf51 |
29-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert r124518. It broke Linux self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124522 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
5e6940788fb2f8cf3ce4219d3ac0f78317f54696 |
29-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124518 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
1b5c0cb71dd9d529a14cedb4bd89d544bf7e61c3 |
28-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert r124462. There are a few big regressions that I need to fix first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124478 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
ed4efd3358c69dc73eea174ac4b252402d17f471 |
28-Jan-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix build with stdcxx by using llvm::next. Patch by Joerg Sonnenberger! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1ffb5336999b327384752b0f60ad0c4cb4cb8946 |
28-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Print the visibility of declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124468 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
40f64cb0de40802ddd2f928b62e9564e1e721ff3 |
28-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Stop simplifycfg from duplicating "ret" instructions into unconditional branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124462 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
e787ddb5105b2c355c166c395ddbeb2047cf3136 |
27-Jan-2011 |
Andrew Trick <atrick@apple.com> |
Remove a temporary workaround for a lencod miscompile. Depends on the fix in r124442. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
5d7ab8503b130f142902a043556b6b1febd33744 |
27-Jan-2011 |
Andrew Trick <atrick@apple.com> |
VirtRegRewriter fix: update kill flags, which are used by the scavenger. rdar://problem/8893967: JM/lencod miscompile at -arch armv7 -mthumb -O3 Added ResurrectKill to remove kill flags after we decide to reused a physical register. And (hopefully) ensure that we call it in all the right places. Sorry, I'm not checking in a unit test given that it's a miscompile I can't reproduce easily with a toy example. Failures in the rewriter depend on a series of heuristic decisions maked during one of the many upstream phases in codegen. This case would require coercing regalloc to generate a couple of rematerialzations in a way that causes the scavenger to reuse the same register at just the wrong point. The general way to test this is to implement kill flags verification. Then we could have a simple, robust compile-only unit test. That would be worth doing if the whole pass was not about to disappear. At this point we focus verification work on the next generation of regalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124442 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
7e7fc1052afa9a7b5bcc94d50bc5f0403a6e7470 |
27-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Speculatively revert r124380. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
bfae5f312c5a726687b4f2201681fb5519568e14 |
27-Jan-2011 |
Devang Patel <dpatel@apple.com> |
While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes. Take 2. This includes fix for dragonegg crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
adf9c8b0e7e7365a172e3c452dfe108f31d9a387 |
27-Jan-2011 |
Bob Wilson <bob.wilson@apple.com> |
Avoid modifying the OneClassForEachPhysReg map while iterating over it. Linear scan regalloc is currently assuming that any register aliased with a member of a regclass must also be in at least one regclass. That is not always true. For example, for X86, RIP is in a regclass but IP is not. If you're unlucky, this can cause a crash by invalidating the iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124365 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
4789aca85eb783865c0a763352a7585fa6f65248 |
27-Jan-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Try harder to not have unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a8af137847c07ae01a7bd7a3e7e11cbd449e823c |
27-Jan-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Opt-mode -Wunused-variable cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
39078a8bde256ee22e981713a4d2ff8235dc7706 |
27-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Reapply 124301 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
6b9a293a0c7d86c07d704da5facb34cc03ce1d02 |
26-Jan-2011 |
Bill Wendling <isanbard@gmail.com> |
Initialize variable to get rid of clang warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4a95c199779037d1dc60db8f7b883e28c794b001 |
26-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Revert 124301. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124327 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
c47fd9fbf5d5179363eadde3c3ef57f8094c19e3 |
26-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Revert r124302 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cfe33c46aa50f04adb0431243e7d25f79b719ac6 |
26-Jan-2011 |
David Greene <greened@obbligato.org> |
[AVX] Add INSERT_SUBVECTOR and support it on x86. This provides a default implementation for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VINSERTF128 if AVX is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
d2c9793bdf3fe621eee9330f9977be256301b5bf |
26-Jan-2011 |
Devang Patel <dpatel@apple.com> |
While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124302 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6f121fdede373a84f20785d7d30077667528dcdc |
26-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Process valid SDDbgValues even if the node does not have any order assigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124301 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
55d20e8ff1e458f177302386d14f1a4dbdd86028 |
26-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
91585098eff1f0acdefa2667e091742b60dcbf15 |
26-Jan-2011 |
David Greene <greened@obbligato.org> |
[AVX] Support EXTRACT_SUBVECTOR on x86. This provides a default implementation of EXTRACT_SUBVECTOR for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VEXTRACTF128 if AVX is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124292 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
078628465b73348b5608ec6aa2d7181679543903 |
26-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename member variables to follow the rest of LLVM. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124257 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
a2e868d34ccfed46310e98338ded6a74b2b01308 |
26-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Provide an interface to transfer SDDbgValue from one SDNode to another. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAG.cpp
|
8f31428119b842875ed50996708164b56f3c6a4e |
25-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3a00ffacdc49cb71baca7a17de51ff55fca119b7 |
25-Jan-2011 |
Devang Patel <dpatel@apple.com> |
This assertion is too restrictive, it does not apply for dangling dbg value nodes (nodes where dbg.value intrinsic preceds use of the value). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124202 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
d4e09787526f105f16c11f091ef6ef67c82da5d3 |
24-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Support printing exception section into the current one. This is the case when LSDASection is blank git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124150 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a3ee3ef71b025de982cdda123bbfed44278b011a |
24-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Speculatively revert r124138. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
224a180d11891a80b4f00bdec77e7f5f465690ac |
24-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124138 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c48d50f9c036b48826e75df125d80af596980e00 |
24-Jan-2011 |
Andrew Trick <atrick@apple.com> |
Temporarily workaround JM/lencod miscompile (SIGSEGV). rdar://problem/8893967 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
96aa78c8c5ef1a5f268539c9edc86569b436d573 |
23-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for the --noexecstack option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124077 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
584520e8e2c1f8cc04bc8dd4dc4ea6c390627317 |
23-Jan-2011 |
Ted Kremenek <kremenek@apple.com> |
Null initialize a few variables flagged by clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124073 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0cf5e3d51dd455a174a8f00cfa6b63c11e535434 |
23-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Delay the creation of eh_frame so that the user can change the defaults. Add support for SHT_X86_64_UNWIND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124059 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
1c13026e8f94bd332c0979baa9c777da99d48736 |
23-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove more duplicated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124056 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
c85dca66e68c9fa6ffa8471c64113b12d8d94fb1 |
23-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove duplicated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124054 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
d1dace8aea073716daf0055ad07fde1164b2a472 |
21-Jan-2011 |
Andrew Trick <atrick@apple.com> |
Enable support for precise scheduling of the instruction selection DAG. Disable using "-disable-sched-cycles". For ARM, this enables a framework for modeling the cpu pipeline and counting stalls. It also activates several heuristics to drive scheduling based on the model. Scheduling is inherently imprecise at this stage, and until spilling is improved it may defeat attempts to schedule. However, this framework provides greater control over tuning codegen. Although the flag is not target-specific, it should have very little affect on the default scheduler used by x86. The only two changes that affect x86 are: - scheduling a high-latency operation bumps the current cycle so independent operations can have their latency covered. i.e. two independent 4 cycle operations can produce results in 4 cycles, not 8 cycles. - Two operations with equal register pressure impact and no latency-based stalls on their uses will be prioritized by depth before height (height is irrelevant if no stalls occur in the schedule below this point). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c8bfd1d78ff9a307d1d4cb57cce4549b538e60f4 |
21-Jan-2011 |
Andrew Trick <atrick@apple.com> |
Convert -enable-sched-cycles and -enable-sched-hazard to -disable flags. They are still not enable in this revision. Added TargetInstrInfo::isZeroCost() to fix a fundamental problem with the scheduler's model of operand latency in the selection DAG. Generalized unit tests to work with sched-cycles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123969 91177308-0d34-0410-b5e6-96231b3b80d8
coreboardHazardRecognizer.cpp
electionDAG/ScheduleDAGRRList.cpp
argetInstrInfoImpl.cpp
|
c0de99571297720a37ae405c77fb2ef4aaf00ccd |
20-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
SplitKit requires that all defs are in place before calling useIntv(). The value mapping gets confused about which original values have multiple new definitions so they may need phi insertions. This could probably be simplified by letting enterIntvBefore() take a live range to be added following the instruction. As long as the range stays inside the same basic block, value mapping shouldn't be a problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123926 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
d7ca57705e7ccc19245b8b3d6fc271562366bf92 |
20-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveIntervalMap::dumpCache() to print out the cache used by the ssa update algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123925 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
6214373fe980a988c887322c7453126821713217 |
20-Jan-2011 |
Eric Christopher <echristo@apple.com> |
My editor's indent went crazy. Fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123909 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
02050986d96d1880ec3015cb97c41d1dbad865d6 |
20-Jan-2011 |
Eric Christopher <echristo@apple.com> |
Expand invalid return values for umulo and smulo. Handle these similarly to add/sub by doing the normal operation and then checking for overflow afterwards. This generally relies on the DAG handling the later invalid operations as well. Fixes the 64-bit part of rdar://8622122 and rdar://8774702. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123908 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
9fe2009956fc40f3aea46fb3c38dcfb61c4aca46 |
20-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sorry, several patches in one. TargetInstrInfo: Change produceSameValue() to take MachineRegisterInfo as an optional argument. When in SSA form, targets can use it to make more aggressive equality analysis. Machine LICM: 1. Eliminate isLoadFromConstantMemory, use MI.isInvariantLoad instead. 2. Fix a bug which prevent CSE of instructions which are not re-materializable. 3. Use improved form of produceSameValue. ARM: 1. Teach ARM produceSameValue to look pass some PIC labels. 2. Look for operands from different loads of different constant pool entries which have same values. 3. Re-implement PIC GA materialization using movw + movt. Combine the pair with a "add pc" or "ldr [pc]" to form pseudo instructions. This makes it possible to re-materialize the instruction, allow machine LICM to hoist the set of instructions out of the loop and make it possible to CSE them. It's a bit hacky, but it significantly improve code quality. 4. Some minor bug fixes as well. With the fixes, using movw + movt to materialize GAs significantly outperform the load from constantpool method. 186.crafty and 255.vortex improved > 20%, 254.gap and 176.gcc ~10%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123905 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
argetInstrInfoImpl.cpp
|
0bc308600b0069f07ba722b472c68588573ebd28 |
20-Jan-2011 |
Andrew Trick <atrick@apple.com> |
Selection DAG scheduler register pressure heuristic fixes. Added a check for already live regs before claiming HighRegPressure. Fixed a few cases of checking the wrong number of successors. Added some tracing until these heuristics are better understood. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123892 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
fd50d76ff854e8e60aa22b0db609de359ff3a576 |
20-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check that a live range exists before shortening it. This fixes PR8989. The live range may have been deleted earlier because of rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123891 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b908a009cf3d85586c6ca25d1de035b7d2b030b5 |
20-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add hidden -verify-coalescing to run the machine code verifier before and after register coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123890 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b7683c06cb4ec7554d68704e2ca74ad75415a1d5 |
20-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix bug found by new clang warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123872 91177308-0d34-0410-b5e6-96231b3b80d8
hrinkWrapping.cpp
|
e3385811aaf1e7ff548c1f1edc6a85d034909a5c |
20-Jan-2011 |
Eric Christopher <echristo@apple.com> |
Use only one API at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
38a18261b97a0b7e0ed75b1c8edd81ec9bd01085 |
20-Jan-2011 |
Eric Christopher <echristo@apple.com> |
If we can, lower the multiply part of a umulo/smulo call to a libcall with an invalid type then split the result and perform the overflow check normally. Fixes the 32-bit parts of rdar://8622122 and rdar://8774702. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e449d1f189e8ed719fa42d3ec2216a9d8adb9852 |
20-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Fix debug info for merged global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123862 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fc7d775178aa890f8bb5e9b1be0bf675dc7d29f4 |
20-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Divert Hopfield network debug output. It is very noisy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123859 91177308-0d34-0410-b5e6-96231b3b80d8
pillPlacement.cpp
|
92e6939d29d206b5f094e0dcc4febf909f77a134 |
20-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't accidentally leave small gaps in the live ranges when leaving the active interval after an instruction. The leaveIntvAfter() method only adds liveness from the instruction's boundary index to the inserted copy. Ideally, SplitKit should be smarter about this, perhaps by combining useIntv() and leaveIntvAfter() into one method that guarantees continuity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123858 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
dacde944bd585d512aabc4f3fa56440642b03a54 |
20-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Fix register address expression. Patch by Ken Dyck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123856 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ccdb3fcef9aeb9f683cd738afbe1cd961bb0c1ef |
19-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement RAGreedy::splitAroundRegion and remove loop splitting. Region splitting includes loop splitting as a subset, and it is more generic. The splitting heuristics for variables that are live in more than one block are now: 1. Try to create a region that covers multiple basic blocks. 2. Try to create a new live range for each block with multiple uses. 3. Spill. Steps 2 and 3 are similar to what the standard spiller is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123853 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
egAllocGreedy.cpp
plitKit.cpp
|
b5fa9333431673aac2ced8dea80152349a85cf6f |
18-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add RAGreedy methods for splitting live ranges around regions. Analyze the live range's behavior entering and leaving basic blocks. Compute an interference pattern for each allocation candidate, and use SpillPlacement to find an optimal region where that register can be live. This code is still not enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123774 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
pillPlacement.cpp
pillPlacement.h
plitKit.cpp
plitKit.h
|
955ed73d12f2b186ef3f80da872b702cd7f2895b |
18-Jan-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Remove unused variables found by gcc-4.6's -Wunused-but-set-variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
f22432282c78a65828cd9da94028e8b798858180 |
18-Jan-2011 |
Stuart Hastings <stuart@apple.com> |
Remove checking that prevented overlapping CALLSEQ_START/CALLSEQ_END ranges, add legalizer support for nested calls. Necessary for ARM byval support. Radar 7662569. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c9b6a3eb90c5e0f6460632a443591068522537e2 |
17-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix an off-by-one error in ctpop combining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d8228924556d3c465da5b858c620b29fd1cf298e |
17-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a DAGCombine to turn (ctpop x) u< 2 into (x & x-1) == 0. This shaves off 4 popcounts from the hacked 186.crafty source. This is enabled even when a native popcount instruction is available. The combined code is one operation longer but it should be faster nevertheless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
42c32daadbb1bd0626cced08c418d1b7a0b16fb4 |
14-Jan-2011 |
Logan <tzuhsiang.chien@gmail.com> |
Add LOCAL_MODULE_TAGS := optional Change-Id: I292f6297b06f97360c15884677057d624e73fbf6
ndroid.mk
smPrinter/Android.mk
electionDAG/Android.mk
|
b99fdee325fe677081dc27bb7d719518452f3256 |
16-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
reapply my fix for PR8961 with a tweak to properly handle multi-instruction sequences like calls. Many thanks to Jakob for finding a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5df5a22d1a098961edebac59fbddcab045fddd29 |
15-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add an assert so we don't silently miscompile ctpop for bit widths > 128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b6516aeef12a05aa47515f76e18fc426d85babbd |
15-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reimplement CTPOP legalization with the "best" algorithm from http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel In a silly microbenchmark on a 65 nm core2 this is 1.5x faster than the old code in 32 bit mode and about 2x faster in 64 bit mode. It's also a lot shorter, especially when counting 64 bit population on a 32 bit target. I hope this is fast enough to replace Kernighan-style counting loops even when the input is rather sparse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
439ea279a5aae60f2e3693d82346765f650a2af3 |
14-Jan-2011 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123491 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
ca5f61676956cff088c225c3c166a589410b3101 |
14-Jan-2011 |
Dan Gohman <gohman@apple.com> |
Delete an assignment to ThisBB which isn't needed, and tidy up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3965b5e974d57f3e56a2c7f37d76d73e572dfb20 |
14-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add a possibility to switch between CFI directives- and table-based frame description emission. Currently all the backends use table-based stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123476 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfTableException.cpp
LVMTargetMachine.cpp
|
9a1ef4ef36cfa2d8d9ebd52d601283ae6e7466cd |
14-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add CFI directives-based frame information emission. Not hooked yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123474 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfCFIException.cpp
smPrinter/DwarfException.h
|
d7e8ddc5012d22398eba6b8094e2fd7821bac9cc |
14-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Split stuff as a preparation for CFI directives-based frame information emission git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123473 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfTableException.cpp
|
f697c8a19adf962a933b055383952e72789a0e20 |
14-Jan-2011 |
Andrew Trick <atrick@apple.com> |
Support for precise scheduling of the instruction selection DAG, disabled in this checkin. Sorry for the large diffs due to refactoring. New functionality is all guarded by EnableSchedCycles. Scheduling the isel DAG is inherently imprecise, but we give it a best effort: - Added MayReduceRegPressure to allow stalled nodes in the queue only if there is a regpressure need. - Added BUHasStall to allow checking for either dependence stalls due to latency or resource stalls due to pipeline hazards. - Added BUCompareLatency to encapsulate and standardize the heuristics for minimizing stall cycles (vs. reducing register pressure). - Modified the bottom-up heuristic (now in BUCompareLatency) to prioritize nodes by their depth rather than height. As long as it doesn't stall, height is irrelevant. Depth represents the critical path to the DAG root. - Added hybrid_ls_rr_sort::isReady to filter stalled nodes before adding them to the available queue. Related Cleanup: most of the register reduction routines do not need to be templates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
04223909b74fd0634ba26d434fa7fdf2f3c7444f |
14-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Try for the third time to teach getFirstTerminator() about debug values. This time let's rephrase to trick gcc-4.3 into not miscompiling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123432 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
b6436e5be19937b622fabd87d1547b8fc7553c11 |
14-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r123419. It still breaks llvm-gcc-i386-linux-selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123423 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
67d98916900a68b5902428e39f9c865c8d02c1bf |
14-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
Set the insertion point correctly for instructions generated by load folding: they should go *before* the new instruction not after it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
09befe90360effa077b1934c0e85e5b7abe00a9c |
14-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Try again to teach getFirstTerminator() about debug values. Fix some callers to better deal with debug values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123419 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
eea666f216ad3a8f8cd88a969176f86add7228f3 |
14-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Better terminator avoidance. This approach also works when the terminator doesn't have a slot index. (Which can happen??) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123413 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
a6ada9f725b0015c419a7ef661e833f9e9b26ff8 |
13-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Temporary workaround for an i386 crash in LiveDebugVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123400 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
4f28c1c71450c711e96aa283de53739d8b4504cd |
13-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach frame lowering to ignore debug values after the terminators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123399 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
a851fd8cd8e5c256651b3afeb8ebd539c28dfda7 |
13-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Speculatively revert r123384 to make llvm-gcc-i386-linux-selfhost buildbot happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123389 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
64f865ceca4cdd39fcac3d958071be118cb9c1d3 |
13-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineBasicBlock::getFirstTerminator to ignore debug values. It will still return an iterator that points to the first terminator or end(), but there may be DBG_VALUE instructions following the first terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123384 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
dd11ea4a372b992775f67b64fb703edf2de0d27b |
13-Jan-2011 |
Dan Gohman <gohman@apple.com> |
Fix r123346 to handle scalar types too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123352 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
668c9e31df3e7c216c57559c69667273f7b0404d |
13-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add missing space in debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123351 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
b86654385a394d8bdfe0cd6e3b5d57e9f3cb0eae |
13-Jan-2011 |
Dan Gohman <gohman@apple.com> |
Apply the patch from PR8958, which allows llc to get slightly further on the associated testcase before aborting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
25dc2268a5aedcb5da57f065dbdb40d790b11bc0 |
13-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Try again enabling LiveDebugVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123342 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
f0704d28f34b872f949ef8030651c7159ff6f32f |
13-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't emit a DBG_VALUE for a spill slot that the rewriter decided not to use after all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123339 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
12a40314a91511b65bc83782fd5a3e981331adb1 |
13-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix braino in dominator tree walk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123338 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
f203627f21614cbef9526aa791b3e7b0493d1e41 |
12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Sometimes, old virtual registers can linger on DBG_VALUE instructions. Make sure we don't crash in that case, but simply turn them into %noreg instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123335 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
ee547095bbf2c201029c0036ceeb49a66be37119 |
12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach VirtRegRewriter to update slot indexes when erasing instructions. It was leaving dangling pointers in the slot index maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123334 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
7fd747ba24c0eb20d505de16c4c7839ae3f43344 |
12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Annotate VirtRegRewriter debug output with slot indexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123333 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
fc69c370e165958d7d9a6d756a32479674d83888 |
12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify slot index ordering. The slot indexes must be monotonically increasing through the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123324 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
7bd46dae9c0e7e93df27186a4885293f8295b093 |
12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that machine instruction parent pointers are consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123322 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
2df5458535c54c1e214da65191ef86c38b57da39 |
12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
The world is not ready for LiveDebugVariables yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123290 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
a518ccc26a0e01d93a58e305f7c19c42fa640bb9 |
11-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable LiveDebugVariables by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123282 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
b08773749a42a8c68afca96360b6e361147779b4 |
11-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't insert DBG_VALUE instructions after the first terminator. For one, MachineBasicBlock::getFirstTerminator() doesn't understand what is happening, and it also makes sense to have all control flow run through the DBG_VALUE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123277 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
a36478feacffd66bde53c14561cab1a64b1b9c7d |
11-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Appropriately truncate debug info range in dwarf output. This is not yet completely enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123274 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
93c70426f581859f197df1b05fdb1b3664d361a0 |
11-Jan-2011 |
Eric Christopher <echristo@apple.com> |
Move ExpandAtomic into the integer expansion routines - it's only used there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123202 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
|
97fd9a58de3c99a74b0890a908430fa3ab894bed |
10-Jan-2011 |
Dale Johannesen <dalej@apple.com> |
Fix PR 8916 (qv for analysis), at least the immediate problem. There's an inherent tension in DAGCombine between assuming that things will be put in canonical form, and the Depth mechanism that disables transformations when recursion gets too deep. It would not surprise me if there's a lot of little bugs like this one waiting to be discovered. The mechanism seems fragile and I'd suggest looking at it from a design viewpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
16c29b5f285f375be53dabaa73e3e91107485fe4 |
10-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123170 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
CStrategy.cpp
ocalStackSlotAllocation.cpp
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
622a11bc0764897f6aaf80fe96b3abac6215f06b |
10-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
fit in 80 cols and use MBB::isSuccessor instead of a hand rolled std::find. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123164 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
c9df025e33ac435adb3b3318d237c36ca7cec659 |
10-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic. These functions not longer assert when passed 0, but simply return false instead. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123155 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
eadMachineInstructionElim.cpp
iveDebugVariables.cpp
iveIntervalAnalysis.cpp
achineCSE.cpp
achineInstr.cpp
achineLICM.cpp
eepholeOptimizer.cpp
egAllocFast.cpp
egAllocLinearScan.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
42e9c963921776cb498c33b6c6c03f29971316f3 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove MachineRegisterInfo::getLastVirtReg(), it was giving wrong results when no virtual registers have been allocated. It was only used to resize IndexedMaps, so provide an IndexedMap::resize() method such that Map.grow(MRI.getLastVirtReg()); can be replaced with the simpler Map.resize(MRI.getNumVirtRegs()); This works correctly when no virtuals are allocated, and it bypasses the to/from index conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123130 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
irtRegMap.cpp
|
9dddf08eb8851e7c707df7f36b18e4e738e717cc |
09-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
sort this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123129 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
be97e906e03dd9b22e14f6749157c9d5f9701dd5 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach TargetRegisterInfo how to cram stack slot indexes in with the virtual and physical register numbers. This makes the hack used in LiveInterval official, and lets LiveInterval be oblivious of stack slots. The isPhysicalRegister() and isVirtualRegister() predicates don't know about this, so when a variable may contain a stack slot, isStackSlot() should always be tested first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123128 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveInterval.cpp
iveStackAnalysis.cpp
piller.cpp
tackSlotColoring.cpp
|
2cfa5b4934856942c2aaa6e41b67eb367d183fe6 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a forgotten VireReg2IndexFunctor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123123 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
f78df5ebb8319eb28936937e7f53aac4afb2270b |
09-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Eliminate some extra hash table lookups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123115 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
e272deed7b821976c4ebfe903807dff4f5e852a5 |
09-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add an informative comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123114 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0804ead404d694b35e9c55ccbf43f99cd394e487 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify LiveDebugVariables by storing MachineOperand copies locations instead of using a Location class with the same information. When making a copy of a MachineOperand that was already stored in a MachineInstr, it is necessary to clear the parent pointer on the copy. Otherwise the register use-def lists become inconsistent. Add MachineOperand::clearParent() to do that. An alternative would be a custom MachineOperand copy constructor that cleared ParentMI. I didn't want to do that because of the performance impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123109 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
00f93fc0467e89d5e63b8ebd9a18909a3b031ccc |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Shrink a BitVector that didn't mean to store bits for all physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123108 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4314268128be6d54c9a7f0709680e5a5b40f3ab3 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace TargetRegisterInfo::printReg with a PrintReg class that also works without a TRI instance. Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123107 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveDebugVariables.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveIntervalUnion.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineVerifier.cpp
HIElimination.cpp
egAllocFast.cpp
electionDAG/SelectionDAG.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
994c727b5790e5c976e32c75364d78eb9b22a568 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use IndexedMap for MachineRegisterInfo as well. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123106 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
c7d67f90d36375f1ff512a3857c887b7e4246adb |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix VirtRegMap to use TRI::index2VirtReg and TRI::virtReg2Index instead of depending on TRI::FirstVirtualRegister. Also use TRI::printReg instead of printing virtual registers directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123101 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
98c54760704878cf5290a9a3b23876b7550c5560 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a MachineVerifier loop that probably didn't mean to skip the last two virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123100 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b421c566f512ed0ec87851866d335e9086c3f8be |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use an IndexedMap for LiveVariables::VirtRegInfo. Provide MRI::getNumVirtRegs() and TRI::index2VirtReg() functions to allow iteration over virtual registers without depending on the representation of virtual register numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123098 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
358de24dc121cd21911f3248b599178c86e9b467 |
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use an IndexedMap for LiveOutRegInfo to hide its dependence on TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123096 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
7c8818630991855830c94c79e1035222f3749689 |
08-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix coding style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123093 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
80f6a507d4e11ba066ad0e53e12ad25ad8cf07ba |
08-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Make more passes preserve dominators (or state that they preserve dominators if they all ready do). This removes two dominator recomputations prior to isel, which is a 1% improvement in total llc time for 403.gcc. The only potentially suspect thing is making GCStrategy recompute dominators if it used a custom lowering strategy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123064 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
tackProtector.cpp
nreachableBlockElim.cpp
|
55d42003368c57d3a41c5f464d39b8440050d558 |
08-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Recognize inline asm 'rev /bin/bash, ' as a bswap intrinsic call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123048 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
c36b7069b42bece963b7e6adf020353ce990ef76 |
08-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Do not model all INLINEASM instructions as having unmodelled side effects. Instead encode llvm IR level property "HasSideEffects" in an operand (shared with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check the operand when the instruction is an INLINEASM. This allows memory instructions to be moved around INLINEASM instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123044 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
eadMachineInstructionElim.cpp
achineCSE.cpp
achineInstr.cpp
eepholeOptimizer.cpp
rologEpilogInserter.cpp
cheduleDAGInstrs.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
51a666f0e50a34b74212db9c5814153c885153a5 |
07-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Speculatively revert r123032. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123039 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
iveDebugVariables.cpp
|
1dea232624c246341a5a98e0d481ba89f854012c |
07-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Appropriately truncate debug info range in dwarf output. Enable live debug variables pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123032 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
iveDebugVariables.cpp
|
30a343aeedf777f9b8b6be9823da750afbf765b1 |
07-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
DBG_VALUE does not have any side effects; it also makes no sense to mark it cheap as a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123031 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
eepholeOptimizer.cpp
irtRegRewriter.cpp
|
5e8b833707e6d59576d91b23a2c24e596eace60e |
07-Jan-2011 |
Bob Wilson <bob.wilson@apple.com> |
Add ARM patterns to match EXTRACT_SUBVECTOR nodes. Also fix an off-by-one in SelectionDAGBuilder that was preventing shuffle vectors from being translated to EXTRACT_SUBVECTOR. Patch by Tim Northover. The test changes are needed to keep those spill-q tests from testing aligned spills and restores. If the only aligned stack objects are spill slots, we no longer realign the stack frame. Prior to this patch, an EXTRACT_SUBVECTOR was legalized by loading from the stack, which created an aligned frame index. Now, however, there is nothing except the spill slot in the stack frame, so I added an aligned alloca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
67b067d2f91ede565a3cde857442a44314d72537 |
07-Jan-2011 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122994 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
6736e19f4c9af1181cedca54ba6e3a1420454928 |
07-Jan-2011 |
Bob Wilson <bob.wilson@apple.com> |
Change EXTRACT_SUBVECTOR to require a constant index. We were never generating any of these nodes with variable indices, and there was one legalizer function asserting on a non-constant index. If we ever have a need to support variable indices, we can add this back again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
8d90b7190f9411e0e48d8a29705240f7679ae201 |
07-Jan-2011 |
Bill Wendling <isanbard@gmail.com> |
Early exit if we don't have invokes. The 'Unwinds' vector isn't modified unless we have invokes, so there is no functionality change here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122990 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
d9aa80038f630d72883ebe5b524e372a44e6695c |
07-Jan-2011 |
Duncan Sands <baldrick@free.fr> |
Fix the other problem reported in PR8582. Testcase and patch by Nadav Rotem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122983 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
8d93d19076fb6a67eeb63cb0ba79d00c3aa8478a |
06-Jan-2011 |
Eric Christopher <echristo@apple.com> |
Add some fairly duplicated code to let type legalization split illegal typed atomics. This will lower exclusively to libcalls at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122979 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
76a788c886376d451ae3baa55429bf2d19039e9e |
06-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Emit 128 bit constant. This fixes PR 8913 crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122971 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0521928ae7cc492f3f45ef0e0cedc349102489c5 |
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-implement r122936 with proper target hooks. Now getMaxStoresPerMemcpy etc. takes an option OptSize. If OptSize is true, it would return the inline limit for functions with attribute OptSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
255874ff521bb81b294ec861a5d9a99d8198448c |
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert r122936. I'll re-implement the change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
19bb35db1fd8173af438d11338a52870ce71d1b7 |
06-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Zap the last two -Wself-assign warnings in llvm. Simplify RALinScan::DowngradeRegister with TRI::getOverlaps while we are there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122940 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
8bfe50871f9cb1b022483e0e1307ab5b8c9e5650 |
06-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add the SpillPlacement analysis pass. This pass precomputes CFG block frequency information that can be used by the register allocator to find optimal spill code placement. Given an interference pattern, placeSpills() will compute which basic blocks should have the current variable enter or exit in a register, and which blocks prefer the stack. The algorithm is ready to consume block frequencies from profiling data, but for now it gets by with the static estimates used for spill weights. This is a work in progress and still not hooked up to RegAllocGreedy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122938 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
pillPlacement.cpp
pillPlacement.h
|
9a9d847afaf5df1b66b0f92692e31d1d4003c3a9 |
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
r105228 reduced the memcpy / memset inline limit to 4 with -Os to avoid blowing up freebsd bootloader. However, this doesn't make much sense for Darwin, whose -Os is meant to optimize for size only if it doesn't hurt performance. rdar://8821501 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122936 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d08e5b48bc5d9177b1d70a1980a7805420a99085 |
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Avoid zero extend bit test operands to pointer type if all the masks fit in the original type of the switch statement key. rdar://8781238 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122935 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
0b71d3972d9138c7482233bc44a9a207634769ef |
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Optimize: r1025 = s/zext r1024, 4 r1026 = extract_subreg r1025, 4 to: r1026 = copy r1024 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
6b705d482511e432a543d04f6f5e27f5881b6441 |
05-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a hidden command line option to display edge bundle graphs as they are calculated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122912 91177308-0d34-0410-b5e6-96231b3b80d8
dgeBundles.cpp
|
762a17a040f2e5c7f76b6b85d853cca454289e71 |
05-Jan-2011 |
Eric Christopher <echristo@apple.com> |
80-cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122909 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2d31d14bace4cf225e997c78daefccc52e38186c |
04-Jan-2011 |
Eric Christopher <echristo@apple.com> |
Remove TODO, these appear to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8dd070edc2209ecfdae49780ec1596b349e2cbd1 |
04-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Turn the EdgeBundles class into a stand-alone machine CFG analysis pass. The analysis will be needed by both the greedy register allocator and the X86FloatingPoint pass. It only needs to be computed once when the CFG doesn't change. This pass is very fast, usually showing up as 0.0% wall time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122832 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
dgeBundles.cpp
plitKit.cpp
plitKit.h
|
26db45818a4f1b8483ac5a904eefa43c9b120a5d |
04-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Switch to path halving from path compression for a small speedup. This also makes getLeader() nonrecursive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122811 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
645b1d2f12e6637840d3b118231f60b3a587073a |
04-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Eliminate repeated allocation of a per-BB DenseMap for a 4.6% reduction of time spent in StrongPHIElimination on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122803 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
fa3306af82ffc12a3ce718f256e82bf26cc75f44 |
04-Jan-2011 |
Owen Anderson <resistor@mac.com> |
Clean up a funky pass registration that got passed over when I got rid of static constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122795 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
53eeba586dac8a25db63fe02a00ef10feb8b3925 |
03-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Use a RecyclingAllocator to allocate values for MachineCSE's ScopedHashTable for a 28% speedup of MachineCSE time on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122735 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
9fc5cdf77c812aaa80419036de27576d45894d0d |
02-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
split dom frontier handling stuff out to its own DominanceFrontier header, so that Dominators.h is *just* domtree. Also prune #includes a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
80220369b040dd9769e4c4b65d2d018210c3b240 |
02-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Try to reuse the value when lowering memset. This allows us to compile: void test(char *s, int a) { __builtin_memset(s, a, 15); } into 1 mul + 3 stores instead of 3 muls + 3 stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8c06aa1c597bb5c2c264a190bc35836f0a7b4cd5 |
02-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Lower the i8 extension in memset to a multiply instead of a potentially long series of shifts and ors. We could implement a DAGCombine to turn x * 0x0101 back into logic operations on targets that doesn't support the multiply or it is slow (p4) if someone cares enough. Example code: void test(char *s, int a) { __builtin_memset(s, a, 4); } before: _test: ## @test movzbl 8(%esp), %eax movl %eax, %ecx shll $8, %ecx orl %eax, %ecx movl %ecx, %eax shll $16, %eax orl %ecx, %eax movl 4(%esp), %ecx movl %eax, 4(%ecx) movl %eax, (%ecx) ret after: _test: ## @test movzbl 8(%esp), %eax imull $16843009, %eax, %eax ## imm = 0x1010101 movl 4(%esp), %ecx movl %eax, 4(%ecx) movl %eax, (%ecx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d16ad3e43c4dc59b3f6f8f36338a778f7c7a8701 |
30-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Use getVRegDef() instead of def_iterator. This leads to fewer defs being added with 2-address instructions, for about a 3.5% speedup of StrongPHIElimination on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122635 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
dd061b317711d4165e01f30e8be4798c832819b8 |
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
None of the other pass names in CodeGen have terminating periods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122628 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
1558f5ed1975495c0394d9de7acc144d0c8742da |
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Instead of processing every instruction when splitting interferences, only process those instructions that define phi sources. This is a 47% speedup of StrongPHIElimination compile time on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122627 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
7fb95d4235ad588d4105544b2ae3fa1aa0eba3b1 |
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Add a missing word to a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122625 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
|
480b80a74648c9ea93b9a8986f9ca6a9de536abc |
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Add text explaining an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122617 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
cb584d08c0734d64f95b0f762aa31ea8ce3de2d9 |
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Simplify some code in MachineVerifier that was doing the correct thing, but not in the most obvious way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122610 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
438e25ccdcd8673b1ff8d54ee80a5894a29b2590 |
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Revert the optimization in r122596. It is correct for all current targets, but it relies on assumptions that may not be true in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122608 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
92f0fcb6df128ab99a63986b5be00e80fc9f98c6 |
28-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Avoid iterating every operand of an instruction in StrongPHIElimination, since we are only interested in the defs when discovering interferences. This is a 28% speedup running StrongPHIElimination on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122596 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
2aea490e163b53e966d693285c17c1a934db5e8d |
28-Dec-2010 |
Duncan Sands <baldrick@free.fr> |
Pacify the compiler. BestWeight cannot in fact be used uninitialized in this function, but the compiler was warning that it might be when doing a release build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122595 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
c3ab20e62e8be9b55cce0145d02ebdd20775a53a |
27-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Change an assertion to assert what the code actually relies upon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122586 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4e7f23b1b622c2527c3ccff8df3179b692dbcca6 |
27-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Land a first cut at StrongPHIElimination. There are only 5 new test failures when running without the verifier, and I have not yet checked them to see if the new results are still correct. There are more verifier failures, but they all seem to be additional occurrences of verifier failures that occur with the existing PHIElimination pass. There are a few obvious issues with the code: 1) It doesn't properly update the register equivalence classes during copy insertion, and instead recomputes them before merging live intervals and renaming registers. I wanted to keep this first patch simple for debugging purposes, but it shouldn't be very hard to do this. 2) It doesn't mix the renaming and live interval merging with the copy insertion process, which leads to a lot of virtual register churn. Virtual registers and live intervals are created, only to later be merged into others. The code should be smarter and only create a new virtual register if there is no existing register in the same congruence class. 3) In one place the code uses a DenseMap per basic block, which is unnecessary heap allocation. There should be an inline storage version of DenseMap. I did a quick compile-time test of running llc on 403.gcc with and without StrongPHIElimination. It is slightly slower with StrongPHIElimination, because the small decrease in the coalescer runtime can't beat the increase in phi elimination runtime. Perhaps fixing the above performance issues will narrow the gap. I also haven't yet run any tests of the quality of the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122582 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4eee42cb282753ad43e929b0955d7d44c1580905 |
27-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Add knowledge of phi-def and phi-kill valnos to MachineVerifier's predecessor valno verification. The "Different value live out of predecessor" check is incorrect in the case of phi-def valnos, so just skip that check for phi-def valnos and instead check that all of the valnos for predecessors have phi-kill. Fixes PR8863. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122581 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a75ce9f5d2236d93c117e861e60e6f3f748c9555 |
24-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Minor cleanup related to my latest scheduler changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
24312230ada6f4cfa8776351dafb12eea8a81b33 |
24-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Fix a few cases where the scheduler is not checking for phys reg copies. The scheduling node may have a NULL DAG node, yuck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122544 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
2da8bc8a5f7705ac131184cd247f48500da0d74e |
24-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Various bits of framework needed for precise machine-level selection DAG scheduling during isel. Most new functionality is currently guarded by -enable-sched-cycles and -enable-sched-hazard. Added InstrItineraryData::IssueWidth field, currently derived from ARM itineraries, but could be initialized differently on other targets. Added ScheduleHazardRecognizer::MaxLookAhead to indicate whether it is active, and if so how many cycles of state it holds. Added SchedulingPriorityQueue::HasReadyFilter to allowing gating entry into the scheduler's available queue. ScoreboardHazardRecognizer now accesses the ScheduleDAG in order to get information about it's SUnits, provides RecedeCycle for bottom-up scheduling, correctly computes scoreboard depth, tracks IssueCount, and considers potential stall cycles when checking for hazards. ScheduleDAGRRList now models machine cycles and hazards (under flags). It tracks MinAvailableCycle, drives the hazard recognizer and priority queue's ready filter, manages a new PendingQueue, properly accounts for stall cycles, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122541 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
coreboardHazardRecognizer.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
argetInstrInfoImpl.cpp
|
6e8f4c404825b79f9b9176483653f1aa927dfbde |
24-Dec-2010 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122539 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/SelectionDAGISel.cpp
|
ef485d86585123b5e31a7f88aef22725ebd07e7a |
24-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Simplify a check for implicit defs and remove a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122537 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
29d8f0cae425f1bba583565227eaebf58f26ce73 |
23-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
flags -> glue for selectiondag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122509 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
a4359be0328a91971c486b06892c742de1fa0f2b |
23-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
sdisel flag -> glue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122507 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2902736a507df1c6fdc0daa4e8f0e385bb5f7820 |
23-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Reorganize ListScheduleBottomUp in preparation for modeling machine cycles and instruction issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122491 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3d420cb2fee925d0888cd3a60a222a19e75cd890 |
23-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Converted LiveRegCycles to LiveRegGens. It's easier to work with and allows multiple nodes per cycle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
cb7947b81be4cb55fc647ea3722eb7a8613545cb |
23-Dec-2010 |
Andrew Trick <atrick@apple.com> |
In CheckForLiveRegDef use TRI->getOverlaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
1b1658741aa4bc88fc488ef217d9603294e16c58 |
23-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Fixes PR8823: add-with-overflow-128.ll In the bottom-up selection DAG scheduling, handle two-address instructions that read/write unspillable registers. Treat the entire chain of two-address nodes as a single live range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8e68c3873549ca31533e2e3e40dda3a43cb79566 |
23-Dec-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Change all self assignments X=X to (void)X, so that we can turn on a new gcc warning that complains on self-assignments and self-initializations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122458 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
cheduleDAGEmit.cpp
electionDAG/InstrEmitter.cpp
tackSlotColoring.cpp
|
f50125ecaab0cc379892280de33f0a2d387f7f5b |
23-Dec-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
DAGCombine add (sext i1), X into sub X, (zext i1) if sext from i1 is illegal. The latter usually compiles into smaller code. example code: unsigned foo(unsigned x, unsigned y) { if (x != 0) y--; return y; } before: _foo: ## @foo cmpl $1, 4(%esp) ## encoding: [0x83,0x7c,0x24,0x04,0x01] sbbl %eax, %eax ## encoding: [0x19,0xc0] notl %eax ## encoding: [0xf7,0xd0] addl 8(%esp), %eax ## encoding: [0x03,0x44,0x24,0x08] ret ## encoding: [0xc3] after: _foo: ## @foo cmpl $1, 4(%esp) ## encoding: [0x83,0x7c,0x24,0x04,0x01] movl 8(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x08] adcl $-1, %eax ## encoding: [0x83,0xd0,0xff] ret ## encoding: [0xc3] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
770d42de3b7643b2b4f835f32e3a16275b9fbdba |
22-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When RegAllocGreedy decides to spill the interferences of the current register, pick the victim with the lowest total spill weight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122445 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
c64379da075a59bd5178c62c970c8d2b84457ab2 |
22-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include a shadow of the original CFG edges in the edge bundle graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122444 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
cbf68dfbc0b36de8ef20bb42ce0c7d75cb132fc7 |
22-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in ReduceLoadWidth that wasn't handling extending loads properly. We miscompiled the testcase into: _test: ## @test movl $128, (%rdi) movzbl 1(%rdi), %eax ret Now we get a proper: _test: ## @test movl $128, (%rdi) movsbl (%rdi), %eax movzbl %ah, %eax ret This fixes PR8757. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122392 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7a2a7faf9cfdbdf5f1de720385dc8a0009cd60a6 |
22-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
more cleanups, move a check for "roundedness" earlier to reject unhanded cases faster and simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4c32bc24ded3d36db1f9fda301e46c16d1df6786 |
22-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation and improve comments, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
feac09801b5c03412d452e685570baff6eb84c88 |
21-Dec-2010 |
Andrew Trick <atrick@apple.com> |
In DelayForLiveRegsBottomUp, handle instructions that read and write the same physical register. Simplifies the fix from the previous checkin r122211. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
38036d8b36fa5d1b2f3530f47fd716e9da7bffab |
21-Dec-2010 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c72b18cdc8f155dbb99d554056f3bb6b38f5f72c |
21-Dec-2010 |
Dale Johannesen <dalej@apple.com> |
Reapply 122353-122355 with fixes. 122354 was wrong; the shift type was needed one place, the shift count type another. The transform in 123555 had the same problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d0cf2585a00bc7dd9a682b65dc53245db37ec366 |
21-Dec-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 122353-122355 for the moment, they broke stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a83bf35d167c43ff2eb8c61bdea0cb660d2b07d8 |
21-Dec-2010 |
Dale Johannesen <dalej@apple.com> |
Add a new transform to DAGCombiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5ecc340e34e6ca4b9f6ebde6c1379cb3b8084f69 |
21-Dec-2010 |
Dale Johannesen <dalej@apple.com> |
Get the type of a shift from the shift, not from its shift count operand. These should be the same but apparently are not always, and this is cleaner anyway. This improves the code in an existing test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122354 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
efc96dd38c285c1a01aa6f613f533d1205e4acb2 |
21-Dec-2010 |
Dale Johannesen <dalej@apple.com> |
Shift by the word size is invalid IR; don't create it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122353 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
90b0364cff2531008831428a9b4576bf4be47c70 |
21-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
fix some typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
56500edc7a2599e651d39df71a714e1e255ed96a |
21-Dec-2010 |
Stuart Hastings <stuart@apple.com> |
Fix indentation, add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122345 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2965e69e040d86002128b91a439eb9bfc6b83df1 |
21-Dec-2010 |
Stuart Hastings <stuart@apple.com> |
Missing logic for nested CALLSEQ_START/END. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
47bce43229d1ccb9bdbd9f854809d588865e9648 |
21-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Incremental progress towards a new implementation of StrongPHIElimination. Most of the problems with my last attempt were in the updating of LiveIntervals rather than the coalescing itself. Therefore, I decided to get that right first by essentially reimplementing the existing PHIElimination using LiveIntervals. It works correctly, with only a few tests failing (which may not be legitimate failures) and no new verifier failures (at least as far as I can tell, I didn't count the number per file). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122321 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f1b4eafbfec976f939ec0ea3e8acf91cef5363e3 |
21-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
rename MVT::Flag to MVT::Glue. "Flag" is a terrible name for something that just glues two nodes together, even if it is sometimes used for flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/InstrEmitter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
5df1578decc8b05ffaec0e7f5d1532234bc1be19 |
21-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
improve "cannot yet select" errors a trivial amount: now they are just as useless, but at least a bit more gramatical git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8d0963f72c8922bafffb36ff49b18064098a3cab |
21-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add EdgeBundles to SplitKit. Edge bundles is an annotation on the CFG that turns it into a bipartite directed graph where each basic block is connected to an outgoing and an ingoing bundle. These bundles are useful for identifying regions of the CFG for live range splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122301 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
b907e8a2d40dc546f21ff7e122a80b121653851a |
21-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use IntEqClasses to compute connected components of live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122296 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
025cc6e1be4cc3d780f10bb9ec92eba831a45f79 |
20-Dec-2010 |
Dale Johannesen <dalej@apple.com> |
Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2100d21f39a9471254564e359ab8c5901c7aecff |
20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
MachineVerifier should count landing pad successors as basic blocks rather than out-edges. Fixes PR8824. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122228 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
0b13d7db281d1c64194269822713ae30a1f921d5 |
20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Teach MachineVerifier that early clobber defs begin at USE slots and other defs begin at DEF slots. Fixes the second half of PR8813. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122225 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5e61f9916eb1e97cf4d696cdc416ad1314ad7138 |
20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Add a missing check from r122218. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122224 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5c3d4f0fc90c86a6c4ee9871835d70c9ff3833d5 |
20-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
implement type legalization promotion support for SMULO and UMULO, giving ARM (and other 32-bit-only) targets support for i8 and i16 overflow multiplies. The generated code isn't great, but this at least fixes CodeGen/Generic/overflow.ll when running on ARM hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
636f15ff04c9188ea3bf91477fda1cc29f2c4a61 |
20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Don't assume that an instruction ending a register's live range always reads the register; it may be a dead def instead. Fixes PR8820. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122218 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
37944985a569f8c2b0d75dafd9e2739a9887ac5d |
20-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the scheduler's handling of "unspillable" vregs. Imagine we see: EFLAGS = inst1 EFLAGS = inst2 FLAGS gpr = inst3 EFLAGS Previously, we would refuse to schedule inst2 because it clobbers the EFLAGS of the predecessor. However, it also uses the EFLAGS of the predecessor, so it is safe to emit. SDep edges ensure that the right order happens already anyway. This fixes 2 testsuite crashes with the X86 patch I'm going to commit next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122211 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
142d21c861c0b686e38a515b1271f4157cd24004 |
20-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
the result of CheckForLiveRegDef is dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122209 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
5078293cc28dd03236384fa0a3b6c8347e0701fb |
20-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122208 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
8ec88ba58866a840a27ab5172fd2b954780b52f3 |
20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Ignore debug values when performing MachineVerifier liveness checks. Fixes PR8822. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122207 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1b031ddedec2901ef01f103512b1d79f63a1bb85 |
20-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Early clobber operands are allowed to be defined at use indices. This fixes one half of PR8813. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122205 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
fb69f6037d1b79f83c895ed62dc3247e02bd2b5b |
19-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR8815 by checking for an explicit clobber def tied to a use operand in ConnectedVNInfoEqClasses::Classify(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122202 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
22d67cf6ac84c06867681a2fe72f78d5d2b9444d |
19-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR8811 by teaching MachineVerifier about optional defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122199 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
c44270dd6f53e6db36a2614a57a23c9c6fe3137b |
19-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
StrongPHIElimination will never run before TwoAddressInstructionPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122197 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
476b242fe7a61e5f9ac6214b0bc5c680d24f152e |
19-Dec-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Add missing standard headers. Patch by Joerg Sonnenberger! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122193 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
electionDAG/TargetLowering.cpp
|
da60588402e8913f5b7ec40945d4170d0c4ffaf5 |
19-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
teach MaskedValueIsZero how to analyze ADDE. This is enough to teach it that ADDE(0,0) is known 0 except the low bit, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d959da92a5a479c7f8f4ccbf7a7e3fb87f9fda0c |
19-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Remove some checks for StrongPHIElim. These checks make it impossible to use an alternative register allocator that does not require LiveIntervals by specifying it on the command-line for a target that has StrongPHIElimination enabled by default. These checks are pretty meaningless anyways, since StrongPHIElimination and PHIElimination are never used at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122176 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
96ba57fddac5999ef6d4009d8baef24607da6221 |
19-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR8642: if a critical edge has a PHI value that can trap, isel is *required* to split the edge. PHI values get evaluated on the edge, not in their predecessor block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
390482569c2446a05518034c891fcfb378079a80 |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Apparently, operandices is not a word. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122135 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
83d1ba572815c92a74817cc68e2bb48c59a87b5d |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach the inline spiller to attempt folding a load instruction into its single use before rematerializing the load. This allows us to produce: addps LCPI0_1(%rip), %xmm2 Instead of: movaps LCPI0_1(%rip), %xmm3 addps %xmm3, %xmm2 Saving a register and an instruction. The standard spiller already knows how to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122133 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.h
|
87c6d25c71b028695641642d86d0cf4a3ff22096 |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak debug spew. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122132 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
dfe3b6d2a9a452f2fd748416cd8e4c2583e0e8c5 |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check that the register is live-in to the loop header before inserting copies in the loop predecessors. The register can be live-out from a predecessor without being live-in to the loop header if there is a critical edge from the predecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122123 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
bb1744ec1531fff3fd22fdfcd65f0f72d99c4fa5 |
18-Dec-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Fix GCC warning: lib/CodeGen/RegAllocGreedy.cpp:311: error: unused variable 'PhysReg' [-Wunused-variable] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122122 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
89cab93fe999f6d81b4b99a71ac797b7ecfec277 |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass a Banner argument to the machine code verifier both from createMachineVerifierPass and MachineFunction::verify. The banner is printed before the machine code dump, just like the printer pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122113 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
LVMTargetMachine.cpp
achineVerifier.cpp
egAllocBasic.cpp
egAllocGreedy.cpp
|
8d121404370cd57be7e72543127a1afe2faa1b10 |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid dereferencing end() in collectInterferingVRegs() when there is no interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122108 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
|
af24964251e27c2dd863239ba66ffd967b593be5 |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the -verify-regalloc command line option available to base classes as RegAllocBase::VerifyEnabled. Run the machine code verifier in a few interesting places during RegAllocGreedy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122107 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
f428eb6c1b09a2322b7a577b0bf2e49dd107bcea |
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable loop splitting in RegAllocGreedy. The heuristics split around the largest loop where the current register may be allocated without interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122106 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
976ef86689ed065361a748f81c44ca3510af2202 |
18-Dec-2010 |
Bill Wendling <isanbard@gmail.com> |
During local stack slot allocation, the materializeFrameBaseRegister function may be called. If the entry block is empty, the insertion point iterator will be the "end()" value. Calling ->getParent() on it (among others) causes problems. Modify materializeFrameBaseRegister to take the machine basic block and insert the frame base register at the beginning of that block. (It's very similar to what the code does all ready. The only difference is that it will always insert at the beginning of the entry block instead of after a previous materialization of the frame base register. I doubt that that matters here.) <rdar://problem/8782198> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122104 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
d727343a407bd3056f93e96c60eee72725d458c8 |
18-Dec-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a DAGCombiner crash when folding binary vector operations with constant BUILD_VECTOR operands where the element type is not legal. I had previously changed this code to insert TRUNCATE operations, but that was just wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f5daf8bb7ff9539f7a6e0113609b39e4b9b64ff5 |
17-Dec-2010 |
Dale Johannesen <dalej@apple.com> |
Add a transform to DAG Combiner. This improves the code for the case where 32-bit divide by constant is turned into 64-bit multiply by constant. 8771012. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122090 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2f3a4aa550f8f196a546f7957b2df944e04404a2 |
17-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow missing kill flags on an untied operand of a two-address instruction when the operand uses the same register as a tied operand: %r1 = add %r1, %r1 If add were a three-address instruction, kill flags would be required on at least one of the uses. Since it is a two-address instruction, the tied use operand must not have a kill flag. This change makes the kill flag on the untied use operand optional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122082 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
090100fdb166e87bc539e3e4048d18c721c187d0 |
17-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineLoopRange comparators for sorting loop lists by number and by area. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122073 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopRanges.cpp
|
ff2e9b4225ab55ee049b33158a9cce1ef138c2f7 |
17-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Provide LiveIntervalUnion::Query::checkLoopInterference. This is a three-way interval list intersection between a virtual register, a live interval union, and a loop. It will be used to identify interference-free loops for live range splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122034 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
achineLoopRanges.cpp
|
495de3b783c239b4b3244a1e739b2a5b82561b1b |
17-Dec-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix crash compiling a QQQQ REG_SEQUENCE for a Neon vld3_lane operation. Radar 8776599 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
woAddressInstructionPass.cpp
|
c7c5e781a306efc62f86d88dc3b3d44057310c13 |
17-Dec-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122016 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
745dacc91d7ee9531bfba76b21beb5d4eef93a7d |
16-Dec-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Make TargetAsmBackend available to the AsmStreamer. - Treaty talks on the non-proliferation of MC objects broke down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121949 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d0bb5e2ca05d9c942223bf05e5940bb0c6cc9d3f |
16-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Start using SplitKit and MachineLoopRanges in RegAllocGreedy in preparation of live range splitting around loops guided by register pressure. So far, trySplit() simply prints a lot of debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121918 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
egAllocGreedy.cpp
|
ceadc01e9101329cd820ee687f85c012e9609ab1 |
16-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineLoopRanges analysis. A MachineLoopRange contains the intervals of slot indexes covered by the blocks in a loop. This representation of the loop blocks is more efficient to compare against interfering registers during register coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121917 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
achineLoopRanges.cpp
|
a63cde26ff698284ecdbec357966ca9d69e1d83a |
15-Dec-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine cse to commute instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121903 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
5034dd318a9dfa0dc45a3ac01e58e60f2aa2498d |
15-Dec-2010 |
Dan Gohman <gohman@apple.com> |
Move Value::getUnderlyingObject to be a standalone function so that it can live in Analysis instead of VMCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121885 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
6203295473f158bff892ae6659cb8f7fdb0a47b2 |
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121872 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
697483addf056595c997302f1316cc59244eefaa |
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Detect and enumerate bypass loops. Bypass loops have the current live range live through, but contain no uses or defs. Splitting around a bypass loop can free registers for other uses inside the loop by spilling the split range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121871 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
521a453721aeefbb6783b6acc8ea36b3c18b4931 |
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Separate SplitAnalysis::getSplitLoops(). This method returns the set of loops with uses that are candidates for splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121870 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
33e77d3cb98de64b8657c011b549bdb54abf73fc |
15-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
take care of some todos, transforming [us]mul_lohi into a wider mul if the wider mul is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121848 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1a0fbe2cf438ac2788df669284293789681424e1 |
15-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
when transforming a MULHS into a wider MUL, there is no need to SRA the result, the top bits are truncated off anyway, just use SRL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121846 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
257c556d85ba949a1ccff99cd7d1e58417aa6e33 |
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify RegAllocGreedy's use of register aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121807 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
eb7464ebdad70ab5f24b747cea453051cf21a0f8 |
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify CCState's use of register aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121806 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
597faa8f1fd208d6ed99d1771293d77ac486f092 |
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify AggressiveAntiDepBreaker's use of register aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121805 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
16999da951677a94a2f30d98c8126ff175f457e1 |
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplyfy RegAllocBasic by using getOverlaps instead of getAliasSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121801 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
bbc726d6240f1d8480b312832eba5f7dd914fa4d |
14-Dec-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a minor bug in two-address pass. It was missing a commute opportunity. regB = move RCX regA = op regB, regC RAX = move regA where both regB and regC are killed. If regB is constrainted to non-compatible physical registers but regC is not constrainted at all, then it's better to commute the instruction. movl %edi, %eax shlq $32, %rcx leaq (%rcx,%rax), %rax => movl %edi, %eax shlq $32, %rcx orq %rcx, %rax rdar://8762995 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121793 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3ef9f3da397d27e2340742274a7f6e8b8f1149cf |
14-Dec-2010 |
Matt Beaumont-Gay <matthewbg@google.com> |
Move debugging code entirely within DEBUG(). Silences an unused variable warning in the opt build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121791 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
bfce678de7b509a497ac6d91f29e749adab7e40c |
14-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveIntervalUnion print methods, RegAllocGreedy::trySplit debug spew. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121783 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocGreedy.cpp
|
4a84cce3ed0008baf72ccc6831a046215addd2d7 |
14-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use TRI::printReg instead of AbstractRegisterDescription when printing LiveIntervalUnions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121781 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBasic.cpp
|
d84de8cf62991597c15e948ecb121ad0233ba4ec |
14-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Q.seenAllInterferences() must be called after Q.collectInterferingVRegs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121774 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
885b3283eacb01bf281245ed0c19ae8ccca1fc8a |
14-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121741 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
46c83c80c5737743c955ff007fa6409804a7abf0 |
14-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Try reassigning all virtual register interferences, not just those with lower spill weight. Filter out fixed registers instead. Add support for reassigning an interference that was assigned to an alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121737 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
b64d92e29f38002e52a22fe36ea2d488968e3537 |
14-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add stub for RAGreedy::trySplit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121736 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
de1c3605a649239cf8a96ba31885c8fbef2bc838 |
13-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
Add a couple dag combines to transform mulhi/mullo into a wider multiply when the wider type is legal. This allows us to compile: define zeroext i16 @test1(i16 zeroext %x) nounwind { entry: %div = udiv i16 %x, 33 ret i16 %div } into: test1: # @test1 movzwl 4(%esp), %eax imull $63551, %eax, %eax # imm = 0xF83F shrl $21, %eax ret instead of: test1: # @test1 movw $-1985, %ax # imm = 0xFFFFFFFFFFFFF83F mulw 4(%esp) andl $65504, %edx # imm = 0xFFE0 movl %edx, %eax shrl $5, %eax ret Implementing rdar://8760399 and example #4 from: http://blog.regehr.org/archives/320 We should implement the same thing for [su]mul_hilo, but I don't have immediate plans to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
11ae9e29a98595c1899047a64f621fbe46ce7015 |
13-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
remove the verbose-asm "constant pool double" comments that we were printing for each constant pool entry. Using WriteTypeSymbolic here takes time proportional to the size of the module, for each constant pool entry. This speeds up -verbose-asm llc on 252.eon (a random testcase at my disposal) from 4.4s to 2.137s. llc takes 2.11s with asm-verbose off, so this is now a pretty reasonable cost for verbose comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121691 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d5b4db982478e349a8c8759da182636b888b875f |
13-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation by using continue, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121662 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a30b7d2c707b5720691f7aea0652e37bd333d3af |
12-Dec-2010 |
Duncan Sands <baldrick@free.fr> |
Catch attempts to remove a deleted node from the CSE maps. Better to catch this here rather than later after accessing uninitialized memory etc. Fires when compiling the testcase in PR8237. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
533f58ecdd8a4732c2f0e149387c4d8d8d4142de |
11-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add named timer groups for the different stages of register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121604 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
4680dec5fb3a1b624f13ca9b2a555ca90a07973e |
11-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move MRI into RegAllocBase. Clean up debug output a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121599 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
a0bb037283341912c680cc9a82f3586c763345f9 |
11-Dec-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Remove extraneous close parenthesis. Fix build breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121596 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
5a4308bca86728767ea5d9e5df8d8e3351e33c9a |
11-Dec-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Move variable that's unused in an NDEBUG build inside the DEBUG() macro, fixing lib/CodeGen/RegAllocGreedy.cpp:233: error: unused variable 'TRC' [-Wunused-variable] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121594 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
f6dff84d4e44d6c4a46c4f8a18e13c78f804547c |
10-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Force the greedy register allocator to always use the inline spiller. Soon, RegAllocGreedy will start splitting live ranges, and then deferred spilling won't work anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121591 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
piller.cpp
piller.h
|
3bda29eb4f111015974d3f07675a26ec980e4a45 |
10-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rip out live range splitting support from the inline spiller. The spiller should only spill. The register allocator will drive live range splitting, it has the needed information about register pressure and interferences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121590 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
dd479e9769eceee9fcc34e2173376024f3aa3c5f |
10-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use AllocationOrder in RegAllocGreedy, fix a bug in the hint calculation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121584 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
egAllocGreedy.cpp
|
6ce219ec64088fc4ee550afbb6cd30621fbba27e |
10-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix miscompilation caused by trivial logic error in the reassignVReg() interference check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121519 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
c9672cb8bea13fcbcbdb1cf26708d831c034c089 |
10-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an AllocationOrder class that can iterate over the allocatable physical registers for a given virtual register. Reserved registers are filtered from the allocation order, and any valid hint is returned as the first suggestion. For target dependent hints, a number of arcane target hooks are invoked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121497 91177308-0d34-0410-b5e6-96231b3b80d8
llocationOrder.cpp
llocationOrder.h
MakeLists.txt
irtRegMap.h
|
89b9372605db2ce3b0085c84089e389f7bc1fbdd |
10-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fixed version of 121434 with no new memory leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121471 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
argetLoweringObjectFileImpl.cpp
|
f7fd4aa2610f46467369de07f3ec669561d79be0 |
10-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert my previous patch to make the valgrind bots happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121461 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
argetLoweringObjectFileImpl.cpp
|
1c952b9cc98e84b28f68f0f6cf11197263f89863 |
10-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Initial support for the cfi directives. This is just enough to get f: .cfi_startproc nop .cfi_endproc assembled (on ELF). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121434 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
argetLoweringObjectFileImpl.cpp
|
a304d02791b3e0297a9d545e0c602c9f916691f9 |
09-Dec-2010 |
Stuart Hastings <stuart@apple.com> |
Initial support for nested CALLSEQ_START/CALLSEQ_END constructs in LegalizeDAG. Necessary for byval support on ARM. Radar 7662569. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121412 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ff092faffb85410b0013fb70bc991bb98b5663a5 |
09-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to filter out reserved rergisters from the allocation order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121411 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
a0382c629093a2edd175dc256750667c296d3a43 |
09-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a forgotten initializer for CheckedFirstInterference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121410 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
b853e6c3702149cdbbd6fa404334e3ba0055641a |
09-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Added register reassignment prototype to RAGreedy. It's a simple heuristic to reshuffle register assignments when we can't find an available reg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121388 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
503a64dcd47e6ed9216a75ac68299a2f081b313c |
09-Dec-2010 |
Eric Christopher <echristo@apple.com> |
80-col fixups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a35cce1a14d8eee7e250e02b03903a5096d22c2f |
09-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
IntervalMap iterators are heavyweight, so avoid copying them around and use references instead. Similarly, IntervalMap::begin() is almost as expensive as find(), so use find(x) instead of begin().advanceTo(x); This makes RegAllocBasic run another 5% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121344 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
d639c7cab42f8919b2d9f5ab169203bf8bc45f10 |
09-Dec-2010 |
Devang Patel <dpatel@apple.com> |
DW_FORM_data1 may not provide sufficient room for vtable index, use _udata instead. This fixes radar 8730409. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121323 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9b0c4f8af3e303c85ddb5ff0ee2c8e27a4d77203 |
09-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly deal with empty intervals when checking for interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121319 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
egAllocGreedy.cpp
|
90c1d7ddfc65654f7efe72d56cad65d1af9e6b2a |
08-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement very primitive hinting support in RegAllocGreedy. The hint is simply tried first and then forgotten if it couldn't be allocated immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121306 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
d0bec3e62c98b1f0ef3a41db8f95599b2014c131 |
08-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Store (priority,regnum) pairs in the priority queue instead of providing an abstract priority queue interface in subclasses that want to override the priority calculations. Subclasses must provide a getPriority() implementation instead. This approach requires less code as long as priorities are expressable as simple floats, and it avoids the dangers of defining potentially expensive priority comparison functions. It also should speed up priority_queue operations since they no longer have to chase pointers when comparing registers. This is not measurable, though. Preferably, we shouldn't use floats to guide code generation. The use of floats here is derived from the use of floats for spill weights. Spill weights have a dynamic range that doesn't lend itself easily to a fixpoint implementation. When someone invents a stable spill weight representation, it can be reused for allocation priorities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121294 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
egAllocBasic.cpp
egAllocGreedy.cpp
|
bece04845e6746fd162bc36e79a6cfd095165c23 |
08-Dec-2010 |
Eric Christopher <echristo@apple.com> |
Reword comment slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
f299da8ec3fee88a1b275560a7f94be4cf10d089 |
08-Dec-2010 |
Eric Christopher <echristo@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121285 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
753936602ef6c5e97aba29e89606087b51a6c886 |
08-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trim includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121283 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocGreedy.cpp
|
6b1207267f01877ff9b351786c902cb2ecd354c0 |
08-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Generalize PostRAHazardRecognizer so it can be used in any pass for both forward and backward scheduling. Rename it to ScoreboardHazardRecognizer (Scoreboard is one word). Remove integer division from the scoreboard's critical path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121274 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
ostRAHazardRecognizer.cpp
coreboardHazardRecognizer.cpp
argetInstrInfoImpl.cpp
|
cba2e06d525b723849cd8e1f083eb1e59a494b4e |
08-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stub out RegAllocGreedy. This new register allocator is initially identical to RegAllocBasic, but it will receive all of the tricks that RegAllocBasic won't get. RegAllocGreedy will eventually replace linear scan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121234 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocGreedy.cpp
|
1b19dc1d8b7594434ea9a157bfe2ae68eabf9f05 |
08-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move RABasic::addMBBLiveIns to the base class, it is generally useful. Minor optimization to the use of IntervalMap iterators. They are fairly heavyweight, so prefer SI.valid() over SI != end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121217 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
953af2c3c560a13bd5eeb676c128b7e362dca684 |
08-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch LiveIntervalUnion from std::set to IntervalMap. This speeds up RegAllocBasic by 20%, not counting releaseMemory which becomes way faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121201 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
2b38c51f0ece16ef00068da56bee4623fb9ae485 |
07-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121162 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
40f8f6264d5af2c38e797e0dc59827cd231e8ff7 |
07-Dec-2010 |
Jay Foad <jay.foad@gmail.com> |
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method trunc(), to be const and to return a new value instead of modifying the object in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
1fe045279b10550f06fd755c1aa6377e67ff0473 |
07-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121098 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
b7313e274c0b26879b45023a85a3c8a4b5ac5c92 |
06-Dec-2010 |
Devang Patel <dpatel@apple.com> |
Undefined value in reg 0 may need a marker to identify end of source range. This will be used to truncate live range of DBG_VALUE instruction by register allocator and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121061 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
afeaae7a940ce16e7874af31f3e5e91d8ca89e19 |
06-Dec-2010 |
Devang Patel <dpatel@apple.com> |
If dbg_declare() or dbg_value() is not lowered by isel then emit DEBUG message instead of creating DBG_VALUE for undefined value in reg0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0bbe0b440ee2cef47dcb7b281825eb70341c16dd |
06-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Second try at making direct object emission produce the same results as llc + llvm-mc. This time ELF is not changed and I tested that llvm-gcc bootstrap on darwin10 using darwin9's assembler and linker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121006 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
6d86492f5ed0f9853ddd3b24e1aa037e305e1784 |
06-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert previous two patches while I try to find out how to make both linux and darwin assemblers happy :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
2303c9dd69476d045af7cee94e112dd77d22fd28 |
06-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add an EmitAbsValue helper method and use it in cases where we want to be sure that no relocations are used (on MochO). Fixes llc producing different output from llc + llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121000 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
9eaf49b320e7725fbf4e24721d91a69a6d36938f |
05-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Some cleanup before I start committing some incremental progress on StrongPHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120961 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0a3fdd6e11cd351737b4451c05ec5d794e6855cf |
05-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Remove the PHIElimination.h header, as it is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120959 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
120188605fd1e3228c65daf2c5cd6c7a62d6a335 |
05-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
I forgot to actually remove the FindCopyInsertPoint() declaration from PHIElimination.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120953 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.h
|
2225dd81e91a24a8d61cac935dee237c7d5da2ed |
05-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Remove the SplitCriticalEdge() method declaration from PHIElimination.h. At one time, this method existed, but now PHIElimination uses the method of the same name on MachineBasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120952 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.h
|
a474685d069a900ab931ee1540c9a79fdd6607a9 |
05-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Move the FindCopyInsertPoint method of PHIElimination to a new standalone function so that it can be shared with StrongPHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120951 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
HIElimination.cpp
HIEliminationUtils.cpp
HIEliminationUtils.h
|
2a7942926b753d185cb23ee29a91f2863eda4778 |
04-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Remove PHIElimination's private copy of SkipPHIsAndLabels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120918 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
3069cbf7b3ef9a31bbb8e434686b7259052c364a |
04-Dec-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unneeded zero arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120910 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
6ed4c6af97db8b2bbfd6b54dd2a58f16cf0c592b |
03-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename virtRegMap to avoid confusion with the VirtRegMap that it isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120846 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
5daec2215bdb6f484956362d81e5923bb2bffd58 |
03-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Coalesce debug locations when possible, causing less DBG_VALUE instructions to be emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120845 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
42acf069c9e46395a2fa230ed6b89b402828e3d5 |
03-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Emit DBG_VALUE instructions from LiveDebugVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120842 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
iveDebugVariables.h
egAllocLinearScan.cpp
|
8d2584a1d9ab56d35884d035e4da6146b4d7391f |
03-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also update virtRegMap when renaming virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120841 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
|
68be956fff5db5152f5b0ec7e94c42b14e92a3e8 |
03-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete the StrongPHIElimination pass, leaving only a shell. The StrongPHIElimination pass did not work, and nobody has worked on it for two years. A rewrite is underway, so I am leaving this shell pass instead of deleting it completely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120830 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
30e2128a731e5a0bcac45a6a79a03bdedce68a0a |
02-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update LiveDebugVariables during coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120720 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
iveDebugVariables.h
impleRegisterCoalescing.cpp
|
0613516b16466a92c68d60734801221506c85e86 |
02-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement the first half of LiveDebugVariables. Scan the MachineFunction for DBG_VALUE instructions, and replace them with a data structure similar to LiveIntervals. The live range of a DBG_VALUE is determined by propagating it down the dominator tree until a new DBG_VALUE is found. When a DBG_VALUE lives in a register, its live range is confined to the live range of the register's value. LiveDebugVariables runs before coalescing, so DBG_VALUEs are not artificially extended when registers are joined. The missing half will recreate DBG_VALUE instructions from the intervals when register allocation is complete. The pass is disabled by default. It can be enabled with the temporary command line option -live-debug-variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120636 91177308-0d34-0410-b5e6-96231b3b80d8
iveDebugVariables.cpp
iveDebugVariables.h
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
7a874ddda037349184fbeb22838cc11a1a9bb78f |
01-Dec-2010 |
Jay Foad <jay.foad@gmail.com> |
PR5207: Rename overloaded APInt methods set(), clear(), flip() to setAllBits(), setBit(unsigned), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
|
34fff59caddd8cb4f25730360b6dceadca710275 |
01-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120504 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
|
3d2125c9dbac695c93f42c0f59fd040e413fd711 |
01-Dec-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable sibling call optimization of libcalls which are expanded during legalization time. Since at legalization time there is no mapping from SDNode back to the corresponding LLVM instruction and the return SDNode is target specific, this requires a target hook to check for eligibility. Only x86 and ARM support this form of sibcall optimization right now. rdar://8707777 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120501 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/LegalizeDAG.cpp
|
18c57a8a09a7c79fbcf4348b0ad8135246ab984f |
01-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Coding style. No significant functionality. Abandon linear scan style in favor of the widespread llvm style. Capitalize variables and add newlines for visual parsing. Rename variables for readability. And other cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120490 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
de189be53f5831737f38e720f10dbcdcce6876c6 |
30-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
add TLI support indicating that jumps are more expensive than logical operations and use this to disable a specific optimization. Patch by Micah Villmow! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
a99793c5ea24dd3839f4925b89b1f6acfcb24604 |
30-Nov-2010 |
Jay Foad <jay.foad@gmail.com> |
PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120413 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
bb7b23f5b79a7ca2aa62faa1a6078428af597234 |
30-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stub out a new LiveDebugVariables pass. This analysis is going to run immediately after LiveIntervals. It will stay alive during register allocation and keep track of user variables mentioned in DBG_VALUE instructions. When the register allocator is moving values between registers and the stack, it is very hard to keep track of DBG_VALUE instructions. We usually get it wrong. This analysis maintains a data structure that makes it easy to update DBG_VALUE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120385 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
iveDebugVariables.cpp
iveDebugVariables.h
|
1f6efa3996dd1929fbc129203ce5009b620e6969 |
29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
LF.h
seudoSourceValue.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAG.cpp
|
bebfbc560bba894c8d0aa0e8b6ee109fda2d1b0c |
28-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
94c5ae08750f314bc3cf1bf882b686244a3927d9 |
28-Nov-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move more PEI-related hooks to TFI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120229 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
cd775ceff0b25a0b026f643a7990c2924bd310a3 |
28-Nov-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move callee-saved regs spills / reloads to TFI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120228 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c62feda741f9d5811b625967c40f1847fb2040e7 |
25-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Namespacify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120146 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
bf17cfa3f904e488e898ac2e3af706fd1a892f08 |
23-Nov-2010 |
Wesley Peck <peckw@wesleypeck.com> |
Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
ce750f03322fe29ced3aca0718424fe173f22298 |
22-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Implement the "if (X == 6 || X == 4)" -> "if ((X|2) == 6)" optimization. This currently only catches the most basic case, a two-case switch, but can be extended later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
82f58740c76b42af8370247b23677a0318f6dde8 |
20-Nov-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move some more hooks to TargetFrameInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119904 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
CStrategy.cpp
|
3ca136312abe3c41f3422e9de280b7be0dc65362 |
20-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence Release build warnings about unused functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119903 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
59d2dad59ebba1d82e5b72f78b7a5b2c873445d7 |
20-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
On X86, MEMBARRIER, MFENCE, SFENCE, LFENCE are not target memory intrinsics, so don't claim they are. They are allocated using DAG.getNode, so attempts to access MemSDNode fields results in reading off the end of the allocated memory. This fixes crashes with "llc -debug" due to debug code trying to print MemSDNode fields for these barrier nodes (since the crashes are not deterministic, use valgrind to see this). Add some nasty checking to try to catch this kind of thing in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b9e6fe1e3afe3c4cdbdddfb563adc10c439dc296 |
20-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Removing the useless test that I added recently. It was meant as an example, but not complicated enough to merit another test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119898 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
316df4bfe3db625a4394ff018c51d61f223aad86 |
20-Nov-2010 |
Andrew Trick <atrick@apple.com> |
RABasic fix. Regalloc is responsible for updating block live ins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119896 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
13bdbb0544900643b4520f67cc48c6046c515c65 |
20-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119895 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
04d14ff349d5d807afbc4777d85ae1eaa7e4c8f7 |
20-Nov-2010 |
Bill Wendling <isanbard@gmail.com> |
Check for _setjmp too, because it's also used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cab98e3168558a40675a06bc830eb87b8e40070e |
19-Nov-2010 |
Mon P Wang <wangmp@apple.com> |
Make isScalarToVector to return false if the node is a scalar. This will prevent DAGCombine from making an illegal transformation of bitcast of a scalar to a vector into a scalar_to_vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119819 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e7fbdcdfc6b5e562d2741cceec8aee1bd3dd1c2d |
19-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't attempt trivial coalescing for sub-register copies. Patch by Krister Wombell! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119791 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
195a0ce484cd12a5adae9184188f6d0fb52b84c0 |
19-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change some methods in MCDwarf.cpp to be able to handle an arbitrary MCStreamer instead of just MCObjectStreamer. Address changes cannot be as efficient as we have to use DW_LNE_set_addres, but at least most of the logic is shared. This will be used so that, with CodeGen still using EmitDwarfLocDirective, llvm-gcc is able to produce debug_line sections without needing an assembler that supports .loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119777 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d9e3385ced2dc887e2fe8e1c071bd2611e4d3ede |
19-Nov-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move getInitialFrameState() to TargetFrameInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119754 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
d0c38176690e9602a93a20a43f1bd084564a8116 |
18-Nov-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move hasFP() and few related hooks to TargetFrameInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119740 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b9064bb96458ab48a878e1a7e678cada2e22ab7a |
18-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Fix thinko: we must turn select(anyext, sext) into sext(select) not anyext(select). Spotted by Frits van Bommel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
dcfd3a798ffbd5e02d4892eeef562c9124598844 |
18-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
The DAGCombiner was threading select over pairs of extending loads even if the extension types were not the same. The result was that if you fed a select with sext and zext loads, as in the testcase, then it would get turned into a zext (or sext) of the select, which is wrong in the cases when it should have been an sext (resp. zext). Reported and diagnosed by Sebastien Deldon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bd77d399c4cdc2440abde96b2861b149fae4f33e |
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Oops, missed this file when remaing ExpandPseudos to ExpandISelPseudos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119717 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8ec9d62380f7139c7c85bae9609e8e93d2799500 |
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Rename ExpandPseudos to ExpandISelPseudos to help clarify its role. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119716 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
xpandISelPseudos.cpp
xpandPseudos.cpp
|
4229c62dcfb6a02d5d93ca9f022910dced77dcb0 |
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119712 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPseudos.cpp
|
409d64a7645ed94a1a23f6c3e03d46cb6d24b382 |
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
ExpandPseudos doesn't have any dependencies, so it can use the simple form of INITIALIZE_PASS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119707 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPseudos.cpp
|
5c0556341e29246e697c73844a5f9b1e14474715 |
18-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change CodeGen to use .loc directives. This produces a lot more readable output and testing is easier. A good example is the unknown-location.ll test that now can just look for ".loc 1 0 0". We also don't use a DW_LNE_set_address for every address change anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119613 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b4ac2858dad1f6e892c8bfe981a6cf32e9a385f8 |
18-Nov-2010 |
Dale Johannesen <dalej@apple.com> |
Do not throw away alignment when generating the DAG for memset; we may need it to decide between MOVAPS and MOVUPS later. Adjust a test that was looking for wrong code. PR 3866 / 8675131. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7730318000e8b1b0779eb773c87e29eb9f24d930 |
18-Nov-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Bug 8621 fix - pointer cast stripped from inline asm constraint argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c4af4638dfdab0dc3b6257276cfad2ee45053060 |
17-Nov-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, and xor. The 32-bit move immediates can be hoisted out of loops by machine LICM but the isel hacks were preventing them. Instead, let peephole optimization pass recognize registers that are defined by immediates and the ARM target hook will fold the immediates in. Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ instructions if there are multiple uses. This happens when the 'and' is live out, machine sink would have sinked the computation and that ends up pessimizing code. The peephole pass would recognize situations where the 'and' can be toggled to define CPSR and eliminate the comparison anyway. 2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking important optimizations. rdar://8663787, rdar://8241368 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119548 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
eepholeOptimizer.cpp
|
ce1b9ad539e67c6d05cc6b47ca5f6e62a6d91eff |
17-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
With the newly simplified SourceMgr interfaces and the generalized SrcMgrDiagHandler, we can improve clang diagnostics for inline asm: instead of reporting them on a source line of the original line, we can report it on the correct line wherever the string literal came from. For something like this: void foo() { asm("push %rax\n" ".code32\n"); } we used to get this: (note that the line in t.c isn't helpful) t.c:4:7: error: warning: ignoring directive for now asm("push %rax\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ now we get: t.c:5:8: error: warning: ignoring directive for now ".code32\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ Note that we're pointing to line 5 properly now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119488 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
4afa12890f679034e9741a687a6ce33f2846f129 |
17-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
now that AsmPrinter::EmitInlineAsm is factored right, we can eliminate the cookie argument to the SourceMgr diagnostic stuff. This cleanly separates LLVMContext's inlineasm handler from the sourcemgr error handling definition, increasing type safety and cleaning things up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119486 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
6e30c6a1d32f187804d24ecd1868d63c60330b22 |
17-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
rearrange how the handler in SourceMgr is installed, eliminating the use of the cookie argument to setDiagHandler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
a38941d458273946594d3592ed5debdc9730db08 |
17-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
refactor the interface to EmitInlineAsm a bit, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119482 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
113a06cff443f5d73c4f1f89bd31b0efb4222227 |
17-Nov-2010 |
Eric Christopher <echristo@apple.com> |
Only avoid the check if we're the last operand before the variable operands in a variadic instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119446 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
76043670d5cb1337d171e9cd391a9b31876002a4 |
16-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix grammaro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119386 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPseudos.cpp
|
61f1a97e61bf56bfdc56da0e20f5a866f66919f6 |
16-Nov-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add ExpandPseudos.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119385 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
668ac2fdae69ed358ecf690d6a07428e5a9ee2f7 |
16-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Split pseudo-instruction expansion into a separate pass, to make it easier to debug, and to avoid complications when the CFG changes in the middle of the instruction selection process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119382 91177308-0d34-0410-b5e6-96231b3b80d8
xpandPseudos.cpp
LVMTargetMachine.cpp
electionDAG/InstrEmitter.cpp
|
f4840c07f84d018c4de5dbdad4166b9e162f8f89 |
16-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix emergency spilling in LiveIntervals::spillPhysRegAroundRegDefsUses. Always spill the full representative register at any point where any subregister is live. This fixes PR8620 which caused the old logic to get confused and not spill anything at all. The fundamental problem here is that the coalescer is too aggressive about physical register coalescing. It sometimes makes it impossible to allocate registers without these emergency spills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119375 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fd900a2c07f54b4687315edf3df0ec99e4462942 |
16-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the register class of the current interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119374 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
800e57313e19a30749ca59ed03f33583ffff4a3a |
16-Nov-2010 |
Eric Christopher <echristo@apple.com> |
Make the verifier a little quieter on instructions that it's probably (and likely) wrong about anyhow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119320 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
615c85391ffa0af0bd5a2c69e45752545bc0455c |
16-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to resize SpillSlotToUsesMap when allocating an emergency spill slot. Use amazing new function call technology instead of writing identical code in multiple places. This fixes PR8604. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119306 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
b55e91e08738b804f17109a49881e51b69e91299 |
16-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to resize SpillSlotToUsesMap when allocating an emergency spill slot. Use amazing new function call technology instead of writing identical code in multiple places. This fixes PR8604. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119306 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
3517c8603deeba405e1e1953d2d716798fc0ceb3 |
16-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR8612 in the standard spiller, take two. The live range of a register defined by an early clobber starts at the use slot, not the def slot. Except when it is an early clobber tied to a use operand. Then it starts at the def slot like a standard def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119305 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7c2e4a8715836a44e82ac6c7370826519ccdfddb |
16-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR8612 in the standard spiller, take two. The live range of a register defined by an early clobber starts at the use slot, not the def slot. Except when it is an early clobber tied to a use operand. Then it starts at the def slot like a standard def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119305 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f3e608eb3ce68164699490a5da28e0a831d4b336 |
15-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Fix PR8612 in the standard spiller as well." This reverts r119183 which borke the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119270 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bea0b6a0495c8c80ad7d52d4bc28acdee926020b |
15-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Fix PR8612 in the standard spiller as well." This reverts r119183 which borke the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119270 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8c5826be10ecf5eca355a0c9110b4f1d0865d5f5 |
15-Nov-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. The peephole pass should be the one updating the instruction iterator, not TII->OptimizeCompareInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119186 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
eb96a2f6c03c0ec97c56a3493ac38024afacc774 |
15-Nov-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. The peephole pass should be the one updating the instruction iterator, not TII->OptimizeCompareInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119186 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
b23f6cbd3ddba6d696ec2a298085266810a2566b |
15-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR8612 in the standard spiller as well. The live range of a register defined by an early clobber starts at the use slot, not the def slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119183 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a284aa1657d08390209b87f57782936e45d562ba |
15-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR8612 in the standard spiller as well. The live range of a register defined by an early clobber starts at the use slot, not the def slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119183 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4e407c041b08b429716a37ddf92efa4bb48221ec |
15-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When spilling a register defined by an early clobber, make sure that the new live ranges for the spill register are also defined at the use slot instead of the normal def slot. This fixes PR8612 for the inline spiller. A use was being allocated to the same register as a spilled early clobber def. This problem exists in all the spillers. A fix for the standard spiller is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119182 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
68257e61eb6e7d528759bd7830db47d409dace89 |
15-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When spilling a register defined by an early clobber, make sure that the new live ranges for the spill register are also defined at the use slot instead of the normal def slot. This fixes PR8612 for the inline spiller. A use was being allocated to the same register as a spilled early clobber def. This problem exists in all the spillers. A fix for the standard spiller is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119182 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
b87e6afa1369ea12e485b1037184f78e42dc73df |
15-Nov-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119097 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
33464912237efaa0ed7060829e66b59055bdd48b |
15-Nov-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119097 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
009e587ba2456d93ac816e05e93eb50f4f93510a |
14-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
move the pic base symbol stuff up to MachineFunction since it is trivial and will be shared between ppc and x86. This substantially simplifies the X86 backend also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119089 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
142b531e024c7b814df74951b378b9e3e11d0d42 |
14-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
move the pic base symbol stuff up to MachineFunction since it is trivial and will be shared between ppc and x86. This substantially simplifies the X86 backend also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119089 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
f23f7c482522661ec05a864a8f3607b2485bb31b |
13-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Remove DW_AT_start_scope support. It is incomplete and superseeded by location entries support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118940 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
522ad74e4bd27e9156916ed58dd5c7f1a17a541d |
13-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Remove DW_AT_start_scope support. It is incomplete and superseeded by location entries support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118940 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
af16f1f936ad883d3b32e8ff59b805a857c59d31 |
12-Nov-2010 |
Andrew Trick <atrick@apple.com> |
typo (4th checkin for one fix) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118913 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f06202f8e80a4b5ef579712e792cf6c416ece601 |
12-Nov-2010 |
Andrew Trick <atrick@apple.com> |
typo (4th checkin for one fix) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118913 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
28372aab8ff625730f6c2f7a03549966a093663d |
12-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Fixes PR8287: SD scheduling time. The fix is a failsafe that prevents catastrophic compilation time in the event of unreasonable LLVM IR. Code quality is a separate issue--someone upstream needs to do a better job of reducing to llvm.memcpy. If the situation can be reproduced with any supported frontend, then it will be a separate bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
de91f3c5eb3d6dc222e62f2e6ea2597674c41a84 |
12-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Fixes PR8287: SD scheduling time. The fix is a failsafe that prevents catastrophic compilation time in the event of unreasonable LLVM IR. Code quality is a separate issue--someone upstream needs to do a better job of reducing to llvm.memcpy. If the situation can be reproduced with any supported frontend, then it will be a separate bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
80b5f9e065b7c7699aa72e8cf363693a11299661 |
12-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118896 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a29aae7aca6d8b9a9e95238d7e4067d8c16b0079 |
12-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118896 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9c2117b17f1a7527bf3c10765f2b34bbcb89a094 |
12-Nov-2010 |
Lang Hames <lhames@gmail.com> |
Fix some style issues in PBQP. Patch by David Blaikie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118883 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
5e77f4b1d239a61dbdb37026bfc92d83d82ceb70 |
12-Nov-2010 |
Lang Hames <lhames@gmail.com> |
Fix some style issues in PBQP. Patch by David Blaikie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118883 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
acd9aaed8299d871a27f31ae21abdfd22b2ff08f |
11-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Add a FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118803 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
fca0b106f7df867912cd1de8bbd6285bb2ab7225 |
11-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Add a FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118803 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
52e9ded77626ba02dcefb36b3cfaf01c42227921 |
11-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Check TRI->getReservedRegs because other allocators do it. Even though it makes no sense for allocation_order iterators to visit reserved regs. The inline spiller depends on AliasAnalysis. Manage the Query state to avoid uninitialized or stale results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118800 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
8a83d54528c197675ba0f21ebe95ac30fa3d8841 |
11-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Check TRI->getReservedRegs because other allocators do it. Even though it makes no sense for allocation_order iterators to visit reserved regs. The inline spiller depends on AliasAnalysis. Manage the Query state to avoid uninitialized or stale results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118800 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
8e8c477357cdb5ec953ef2b28b5f0882809751b5 |
11-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Remove the memmove->memcpy optimization from CodeGen. MemCpyOpt does this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
efb8a9d0c2c6be209c6e34f4249ff14fc232bf9f |
11-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Remove the memmove->memcpy optimization from CodeGen. MemCpyOpt does this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b7f04694823796f671c1b254c37bac3e1bc1707d |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete SplittingSpiller. It was not being used by anyone, and it is being superceded by SplitKit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118754 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
a05f60b2413150ee11de7072f71d68d9567359ac |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete SplittingSpiller. It was not being used by anyone, and it is being superceded by SplitKit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118754 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
643cc3357cb3eb0eccd2b42e22085b2b08fe847d |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Insert two blank SlotIndexes between basic blocks instead of just one. This is the first small step towards using closed intervals for liveness instead of the half-open intervals we're using now. We want to be able to distinguish between a SlotIndex that represents a variable being live-out of a basic block, and an index representing a variable live-in to its successor. That requires two separate indexes between blocks. One for live-outs and one for live-ins. With this change, getMBBEndIdx(MBB).getPrevSlot() becomes stable so it stays greater than any instructions inserted at the end of MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118747 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
1e8e72d72a71ec3fb6c81bd35a34261f34436900 |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Insert two blank SlotIndexes between basic blocks instead of just one. This is the first small step towards using closed intervals for liveness instead of the half-open intervals we're using now. We want to be able to distinguish between a SlotIndex that represents a variable being live-out of a basic block, and an index representing a variable live-in to its successor. That requires two separate indexes between blocks. One for live-outs and one for live-ins. With this change, getMBBEndIdx(MBB).getPrevSlot() becomes stable so it stays greater than any instructions inserted at the end of MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118747 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
1f2685d070647ce37b44a208ebf1e5d196679233 |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
No need to add liveness that's already there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118742 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b5f327b30f048b989c6f08d3bf84568d541b7644 |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
No need to add liveness that's already there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118742 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
687aca31b93064bbd32da779cde12c3f6f880095 |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hook up AliasAnalysis in InlineSpiller. This is used for rematerializing constant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118741 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
|
e93198af07517b92f276192c974ce3a6006ce998 |
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Hook up AliasAnalysis in InlineSpiller. This is used for rematerializing constant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118741 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
|
3e28ee0dbbb59d3fa7990a594d6e7ccab44290d5 |
10-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Take care of special characters while creating named MDNode name to hold function specific local variable's info. This fixes radar 8653152. I am checking in testcase as a separate check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
62367045a493f9bffa433e34b68fc7dda96e1edd |
10-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Take care of special characters while creating named MDNode name to hold function specific local variable's info. This fixes radar 8653152. I am checking in testcase as a separate check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
77ecaa159bd19b35e537f2fb2e776d3b6bbc6b4a |
10-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Basic rematerialization during splitting. Whenever splitting wants to insert a copy, it checks if the value can be rematerialized cheaply instead. Missing features: - Delete instructions when all uses have been rematerialized. - Truncate live ranges to the remaining uses after rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118702 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
cfa7134a9c33c0c7f8dda359c89dc6763a258e07 |
10-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Basic rematerialization during splitting. Whenever splitting wants to insert a copy, it checks if the value can be rematerialized cheaply instead. Missing features: - Delete instructions when all uses have been rematerialized. - Truncate live ranges to the remaining uses after rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118702 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
e9157e10cd2be2b3dbaf26baa925765562819266 |
10-Nov-2010 |
Andrew Trick <atrick@apple.com> |
RABasic is nearly functionally complete. There are a few remaining benchmarks hitting an assertion. Adds LiveIntervalUnion::collectInterferingVRegs. Fixes "late spilling" by checking for any unspillable live vregs among all physReg aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118701 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
piller.cpp
piller.h
|
f4baeaf8485f01beda46d29fd55753199dc68070 |
10-Nov-2010 |
Andrew Trick <atrick@apple.com> |
RABasic is nearly functionally complete. There are a few remaining benchmarks hitting an assertion. Adds LiveIntervalUnion::collectInterferingVRegs. Fixes "late spilling" by checking for any unspillable live vregs among all physReg aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118701 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
piller.cpp
piller.h
|
353e7153f105d20a8e307dcca5b12a90b39991bc |
10-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the LiveRangeEdit::canRematerializeAt() interface a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118661 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
b80e973c95034e5754d888140497a9658a7c1ded |
10-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the LiveRangeEdit::canRematerializeAt() interface a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118661 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
c129a6947aa39948bce6a35afb55dbd2e31f4fb3 |
10-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fixed version of 118639 with an extra assert to catch similar problems earlier. Implicit bool -> int conversions are evil! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118651 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
34be396a12b00a95a1353c356d64868798ea3098 |
10-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fixed version of 118639 with an extra assert to catch similar problems earlier. Implicit bool -> int conversions are evil! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118651 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
2857876ab4cb39749f0763d148c23b57eeeaf232 |
09-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Adds RABasic verification and tracing. (retry now that the windows build is green) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118630 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
071d1c063f1080c70a7141d947a96cf511a1ba45 |
09-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Adds RABasic verification and tracing. (retry now that the windows build is green) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118630 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
3f0c73f34557c7b4fb14bed7ecb638f803ca787d |
09-Nov-2010 |
Matt Beaumont-Gay <matthewbg@google.com> |
Add a trivial virtual dtor to AbstractRegisterDescription to appease -Wnon-virtual-dtor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118616 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
e33daaaaf9d67f30b141430bffc34bbda93063d1 |
09-Nov-2010 |
Matt Beaumont-Gay <matthewbg@google.com> |
Add a trivial virtual dtor to AbstractRegisterDescription to appease -Wnon-virtual-dtor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118616 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.h
|
6c7228faf7b8bc03ee4fdad3ab462f96978ceaed |
09-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Reverting r118604. Windows build broke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118613 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
32d9aeb1df982638766757704c4e23f58ffb40d1 |
09-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Reverting r118604. Windows build broke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118613 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
d74b00cd80ece16e4909f7605795d03072e82493 |
09-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Adds RABasic verification and tracing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118604 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
39a5ce46a51c8e855a2f52c9f733d9d5dd8a65c4 |
09-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Adds RABasic verification and tracing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118604 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
8793b9f59a676704580e09a948999409bf8dfdaa |
09-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix DAGCombiner to avoid folding a sext-in-reg or similar through a shl in order to fold it into a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6a559cd6959bef28d20acef2129e5510bcc12bb8 |
09-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix DAGCombiner to avoid folding a sext-in-reg or similar through a shl in order to fold it into a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2ee498cb2d9226159c070685625c552a2cfdeeca |
09-Nov-2010 |
Dale Johannesen <dalej@apple.com> |
Fix an inline asm pasto from 117667; was preventing {i64, i64} from matching i128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
71365d3774a6c02f3f198fbf08a56e4b6346bbcc |
09-Nov-2010 |
Dale Johannesen <dalej@apple.com> |
Fix an inline asm pasto from 117667; was preventing {i64, i64} from matching i128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
038a1039e1774669ebd9eb09c8bd2237467627c3 |
08-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Adds support for spilling previously allocated live intervals to handle cases in which a register is unavailable for spill code. Adds LiveIntervalUnion::extract. While processing interferences on a live virtual register, reuses the same Query object for each physcial reg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118423 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
e141a4960f702bef957b28abde3801ec64e32d87 |
08-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Adds support for spilling previously allocated live intervals to handle cases in which a register is unavailable for spill code. Adds LiveIntervalUnion::extract. While processing interferences on a live virtual register, reuses the same Query object for each physcial reg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118423 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
a1746d56c346e415e508b997e31f4e354ebaebd9 |
08-Nov-2010 |
Che-Liang Chiou <clchiou@gmail.com> |
Add registry hook for assembly text output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118394 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6da24ca51d0a0483b4ff1537a177bd172997f129 |
08-Nov-2010 |
Che-Liang Chiou <clchiou@gmail.com> |
Add registry hook for assembly text output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118394 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fbf8b4c050489431d314b091bb69a7f5a668dd25 |
06-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Prune includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118342 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
jLjEHPrepare.cpp
irtRegRewriter.cpp
|
f788854d20b12c60fd8b43c587adb3227b6b1bff |
06-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Prune includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118342 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
jLjEHPrepare.cpp
irtRegRewriter.cpp
|
fb480f9e57c29ac68528e933cfafd23cf596ed24 |
05-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
When passing a parameter using the 'byval' mechanism, inline code needs to be used to perform the copy, which may be of lots of memory [*]. It would be good if the fall-back code generated something reasonable, i.e. did the copy in a loop, rather than vast numbers of loads and stores. Add a note about this. Currently target specific code seems to always kick in so this is more of a theoretical issue rather than a practical one now that X86 has been fixed. [*] It's amazing how often people pass mega-byte long arrays by copy... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118275 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
69300a2f47541a32cf453c857b2a6075c0c65632 |
05-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
When passing a parameter using the 'byval' mechanism, inline code needs to be used to perform the copy, which may be of lots of memory [*]. It would be good if the fall-back code generated something reasonable, i.e. did the copy in a loop, rather than vast numbers of loads and stores. Add a note about this. Currently target specific code seems to always kick in so this is more of a theoretical issue rather than a practical one now that X86 has been fixed. [*] It's amazing how often people pass mega-byte long arrays by copy... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118275 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7a263c0f8e983ccbaaa4a942a2f1b999d59bad7d |
04-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add 118023 back, but with proper spelling for .uleb128/.sleb128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118254 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
738734501635a15d8ed2d1c8d52962ed5f319bd3 |
04-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add 118023 back, but with proper spelling for .uleb128/.sleb128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118254 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
e8f099da6cd2f31f14e01b7522c877106520a1d2 |
04-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert previous patch. Some targets don't support uleb and say they do :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
537ebeaffcce2b44705f678a67802ea77c5a3f92 |
04-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert previous patch. Some targets don't support uleb and say they do :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
98eea4dc9750c7333821212b567f80cc9bd4e915 |
04-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
MCize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118249 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
40f6514ff08e880504f920887e0cc54bef23ef97 |
04-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
MCize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118249 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
05b343ad87802070ad17ed8a1c72ce521714ccbe |
04-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
In the calling convention logic, ValVT is always a legal type, and as such can be represented by an MVT - the more complicated EVT is not needed. Use MVT for ValVT everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118245 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
1e96bab329eb23e4ce8a0dc3cc6b33a3f03d15bf |
04-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
In the calling convention logic, ValVT is always a legal type, and as such can be represented by an MVT - the more complicated EVT is not needed. Use MVT for ValVT everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118245 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
|
a8384c26c1e394b9c533935a5a31fc84c5c21aa4 |
04-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable fancy splitting during spilling unless -extra-spiller-splits is given. This way, InlineSpiller does the same amount of splitting as the standard spiller. Splitting should really be guided by the register allocator, and doesn't belong in the spiller at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118216 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
8c42f48d023c4b9164b3c39ad0513b53f1cc1e91 |
04-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable fancy splitting during spilling unless -extra-spiller-splits is given. This way, InlineSpiller does the same amount of splitting as the standard spiller. Splitting should really be guided by the register allocator, and doesn't belong in the spiller at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118216 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
611dc907031cf99666a4b39a3c0e34a6152c8554 |
03-Nov-2010 |
Eric Christopher <echristo@apple.com> |
Just return undef for invalid masks or elts, and since we're doing that, just do it earlier too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d81f17acb4f2d755759a4d8a83a71a98ade0edd3 |
03-Nov-2010 |
Eric Christopher <echristo@apple.com> |
Just return undef for invalid masks or elts, and since we're doing that, just do it earlier too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9616a22b86efa9a2eecc1a912de688a327e517ef |
03-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Let RegAllocBasic require MachineDominators - they are already available and splitting needs them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118194 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
964bc25e5a03be208427ce2ebadb22a42681ef9c |
03-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Let RegAllocBasic require MachineDominators - they are already available and splitting needs them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118194 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBasic.cpp
|
1b34293f89166fd15290d107c65496987c9de09c |
03-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tag debug output as regalloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118193 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
|
376dcbd6c2c7adb8281f89d045b307eee7bd682a |
03-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tag debug output as regalloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118193 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
|
465b5af7980d8ee7cdf82694791b2fb9748b4684 |
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Simplify uses of MVT and EVT. An MVT can be compared directly with a SimpleValueType, while an EVT supports equality and inequality comparisons with SimpleValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
cdfad36b401be6fc709ea4051f9de58e1a30bcc9 |
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Simplify uses of MVT and EVT. An MVT can be compared directly with a SimpleValueType, while an EVT supports equality and inequality comparisons with SimpleValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
08903968f7100c2693a113b25b86d2ff39f81b5a |
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Inside the calling convention logic LocVT is always a simple value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118167 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1440e8b918d7116c3587cb95f4f7ac7a0a0b65ad |
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Inside the calling convention logic LocVT is always a simple value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118167 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
electionDAG/SelectionDAGBuilder.cpp
|
99257956e5562c6d206fa64bced563657519262d |
03-Nov-2010 |
Eric Christopher <echristo@apple.com> |
If we have an undef mask our Elt will be -1 for our access, handle this by using an undef as a pointer. Fixes rdar://8625016 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
caebdd44f3a2c89457f09d0fa45a998c912235d2 |
03-Nov-2010 |
Eric Christopher <echristo@apple.com> |
If we have an undef mask our Elt will be -1 for our access, handle this by using an undef as a pointer. Fixes rdar://8625016 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
89ca5c05b852db9dc2cb47573b5442af019b49b8 |
03-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix DAGCombiner to avoid going into an infinite loop when it encounters (and:i64 (shl:i64 (load:i64), 1), 0xffffffff). This fixes rdar://8606584. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
394d6298bcf89a75b51c8314a6705f6984e46b49 |
03-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix DAGCombiner to avoid going into an infinite loop when it encounters (and:i64 (shl:i64 (load:i64), 1), 0xffffffff). This fixes rdar://8606584. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6c35fb1a67dd7e4c71d1a3da6406908ab323577a |
03-Nov-2010 |
Evan Cheng <evan.cheng@apple.com> |
Two sets of changes. Sorry they are intermingled. 1. Fix pre-ra scheduler so it doesn't try to push instructions above calls to "optimize for latency". Call instructions don't have the right latency and this is more likely to use introduce spills. 2. Fix if-converter cost function. For ARM, it should use instruction latencies, not # of micro-ops since multi-latency instructions is completely executed even when the predicate is false. Also, some instruction will be "slower" when they are predicated due to the register def becoming implicit input. rdar://8598427 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118135 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
8239daf7c83a65a189c352cce3191cdc3bbfe151 |
03-Nov-2010 |
Evan Cheng <evan.cheng@apple.com> |
Two sets of changes. Sorry they are intermingled. 1. Fix pre-ra scheduler so it doesn't try to push instructions above calls to "optimize for latency". Call instructions don't have the right latency and this is more likely to use introduce spills. 2. Fix if-converter cost function. For ARM, it should use instruction latencies, not # of micro-ops since multi-latency instructions is completely executed even when the predicate is false. Also, some instruction will be "slower" when they are predicated due to the register def becoming implicit input. rdar://8598427 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118135 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
41a46bcc97cb6a9aeda742b308ab61e4532f8fea |
02-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Fixes <rdar://problem/8612856>: During postRAsched, the antidependence breaker needs to check all definitions of the antidepenent register to avoid multiple defs of the same new register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118032 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
46388526963aba92344ee8ebd9e86d3556baa088 |
02-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Fixes <rdar://problem/8612856>: During postRAsched, the antidependence breaker needs to check all definitions of the antidepenent register to avoid multiple defs of the same new register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118032 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
0b765ed38b918f25c6511cefa515a1f9d2f369b5 |
02-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c8821046f8998c3e69985fdc53d8241c6ad4c762 |
02-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c2a8bdee8fc89aa5ab3166f2346566b8152d63eb |
02-Nov-2010 |
Devang Patel <dpatel@apple.com> |
If value map does not have register for an argument then try to find frame index before giving up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8bc9ef77b7e9910fbeb40725dfa49d793158db51 |
02-Nov-2010 |
Devang Patel <dpatel@apple.com> |
If value map does not have register for an argument then try to find frame index before giving up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
42e67b32ecb01210f2137605f2dcde3c2e139edf |
02-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Use frameindex, if available, as a last resort to emit debug info for a parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a90b305af910f0cbfa0c6934a2034a2a0444e715 |
02-Nov-2010 |
Devang Patel <dpatel@apple.com> |
Use frameindex, if available, as a last resort to emit debug info for a parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
62b17c0b76f331bb87d93cccb7876a9d139ab237 |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't try to split weird critical edges that really aren't: BB#1: derived from LLVM BB %bb.nph28 Live Ins: %AL Predecessors according to CFG: BB#0 TEST8rr %reg16384<kill>, %reg16384, %EFLAGS<imp-def>; GR8:%reg16384 JNE_4 <BB#2>, %EFLAGS<imp-use,kill> JMP_4 <BB#2> Successors according to CFG: BB#2 BB#2 These double CFG edges only ever occur in bugpoint-generated code, so there is no need to attempt something clever. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117992 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
371e82bf513778bf2bde4c3eebe9407af2cef21f |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't try to split weird critical edges that really aren't: BB#1: derived from LLVM BB %bb.nph28 Live Ins: %AL Predecessors according to CFG: BB#0 TEST8rr %reg16384<kill>, %reg16384, %EFLAGS<imp-def>; GR8:%reg16384 JNE_4 <BB#2>, %EFLAGS<imp-use,kill> JMP_4 <BB#2> Successors according to CFG: BB#2 BB#2 These double CFG edges only ever occur in bugpoint-generated code, so there is no need to attempt something clever. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117992 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
ffabe7d2b964d5f62847859da80d04c96a7d4807 |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MachineLICM should not claim to be preserving the CFG when it can split critical edges on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117982 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
8bcf7603f7e3be558991000fd99b8b7ac359204f |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MachineLICM should not claim to be preserving the CFG when it can split critical edges on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117982 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
72185fae5d19bb5042b5a5f8c81d48fdff8ab1e3 |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more precise about verifying missing kill flags. It is legal for an instruction to have two operands using the same register, only one a kill. This is interpreted as a kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117981 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
962c71089d5c725784135146177736c43d550813 |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more precise about verifying missing kill flags. It is legal for an instruction to have two operands using the same register, only one a kill. This is interpreted as a kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117981 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1f5e6239207c3628cd864223c9f6ca9d8ca02ac8 |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When inserting copies during splitting, always use the parent register as the source, and let rewrite() clean it up. This way, kill flags on the inserted copies are fixed as well during rewrite(). We can't just assume that all the copies we insert are going to be kills since critical edges into loop headers sometimes require both source and dest to be live out of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117980 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
3d4114c464d1ec6c9a6088e04d2156f72c4b42ce |
02-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When inserting copies during splitting, always use the parent register as the source, and let rewrite() clean it up. This way, kill flags on the inserted copies are fixed as well during rewrite(). We can't just assume that all the copies we insert are going to be kills since critical edges into loop headers sometimes require both source and dest to be live out of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117980 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
50d5f4ec79014cb65801500960a6dd0f6daf17ca |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add kill flag verification. At least X86FloatingPoint requires correct kill flags after register allocation, and targets using register scavenging benefit. Conservative kill flags are not enough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117960 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1c163d2a06e94375b811f807b1667d419f5cb258 |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add kill flag verification. At least X86FloatingPoint requires correct kill flags after register allocation, and targets using register scavenging benefit. Conservative kill flags are not enough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117960 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
7899e707584483a0488a6da6e5a84ee8b5592e67 |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update kill flags while rewriting instructions after splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117959 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
79cb53ce9563fff74605454560e98ea0aa4b523f |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update kill flags while rewriting instructions after splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117959 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
53b2e23459e1c21c51bf220e7a548baf69217dfd |
01-Nov-2010 |
Bill Wendling <isanbard@gmail.com> |
When we look at instructions to convert to setting the 's' flag, we need to look at more than those which define CPSR. You can have this situation: (1) subs ... (2) sub r6, r5, r4 (3) movge ... (4) cmp r6, 0 (5) movge ... We cannot convert (2) to "subs" because (3) is using the CPSR set by (1). There's an analogous situation here: (1) sub r1, r2, r3 (2) sub r4, r5, r6 (3) cmp r4, ... (5) movge ... (6) cmp r1, ... (7) movge ... We cannot convert (1) to "subs" because of the intervening use of CPSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117950 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
40a5eb18b031fa1a5e9697e21e251e613d441cc5 |
01-Nov-2010 |
Bill Wendling <isanbard@gmail.com> |
When we look at instructions to convert to setting the 's' flag, we need to look at more than those which define CPSR. You can have this situation: (1) subs ... (2) sub r6, r5, r4 (3) movge ... (4) cmp r6, 0 (5) movge ... We cannot convert (2) to "subs" because (3) is using the CPSR set by (1). There's an analogous situation here: (1) sub r1, r2, r3 (2) sub r4, r5, r6 (3) cmp r4, ... (5) movge ... (6) cmp r1, ... (7) movge ... We cannot convert (1) to "subs" because of the intervening use of CPSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117950 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
23a698e5c756c5cac7b0a7f640391443b3809dcb |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't assign new registers created during a split to the same stack slot, but give them individual stack slots once the are actually spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117945 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
a37d5cf3425eb93a25cc5da2bbf9b6a47c757b45 |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't assign new registers created during a split to the same stack slot, but give them individual stack slots once the are actually spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117945 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
185f6317716d5a8e12cbdaac33cf2616962ac091 |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add basic LiveStacks verification. When an instruction refers to a spill slot with a LiveStacks entry, check that the spill slot is live at the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117944 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
e8f0823a68cfc0201fffb100c7e4a1a2940cf9a9 |
01-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add basic LiveStacks verification. When an instruction refers to a spill slot with a LiveStacks entry, check that the spill slot is live at the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117944 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
adb6bb0f8b18971371f1b459f4e044885411f9a3 |
01-Nov-2010 |
Bill Wendling <isanbard@gmail.com> |
The testcase is now XFAILed. Sorry about the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117904 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
9e7cb3d2434e252cc0b81d88169d3d8989fcd78f |
01-Nov-2010 |
Bill Wendling <isanbard@gmail.com> |
The testcase is now XFAILed. Sorry about the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117904 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
9e0ddea9688253e7b22d374fbaa8fc9dc29627e2 |
31-Oct-2010 |
Eric Christopher <echristo@apple.com> |
Revert r117876 for now, it's causing more testsuite failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117879 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
b698a56dd4739fb1a407b2b286bf2aa7bdf86fde |
31-Oct-2010 |
Eric Christopher <echristo@apple.com> |
Revert r117876 for now, it's causing more testsuite failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117879 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
7182d7348e28743afd7d884a8f94961f32ff4d99 |
31-Oct-2010 |
Bill Wendling <isanbard@gmail.com> |
Disable the peephole optimizer until 186.crafty on armv6 is fixed. This is what looks like is happening: Without the peephole optimizer: (1) sub r6, r6, #32 orr r12, r12, lr, lsl r9 orr r2, r2, r3, lsl r10 (x) cmp r6, #0 ldr r9, LCPI2_10 ldr r10, LCPI2_11 (2) sub r8, r8, #32 (a) movge r12, lr, lsr r6 (y) cmp r8, #0 LPC2_10: ldr lr, [pc, r10] (b) movge r2, r3, lsr r8 With the peephole optimizer: ldr r9, LCPI2_10 ldr r10, LCPI2_11 (1*) subs r6, r6, #32 (2*) subs r8, r8, #32 (a*) movge r12, lr, lsr r6 (b*) movge r2, r3, lsr r8 (1) is used by (x) for the conditional move at (a). (2) is used by (y) for the conditional move at (b). After the peephole optimizer, these the flags resulting from (1*) are ignored and only the flags from (2*) are considered for both conditional moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117876 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
b3747706fc0ccece33516b257f6601508c3a2a45 |
31-Oct-2010 |
Bill Wendling <isanbard@gmail.com> |
Disable the peephole optimizer until 186.crafty on armv6 is fixed. This is what looks like is happening: Without the peephole optimizer: (1) sub r6, r6, #32 orr r12, r12, lr, lsl r9 orr r2, r2, r3, lsl r10 (x) cmp r6, #0 ldr r9, LCPI2_10 ldr r10, LCPI2_11 (2) sub r8, r8, #32 (a) movge r12, lr, lsr r6 (y) cmp r8, #0 LPC2_10: ldr lr, [pc, r10] (b) movge r2, r3, lsr r8 With the peephole optimizer: ldr r9, LCPI2_10 ldr r10, LCPI2_11 (1*) subs r6, r6, #32 (2*) subs r8, r8, #32 (a*) movge r12, lr, lsr r6 (b*) movge r2, r3, lsr r8 (1) is used by (x) for the conditional move at (a). (2) is used by (y) for the conditional move at (b). After the peephole optimizer, these the flags resulting from (1*) are ignored and only the flags from (2*) are considered for both conditional moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117876 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
20ae9004cb66adc5872e9b80946226d631122e49 |
31-Oct-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Attach a GCModuleInfo to a MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117867 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionAnalysis.cpp
|
7a5a3f75eb6751c35682f506887c34bf57d6ea3e |
31-Oct-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Attach a GCModuleInfo to a MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117867 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionAnalysis.cpp
|
40e9105c7a6e41feb6af1dc9bea025471a861d61 |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include MachineBasicBlock numbers in viewCFG() output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117765 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e5f4e9fb2be8525a8ca16bd4719665ed7402b55b |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include MachineBasicBlock numbers in viewCFG() output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117765 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
6aab7edd8718f1924f0f8e75328ecb255fd3e2a5 |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure copies are inserted after any exception handling labels at the top of a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117764 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
5b4bb218d1fb248474c997b865491182bad6ff61 |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure copies are inserted after any exception handling labels at the top of a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117764 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
a2aeadc489e1ff8e7775c036564a723194cfece0 |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SkipPHIsAndLabels from PHIElimination to MachineBasicBlock. It is needed elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117763 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
92095e7b3f1eef7b4f2eb0cf037e6b7a01478dab |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SkipPHIsAndLabels from PHIElimination to MachineBasicBlock. It is needed elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117763 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
3e82b0b1458fa21492e003320ee3863340ec2a15 |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable more of physical register live intervals verification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117762 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ab56647e6b2a7b376f0c245a0bc92cd632107edb |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable more of physical register live intervals verification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117762 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
f773801d14718847aad6df8c9fc39da65d0f468f |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out register class of spilled register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117761 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
7d57753df3bbad14e3e3ddf396b4edbdc4c55d7d |
30-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out register class of spilled register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117761 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
9622ada43d6fd2dde7b7123868b5bfd769f947ef |
30-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine cse to eliminate instructions with multiple physreg uses and defs. rdar://8610857. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117745 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
189c1ec4c162ca3d36d9bca803b032eb19de434a |
30-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine cse to eliminate instructions with multiple physreg uses and defs. rdar://8610857. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117745 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
8f21e25ac5ae43066b25d3f99b889e4adb4a9abb |
30-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Remove DAG combiner patch to fold vector splats. Instcombiner does it now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117720 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
46455096bea2b6c81bb4b0226701524d2a9eb242 |
30-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Remove DAG combiner patch to fold vector splats. Instcombiner does it now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117720 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5ec99c0d9ab593450598a204fb44c4fc4458ac7e |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix sign error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117677 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
|
db4eec3d2ce6d0176ed8f689fc63737fba125b90 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix sign error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117677 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
|
d9818d9f3d989f528a4ae03fa3f3a826a066c9b7 |
29-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoiding overly aggressive latency scheduling. If the two nodes share an operand and one of them has a single use that is a live out copy, favor the one that is live out. Otherwise it will be difficult to eliminate the copy if the instruction is a loop induction variable update. e.g. BB: sub r1, r3, #1 str r0, [r2, r3] mov r3, r1 cmp bne BB => BB: str r0, [r2, r3] sub r3, r3, #1 cmp bne BB This fixed the recent 256.bzip2 regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117675 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
089751535d6e9adf65842e2ca5867bf9a70e1e95 |
29-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoiding overly aggressive latency scheduling. If the two nodes share an operand and one of them has a single use that is a live out copy, favor the one that is live out. Otherwise it will be difficult to eliminate the copy if the instruction is a loop induction variable update. e.g. BB: sub r1, r3, #1 str r0, [r2, r3] mov r3, r1 cmp bne BB => BB: str r0, [r2, r3] sub r3, r3, #1 cmp bne BB This fixed the recent 256.bzip2 regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117675 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
63664042cf07901bc4e117f8ed9d5f9364a0db73 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't transfer unused values to the new intervals formed by splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117673 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
3ccfce0e35371d20fb84f65185f7f0126d072461 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't transfer unused values to the new intervals formed by splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117673 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
5aba6b7f3326dd97175c0d3b2593b39af4a5bb3d |
29-Oct-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence Release build warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117671 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
8a8e26fb1867b45ab7c5832dc3f509127d6624b8 |
29-Oct-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence Release build warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117671 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b7c8490ceb58fd61e6e51175334210cffad681da |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach ConnectedVNInfoEqClasses::Classify to deal with unused values. We don't want unused values forming their own equivalence classes, so we lump them all together in one class, and then merge them with the class of the last used value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117670 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
6d309059a7d6257ddeb3b07e6c4b8b71cce2f707 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach ConnectedVNInfoEqClasses::Classify to deal with unused values. We don't want unused values forming their own equivalence classes, so we lump them all together in one class, and then merge them with the class of the last used value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117670 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
12eae4b609bf2d24b600364cd86a900f2fe7e742 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never propagate the idom value out of a block that defines its own value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117669 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
c94fcb1507db5c043558f3f58d389e774bc2f71d |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never propagate the idom value out of a block that defines its own value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117669 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
baaadc0c041f03553dd0a1b3327395480c3dd7c7 |
29-Oct-2010 |
John Thompson <john.thompson.jtsoftware@gmail.com> |
Inline asm multiple alternative constraints development phase 2 - improved basic logic, added initial platform support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117667 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
44ab89eb376af838d1123293a79975aede501464 |
29-Oct-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Inline asm multiple alternative constraints development phase 2 - improved basic logic, added initial platform support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117667 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
1d6d79ce0643968541a7a0133e8894b6c3392c6b |
29-Oct-2010 |
Bill Wendling <isanbard@gmail.com> |
This may be an ARM target, so check for _Unwind_SjLj_Resume. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117643 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
49ad731adf0f3f03a99d4944b2b367a6bfd355d0 |
29-Oct-2010 |
Bill Wendling <isanbard@gmail.com> |
This may be an ARM target, so check for _Unwind_SjLj_Resume. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117643 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
1737e65f591d10b99225eb96b547f849e2a22dcb |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix broken equivalence class calculation. We could probably also use EquvivalenceClasses.h except it looks like overkill when elements are continuous integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117631 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
eeaae20be02979a5d1459cc479c4533be3c05ed5 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix broken equivalence class calculation. We could probably also use EquvivalenceClasses.h except it looks like overkill when elements are continuous integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117631 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f3cd960317f0c05c9e23c633d7abb39e65f62530 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the connected components in the verifier after complaining about their multiplicity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117630 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
cb367778c0fb3200292df4f3982f54167444d1f6 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the connected components in the verifier after complaining about their multiplicity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117630 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a0e156e1777cb0151ca1054887c97e64a1ddb33b |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run a verification pass before any splitting to better distribute blame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117629 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
1f46a0ac6611b2811084bb8f9bf884733bcfd2b0 |
29-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run a verification pass before any splitting to better distribute blame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117629 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
e4e91faa650d26ba3bcaae173d51ce4ac3b595bc |
29-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Ignore empty blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117615 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4d7f9a00a58c391f3e1235a9d9c28fd20d1405f5 |
29-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Ignore empty blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117615 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7210f20644020f5058a988046ba7cc45f9dbafb3 |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
One day, physical register live ranges will be sensible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117602 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
8c4564287d5231421d5358d71d23f46cd0be18c7 |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
One day, physical register live ranges will be sensible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117602 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
cd909a45e7e093ff7046c44666d53c3fb42b1e28 |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace SplitKit SSA update with an iterative algorithm very similar to the one in SSAUpdaterImpl.h Verifying live intervals revealed that the old method was completely wrong, and we need an iterative approach to calculating PHI placemant. Fortunately, we have MachineDominators available, so we don't have to compute that over and over like SSAUpdaterImpl.h must. Live-out values are cached between calls to mapValue() and computed in a greedy way, so most calls will be working with very small block sets. Thanks to Bob for explaining how this should work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117599 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
e1dde7b05a83438eeba4bd83f8cf080f56d22c5b |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace SplitKit SSA update with an iterative algorithm very similar to the one in SSAUpdaterImpl.h Verifying live intervals revealed that the old method was completely wrong, and we need an iterative approach to calculating PHI placemant. Fortunately, we have MachineDominators available, so we don't have to compute that over and over like SSAUpdaterImpl.h must. Live-out values are cached between calls to mapValue() and computed in a greedy way, so most calls will be working with very small block sets. Thanks to Bob for explaining how this should work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117599 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
e718ce4b2676cbec0cf609e7300073f31b6687b4 |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make MachineDominators available for SplitEditor. We are going to need it for proper SSA updating. This doesn't cause MachineDominators to be recomputed since we are already requiring MachineLoopInfo which uses dominators as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117598 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
plitKit.cpp
plitKit.h
|
d68f458244b9d9a6644a9550dd5cee60331c9e7d |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make MachineDominators available for SplitEditor. We are going to need it for proper SSA updating. This doesn't cause MachineDominators to be recomputed since we are already requiring MachineLoopInfo which uses dominators as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117598 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
plitKit.cpp
plitKit.h
|
a8feeb15c84015b9d3b4cb9acd47f7c6bd5f9ba0 |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a temporary command line option to verify machine code after each spill or split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117597 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
26b92be9222e267447efe943f12848775075e22f |
28-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a temporary command line option to verify machine code after each spill or split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117597 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
7881803762d3e313ebaa186079fa322d4f12cab0 |
28-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Do not work too hard to find type's file info. There is a special field to record file info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117588 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bc2bb9bbd0610bc43f08be6678431148898591aa |
28-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Do not work too hard to find type's file info. There is a special field to record file info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117588 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0b018c1e2182bcb8a5c0c612781cbcabcc653506 |
28-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Technically DIFile scope should also be handled here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3cabc9d2c974140c384e21cf5c1904b514acb82b |
28-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Technically DIFile scope should also be handled here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3cf5450b1ac2e37f338f33a9e8abb8673441846e |
28-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Teach the DAG combiner to fold a splat of a splat. Radar 8597790. Also do some minor refactoring to reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0f1db1a6c64bb6661f15be1eab21645a0cbcccd8 |
28-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Teach the DAG combiner to fold a splat of a splat. Radar 8597790. Also do some minor refactoring to reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1c84f66defee7f096924b517f08b401a6d88054d |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit 117518 and 117519 now that ARM MC test failures are out of the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
7e2fe9150f905167f6685c9730911c2abc08293c |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit 117518 and 117519 now that ARM MC test failures are out of the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
9c25d0a6067d2770fb86a0a0ffeb4ac57a2f6c1d |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 117518 and 117519 for now. They changed scheduling and cause MC tests to fail. Ugh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117520 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
9e08ee5d16b596078e20787f0b5f36121f099333 |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 117518 and 117519 for now. They changed scheduling and cause MC tests to fail. Ugh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117520 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
5b4191a28efa79bfcafb5c083859818b2ddeb1b8 |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a major bug in operand latency computation. The use index must be adjusted by the number of defs first for it to match the instruction itinerary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117518 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
7c88cdcc3ba49101fa119ec3b403e9980934384e |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a major bug in operand latency computation. The use index must be adjusted by the number of defs first for it to match the instruction itinerary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117518 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
35315d2265227552d73617ef67540c8e415fb1ba |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Putting r117193 back except for the compile time cost. Rather than assuming fallthroughs uses all registers, just gather the union of all successor liveins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117506 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
de5fa932b9bc0eebe803c9549586bf512eeb12f9 |
28-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Putting r117193 back except for the compile time cost. Rather than assuming fallthroughs uses all registers, just gather the union of all successor liveins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117506 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
955b5b469883307c90389ddf8546946be0f81039 |
27-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
COFF: Add IMAGE_SCN_MEM_READ to text sections. There are currently 100 references to COFF::IMAGE_SCN in 6 files and 11 different functions. Section to attribute mapping really needs to happen in one place to avoid problems like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117473 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
3931b54a5f274183f850b912e0003f9aa1600584 |
27-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
COFF: Add IMAGE_SCN_MEM_READ to text sections. There are currently 100 references to COFF::IMAGE_SCN in 6 files and 11 different functions. Section to attribute mapping really needs to happen in one place to avoid problems like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117473 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
25a66dd61203908deb192651700cf4610e7743c1 |
27-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117472 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
579d7a3dccaf3c2e91ee81c026c47a0850803820 |
27-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117472 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
c818307a9212bad4e516e6cbcb568083bac1dd17 |
27-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117453 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
0ed257c0365f1e2227ccd9f42c2ae1f80815d6d2 |
27-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117453 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
a7edf918f7ad0aaa84c6448c3644c3cc238fa21a |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle critical loop predecessors by making both inside and outside registers live out. This doesn't prevent us from inserting a loop preheader later on, if that is better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117424 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
c95c1465fdba059f6cbf24d1d9fd84f442c60fe4 |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle critical loop predecessors by making both inside and outside registers live out. This doesn't prevent us from inserting a loop preheader later on, if that is better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117424 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
4e9697a89ed25bc81aa05c8c20151aceeac8aada |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Compute critical loop predecessors in the same way as critical loop exits. Critical edges going into a loop are not as bad as critical exits. We can handle them by splitting the critical edge, or by having both inside and outside registers live out of the predecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117423 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
0960a650b7047373da25bee6ec2eb73889c3b7bb |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Compute critical loop predecessors in the same way as critical loop exits. Critical edges going into a loop are not as bad as critical exits. We can handle them by splitting the critical edge, or by having both inside and outside registers live out of the predecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117423 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
c8f95ebb841e8524ce7b61439d943e710bd08241 |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Physical registers trivially have multiple connected components all the time. Only virtuals should be requires to be connected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117422 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
8c593f9173bb3b4474c8de964478f213e90764b9 |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Physical registers trivially have multiple connected components all the time. Only virtuals should be requires to be connected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117422 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5e2285d6011dcb7959e10b089d3aad9a36d14e59 |
27-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Use a MemIntrinsicSDNode for ISD::PREFETCH, which touches memory, so a MachineMemOperand is useful (not propagated into the MachineInstr yet). No functional change except for dump output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117413 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1de4aa904e9672abfc2e755d798c926d324e2d36 |
27-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Use a MemIntrinsicSDNode for ISD::PREFETCH, which touches memory, so a MachineMemOperand is useful (not propagated into the MachineInstr yet). No functional change except for dump output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117413 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
cb84f6fd9d21c7ec5f4ff04a4ae203dad70e186e |
27-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Remove the vector of live vregs. I thought we would need to track them, but hopefully we won't. And this is not the right data structure to do it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117412 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
3d26d5d5240fb3bfe121434d4881da22f4b35ba5 |
27-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Remove the vector of live vregs. I thought we would need to track them, but hopefully we won't. And this is not the right data structure to do it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117412 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
|
9b669ae291528f2484be65938fcc2c8893811145 |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
After splitting, compute connected components of all new registers, not just for the remainder register. Example: bb0: x = 1 bb1: use(x) ... x = 2 jump bb1 When x is isolated in bb1, the inner part breaks into two components, x1 and x2: bb0: x0 = 1 bb1: x1 = x0 use(x1) ... x2 = 2 x0 = x2 jump bb1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117408 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
plitKit.cpp
|
3a0e0715a5691e26ca70bc853d6d3d116e5949b8 |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
After splitting, compute connected components of all new registers, not just for the remainder register. Example: bb0: x = 1 bb1: use(x) ... x = 2 jump bb1 When x is isolated in bb1, the inner part breaks into two components, x1 and x2: bb0: x0 = 1 bb1: x1 = x0 use(x1) ... x2 = 2 x0 = x2 jump bb1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117408 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.h
plitKit.cpp
|
8504483b7eec1258ff21bd38fa791b1c5338cf8c |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that live intervals are connected. If there are multiple connected components, each should get its own virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117407 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
501dc4224586d3cee61101ed6cd0ccc8ba74c43c |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that live intervals are connected. If there are multiple connected components, each should get its own virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117407 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
fac57d79d8f192523c06783aa46bd70ce394fdcd |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Call RenumberValues for all new registers created during splitting. This is necessary to get correct hasPHIKill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117406 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
f1354ae95ac6d7a2f31452301ccce46b6c116e37 |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Call RenumberValues for all new registers created during splitting. This is necessary to get correct hasPHIKill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117406 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
ff935f5cffcbb2208bda1183af0a0b89da0effaf |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve PHIDef bits in cloned values during splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117405 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
79c0262fa8516d0b673b2fcacff920dcc62a9b94 |
27-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve PHIDef bits in cloned values during splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117405 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
753af1190ed5ae9f03af48cbc30876fa6b2d5018 |
27-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Assign source ordering to nodes created for StoreInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7e13efad388f86a4adcb48ec164ee0ba154d0296 |
27-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Assign source ordering to nodes created for StoreInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b87d1b277c48489cae4fb53cdbb331e9d8f3fd81 |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineBasicBlock::print() to annotate instructions and blocks with SlotIndexes when available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117392 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineVerifier.cpp
|
f4a1e1a69f0727762a73ef0d551e3bbd16b7c04e |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineBasicBlock::print() to annotate instructions and blocks with SlotIndexes when available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117392 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineVerifier.cpp
|
f1a419c19af17c2a2536310833c2e4c429437850 |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remmeber to print full live interval on verification error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117391 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
dbcc2e119d57dba1e2f013d304ebfbe894c98106 |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remmeber to print full live interval on verification error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117391 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
43745184cda123d0da6bd37425d94c9ca7dac354 |
26-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Jakob's review of the basic register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117384 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
e16eecc323879744dcff4f359ba9ccdb25bd6909 |
26-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Jakob's review of the basic register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117384 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
|
2bfdc27b1926830b7ab6b6da4d7f02bcd0e8eb2f |
26-Oct-2010 |
Devang Patel <dpatel@apple.com> |
s/beginScope/beginInstruction/g s/endScope/endInstruction/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117376 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
cbbe287f8adc82a90827f036e048bb53d1573fed |
26-Oct-2010 |
Devang Patel <dpatel@apple.com> |
s/beginScope/beginInstruction/g s/endScope/endInstruction/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117376 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e28738b59e651ba4db95fb3afdfccbaabecd04b8 |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't verify physical registers going into landing pads. Magic is happening that we don't understand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117370 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
e459d55f2832b52a3cfe0350d791c88a0a45fad8 |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't verify physical registers going into landing pads. Magic is happening that we don't understand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117370 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b674a439d5771e3e9fd6874261263e3c845e5fe2 |
26-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Use instruction itinerary to determine what instructions are 'cheap'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117348 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c8141dfc7f983cb04e65d8acd6bcbdc8e4b8a0ae |
26-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Use instruction itinerary to determine what instructions are 'cheap'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117348 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
4402af69903becaeb7204583a5e202c1766d6608 |
26-Oct-2010 |
Nick Lewycky <nicholas@mxc.ca> |
For statistics that are only used in functions declared in !NDEBUG, wrap the declarations in !NDEBUG to avoid -Wunused-variable warnings. Patch by Matt Beaumont-Gay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117345 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGISel.cpp
|
a568d66512759f93e0d37af7c8f905603dd27449 |
26-Oct-2010 |
Nick Lewycky <nicholas@mxc.ca> |
For statistics that are only used in functions declared in !NDEBUG, wrap the declarations in !NDEBUG to avoid -Wunused-variable warnings. Patch by Matt Beaumont-Gay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117345 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGISel.cpp
|
8854def9ffef9673dfcf34ed151ae53b4b3371ee |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
InlineSpiller can also update LiveStacks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117338 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
0a12b801b546269b87c3806c6d4606cf2b287daa |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
InlineSpiller can also update LiveStacks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117338 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
799e085b239bde853628329fd8c9f0364e1d8a0a |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the spiller responsible for updating the LiveStacks analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117337 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
egAllocLinearScan.cpp
piller.cpp
|
2d17293dd00d32208c7857ecdb20b79b0225c353 |
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the spiller responsible for updating the LiveStacks analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117337 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
egAllocLinearScan.cpp
piller.cpp
|
9667aaadc15752eab1148afbad34a89d52405da3 |
26-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
When the "true" and "false" blocks of a diamond if-conversion are the same, do not double-count the duplicate instructions by counting once from the beginning and again from the end. Keep track of where the duplicates from the beginning ended and don't go past that point when counting duplicates at the end. Radar 8589805. This change causes one of the MC/ARM/simple-fp-encoding tests to produce different (better!) code without the vmovne instruction being tested. I changed the test to produce vmovne and vmoveq instructions but moving between register files in the opposite direction. That's not quite the same but predicated versions of those instructions weren't being tested before, so at least the test coverage is not any worse, just different. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117333 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
7c730e77908123a83abcfffe781d368e9b873ce9 |
26-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
When the "true" and "false" blocks of a diamond if-conversion are the same, do not double-count the duplicate instructions by counting once from the beginning and again from the end. Keep track of where the duplicates from the beginning ended and don't go past that point when counting duplicates at the end. Radar 8589805. This change causes one of the MC/ARM/simple-fp-encoding tests to produce different (better!) code without the vmovne instruction being tested. I changed the test to produce vmovne and vmoveq instructions but moving between register files in the opposite direction. That's not quite the same but predicated versions of those instructions weren't being tested before, so at least the test coverage is not any worse, just different. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117333 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
9c30a7720174f555f550b6eece8b31edbdf68bb2 |
26-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change if-conversion to keep track of the extra cost due to microcoded instructions separately from the count of non-predicated instructions. The instruction count is used in places to determine how many instructions to copy, predicate, etc. and things get confused if that count includes the extra cost for microcoded ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117332 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2ad40d34947ced36d96f351f6c2a4d57a044e2a4 |
26-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change if-conversion to keep track of the extra cost due to microcoded instructions separately from the count of non-predicated instructions. The instruction count is used in places to determine how many instructions to copy, predicate, etc. and things get confused if that count includes the extra cost for microcoded ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117332 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6e29e526293993dc3098a64208f5d378530f178f |
26-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Neuter r117193 as it causes significant post-ra scheduler compile time regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117329 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
38fd9f2a2dedc2c4ce73fcf4890b79b6eb8c2e8f |
26-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Neuter r117193 as it causes significant post-ra scheduler compile time regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117329 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
78c8a43c53ec1d5b24ef10debd7ea5a8ac808a3c |
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. Do not count use of sdisel for single call instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
df8370bd70c228036f887a3f500ad3e79bc657b9 |
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. Do not count use of sdisel for single call instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f2712cab4244d9110fa224a715137f73ce685544 |
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add counters to count basic blocks and machine basic blocks with out of order line number info. Add counters to count how many basic blocks are entirely selected by fastisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
948f7d0216cbd847a68fc6aaf391f01816a02494 |
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add counters to count basic blocks and machine basic blocks with out of order line number info. Add counters to count how many basic blocks are entirely selected by fastisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
aca2f0325fc65e2e5a2acb19f9e641388f43d22b |
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add simple counter to count no. of basic blocks without any line number information. At -O0, these basic block coule cause less than optimial debugging experience. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117307 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9a31f0f398df8830161507a6dcf369961269c6cf |
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add simple counter to count no. of basic blocks without any line number information. At -O0, these basic block coule cause less than optimial debugging experience. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117307 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b229bfcc2bb6e1dc448d0375b0c5fce81930d01a |
25-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
In which I learn how to forward declare template classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117272 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
d3b48954141847af12919a5bf4ea8623d19fc1d5 |
25-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
In which I learn how to forward declare template classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117272 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
a70d37154f528d30af1c320fd2888974e949dac4 |
23-Oct-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Move the remaining attribute macros to systematic names based on the attribute name and prefixed with 'LLVM_'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
19e57025d458d3cb50804fd821fd89b868a819bd |
23-Oct-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Move the remaining attribute macros to systematic names based on the attribute name and prefixed with 'LLVM_'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
988ee241beab90bb6b33c7f64d8ebf924f0b1058 |
23-Oct-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a likely bug in an assertion by adding parentheses around '||'. This bug was found by a GCC warning. ;] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117199 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
|
2b3ef8b065ff655c52efe273e9b150db302e8a5a |
23-Oct-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a likely bug in an assertion by adding parentheses around '||'. This bug was found by a GCC warning. ;] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117199 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalUnion.cpp
|
55a0857c6a38259dedfd34df368b9445029e847f |
23-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Properly model the latency of register defs which are 1) function returns or 2) live-outs. Previously the post-RA schedulers completely ignore these dependencies since returns, branches, etc. are all scheduling barriers. This patch model the latencies between instructions being scheduled and the barriers. It also handle calls by marking their register uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117193 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
ec6906ba47d6d32cc817e85eddb87b320d6ae18c |
23-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Properly model the latency of register defs which are 1) function returns or 2) live-outs. Previously the post-RA schedulers completely ignore these dependencies since returns, branches, etc. are all scheduling barriers. This patch model the latencies between instructions being scheduled and the barriers. It also handle calls by marking their register uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117193 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
93113bd32ca2807fc3884f5f23a2065696376715 |
23-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify LiveIntervals against the CFG, ensuring that live-in values are live-out of all predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117191 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
7871687604944d68455a777c3047ff2a6ca5985f |
23-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify LiveIntervals against the CFG, ensuring that live-in values are live-out of all predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117191 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1abba8ad94353ab43041d29ec41f28053e04dace |
23-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Nonvirtual dtor that was accessible enough to be bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117180 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
|
f4331060548004471f5bb10e330ba4ce4de28ad2 |
23-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Nonvirtual dtor that was accessible enough to be bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117180 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBase.h
|
8ce8b809ef4aec7f09f2d55e37f317fb3623fd25 |
23-Oct-2010 |
Andrew Trick <atrick@apple.com> |
This is a prototype of an experimental register allocation framework. It's purpose is not to improve register allocation per se, but to make it easier to develop powerful live range splitting. I call it the basic allocator because it is as simple as a global allocator can be but provides the building blocks for sophisticated register allocation with live range splitting. A minimal implementation is provided that trivially spills whenever it runs out of registers. I'm checking in now to get high-level design and style feedback. I've only done minimal testing. The next step is implementing a "greedy" allocation algorithm that does some register reassignment and makes better splitting decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117174 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
plitKit.h
|
14e8d71cc945034d4ee6e76be00e00f14efac62f |
23-Oct-2010 |
Andrew Trick <atrick@apple.com> |
This is a prototype of an experimental register allocation framework. It's purpose is not to improve register allocation per se, but to make it easier to develop powerful live range splitting. I call it the basic allocator because it is as simple as a global allocator can be but provides the building blocks for sophisticated register allocation with live range splitting. A minimal implementation is provided that trivially spills whenever it runs out of registers. I'm checking in now to get high-level design and style feedback. I've only done minimal testing. The next step is implementing a "greedy" allocation algorithm that does some register reassignment and makes better splitting decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117174 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
iveIntervalUnion.cpp
iveIntervalUnion.h
egAllocBase.h
egAllocBasic.cpp
plitKit.h
|
7b3c694544fce21bfb736e61da4ebcd65d7c7b92 |
23-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more verification of LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117170 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
3bf7cf9f0e5a34ade5e44c47f39e3f46c8ae2c76 |
23-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more verification of LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117170 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
f989aab4acefa4caab1dd698ad2cd07a00eb8ee9 |
23-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more strict about detecting multi-use blocks for isolation. When a block has exactly two uses and the register is both live-in and live-out, don't isolate the block. We would be inserting two copies, so we haven't really made any progress. If the live-in and live-out values separate into disconnected components after splitting, we would be making progress. We can't detect that for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117169 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
2bfb32468404eb68dcc1b69a34336794b20e3f33 |
23-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more strict about detecting multi-use blocks for isolation. When a block has exactly two uses and the register is both live-in and live-out, don't isolate the block. We would be inserting two copies, so we haven't really made any progress. If the live-in and live-out values separate into disconnected components after splitting, we would be making progress. We can't detect that for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117169 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
eb0e961cc9f97d8ba6c40503083731bc38636114 |
22-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117155 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
impleRegisterCoalescing.cpp
|
c8f46c45a0bdefdb91593cabc87547cc45f9d89d |
22-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117155 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
impleRegisterCoalescing.cpp
|
19694bcf496c44bd130a947ed2dcf4219da590f5 |
22-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Transfer implicit ops when forming load multiple and return instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117151 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b179b46cc558c720d23a066c768bad71f975eb93 |
22-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Transfer implicit ops when forming load multiple and return instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117151 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
652710ea24812e1cc54bb9dae751eefd01109981 |
22-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more strict when detecting critical edges before loop splitting. An exit block with a critical edge must only have predecessors in the loop, or just before the loop. This guarantees that the inserted copies in the loop predecessors dominate the exit block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117144 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
2c1442e1b2ea874a8766025e2ccff96e87879c2b |
22-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more strict when detecting critical edges before loop splitting. An exit block with a critical edge must only have predecessors in the loop, or just before the loop. This guarantees that the inserted copies in the loop predecessors dominate the exit block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117144 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
38258b960b1bf4e11e455f3488f621e7efd7366a |
22-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add print methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117143 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
532de3dc6ea98387368954c0ac0e07b0adca8b62 |
22-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add print methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117143 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
fdade011ee008347f1add68d49c21d9aeda55aa0 |
21-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
X86: Base _fltused on the FunctionType of the called value instead of the potentially null "CalledFunction". Thanks Duncan! This is needed for indirect calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117061 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
391b43bf33b77cb73966c9582d5b3fdfe0c38e80 |
21-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
X86: Base _fltused on the FunctionType of the called value instead of the potentially null "CalledFunction". Thanks Duncan! This is needed for indirect calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117061 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4e3a59c5c47a5ad2ddba9cd8d19529a013915214 |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't include the destination interval in the union when computing Parent - union(Y, ...). Doh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117042 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
9d999772df3a7fd96857bb9155e1e9ab5fee7a13 |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't include the destination interval in the union when computing Parent - union(Y, ...). Doh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117042 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
126005f19439db171e04eaff24f908a2417fab48 |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Permit landing pad successor blocks when verifying basic blocks that end in an unconditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117041 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
0a7bbcb0cc3c6f1905cd26697c5baf4859ac6443 |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Permit landing pad successor blocks when verifying basic blocks that end in an unconditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117041 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
4ab64ccb5fa09bde29059ce9e15f99a7ef3463f1 |
21-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
The variable liTRC is not used for anything useful, zap it (gcc-4.6 warning). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117022 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
9bc20ca72839299029eb0d0f34ecdea7c376299e |
21-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
The variable liTRC is not used for anything useful, zap it (gcc-4.6 warning). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117022 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
9e4be6d372d1c5d799da0310400808e56cda358d |
21-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
Remove some variables that are never really used (gcc-4.6 warns about these). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117021 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
6abfa46987e4cb47e2d88ea02574c2c082b0625d |
21-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
Remove some variables that are never really used (gcc-4.6 warns about these). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117021 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
70037772a28c8d26598598863423af0067f5013a |
21-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
CodeGen-Windows: Only emit _fltused if a VarArg function is called with floating point args. This should be the minimum set of functions that could possibly need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116978 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
dd0a00a6e377b11c3c122e111da3d1f53f13756d |
21-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
CodeGen-Windows: Only emit _fltused if a VarArg function is called with floating point args. This should be the minimum set of functions that could possibly need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116978 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d567dd1fcd0b60249964112aaf4b0e0025ea39ab |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to keep track of rematted values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116962 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
f1583ae84a8eeb0f6c0f81bd5bf189bdc9eaecb2 |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to keep track of rematted values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116962 91177308-0d34-0410-b5e6-96231b3b80d8
iveRangeEdit.cpp
|
bdb370d8d6ecf50298d2b6009ad267550037feed |
21-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
More accurate estimate / tracking of register pressure. - Initial register pressure in the loop should be all the live defs into the loop. Not just those from loop preheader which is often empty. - When an instruction is hoisted, update register pressure from loop preheader to the original BB. - Treat only use of a virtual register as kill since the code is still SSA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116956 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
134982daa9bcd87f79c357e3a2686804b9baddd9 |
21-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
More accurate estimate / tracking of register pressure. - Initial register pressure in the loop should be all the live defs into the loop. Not just those from loop preheader which is often empty. - When an instruction is hoisted, update register pressure from loop preheader to the original BB. - Treat only use of a virtual register as kill since the code is still SSA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116956 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d96c9853192af2baea0d164228582f1dac8efbf2 |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move some of the InlineSpiller rematerialization code into LiveRangeEdit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116951 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
080c316ff8a066cd164d9a8f92df509d8cb63110 |
21-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move some of the InlineSpiller rematerialization code into LiveRangeEdit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116951 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
|
c848d55f2163367981aff9c1c9ad55df8da09724 |
20-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Remove Synthesizable from the Type system; as MMX vector types are no longer Legal on X86, we don't need it. No functional change. 8499854. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116947 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
e93d99cf0742eebab859022e4cfdcf03cb9d5dfa |
20-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Remove Synthesizable from the Type system; as MMX vector types are no longer Legal on X86, we don't need it. No functional change. 8499854. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116947 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
2ef57df403dfea6913b5df1946d53727b7ed93a0 |
20-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When SimpleRegisterCoalescing is trimming kill flags on a physical register operand, also check if subregisters are killed. Add <imp-def> operands for subregisters that remain alive after a super register is killed. I don't have a testcase for this that reproduces on trunk. <rdar://problem/8441758> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116940 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9b259404740cb48313615d2cfd88a6b1045560bf |
20-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When SimpleRegisterCoalescing is trimming kill flags on a physical register operand, also check if subregisters are killed. Add <imp-def> operands for subregisters that remain alive after a super register is killed. I don't have a testcase for this that reproduces on trunk. <rdar://problem/8441758> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116940 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
228c8d1ff62ec211a56d9af228c272e56bc7ad96 |
20-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make CodeGen TBAA-aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116890 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
f96e4bd2a3b11928af75fb7472288930d16fec0b |
20-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make CodeGen TBAA-aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116890 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
06c918d2981b0b470eb4e25642150303264381e8 |
20-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any setup they require. Use this for ARM/Darwin to rematerialize the base pointer from the frame pointer when required. rdar://8564268 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
e4ad387a5a88dae20f0f7578e55170bbc8eee2a9 |
20-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any setup they require. Use this for ARM/Darwin to rematerialize the base pointer from the frame pointer when required. rdar://8564268 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
255352dd7810ed674245a01a8866f40eccff699f |
19-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Shrink MachineOperand from 40 to 32 bytes on 64-bit hosts. Pull an unsigned out of the Contents union such that it has the same size as two pointers and no padding. Arrange members such that the Contents union and all pointers can be 8-byte aligned without padding. This speeds up code generation by 0.8% on a 64-bit host. 32-bit hosts should be unaffected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116857 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2594746045258958673ebe42db2a27a4d05b0b73 |
19-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Shrink MachineOperand from 40 to 32 bytes on 64-bit hosts. Pull an unsigned out of the Contents union such that it has the same size as two pointers and no padding. Arrange members such that the Contents union and all pointers can be 8-byte aligned without padding. This speeds up code generation by 0.8% on a 64-bit host. 32-bit hosts should be unaffected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116857 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
21e36b85449fb02a67f818137045fb6b919e78c9 |
19-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable register pressure aware machine licm with fixes. Hoist() may have erased the instruction during LICM so UpdateRegPressureAfter() should not reference it afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116845 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
2312842de0c641107dd04d7e056d02491cc781ca |
19-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable register pressure aware machine licm with fixes. Hoist() may have erased the instruction during LICM so UpdateRegPressureAfter() should not reference it afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116845 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a65d6a686e6ad865c61aec70c5bdfb30bf6f5b22 |
19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
achineCSE.cpp
achineDominators.cpp
achineLICM.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.h
eepholeOptimizer.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.h
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
081c34b725980f995be9080eaec24cd3dfaaf065 |
19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820 91177308-0d34-0410-b5e6-96231b3b80d8
odeGen.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
achineCSE.cpp
achineDominators.cpp
achineLICM.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.h
eepholeOptimizer.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.h
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
1ea11fd65ecb7650ec9346aa24e1b716af04a59a |
19-Oct-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r116781 "- Add a hook for target to determine whether an instruction def is", which breaks some nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116816 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
98694138025fdb0cec0cda5727201ad00ded3d63 |
19-Oct-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r116781 "- Add a hook for target to determine whether an instruction def is", which breaks some nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116816 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
e889983a4df54abae30c4476eebf25c210756bc2 |
19-Oct-2010 |
NAKAMURA Takumi <geek4civic@gmail.com> |
lib/CodeGen/TargetLoweringObjectFileImpl.cpp: Tweak to emit ".{section}${name}" instead of ".{section}$linkonce_{name}" for linkonce sections. It seems GNU ld/PECOFF relies on section names, linking with g++'s libstdc++.a would fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116791 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
3b3b0ebd2ec9cd1de709007f31f40790c9243511 |
19-Oct-2010 |
NAKAMURA Takumi <geek4civic@gmail.com> |
lib/CodeGen/TargetLoweringObjectFileImpl.cpp: Tweak to emit ".{section}${name}" instead of ".{section}$linkonce_{name}" for linkonce sections. It seems GNU ld/PECOFF relies on section names, linking with g++'s libstdc++.a would fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116791 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
a7a7b05f1bdba65ef6049855a4e75ec0c9b05da2 |
19-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Fix for machine licm assert: RCCost <= RegPressure[RCId] in MultiSource/Benchmarks/VersaBench/beamformer/beamformer. SmallSet.insert returns true if the element is inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116790 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
dc986d2462ca8df72af9e2f6afac0ba86b753e5b |
19-Oct-2010 |
Andrew Trick <atrick@apple.com> |
Fix for machine licm assert: RCCost <= RegPressure[RCId] in MultiSource/Benchmarks/VersaBench/beamformer/beamformer. SmallSet.insert returns true if the element is inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116790 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
ca4762cf48c713cfeda2ca8262853590c25e2a1d |
19-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Add a hook for target to determine whether an instruction def is "long latency" enough to hoist even if it may increase spilling. Reloading a value from spill slot is often cheaper than performing an expensive computation in the loop. For X86, that means machine LICM will hoist SQRT, DIV, etc. ARM will be somewhat aggressive with VFP and NEON instructions. - Enable register pressure aware machine LICM by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116781 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
11e8b74a7ae9ecd59b64180a59143e39bc3b9514 |
19-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Add a hook for target to determine whether an instruction def is "long latency" enough to hoist even if it may increase spilling. Reloading a value from spill slot is often cheaper than performing an expensive computation in the loop. For X86, that means machine LICM will hoist SQRT, DIV, etc. ARM will be somewhat aggressive with VFP and NEON instructions. - Enable register pressure aware machine LICM by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116781 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
48c2c93170baeb4c25558777774c8bd5eb51ac94 |
18-Oct-2010 |
Bill Wendling <isanbard@gmail.com> |
Don't recompute MachineRegisterInfo in the Optimize* method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116750 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
b41ee96d76ccf1eec2fd898def4cfd7c16868708 |
18-Oct-2010 |
Bill Wendling <isanbard@gmail.com> |
Don't recompute MachineRegisterInfo in the Optimize* method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116750 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
da209d687c759498309b276455a5bc84c5223312 |
18-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Add TypeBasedAliasAnalysis to the standard pass lists. Note that it is currently inert by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116732 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4021fccf9fdb60906e5f16c98e72042240867495 |
18-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Add TypeBasedAliasAnalysis to the standard pass lists. Note that it is currently inert by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116732 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
edf9b77e65278603415c64c4169dfd410e290ea9 |
18-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make BasicAliasAnalysis a normal AliasAnalysis implementation which does normal initialization and normal chaining. Change the default AliasAnalysis implementation to NoAlias. Update StandardCompileOpts.h and friends to explicitly request BasicAliasAnalysis. Update tests to explicitly request -basicaa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116720 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c1be92f3bb9158eade30d97db6997e2fe78150ab |
18-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make BasicAliasAnalysis a normal AliasAnalysis implementation which does normal initialization and normal chaining. Change the default AliasAnalysis implementation to NoAlias. Update StandardCompileOpts.h and friends to explicitly request BasicAliasAnalysis. Update tests to explicitly request -basicaa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116720 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9fb3e7fa74ab8c36787ecb2b66d2028a09fa70b6 |
18-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Trivial grammar tweak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116710 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c0c7c2b6061e7ca2d528bbedadb1bea0561c9158 |
18-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Trivial grammar tweak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116710 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
37deb66d836b1a36f49f07a21cd4062bea9cfa18 |
16-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
X86-Windows: Emit an undefined global __fltused symbol when targeting Windows if any floating point arguments are passed to an external function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116665 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
84ac4d5a2a8fd0e6f95ec46088c0ca7bb63423ac |
16-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
X86-Windows: Emit an undefined global __fltused symbol when targeting Windows if any floating point arguments are passed to an external function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116665 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
a79b3988ab901603b9ca933449d0ba29f9209113 |
16-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Whitespace! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116664 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e70c526d59e92048c89281d1b7011af0b1d9ee95 |
16-Oct-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Whitespace! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116664 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
26a8a13a596f62199389b952ed37ed6af9c0098c |
16-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
More machine LICM work. It now tracks register pressure for path from preheader to current BB and use the information determine whether hoisting is worthwhile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116654 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
03a9fdf2e755c1cebdb8371d79b591d46daa9463 |
16-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
More machine LICM work. It now tracks register pressure for path from preheader to current BB and use the information determine whether hoisting is worthwhile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116654 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
b95dd1d0c99d42746e9d316ba50c0c43809b55ad |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116580 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.h
|
50cef5829dd8fcbda052c8fb702483c6212f803b |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116580 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.h
|
2d2ba6a213ae77d06984d540bab8604a601967a0 |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116547 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
9d5d48bc41b182a1b76b1df25069ad4fb6fc45a7 |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116547 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
d6f5f4a0893ebdfe7067ca89de78ac7db44794aa |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move stack slot assignments into LiveRangeEdit. All registers created during splitting or spilling are assigned to the same stack slot as the parent register. When splitting or rematting, we may not spill at all. In that case the stack slot is still assigned, but it will be dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116546 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
plitKit.cpp
|
2a0180fbff4870995482d96986ad780ab9de8af4 |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move stack slot assignments into LiveRangeEdit. All registers created during splitting or spilling are assigned to the same stack slot as the parent register. When splitting or rematting, we may not spill at all. In that case the stack slot is still assigned, but it will be dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116546 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
plitKit.cpp
|
e6bd095f25c5449095f60871e37f5256a18c0ec3 |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Create a new LiveRangeEdit class to keep track of the new registers created when splitting or spillling, and to help with rematerialization. Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it possible to share remat code between InlineSpiller and SplitKit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116543 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
plitKit.cpp
plitKit.h
|
a17768f5822ab62bc18608e5ba473187bf726b84 |
15-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Create a new LiveRangeEdit class to keep track of the new registers created when splitting or spillling, and to help with rematerialization. Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it possible to share remat code between InlineSpiller and SplitKit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116543 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
nlineSpiller.cpp
iveRangeEdit.cpp
iveRangeEdit.h
plitKit.cpp
plitKit.h
|
8000c17d05973443290d701001afe7f9a422cc5b |
14-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only split around a loop if the live range has uses outside the loop periphery. Before we would also split around a loop if any peripheral block had multiple uses. This could cause repeated splitting when splitting a different live range would insert uses into the periphery. Now -spiller=inline passes the nightly test suite again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116494 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
ab00e9f498a23a511a06d9fcd33e7232e9a3f916 |
14-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only split around a loop if the live range has uses outside the loop periphery. Before we would also split around a loop if any peripheral block had multiple uses. This could cause repeated splitting when splitting a different live range would insert uses into the periphery. Now -spiller=inline passes the nightly test suite again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116494 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
3386b0a6430d34fb08f88dcffcfb85cc984c81cb |
14-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Register pressure and instruction latency aware machine LICM. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116465 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
0e673919f0f02f39e2210c365f732299a21db49e |
14-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Register pressure and instruction latency aware machine LICM. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116465 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
fe368c948b6ddf1fdf6ce7d04de0359476afa4c7 |
13-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Analysis groups need to initialize their default implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116441 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
325e2643559fcec8b0396dfa16e415cc86a22a09 |
13-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Analysis groups need to initialize their default implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116441 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
cdb0c03397e05fb01ed67a7caaa5f82ec993c564 |
12-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Begin adding static dependence information to passes, which will allow us to perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116334 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineCSE.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineSink.cpp
eepholeOptimizer.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
enderMachineFunction.cpp
impleRegisterCoalescing.cpp
plitter.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
2ab36d350293c77fc8941ce1023e4899df7e3a82 |
12-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Begin adding static dependence information to passes, which will allow us to perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116334 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineCSE.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineSink.cpp
eepholeOptimizer.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
enderMachineFunction.cpp
impleRegisterCoalescing.cpp
plitter.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
11cfc5a0097203a29c56715bee315cefa730d3c4 |
11-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace FindLiveRangeContaining() with getVNInfoAt() in LiveIntervalAnalysis. This helps hiding the LiveRange class which really should be private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116244 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
31cc3ec3308c8fafd9865388214ae11662a71af4 |
11-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace FindLiveRangeContaining() with getVNInfoAt() in LiveIntervalAnalysis. This helps hiding the LiveRange class which really should be private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116244 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ffc7d072786e0fef19fe9bf7d070991105108813 |
11-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly handle reloading and spilling around partial redefines in LocalRewriter. This is a bit of a hack that adds an implicit use operand to model the read-modify-write nature of a partial redef. Uses and defs are rewritten in separate passes, and a single operand would never be processed twice. <rdar://problem/8518892> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116210 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
40ef4fe82aefc3333f2cdeffb6ad28d9dfaccb8c |
11-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly handle reloading and spilling around partial redefines in LocalRewriter. This is a bit of a hack that adds an implicit use operand to model the read-modify-write nature of a partial redef. Uses and defs are rewritten in separate passes, and a single operand would never be processed twice. <rdar://problem/8518892> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116210 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
ace3a93c8fcd74723fcdf922f336fef1cce84978 |
11-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
Per discussion with Sanjiv, remove the PIC16 target from mainline. When/if it comes back, it will be largely a rewrite, so keeping the old codebase in tree isn't helping anyone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116190 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
60cb528246dd01b80b1b1260a2a877ea488e620a |
11-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
Per discussion with Sanjiv, remove the PIC16 target from mainline. When/if it comes back, it will be largely a rewrite, so keeping the old codebase in tree isn't helping anyone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116190 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
39e98bb80322a4f0aec6fae3892750240891f386 |
10-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
fix the default va_arg expansion (in the realignment case) to not implicitly truncate the stack pointer to 32-bits on a 64-bit machine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
07e3a38c78d2788e05d716e7fa552b9449c87c33 |
10-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
fix the default va_arg expansion (in the realignment case) to not implicitly truncate the stack pointer to 32-bits on a 64-bit machine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dad1ea2713c883ab6c663b117ce3cfbf81c5e9ee |
09-Oct-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116156 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
ccefe32141c96faa05445bce0b26f1acd8bdc1b8 |
09-Oct-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116156 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
914c4ccca98c144fccfbf54658cf612dfe812c97 |
09-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename SplitEditor::rewrite to finish() and break it out into a couple of new functions: computeRemainder and rewrite. When the remainder breaks up into multiple components, remember to rewrite those uses as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116121 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
7466927b1af264b359c860cb9f7d1f3b275cc5cd |
09-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename SplitEditor::rewrite to finish() and break it out into a couple of new functions: computeRemainder and rewrite. When the remainder breaks up into multiple components, remember to rewrite those uses as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116121 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
c9ebc9275d63482b9233e57230947e4ddaf026bf |
09-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid compiler warning: comparison between signed and unsigned integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116119 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
d82de8341c99c1756624020000bd51a03a5f355c |
09-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid compiler warning: comparison between signed and unsigned integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116119 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
2fc9ecbb42ccd18594a27950a5f1826f2eb34546 |
09-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract method ProcessUses from LocalRewriter::RewriteMBB. Both parent and child are still way too long, but it's a start. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116116 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
a32181a57d08f44767b6baf4e67e6860691b53fa |
09-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract method ProcessUses from LocalRewriter::RewriteMBB. Both parent and child are still way too long, but it's a start. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116116 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
dcf1f10d145b6d477c249fdba7fab82064d34a65 |
08-Oct-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Do not check that the bodies of two defs of same linkonce global are the same. Such a check does not make any sense in presense of inlining and other compiler-dependent stuff. This should fix bunch of warnings on mingw32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116113 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
657985eb8b8cbbde2391befafccfafbddf04242a |
08-Oct-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Do not check that the bodies of two defs of same linkonce global are the same. Such a check does not make any sense in presense of inlining and other compiler-dependent stuff. This should fix bunch of warnings on mingw32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116113 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
7ce707af7b77b7a44db0c4097fed8da5341c0fb3 |
08-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Classify value numbers into connected components in linear time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116105 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
54f32e6575d0c1b920ae5151c229f1187bae0cbf |
08-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Classify value numbers into connected components in linear time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116105 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
9aafd5bbad0cf4efd0e1452ffe31d7794080b7fd |
08-Oct-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Call InitSections in llc and clang so that the binaries produced by them are easier to diff with those produced by llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116095 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ff9dfedd101e1a591ec8f7fac9999777cde80efb |
08-Oct-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Call InitSections in llc and clang so that the binaries produced by them are easier to diff with those produced by llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116095 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c70fea831145260af1e66df82c06557825be3cf9 |
08-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't waste time unfolding simple loads. The unfolded copy won't be hoisted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116081 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
e95f3195b8c65f377a59cc716bfda58c8f7c2f5e |
08-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't waste time unfolding simple loads. The unfolded copy won't be hoisted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116081 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
1d9dea3e7654d3032038fec632f0ee66d8d5f69b |
08-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix operand latency computation in cases where the definition operand is implicit. e.g. %D6<def>, %D7<def> = VLD1q16 %R2<kill>, 0, ..., %Q3<imp-def> %Q1<def> = VMULv8i16 %Q1<kill>, %Q3<kill>, ... The real definition indices are 0,1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116080 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
1aca5bc1353d4e2c7706149efbc5393aa9e2cc3f |
08-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix operand latency computation in cases where the definition operand is implicit. e.g. %D6<def>, %D7<def> = VLD1q16 %R2<kill>, 0, ..., %Q3<imp-def> %Q1<def> = VMULv8i16 %Q1<kill>, %Q3<kill>, ... The real definition indices are 0,1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116080 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
8c05fd42b5b61bef47e5ac90d2e01e6cbe248ac6 |
08-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Line number 0 indicates there is no source line/file name info available for this construct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116061 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b2bada305ef63479f987ba5feb6c2a8d11904b53 |
08-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Line number 0 indicates there is no source line/file name info available for this construct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116061 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
392d7d8fc6914f5bbf6c50261379471e6056df31 |
08-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
After splitting, the remaining LiveInterval may be fragmented into multiple connected components. These components should be allocated different virtual registers because there is no reason for them to be allocated together. Add the ConnectedVNInfoEqClasses class to calculate the connected components, and move values to new LiveIntervals. Use it from SplitKit::rewrite by creating new virtual registers for the components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116006 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
|
0253df9a897ce541d56146699cedd79c464bda5e |
08-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
After splitting, the remaining LiveInterval may be fragmented into multiple connected components. These components should be allocated different virtual registers because there is no reason for them to be allocated together. Add the ConnectedVNInfoEqClasses class to calculate the connected components, and move values to new LiveIntervals. Use it from SplitKit::rewrite by creating new virtual registers for the components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116006 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
|
1434dfa8cead98bd1e63411fcb9424e1d37f61ac |
08-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
eadMachineInstructionElim.cpp
CMetadata.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
iveVariables.cpp
achineCSE.cpp
achineDominators.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.cpp
eepholeOptimizer.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egisterCoalescer.cpp
enderMachineFunction.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
plitter.cpp
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
ce665bd2e2b581ab0858d1afe359192bac96b868 |
08-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
eadMachineInstructionElim.cpp
CMetadata.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
iveVariables.cpp
achineCSE.cpp
achineDominators.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizePHIs.cpp
HIElimination.cpp
eepholeOptimizer.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egisterCoalescer.cpp
enderMachineFunction.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
plitter.cpp
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
7a4f891bb9274036aabba99ae26917482a84ec98 |
08-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Provie a clearner interface so that FE can decide whether a function has prototype or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115988 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7b172c6ae6c4fea90db785902b4326afb21ad584 |
08-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Provie a clearner interface so that FE can decide whether a function has prototype or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115988 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
90ee2420ad4f0c9b0656f46373634f5a52c6db34 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print more loop info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115951 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
452a9fdf541413d76d9ea1d91e1702aaf2f651c7 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print more loop info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115951 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
d439e70b1547cbf4f53bd70275b738e81429565f |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out MBB number when rewriting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115950 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
8fc3d1187ce547f42a43ec6adb229c8d2423a6b1 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out MBB number when rewriting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115950 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
4ec91034dee0e6beb449f5a055af5f97168d292d |
07-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Add initialization routines for CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115949 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
|
78b152470d80c27eec82087b2a3c3fdf809e0050 |
07-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Add initialization routines for CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115949 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odeGen.cpp
|
a00cda12f42fac709afadc5fbed5881201eba86a |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cache interval iterators in SplitEditor::addTruncSimpleRange so we only have to do one find(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115929 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
4b3041c43e8134d0f2471255c736745f2eb3214d |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Cache interval iterators in SplitEditor::addTruncSimpleRange so we only have to do one find(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115929 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b301d1605d31a9cba822790202c4df7a849ae6d8 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up debug printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115928 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
9b24afe41e06572f901edf2e78ef71fb228db29e |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up debug printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115928 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b22342dea0a19e97c52428a0b8027ddba05d6b69 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE. This function is intended to be used when inserting a machine instruction that trivially restricts the legal registers, like LEA requiring a GR32_NOSP argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115875 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
achineRegisterInfo.cpp
|
bf4699c56100a0184bbe4fb53937c7204ca1ceb0 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE. This function is intended to be used when inserting a machine instruction that trivially restricts the legal registers, like LEA requiring a GR32_NOSP argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115875 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
achineRegisterInfo.cpp
|
89b96b4d17ae606bbc90856bb3e76b7ffd81ecf6 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Skip unused registers when verifying LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115874 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
893ab5d7014dd112fb111a67504bd556be9bd393 |
07-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Skip unused registers when verifying LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115874 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
954c2432204be4e03a77e6196e4a2d7993a3d8da |
06-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Hide analysis group registration behind a macro, just like pass registration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115835 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
e9ef41a47d2ee637b6aed5d018c4d90019d987ac |
06-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Hide analysis group registration behind a macro, just like pass registration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115835 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
e7763c8b9800be717587a61c4cc4ac5dd8ce05d5 |
06-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add support for DW_TAG_unspecified_parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d6747df5e0354256a9e440d38f21c0b3ca82af28 |
06-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add support for DW_TAG_unspecified_parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b46c19c2361c6e166bd47f7030329be87075cb82 |
06-Oct-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Remove unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115802 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
9c220fc165ab3543a383d7101cb80544e0c220e3 |
06-Oct-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Remove unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115802 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
19deef36944f6a5dddb7ab874e997f72edd24fd6 |
06-Oct-2010 |
Dan Gohman <gohman@apple.com> |
ComputeLinearIndex doesn't need its TLI argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115792 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0dadb15927b912c98918e8a9e7466af77062149f |
06-Oct-2010 |
Dan Gohman <gohman@apple.com> |
ComputeLinearIndex doesn't need its TLI argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115792 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAGBuilder.cpp
|
5cb06cba2dffe2a72ba3fcc947b0c265232355c8 |
06-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This allow target to correctly compute latency for cases where static scheduling itineraries isn't sufficient. e.g. variable_ops instructions such as ARM::ldm. This also allows target without scheduling itineraries to compute operand latencies. e.g. X86 can return (approximated) latencies for high latency instructions such as division. - Compute operand latencies for those defined by load multiple instructions, e.g. ldm and those used by store multiple instructions, e.g. stm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115755 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
a0792de66c8364d47b0a688c7f408efb7b10f31b |
06-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This allow target to correctly compute latency for cases where static scheduling itineraries isn't sufficient. e.g. variable_ops instructions such as ARM::ldm. This also allows target without scheduling itineraries to compute operand latencies. e.g. X86 can return (approximated) latencies for high latency instructions such as division. - Compute operand latencies for those defined by load multiple instructions, e.g. ldm and those used by store multiple instructions, e.g. stm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115755 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
0865f954fd617569b85a076366b4a7c600ef79d6 |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count uses in all nested loops, not just the deepest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115710 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
9b90d7eae2e72ee3f816194b6b6f9af94fb0fd0b |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count uses in all nested loops, not just the deepest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115710 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
cbf067d941409c0ac81f80a8f66a4327125b816c |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove SplitAnalysis::removeUse. It was only used to make SplitAnalysis reusable, but that is no longer relevant since a split will always replace the original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115709 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
fc3ef3c2e9e1a01f19aaf1e362d8d2f209c09a46 |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove SplitAnalysis::removeUse. It was only used to make SplitAnalysis reusable, but that is no longer relevant since a split will always replace the original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115709 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
66fd57ff302c7146d18ba4dfc012b07cfb1610e5 |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
dupli always has an interval now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115708 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
d00f7e0c76d997b6b685ea66ba78aba2b952cd92 |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
dupli always has an interval now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115708 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
7b6f163437eca400683381a1d166310d857e5715 |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
We can split around loops with multiple exits now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115696 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
2e2be60e0386c33b3e28a29af3ddfbafafc45aea |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
We can split around loops with multiple exits now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115696 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
7a2a53b1520dd783ea242f443ad91774fae0728d |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update SplitEditor API to reflect the fact that the original live interval is never kept after splitting. Keeping the original interval made sense when the split region doesn't modify the register, and the original is spilled. We can get the same effect by detecting reloaded values when spilling around copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115695 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
57d0f2deb0afefe69770a28937a4363e7b1f9753 |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update SplitEditor API to reflect the fact that the original live interval is never kept after splitting. Keeping the original interval made sense when the split region doesn't modify the register, and the original is spilled. We can get the same effect by detecting reloaded values when spilling around copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115695 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
d505c17bd671ac77f36c7f8367c98fc36e2f97b3 |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Intervals are half-open. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115694 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
dbc36091ff7be76d22105b67db73e18224bebb2f |
06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Intervals are half-open. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115694 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
d74a760b2b1b682c2bf924cc219fb80a1499e7f2 |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When we find a reaching definition, make sure it is visited from all paths by erasing it from the visited set. That ensures we create the right phi defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115666 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
984a7fc32ce2df9deb4bde8ddd086185b91bb358 |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When we find a reaching definition, make sure it is visited from all paths by erasing it from the visited set. That ensures we create the right phi defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115666 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
9d6500955693196b238af7993d527312784f2456 |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use nextIndex to check for live out of instruction. Insert copy after defining instruction. Fix LiveIntervalMap::extendTo to properly handle live segments starting before the current basic block. Make sure the open live range is extended to the inserted copy's use slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115665 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
fc60d7729bb5b63b7d61e370e51bd05e9a18b8bc |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use nextIndex to check for live out of instruction. Insert copy after defining instruction. Fix LiveIntervalMap::extendTo to properly handle live segments starting before the current basic block. Make sure the open live range is extended to the inserted copy's use slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115665 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
4f9fb4486ef20d6ce673f32f742731ab8f20e9d4 |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak VNInfo printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115650 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
a818c072af2f94704d08776d5bc7c50a012e40c2 |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Tweak VNInfo printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115650 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
c89f1a92dc1fe07d94470848484ca84f7190d80f |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add assert for valid slot indexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115649 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
201ecfca9892b2eab2d04aa5da59f3f5e1efe49d |
05-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add assert for valid slot indexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115649 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
5ecfab6436cffabe6e039b8c9e090b3b4ca05a46 |
05-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Use a more efficient lowering of uint64_t --> float that can take advantage of hardware signed integer conversion without having to do a double cast (uint64_t --> double --> float). This is based on the algorithm from compiler_rt's __floatundisf for X86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3a9e7690ba99c27d9b09fa8e61fb9f7ba01364c9 |
05-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Use a more efficient lowering of uint64_t --> float that can take advantage of hardware signed integer conversion without having to do a double cast (uint64_t --> double --> float). This is based on the algorithm from compiler_rt's __floatundisf for X86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
566eafd5f5365332578134b3a801b1c27e085678 |
05-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
This DAG combine BRCOND transformation can look pass truncate of the operand: // %a = ... // %b = and i32 %a, 2 // %c = srl i32 %b, 1 // brcond i32 %c ... // // into // // %a = ... // %b = and i32 %a, 2 // %c = setcc eq %b, 0 // brcond %c ... Make sure it restores local variable N1, which corresponds to the condition operand if it fails to match. This apparently breaks TCE but since that backend isn't in the tree I don't have a test for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2a135ae53057ef7d0e9123d450b958d0d59d8ccc |
05-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
This DAG combine BRCOND transformation can look pass truncate of the operand: // %a = ... // %b = and i32 %a, 2 // %c = srl i32 %b, 1 // brcond i32 %c ... // // into // // %a = ... // %b = and i32 %a, 2 // %c = setcc eq %b, 0 // brcond %c ... Make sure it restores local variable N1, which corresponds to the condition operand if it fails to match. This apparently breaks TCE but since that backend isn't in the tree I don't have a test for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
17cee16243016c92e4139d4070e0bb13b35bf6b9 |
04-Oct-2010 |
Lang Hames <lhames@gmail.com> |
Removed the older style (in-allocator) problem construction system from the PBQP allocator. Problem construction is now done exclusively with the new builders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115502 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
ab62b7e8618bda8063b49afab181bc7ed5546104 |
04-Oct-2010 |
Lang Hames <lhames@gmail.com> |
Removed the older style (in-allocator) problem construction system from the PBQP allocator. Problem construction is now done exclusively with the new builders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115502 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
1aa99b74939eaaa90eca124851bf6afeb97f15c8 |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop using LiveRange in MachineVerifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115408 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ed8263553ab80e99704554c6f34d7d5a27bf45f0 |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop using LiveRange in MachineVerifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115408 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
59c0e413346ff71634522714441b3f502ae54d27 |
02-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a miscompile in 186.crafty for Thumb2 that was exposed by Evan's scheduling change in svn 115121. The CriticalAntiDepBreaker had bad liveness information. It was calculating the KillIndices for one scheduling region in a basic block, rescheduling that region so the KillIndices were no longer valid, and then using those wrong KillIndices to make decisions for the next scheduling region. I've not been able to reduce a small testcase for this. Radar 8502534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115400 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
f70007e89e7b252abc9dc175aab92191c09bebf7 |
02-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a miscompile in 186.crafty for Thumb2 that was exposed by Evan's scheduling change in svn 115121. The CriticalAntiDepBreaker had bad liveness information. It was calculating the KillIndices for one scheduling region in a basic block, rescheduling that region so the KillIndices were no longer valid, and then using those wrong KillIndices to make decisions for the next scheduling region. I've not been able to reduce a small testcase for this. Radar 8502534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115400 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
421d137cf3da66f90e7da0505d86a59d7594a243 |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Drop the use of LiveInterval::iterator and the LiveRange class in RemoveCopyByCommutingDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115386 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5f2d1fa0f7c484f319d20e7f1c04f110a4b86648 |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Drop the use of LiveInterval::iterator and the LiveRange class in RemoveCopyByCommutingDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115386 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
685626d5209bcd5bd763bca26c63ba50c0c2fb09 |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When RemoveCopyByCommutingDef is creating additional identity copies, just use LiveInterval::MergeValueNumberInto instead of trying to extend LiveRanges and getting it wrong. This fixed PR8249 where a valno with a multi-segment live range was defined by an identity copy created by RemoveCopyByCommutingDef. Some of the live segments disappeared. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115385 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
e0a73ec0a982a4213f3de9860545d9bf2814593d |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When RemoveCopyByCommutingDef is creating additional identity copies, just use LiveInterval::MergeValueNumberInto instead of trying to extend LiveRanges and getting it wrong. This fixed PR8249 where a valno with a multi-segment live range was defined by an identity copy created by RemoveCopyByCommutingDef. Some of the live segments disappeared. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115385 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
458f79bd04313887c3a01ddbfa7fad39d3813f83 |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pretty up the debug output during RemoveCopyByCommutingDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115384 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a9b85c1074dd91ef6702b4c13499c5900616ad02 |
02-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pretty up the debug output during RemoveCopyByCommutingDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115384 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
127b12b6ddfb431453fdbccd5bef79bb6aadca5d |
02-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add support to let FE mark explict methods as explict in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
21ea1d5b4cad8c8dee1288453f797572766c94d8 |
02-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add support to let FE mark explict methods as explict in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ce027318293ddd2a0ea0cab4e9fa6af059d3bed2 |
02-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
2b2de24fe2bdbe0c533bab2208f4b666ea0d6e86 |
02-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
97d3291809ac35f2551f8d71bd7ff190ac4f45a2 |
02-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Thread the determination of branch prediction hit rates back through the if-conversion heuristic APIs. For now, stick with a constant estimate of 90% (branch predictors are good!), but we might find that we want to provide more nuanced estimates in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115364 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e3cc84a43d6a4bb6c50f58f3dd8e60e28787509e |
02-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Thread the determination of branch prediction hit rates back through the if-conversion heuristic APIs. For now, stick with a constant estimate of 90% (branch predictors are good!), but we might find that we want to provide more nuanced estimates in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115364 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
f41fcf7f3cfa5530922837d91b409469ca91915c |
01-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Fix code gen crash reported in PR 8235. We still lose debug info for the unused argument here. This is a known limitation recorded debuginfo-tests/trunk/dbg-declare2.ll function 'f6' test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
27f46cd6397c456df6f6f22a46752e64c0954fca |
01-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Fix code gen crash reported in PR 8235. We still lose debug info for the unused argument here. This is a known limitation recorded debuginfo-tests/trunk/dbg-declare2.ll function 'f6' test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d3cc98112ac03df4b15d59ad339d4860a13e10ea |
01-Oct-2010 |
Gabor Greif <ggreif@gmail.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fb4032f4223bfec5a1f76f13c501ea333f7af55f |
01-Oct-2010 |
Gabor Greif <ggreif@gmail.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
393d45094c3cb00a8651c7ff3332aa7034c488d4 |
01-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6bf263b4a2837161f827dbd711957d0e3ffa16e2 |
01-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
dd75196ded16ee38a03ad2b04e5d1e0d0849bce9 |
01-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
fix rdar://8494845 + PR8244 - a miscompile exposed by my patch in r101350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115294 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2831a194954cb4a79049e8a666d246a9a1662b92 |
01-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
fix rdar://8494845 + PR8244 - a miscompile exposed by my patch in r101350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115294 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c48ef0d1a2817f312353d3e2cd4ebfbe6c8046c7 |
01-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Massive rewrite of MMX: The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0488fb649a56b7fc89a5814df5308813f9e5a85d |
01-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Massive rewrite of MMX: The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d61fc38e3dd74f01134d21747d8003b3ea64d459 |
30-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When isel is emitting instructions for an x86 target without CMOV, the CFG is edited during emission. If the basic block ends in a switch that gets lowered to a jump table, any phis at the default edge were getting updated wrong. The jump table data structure keeps a pointer to the header blocks that wasn't getting updated after the MBB is split. This bug was exposed on 32-bit Linux when disabling critical edge splitting in codegen prepare. The fix is to uipdate stale MBB pointers whenever a block is split during emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
2622f4622c36ec9924fb908085154ffdd7174aff |
30-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When isel is emitting instructions for an x86 target without CMOV, the CFG is edited during emission. If the basic block ends in a switch that gets lowered to a jump table, any phis at the default edge were getting updated wrong. The jump table data structure keeps a pointer to the header blocks that wasn't getting updated after the MBB is split. This bug was exposed on 32-bit Linux when disabling critical edge splitting in codegen prepare. The fix is to uipdate stale MBB pointers whenever a block is split during emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
66704776c990f9ffd2b0c27b33d13748bf3107d0 |
30-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Let FE mark a variable as artificial variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115102 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3cf763dc7a9741c14432710943ab66b439562881 |
30-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Let FE mark a variable as artificial variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115102 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3ace4f36ced9f788c7e06afd1bc76a41fad8539e |
30-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Model Cortex-a9 load to SUB, RSB, ADD, ADC, SBC, RSC, CMN, MVN, or CMP pipeline forwarding path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115098 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
3881cb7a5d54c0011b40997adcd742e1c7b91abd |
30-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Model Cortex-a9 load to SUB, RSB, ADD, ADC, SBC, RSC, CMN, MVN, or CMP pipeline forwarding path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115098 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
4aad8bdb06a250ddd3d5684a4bb33eb02f5750d5 |
30-Sep-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence msvc warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115097 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6406d004c98af569632ecc1db5d852ac7da9b7c8 |
30-Sep-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence msvc warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115097 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
3cfe86c25bc1f0a533a7bf2f156766b123eea235 |
29-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Add support to let FE encode method access specifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115089 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1a30123b609d48ac50f9a9e088e55683df70cfc3 |
29-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Add support to let FE encode method access specifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115089 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
99e2c97f8260a7c1badeee5d003e56a9f41d7776 |
29-Sep-2010 |
Owen Anderson <resistor@mac.com> |
UnreachableBlockElim could incorrectly return false when it had not modified the CFG, but HAD modified some PHI nodes. Fixes PR8174. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115083 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
b0725316cd1807b954eed4b9966250249d1fd884 |
29-Sep-2010 |
Owen Anderson <resistor@mac.com> |
UnreachableBlockElim could incorrectly return false when it had not modified the CFG, but HAD modified some PHI nodes. Fixes PR8174. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115083 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
44797890dd6368e1523f98798347b0f45d6a717a |
29-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Assign DW_ACCESS_public accessibility attribute to members by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115067 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2a3616012c19e0bb0db31ec740c5cf683be87d84 |
29-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Assign DW_ACCESS_public accessibility attribute to members by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115067 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7b88c40f48324964204ede66e4a45205a6dd525f |
29-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r114997. It was causing a failure on darwin10-selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115002 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
2ff6e1e62cf73c83379e660baa570c786ba92f12 |
29-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r114997. It was causing a failure on darwin10-selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115002 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
335edd1b5f4d10458376cf20cda536fc291f5a10 |
29-Sep-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Removed a bunch of unnecessary target_link_libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
3609eb0de2f786ca6917d0388c37c23873dbd247 |
29-Sep-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Removed a bunch of unnecessary target_link_libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
8aa2dde39f55368b375f38d7817f0a4bf6be5cca |
29-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix a FIXME. _foo.eh symbols are currently always exported so that the linker knows about them. This is not necessary on 10.6 and later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114997 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
4edab1a9e8fd28a60b2d09cc38333652155c0a20 |
29-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix a FIXME. _foo.eh symbols are currently always exported so that the linker knows about them. This is not necessary on 10.6 and later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114997 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
d4397bb0100040d84d42ca569873c38c3e9e8826 |
28-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Give the if-converter access to MachineLoopInfo, and use it to generate plausible branch prediction estimates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114981 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
7571ee7885e270192a5f1b945c94c342d45e56f8 |
28-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Give the if-converter access to MachineLoopInfo, and use it to generate plausible branch prediction estimates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114981 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e527996e6891f18196ca628be56aa31beff2e593 |
28-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Part one of switching to using a more sane heuristic for determining if-conversion profitability. Rather than having arbitrary cutoffs, actually try to cost model the conversion. For now, the constants are tuned to more or less match our existing behavior, but these will be changed to reflect realistic values as this work proceeds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114973 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
b20b85168c0e9819e6545f08281e9b83c82108f0 |
28-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Part one of switching to using a more sane heuristic for determining if-conversion profitability. Rather than having arbitrary cutoffs, actually try to cost model the conversion. For now, the constants are tuned to more or less match our existing behavior, but these will be changed to reflect realistic values as this work proceeds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114973 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
61167333d23652de1c0863ca9231551eb5bbca43 |
28-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Provide an interface to let FEs anchor debug info for types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114969 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1a7ca0354a44e321d5f4839a73239e6eaec54ad5 |
28-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Provide an interface to let FEs anchor debug info for types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114969 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ba6c6eb572dcc63b1aac4b487057f2f2e492deec |
28-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ee70fa77b4f8bdfd93741609a4d33a831476d505 |
28-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c9b35a78eefc5ab379de4576c6c92a85b21d84f7 |
27-Sep-2010 |
Dale Johannesen <dalej@apple.com> |
Don't try to make a vector of x86mmx; this won't work, and asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
61b20efd9aae99101acf6fd480dee017b702f68b |
27-Sep-2010 |
Dale Johannesen <dalej@apple.com> |
Don't try to make a vector of x86mmx; this won't work, and asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
82f9a8eae4cb689b5fe40faf35c16279164e2fdb |
27-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
the latest assembler that runs on powerpc 10.4 machines doesn't support aligned comm. Detect when compiling for 10.4 and don't emit an alignment for comm. THis will hopefully fix PR8198. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114817 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
8048ebe91d76f5ee58f5c2c7535151d782af4b29 |
27-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
the latest assembler that runs on powerpc 10.4 machines doesn't support aligned comm. Detect when compiling for 10.4 and don't emit an alignment for comm. THis will hopefully fix PR8198. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114817 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
0a60d9e6dcf924a616a3eabebd07f78884e64394 |
26-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Fixed some tests to avoid LiveIntervals::getInstructionFromIndex(..) overhead where possible. Thanks to Jakob for the suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114798 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
|
cec2945f3092c4d087716eb96062d7c7ef6fe60c |
26-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Fixed some tests to avoid LiveIntervals::getInstructionFromIndex(..) overhead where possible. Thanks to Jakob for the suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114798 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
|
773b0584652387f0dd90921b0a39d382d0e4997a |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid using VNInfo::getCopy as much as possible. I want to get rid of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114794 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
207f8f688b0d530ebe4542ae0db599a6463b670b |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid using VNInfo::getCopy as much as possible. I want to get rid of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114794 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
47a1c339ca204a78f86153b814ed82adb46ec4c1 |
25-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Removed VNInfo::isDefAccurate(). Def "accuracy" can be checked by testing whether LiveIntervals::getInstructionFromIndex(def) returns NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114791 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
piller.cpp
plitKit.cpp
plitter.cpp
|
6e2968c85c1e162ee5bc813769eab223e3df0f15 |
25-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Removed VNInfo::isDefAccurate(). Def "accuracy" can be checked by testing whether LiveIntervals::getInstructionFromIndex(def) returns NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114791 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
piller.cpp
plitKit.cpp
plitter.cpp
|
bfd9a9590cf1f4fedd927c0f34e83ff7311bac16 |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove SlotIndex::PHI_BIT. It is no longer used by anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114779 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
lotIndexes.cpp
plitter.cpp
|
011e5910719265ba5d41e8af2290e55c5eb50526 |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove SlotIndex::PHI_BIT. It is no longer used by anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114779 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
lotIndexes.cpp
plitter.cpp
|
0363e36c4f3eeb28bf7f069b23735fe39a1f3edc |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the only use of SlotIndex::isPHI. This bit is not being set consistently and it will be removed shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114778 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
7c78e2624c4548ccf1bcfdbc2efaae401ec7f83e |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the only use of SlotIndex::isPHI. This bit is not being set consistently and it will be removed shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114778 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
7a611f87989d0b737cc4d549679bd57083ffd6ff |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Terminator gaps were unused. Might as well delete them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114776 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
1803b37bad85cca19a15c0040979719240f48626 |
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Terminator gaps were unused. Might as well delete them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114776 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
dd8bd470de3df62ced32e94af5ec97a97d93418a |
25-Sep-2010 |
John Thompson <john.thompson.jtsoftware@gmail.com> |
Fix for test/CodeGen/PowerPC/2008-10-17-AsmMatchingOperands.ll crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
54584743f3827c7fd9e247db25cc5cfedaa9bab9 |
25-Sep-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Fix for test/CodeGen/PowerPC/2008-10-17-AsmMatchingOperands.ll crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
02816c04c59ebb4c2fdf4083b8008372aa7d3111 |
24-Sep-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Get rid of pop_macro warnings on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114750 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1f4096054367cab3acab3a74c719ef6d3090606a |
24-Sep-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Get rid of pop_macro warnings on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114750 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
|
bbde071719f9e50a376103cca23eedce394549c8 |
24-Sep-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Attach a DebugLoc to a GC point in order to get precise information in the JIT of a GC point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114736 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
946e3c9f9db2d0ab5bd75ad0283c224366807fa6 |
24-Sep-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Attach a DebugLoc to a GC point in order to get precise information in the JIT of a GC point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114736 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
710c10d44301184306cf12d041c3532a74b09652 |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 114634 for now since buildbot claim it broke Clang self-hosting. I doubt it but it's possible it's exposing another bug somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114681 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8c1f4329e2f90dea203f3a85a992865e936dea4a |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 114634 for now since buildbot claim it broke Clang self-hosting. I doubt it but it's possible it's exposing another bug somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114681 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8dc5013f982a219b352a67322519614bf8335587 |
23-Sep-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Fix VS 2010 build. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
df30bdb3a735a81b4182d80b870bc39846824396 |
23-Sep-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Fix VS 2010 build. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8a5e39c602e7dde61f000e35c13ac5ed4dd57772 |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to r114630. Do not optimize away unconditional branch following a conditional one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b8db1981b8cdd7cc52a9ad94a12c73e4fb1e8b39 |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to r114630. Do not optimize away unconditional branch following a conditional one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
472b9486e8b7bfc4f37fe3ec793e9ffd5be978cf |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't sink insert_subreg, subreg_to_reg, reg_sequence. They are meant to be close to their sources to facilitate coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114631 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
b0cdf8a4466d02c66c84b6b30953709fa9225a30 |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't sink insert_subreg, subreg_to_reg, reg_sequence. They are meant to be close to their sources to facilitate coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114631 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
9da9e78c618bb33e24833d3859acc1c1f62877b0 |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
SDISel should not optimize a unconditional branch following a conditional branch when the unconditional branch destination is the fallthrough block. The canonicalization makes it easier to allow optimizations on DAGs to invert conditional branches. The branch folding pass (and AnalyzeBranch) will clean up the unnecessary unconditional branches later. This is one of the patches leading up to disabling codegen prepare critical edge splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
266a99d161069071f32c7c09dded481fd573a82e |
23-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
SDISel should not optimize a unconditional branch following a conditional branch when the unconditional branch destination is the fallthrough block. The canonicalization makes it easier to allow optimizations on DAGs to invert conditional branches. The branch folding pass (and AnalyzeBranch) will clean up the unnecessary unconditional branches later. This is one of the patches leading up to disabling codegen prepare critical edge splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3ba0c11374182a03304639037fe5e99ea20c832f |
23-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Moved the PBQP allocator class out of the header and back in to the cpp file to hide the gory details. Allocator instances can now be created by calling createPBQPRegisterAllocator. Tidied up use of CoalescerPair as per Jakob's suggestions. Made the new PBQPBuilder based construction process the default. The internal construction process remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new process doesn't cause any regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114626 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
f70e7cc7a2871d498dbecbec2d1c3beb3da2af33 |
23-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Moved the PBQP allocator class out of the header and back in to the cpp file to hide the gory details. Allocator instances can now be created by calling createPBQPRegisterAllocator. Tidied up use of CoalescerPair as per Jakob's suggestions. Made the new PBQPBuilder based construction process the default. The internal construction process remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new process doesn't cause any regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114626 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
44a62c61355a29a89e20a61d4003fbee218ccf71 |
23-Sep-2010 |
Owen Anderson <resistor@mac.com> |
A select between a constant and zero, when fed by a bit test, can be efficiently lowered using a series of shifts. Fixes <rdar://problem/8285015>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114599 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ed1088afb51189efff02886891c4e25a5a5fb5f9 |
23-Sep-2010 |
Owen Anderson <resistor@mac.com> |
A select between a constant and zero, when fed by a bit test, can be efficiently lowered using a series of shifts. Fixes <rdar://problem/8285015>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114599 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0518b7a18117e3325c0d041ba37db1276dbe3569 |
22-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Use DW_OP_fbreg when offset is based on frame register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114585 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
be90c3a0ea66fb05dfe72fbe42cca2713c6c8b1a |
22-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Use DW_OP_fbreg when offset is based on frame register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114585 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a18271ef02ef195449780744ea28b843d6aaa3be |
22-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Build the complement interval dupli after the split intervals instead of creating it before and subtracting split ranges. This way, the SSA update code in LiveIntervalMap can properly create and use new phi values in dupli. Now it is possible to create split regions where a value escapes along two different CFG edges, creating phi values outside the split region. This is a work in progress and probably quite broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114492 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
5fa42a45a1845046dde84089fb4d8e1e1b329b65 |
22-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Build the complement interval dupli after the split intervals instead of creating it before and subtracting split ranges. This way, the SSA update code in LiveIntervalMap can properly create and use new phi values in dupli. Now it is possible to create split regions where a value escapes along two different CFG edges, creating phi values outside the split region. This is a work in progress and probably quite broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114492 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
bb688953d97948619af60e560c70720abaddbe1f |
22-Sep-2010 |
John Thompson <john.thompson.jtsoftware@gmail.com> |
Fixed pr20314-2.c failure, added E, F, p constraint letters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
67aff164c039765e3ec19e5a31659250c8427dfb |
22-Sep-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Fixed pr20314-2.c failure, added E, F, p constraint letters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d206fb899ae94a41c3f4d216d830fb926f455a97 |
22-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
Rework passing parent pointers into complexpatterns, I forgot that complex patterns are matched after the entire pattern has a structural match, therefore the NodeStack isn't in a useful state when the actual call to the matcher happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d847bc20b89679279e75412ddc51dc1d299da942 |
22-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
Rework passing parent pointers into complexpatterns, I forgot that complex patterns are matched after the entire pattern has a structural match, therefore the NodeStack isn't in a useful state when the actual call to the matcher happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0e02bf10fd684b8ae14c4ec3cc3f7a84029907a5 |
21-Sep-2010 |
Devang Patel <dpatel@apple.com> |
If only user of a vreg is an copy instruction to export copy of vreg out of current basic block then insert DBG_VALUE so that debug value of the variable is also transfered to new vreg. Testcase is in r114476. This fixes radar 8412415. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
44cfe14445bcdd591d4f2ed59fe73582360bd8c9 |
21-Sep-2010 |
Devang Patel <dpatel@apple.com> |
If only user of a vreg is an copy instruction to export copy of vreg out of current basic block then insert DBG_VALUE so that debug value of the variable is also transfered to new vreg. Testcase is in r114476. This fixes radar 8412415. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9d2f6e46a050d0971187dc86e5e72ed25924f039 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
correct this logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
77bd88cda5e007c6f4e042fc6b6104c9ae62083b |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
correct this logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
33fca6d2189b11e577bbf82618930f7e8d3344ef |
21-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Reimplement r114460 in target-independent DAGCombine rather than target-dependent, by using the predicate to discover the number of sign bits. Enhance X86's target lowering to provide a useful response to this query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bc146b0a4dcee601459eee943b4133d3cf63f1dd |
21-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Reimplement r114460 in target-independent DAGCombine rather than target-dependent, by using the predicate to discover the number of sign bits. Enhance X86's target lowering to provide a useful response to this query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6dedbda40f263c0fe0278bc1cf4e8ed7ee716f58 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
just like they can opt into getting the root of the pattern being matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
78d3af47f532d67611e7d625b505fa832d713a26 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
just like they can opt into getting the root of the pattern being matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f88c5ad84673585f444d766ea5ac8caa22396af4 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refix MSVC9 and upper_bound. It actually needs a fully symmetric comparator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114469 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
7c727072168c55493ec362e254af1cd740d7eaf2 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refix MSVC9 and upper_bound. It actually needs a fully symmetric comparator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114469 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
12eab7b1e9b3e5c594607c3968e21f3b2e78f98c |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
finish pushing MachinePointerInfo through selectiondags. At this point, I think I've audited all uses, so it should be dependable for address spaces, and the pointer+offset info should also be accurate when there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
84bd98ac7b9f9eaa0c4259b510847481a45844a7 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
finish pushing MachinePointerInfo through selectiondags. At this point, I think I've audited all uses, so it should be dependable for address spaces, and the pointer+offset info should also be accurate when there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
6dc99a966d7f72d627750142b8e69e08f967bb3b |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
convert a couple more places to use the new getStore() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114463 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fc448ff89b4fb7721de9da0b96fd00c13160c4c7 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
convert a couple more places to use the new getStore() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114463 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e42e5550ec99a5fb294e5106034585c57777aa80 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
update a bunch of code to use the MachinePointerInfo version of getStore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
6229d0acb8f395552131a7015a5d1e7b2bae2111 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
update a bunch of code to use the MachinePointerInfo version of getStore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
3c843c5a0bb2fe0ef15c568f170e483ff47403ec |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't pollute the global namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114459 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
89bfef003ec71792d078d489566655006b89bc43 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't pollute the global namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114459 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
d437ac79b8350cfc7bc936c60ac0db2d7cd7c731 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MSVC9 does not support upper_bound with an asymmetric comparator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114455 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
2de0e808c1fa742f3eac68b5d10d182699cbbe04 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MSVC9 does not support upper_bound with an asymmetric comparator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114455 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
daa44a53c9445429820033b1f74f00d5ac6a338f |
21-Sep-2010 |
Bob Wilson <bob.wilson@apple.com> |
Define the TargetLowering::getTgtMemIntrinsic hook for ARM so that NEON load and store intrinsics are represented with MemIntrinsicSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
65ffec49f73d1f8856211b107712c58cc9636b78 |
21-Sep-2010 |
Bob Wilson <bob.wilson@apple.com> |
Define the TargetLowering::getTgtMemIntrinsic hook for ARM so that NEON load and store intrinsics are represented with MemIntrinsicSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0cedbb841abd75afb300857fcc16e3e46e86d78e |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate an old SelectionDAG::getTruncStore method, propagating MachinePointerInfo around more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
da2d8e1032eb4c2fefb1f647d7877910b9483835 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate an old SelectionDAG::getTruncStore method, propagating MachinePointerInfo around more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
baeb05c7716a497cf25b4a81f0f7ebe02d0100e7 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate last SelectionDAG::getLoad old entrypoint, on to stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114450 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
5cd9391a089d146d8a18ade602769502e5a8d36f |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate last SelectionDAG::getLoad old entrypoint, on to stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114450 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
741d79a807a8197f2a21a58315da3620dfc57620 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix the code that infers SV info to be correct when dealing with an indexed load/store that has an offset in the index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114449 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d0e139fa7409a009c416f2b0bcf4665f23ddca83 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix the code that infers SV info to be correct when dealing with an indexed load/store that has an offset in the index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114449 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8a45aa41d7f7e10438854c687d43c47bae8aea13 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveInterval::find and use it for most LiveRange searching operations instead of calling lower_bound or upper_bound directly. This cleans up the search logic a bit because {lower,upper}_bound compare LR->start by default, and it is usually simpler to search LR->end. Funnelling all searches through one function also makes it possible to replace the search algorithm with something faster than binary search. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114448 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f568b2706e274c7d8081cfd0a7ee9b881e5c313b |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveInterval::find and use it for most LiveRange searching operations instead of calling lower_bound or upper_bound directly. This cleans up the search logic a bit because {lower,upper}_bound compare LR->start by default, and it is usually simpler to search LR->end. Funnelling all searches through one function also makes it possible to replace the search algorithm with something faster than binary search. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114448 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
459337e653577256e2f7828ca162ec5806981525 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114447 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
0635ead2c4f2182a480a3281b9b2fff084a10634 |
21-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114447 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
d303da66e894ca276164414ceb99b18eb9e1dae0 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
propagate MachinePointerInfo through various uses of the old SelectionDAG::getExtLoad overload, and eliminate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114446 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
3d6ccfba314ed38e4506dae2781a060e9a3e07ac |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
propagate MachinePointerInfo through various uses of the old SelectionDAG::getExtLoad overload, and eliminate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114446 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
df7096f01384c4e8a8ac9e42c2b784e54c53da8e |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
continue MachinePointerInfo'izing, eliminating use of one of the old getLoad overloads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
ecf42c4720aba6ee315d0166045c54187ac2de4d |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
continue MachinePointerInfo'izing, eliminating use of one of the old getLoad overloads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
3b1bbc9cf9270fefc34fb1eef14c593a82e0f2a5 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
convert dagcombine off the old form of getLoad. This fixes several bugs with SVOffset computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fa45901eaaecbad3b95042518d7991ad0e5c08a0 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
convert dagcombine off the old form of getLoad. This fixes several bugs with SVOffset computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a20f1a3ded7a7398133760d91262d683a5e91a37 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
simplify DAGCombiner::SimplifySelectOps step #2/2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114437 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f16580665589584d3249d8a3c4dd4ea90dfb9e47 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
simplify DAGCombiner::SimplifySelectOps step #2/2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114437 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6e69083eb6da924271c88d4e70cc879d8cc36978 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
substantially reduce indentation and simplify DAGCombiner::SimplifySelectOps. no functionality change (step #1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1806161a0bfbc3fa57aa90470d467425ffaf05bb |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
substantially reduce indentation and simplify DAGCombiner::SimplifySelectOps. no functionality change (step #1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a62ff7be06d9de9dd28f55c576f29d9b2c744988 |
21-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Fixed ambiguous call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114431 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
08982914902a3e164bdfca3157b296a38c7324ad |
21-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Fixed ambiguous call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114431 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
6be37364596f4d8750844a4e322c96d256d336c8 |
21-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added an additional PBQP problem builder which adds coalescing costs (both between pairs of virtuals, and between virtuals and physicals). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114429 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
e9c935662d77b8c5a3a26f5622dc2a3ed22d75c8 |
21-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added an additional PBQP problem builder which adds coalescing costs (both between pairs of virtuals, and between virtuals and physicals). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114429 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
3b65acae5390d2c798806fbbb0080f2530771c14 |
21-Sep-2010 |
Gabor Greif <ggreif@gmail.com> |
Move the search for the appropriate AND instruction into OptimizeCompareInstr. This necessitates the passing of CmpValue around, so widen the virtual functions to accomodate. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114428 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
04ac81d5db058a3a9492e1aff1f398a8643bfda9 |
21-Sep-2010 |
Gabor Greif <ggreif@gmail.com> |
Move the search for the appropriate AND instruction into OptimizeCompareInstr. This necessitates the passing of CmpValue around, so widen the virtual functions to accomodate. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114428 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
c966e21cbfd398386008492059e48d19616f3137 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
a few more trivial updates. This fixes PerformInsertVectorEltInMemory to not pass a completely incorrect SrcValue, which would result in a miscompile with combiner-aa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
85ca1066328639119f94c47a83b698c48b84ebb0 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
a few more trivial updates. This fixes PerformInsertVectorEltInMemory to not pass a completely incorrect SrcValue, which would result in a miscompile with combiner-aa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
5cd72905d86cca9d3d0308887ab974e911532bce |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add some accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114409 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1daa6f479dd5fb4123f1ffbb10a3825da7d2c6b8 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add some accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114409 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3262a9cd64bcbadcfa25cb90968f947cdbfa7ab7 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
it's more elegant to put the "getConstantPool" and "getFixedStack" on the MachinePointerInfo class. While this isn't the problem I'm setting out to solve, it is the right way to eliminate PseudoSourceValue, so lets go with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114406 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e8639036b1fb3a5b5e9589fe4e9f2ee1b77c36bd |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
it's more elegant to put the "getConstantPool" and "getFixedStack" on the MachinePointerInfo class. While this isn't the problem I'm setting out to solve, it is the right way to eliminate PseudoSourceValue, so lets go with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114406 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
c515938bc6c609b156fbf3609a2849091489282d |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
reimplement memcpy/memmove/memset lowering to use MachinePointerInfo instead of srcvalue/offset pairs. This corrects SV info for mem operations whose size is > 32-bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e72f2027e9116c55a5b39ac72732df8d6c45d37c |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
reimplement memcpy/memmove/memset lowering to use MachinePointerInfo instead of srcvalue/offset pairs. This corrects SV info for mem operations whose size is > 32-bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
01e1be4c049f736a67bd3d265a9a576366a7b9cf |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add some helpful accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114400 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
40a858f6e71ed8d68779d00c63dad15baded3562 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add some helpful accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114400 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f060d7344826f0180d64256dceb3bf84f10a48d2 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add overloads for SelectionDAG::getLoad, getStore, getTruncStore that take a MachinePointerInfo. Among other virtues, this doesn't silently truncate the svoffset to 32-bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5c5cb2a1717f8e30b1849d7ec1cf269bc5d66877 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add overloads for SelectionDAG::getLoad, getStore, getTruncStore that take a MachinePointerInfo. Among other virtues, this doesn't silently truncate the svoffset to 32-bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3f9c0f65fddf9316246754ecfb8548bb6eccb4da |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
simplify interface to SelectionDAG::getMemIntrinsicNode, making it take a MachinePointerInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e9ba5dd236f48708a00bd3bb0519148f943cc897 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
simplify interface to SelectionDAG::getMemIntrinsicNode, making it take a MachinePointerInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
acf2f7663c1ba10f6e73c435938bc33a0c0f8fb2 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
chagne interface to SelectionDAG::getAtomic to take a MachinePointerInfo, eliminating some weird "infer a frame address" logic which was dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
60bddc8bcd787be645d2f3b64117fee884270e6a |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
chagne interface to SelectionDAG::getAtomic to take a MachinePointerInfo, eliminating some weird "infer a frame address" logic which was dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
db4a2576c3eb914fef435ae87903ac520a5cc614 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
don't implicitly drop the offset of a machinememoperand when legalizing atomics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
0531356e4da1451b1b0b9e8c85365c2a58ca8282 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
don't implicitly drop the offset of a machinememoperand when legalizing atomics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
60d6def76a7bf3b4ed56adb81f6ce228e41730e5 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
force clients of MachineFunction::getMachineMemOperand to provide a MachinePointerInfo, propagating the type out a level of API. Remove the old MachineFunction::getMachineMemOperand impl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114393 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
argetInstrInfoImpl.cpp
|
93a95ae8a9d8eb19dc0d90281473be2fb1c05a17 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
force clients of MachineFunction::getMachineMemOperand to provide a MachinePointerInfo, propagating the type out a level of API. Remove the old MachineFunction::getMachineMemOperand impl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114393 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
argetInstrInfoImpl.cpp
|
c6952b35a44a5a367f43a7b90d5cff395a32a2d5 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
start pushing MachinePointerInfo out through the MachineMemOperand interface to the MachineFunction construction methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114390 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
|
da39c3964423744b4d79aebef8bece3e9141d5fc |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
start pushing MachinePointerInfo out through the MachineMemOperand interface to the MachineFunction construction methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114390 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
|
057ef8fe135e0fd7d6a8bc083b59920897f508b5 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
refactor the Value*/offset pair from MachineMemOperand out to a new MachinePointerInfo struct, no functionality change. This also adds an assert to MachineMemOperand::MachineMemOperand that verifies that the Value* is either null or is an IR pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114389 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e8e2e80f40495fdd5ad475beb54fcf0989b6b7c5 |
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
refactor the Value*/offset pair from MachineMemOperand out to a new MachinePointerInfo struct, no functionality change. This also adds an assert to MachineMemOperand::MachineMemOperand that verifies that the Value* is either null or is an IR pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114389 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6056129781af324825d565a69c635752392b8637 |
21-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine sinking critical edge splitting. e.g. define double @foo(double %x, double %y, i1 %c) nounwind { %a = fdiv double %x, 3.2 %z = select i1 %c, double %a, double %y ret double %z } Was: _foo: divsd LCPI0_0(%rip), %xmm0 testb $1, %dil jne LBB0_2 movaps %xmm1, %xmm0 LBB0_2: ret Now: _foo: testb $1, %dil je LBB0_2 divsd LCPI0_0(%rip), %xmm0 ret LBB0_2: movaps %xmm1, %xmm0 ret This avoids the divsd when early exit is taken. rdar://8454886 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114372 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
44be1a8d661cfab0cc3d11b0dd158271b2d2ca04 |
21-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine sinking critical edge splitting. e.g. define double @foo(double %x, double %y, i1 %c) nounwind { %a = fdiv double %x, 3.2 %z = select i1 %c, double %a, double %y ret double %z } Was: _foo: divsd LCPI0_0(%rip), %xmm0 testb $1, %dil jne LBB0_2 movaps %xmm1, %xmm0 LBB0_2: ret Now: _foo: testb $1, %dil je LBB0_2 divsd LCPI0_0(%rip), %xmm0 ret LBB0_2: movaps %xmm1, %xmm0 ret This avoids the divsd when early exit is taken. rdar://8454886 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114372 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
17dadf40cc44f3be7c2e1858b30f112ba46b6016 |
20-Sep-2010 |
Owen Anderson <resistor@mac.com> |
When TCO is turned on, it is possible to end up with aliasing FrameIndex's. Therefore, CombinerAA cannot assume that different FrameIndex's never alias, but can instead use MachineFrameInfo to get the actual offsets of these slots and check for actual aliasing. This fixes CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll and CodeGen/X86/tailcallstack64.ll when CombinerAA is enabled, modulo a different register allocation sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4a9f150926d593b30354db76d8d061fe4c9d124d |
20-Sep-2010 |
Owen Anderson <resistor@mac.com> |
When TCO is turned on, it is possible to end up with aliasing FrameIndex's. Therefore, CombinerAA cannot assume that different FrameIndex's never alias, but can instead use MachineFrameInfo to get the actual offsets of these slots and check for actual aliasing. This fixes CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll and CodeGen/X86/tailcallstack64.ll when CombinerAA is enabled, modulo a different register allocation sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9f9563edde6c3a4a6d78ea65ae0c454ea5352582 |
20-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid splitting critical edge twice for a set of PHI uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114338 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
7af6dc47a552d0d7d09752ad2e747d3973125b48 |
20-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid splitting critical edge twice for a set of PHI uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114338 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
f2bb41caa3cb62ce492c500beaa616d6f05eb11f |
19-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Revert r114312 while I sort out some issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0dcc8142766b3c55915eb9c2d404bdea6bb0f7dd |
19-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Revert r114312 while I sort out some issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d6e999d7999fa7c4acd584165b22c72bbab956f0 |
19-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Tentatively enabled DAGCombiner Alias Analysis by default. As far as I know, r114268 fixed the last of the blockers to enabling it. I will be monitoring for failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d910fb2f12782d8636950baaccbf43bd046e828f |
19-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Tentatively enabled DAGCombiner Alias Analysis by default. As far as I know, r114268 fixed the last of the blockers to enabling it. I will be monitoring for failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
75cfb70a26dce51730d9ffd81912b8a5bede5061 |
18-Sep-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Unbreak msvc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114284 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
9e8d1f97e9f32c87aac1189edbc3263a1f4a81f3 |
18-Sep-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Unbreak msvc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114284 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
1a5afc430527ffe9ffcad6eb32106b92123381ef |
18-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Fixed non-const iterator error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114273 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
481630dee5f221c04bb26fe12f0887b4f25f8455 |
18-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Fixed non-const iterator error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114273 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
472e06e2b2e2556bfee5fbe773b91a739bf00578 |
18-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added a separate class (PBQPBuilder) for PBQP Problem construction. This class can be extended to support custom constraints. For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming no issues with the builder system come up. To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114272 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Graph.h
BQP/HeuristicBase.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/Math.h
BQP/Solution.h
egAllocPBQP.cpp
|
eb6c8f53b4df1488f3d07c11af8f754cc4620f3a |
18-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added a separate class (PBQPBuilder) for PBQP Problem construction. This class can be extended to support custom constraints. For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming no issues with the builder system come up. To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114272 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Graph.h
BQP/HeuristicBase.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/Math.h
BQP/Solution.h
egAllocPBQP.cpp
|
7c30304c7ba25fbae52d4db2f5ae230ba2475288 |
18-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix code that break critical edges for PHI uses. Watch out for multiple PHIs in different blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114270 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
2399786b279b6db7077ac36020153714530365df |
18-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix code that break critical edges for PHI uses. Watch out for multiple PHIs in different blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114270 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
0f49691f58d39d80fa2270753a21fd61ceb6e1ea |
18-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Invert the logic of reachesChainWithoutSideEffects(). What we want to check is that there is NO path to the destination containing side effects, not that SOME path contains no side effects. In practice, this only manifests with CombinerAA enabled, because otherwise the chain has little to no branching, so "any" is effectively equivalent to "all". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
14ac1dd2be4f72ae1e48a1fd1c2f9bedc7f980e2 |
18-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Invert the logic of reachesChainWithoutSideEffects(). What we want to check is that there is NO path to the destination containing side effects, not that SOME path contains no side effects. In practice, this only manifests with CombinerAA enabled, because otherwise the chain has little to no branching, so "any" is effectively equivalent to "all". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2a193d05cb6a5a3bb25dc399503aad847f89bf08 |
18-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine sink to 1) Do forward copy propagation. This makes it easier to estimate the cost of the instruction being sunk. 2) Break critical edges on demand, including cases where the value is used by PHI nodes. Critical edge splitting is not yet enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114227 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
6edb0eac87a6e46b89de3ad5d8e39c41969e2a54 |
18-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine sink to 1) Do forward copy propagation. This makes it easier to estimate the cost of the instruction being sunk. 2) Break critical edges on demand, including cases where the value is used by PHI nodes. Critical edge splitting is not yet enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114227 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
acc20fbd415a6888fe1393a8a2ae64e432fffd39 |
17-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Machine CSE was forgetting to clear some data structures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114222 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
c2b768f09e108b71348af58f3ab31d0fc6d15dd6 |
17-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Machine CSE was forgetting to clear some data structures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114222 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
1cc1bc86986faee8a7f52ff338671b5eb7371e58 |
17-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a potential bug that can cause miscomparison with and without debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114220 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
f437f733484169cf67f7c3e798908bbf27175580 |
17-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a potential bug that can cause miscomparison with and without debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114220 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
0d5b5b50ad03f89d598541b588cd334b87014d7a |
16-Sep-2010 |
Devang Patel <dpatel@apple.com> |
If FE forgot to provide a file name (usually it uses "stdin" as name in such situation) then make one up to ensure that debug info is not malformed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114119 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1905a18abcb46e6a57eeaa291cd81fc669cedfd0 |
16-Sep-2010 |
Devang Patel <dpatel@apple.com> |
If FE forgot to provide a file name (usually it uses "stdin" as name in such situation) then make one up to ensure that debug info is not malformed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114119 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8810c25cc63df93c878282ab78f7b43fe89a782e |
16-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the value mapping provided by LiveIntervalMap. This simplifies the code a great deal because we don't have to worry about maintaining SSA form. Unconditionally copy back to dupli when the register is live out of the split range, even if the live-out value was defined outside the range. Skipping the back-copy only makes sense when the live range is going to spill outside the split range, and we don't know that it will. Besides, this was a hack to avoid SSA update issues. Clear up some confusion about the end point of a half-open LiveRange. Methinks LiveRanges need to be closed so both start and end are included in the range. The low bits of a SlotIndex are symbolic, so a half-open range doesn't really make sense. This would be a pervasive change, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114043 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
f6a129a24b866635c3c51edf08749755f952b5f2 |
16-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the value mapping provided by LiveIntervalMap. This simplifies the code a great deal because we don't have to worry about maintaining SSA form. Unconditionally copy back to dupli when the register is live out of the split range, even if the live-out value was defined outside the range. Skipping the back-copy only makes sense when the live range is going to spill outside the split range, and we don't know that it will. Besides, this was a hack to avoid SSA update issues. Clear up some confusion about the end point of a half-open LiveRange. Methinks LiveRanges need to be closed so both start and end are included in the range. The low bits of a SlotIndex are symbolic, so a half-open range doesn't really make sense. This would be a pervasive change, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114043 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
f2eeed6b8fffbc8182992e14bb07682abbbae84f |
15-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Check bb to ensure that alloca is in separate basic block. This fixes funcargs.exp regression reported by gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
27ede1ba6daa893557db477fe3252084fd9f6147 |
15-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Check bb to ensure that alloca is in separate basic block. This fixes funcargs.exp regression reported by gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7e7171fe4cacef7122983d5b46000c3ff80dd820 |
15-Sep-2010 |
Devang Patel <dpatel@apple.com> |
If dbg.declare from non-entry block is using alloca from entry block then use offset available in StaticAllocaMap to emit DBG_VALUE. Right now, this has no material impact because varible info also collected using offset table maintained in machine module info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1397fdc0ab272a6a295149fba0903f65a6d1885e |
15-Sep-2010 |
Devang Patel <dpatel@apple.com> |
If dbg.declare from non-entry block is using alloca from entry block then use offset available in StaticAllocaMap to emit DBG_VALUE. Right now, this has no material impact because varible info also collected using offset table maintained in machine module info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e5325c047e40dc31ece5a21be3a1885af874a1e5 |
14-Sep-2010 |
Gabor Greif <ggreif@gmail.com> |
must not peephole away side effects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113848 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
4f7d107d1d2b2392ce8eb1647e2daa04a81f6c99 |
14-Sep-2010 |
Gabor Greif <ggreif@gmail.com> |
must not peephole away side effects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113848 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
5ef4652c411701db836c77ffe5a8778400b7b0bc |
14-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Use frame index, if available for byval argument while lowering dbg_declare. Otherwise let getRegForValue() find register for this argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6fe75aaaeb6b0587d402228ba291c729a13eb6d7 |
14-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Use frame index, if available for byval argument while lowering dbg_declare. Otherwise let getRegForValue() find register for this argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f318164d18455fe44fcc9e03329036917f303edc |
14-Sep-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113819 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
3a210e2d302758101ac06946e86027b327c7d0f3 |
14-Sep-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113819 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
28b6fac0009a210d7ef606e60491901ad64d6787 |
14-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mechanically replace LiveInterval* with LiveIntervalMap for intervals being edited without actually using LiveIntervalMap functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113816 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
dd9f3fdc77b77b10710c27050d508d7c7fb40c25 |
14-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mechanically replace LiveInterval* with LiveIntervalMap for intervals being edited without actually using LiveIntervalMap functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113816 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
d0b553fb8db23eecaea143aac4e2c7e3530c1544 |
14-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow LiveIntervalMap to be reused by resetting the current live interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113815 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
9ca2aeb2d223d11fd01b0bb8f13fe7f3a969714d |
14-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow LiveIntervalMap to be reused by resetting the current live interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113815 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
daa9cee8d238559b321e2313229440839b769d5f |
13-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Let's just declare that it is impossible to construct a std::pair from a null pointer and work around that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113788 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b3e9681cc0ea2d52a1f8cd09880656780dce4073 |
13-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Let's just declare that it is impossible to construct a std::pair from a null pointer and work around that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113788 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b8bf17a57543429072e916145b5d28de09f4910b |
13-Sep-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix linux/msvc build, move include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113776 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
12ea76563276b656b4bcf7ff38a404c10b0a675f |
13-Sep-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix linux/msvc build, move include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113776 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
ec0f8b3e51fa403dc546ea533dfd3e817d6d2873 |
13-Sep-2010 |
Eric Christopher <echristo@apple.com> |
Silence more warnings. Two more unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113771 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1a56e083e7ee7cc05afe02eff40a45858cd9adda |
13-Sep-2010 |
Eric Christopher <echristo@apple.com> |
Silence more warnings. Two more unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113771 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f3e8af7f999544ee8a213cb2e03b8d507ca7ce54 |
13-Sep-2010 |
John Thompson <john.thompson.jtsoftware@gmail.com> |
Added skeleton for inline asm multiple alternative constraint support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113766 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
eac6e1d0c748afc3d1496be0753ffbe5f5a4279b |
13-Sep-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Added skeleton for inline asm multiple alternative constraint support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113766 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
a95f589c757c8c857096a07e0d376ca9aaec6c2c |
11-Sep-2010 |
Shih-wei Liao <sliao@google.com> |
Apply changes on LLVM r112364 after merge. Change-Id: I9688675d46dca0d564206616c40b005669269010
ndroid.mk
smPrinter/AsmPrinter.cpp
electionDAG/Android.mk
|
da61c1662bd86ea1f7fad601e9966f1b700636c1 |
11-Sep-2010 |
Shih-wei Liao <sliao@google.com> |
Merge commit '69494cf8102cf872e9cb76662e9960be7c112112' into HEAD Conflicts: lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/Target/ARM/ARMCodeEmitter.cpp lib/Target/ARM/ARMJITInfo.cpp lib/Target/ARM/ARMRelocations.h lib/Transforms/IPO/MergeFunctions.cpp Change-Id: I23d40983717e072fa49334c1fa54f2cf961476c7
|
5d7db1fa13488aa726bf61a1c7f544661cb01ef4 |
11-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename ConvertToSetZeroFlag to something more general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113670 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
a65568676d0d9d53dd4aae8f1c58271bb4cfff10 |
11-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename ConvertToSetZeroFlag to something more general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113670 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
df43da9e50014e1f89626bf9bd3868d90586b3c9 |
11-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
No need to recompute the SrcReg and CmpValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113666 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
3665661a5708c8adc2727be38b56d1d87ddeb661 |
11-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
No need to recompute the SrcReg and CmpValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113666 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
f93cebaf113032a711b2f434bf2c37e1bc6a4cee |
11-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Move some of the decision logic for converting an instruction into one that sets the 'zero' bit down into the back-end. There are other cases where this logic isn't sufficient, so they should be handled separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113665 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
92ad57f066e9f256e4e3d72febf152e68caa80c7 |
11-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Move some of the decision logic for converting an instruction into one that sets the 'zero' bit down into the back-end. There are other cases where this logic isn't sufficient, so they should be handled separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113665 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
a91007a3a63008db6aa85222642ef2ed05a8b4dd |
11-Sep-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113653 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
59718a4f42551fc0034b860cb8119f728023c303 |
11-Sep-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113653 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
c9c9de1260bf0fd85b9628c614cb7289f30ffb9a |
10-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Modify the comparison optimizations in the peephole optimizer to update the iterator when an optimization took place. This allows us to do more insane things with the code than just remove an instruction or two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113640 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
220e240bdf3235252c2a1fc8fcc5d4b8e8117918 |
10-Sep-2010 |
Bill Wendling <isanbard@gmail.com> |
Modify the comparison optimizations in the peephole optimizer to update the iterator when an optimization took place. This allows us to do more insane things with the code than just remove an instruction or two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113640 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
338c97baad1444a4158a7d99162e0e654f058c43 |
10-Sep-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113632 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
4e9c939312ff73bd0c6a6485fd5f97012f5910fa |
10-Sep-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113632 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
9b68a42a9d1a03052dfb8cf4e5a9414fcb9c11a6 |
10-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Add DEBUG message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113614 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
electionDAG/FastISel.cpp
|
4bafda9618f9dfa9edc8da08bb3001ef2d1a9b68 |
10-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Add DEBUG message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113614 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
electionDAG/FastISel.cpp
|
0cf9a820e435a74ef93930dcaf8917323f2f99be |
10-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach if-converter to be more careful with predicating instructions that would take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113570 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
ostRAHazardRecognizer.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
argetInstrInfoImpl.cpp
|
3ef1c8759a20167457eb7fd82ebcaffe7ccaa1d1 |
10-Sep-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach if-converter to be more careful with predicating instructions that would take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113570 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
ostRAHazardRecognizer.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
argetInstrInfoImpl.cpp
|
1eac61d65261a55529277d5c94dffef46519a7cc |
08-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113386 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
4a4bc3fba61dbb513f7213c7aa93faa30d18e0a2 |
08-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113386 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
920f2e7b25fafd19ae6fe1071c876bfb6b1e1222 |
08-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't add <imp-def> operands during register rewriting. LiveIntervals already adds <imp-def> operands for super-registers when a subreg def defines the whole register. Thus, it is not necessary to do it again when rewriting. In fact, the super-register imp-defs caused miscompilations because the late scheduler couldn't see that the super-register was read. We still add super-reg <imp-use,kill> operands when rewriting virtuals to physicals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113299 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
6b964cd21118e816a4669d660d2c96751dc7ccf3 |
08-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't add <imp-def> operands during register rewriting. LiveIntervals already adds <imp-def> operands for super-registers when a subreg def defines the whole register. Thus, it is not necessary to do it again when rewriting. In fact, the super-register imp-defs caused miscompilations because the late scheduler couldn't see that the super-register was read. We still add super-reg <imp-use,kill> operands when rewriting virtuals to physicals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113299 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
c1f3acb7b71a00f9a95bbbcf4de1cd02c805ac8a |
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment about where this should eventually move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dfe254b86e93b131cceb6aa27c33b33b2c8102d6 |
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment about where this should eventually move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0ec2ca4855a9a7c035e48780481011e43ad2e75f |
05-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added initialisers for reduction rule counters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113108 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Solution.h
|
b76d20969f987cf18285bf8439d00444ce5aa6fb |
05-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added initialisers for reduction rule counters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113108 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Solution.h
|
083b9e18e561b1b7f00a159a6936c7b81e3c8a2b |
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
implement rdar://6653118 - fastisel should fold loads where possible. Since mem2reg isn't run at -O0, we get a ton of reloads from the stack, for example, before, this code: int foo(int x, int y, int z) { return x+y+z; } used to compile into: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx movl 4(%rsp), %esi addl %edx, %esi movl (%rsp), %edx addl %esi, %edx movl %edx, %eax addq $12, %rsp ret Now we produce: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx addl 4(%rsp), %edx ## Folded load addl (%rsp), %edx ## Folded load movl %edx, %eax addq $12, %rsp ret Fewer instructions and less register use = faster compiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
beac75da3784929aee9f0357fc5cd76d49d6c3d7 |
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
implement rdar://6653118 - fastisel should fold loads where possible. Since mem2reg isn't run at -O0, we get a ton of reloads from the stack, for example, before, this code: int foo(int x, int y, int z) { return x+y+z; } used to compile into: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx movl 4(%rsp), %esi addl %edx, %esi movl (%rsp), %edx addl %esi, %edx movl %edx, %eax addq $12, %rsp ret Now we produce: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx addl 4(%rsp), %edx ## Folded load addl (%rsp), %edx ## Folded load movl %edx, %eax addq $12, %rsp ret Fewer instructions and less register use = faster compiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fa2d83d5a9a3fabe46c671ca2d54625b26b0e637 |
04-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead code. Clobber ranges are no longer used when joining physical registers. Instead, all aliases are checked for interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113084 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
07c2b7ff685523458f92339facfd814689e55873 |
04-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead code. Clobber ranges are no longer used when joining physical registers. Instead, all aliases are checked for interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113084 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
81760863d144656b1d9753cbedb4d97927429b81 |
04-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113073 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
achineModuleInfo.cpp
|
17aa68055beed6faa48ca3a995c5b6fdf5092fd4 |
04-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113073 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
achineModuleInfo.cpp
|
3e810aef11470d6cb178cfbf53ba1ba7dacc72ef |
03-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
previous patch was a little too tricky for its own good. Don't try to overload UserInInstr. Explicitly check Allocatable. The early exit in the condition will mean the performance impact of the extra test should be minimal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113016 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
ee72651df4b783c973bb682bef7eab2ff9a703e2 |
03-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
previous patch was a little too tricky for its own good. Don't try to overload UserInInstr. Explicitly check Allocatable. The early exit in the condition will mean the performance impact of the extra test should be minimal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113016 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
f08ed5c39b8e628e864ea8ec0923267948978a84 |
03-Sep-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a missing check when legalizing a vector extending load. This doesn't solve the root problem, but it corrects the bug in the code I added to support legalizing in the case where the non-extended type is also legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ef134d02e0036ef981983d4b5e40c678dd241583 |
03-Sep-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a missing check when legalizing a vector extending load. This doesn't solve the root problem, but it corrects the bug in the code I added to support legalizing in the case where the non-extended type is also legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a7f4dd58ccfdd8c26a1d749a7e6235ea41f84f96 |
03-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
VirtRegRewriter checks for early clobbers before it reuses an available stack slot. Teach it to also check for early clobbered aliases, and early clobber operands following the current operand. This fixes the miscompilation in PR8044 where EC registers eax and ecx were being used for inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112988 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
1e3aeefc088db2fe32958eb17f46e60011d34949 |
03-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
VirtRegRewriter checks for early clobbers before it reuses an available stack slot. Teach it to also check for early clobbered aliases, and early clobber operands following the current operand. This fixes the miscompilation in PR8044 where EC registers eax and ecx were being used for inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112988 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
ae50911f5e14644c9caaca698dd4dc3174f123af |
03-Sep-2010 |
Duncan Sands <baldrick@free.fr> |
Reapply commit 112702 which was speculatively reverted by echristo. Original commit message: Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112952 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
850fcd4705177d8630530ea6a18538782eb68a39 |
03-Sep-2010 |
Duncan Sands <baldrick@free.fr> |
Reapply commit 112702 which was speculatively reverted by echristo. Original commit message: Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112952 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
e5e909fd58ca898235e13a949b6e89f08000ef1d |
03-Sep-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to use .set here. Thanks Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112900 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a660be7587f52d269135a54e2d485bf7a7bc9c50 |
03-Sep-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to use .set here. Thanks Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112900 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e3e1a0ba26187dd48cfb7942c4b7f1f5fb03d0b2 |
02-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Detect undef value early and save unnecessary NodeMap query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3f74a116c80b483ffc7c2e6922ff62f0f73d83f5 |
02-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Detect undef value early and save unnecessary NodeMap query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6f8a8cd3933c07a1431b798599a1e6720bfcda28 |
02-Sep-2010 |
Dan Gohman <gohman@apple.com> |
Don't narrow the load and store in a load+twiddle+store sequence unless there are clearly no stores between the load and the store. This fixes this miscompile reported as PR7833. This breaks the test/CodeGen/X86/narrow_op-2.ll optimization, which is safe, but awkward to prove safe. Move it to X86's README.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
24bde5bce192119ee0fc4f94ef8757fd4031e5f6 |
02-Sep-2010 |
Dan Gohman <gohman@apple.com> |
Don't narrow the load and store in a load+twiddle+store sequence unless there are clearly no stores between the load and the store. This fixes this miscompile reported as PR7833. This breaks the test/CodeGen/X86/narrow_op-2.ll optimization, which is safe, but awkward to prove safe. Move it to X86's README.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b8151e3f0ea922dd36032c06f7cb80826e264b82 |
02-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112858 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8e741ed2fa16f46ab586bf3a54526cd9c2338c5b |
02-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112858 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f6e4444b4e1dbed50c021ad541fa0bdbbc6ca2be |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The scavenger should just use getAllocatableSet() rather than reinventing it locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112845 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
9204ddad5c30216e48c5bba0528ba24d66a22e13 |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The scavenger should just use getAllocatableSet() rather than reinventing it locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112845 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
2f6036058529a862f1800b99e0b03f7506d4eb53 |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
Anti-dependency breaking needs to be careful not to use reserved regs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112832 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
|
9b041c92efb5b0f6e74e154f0a6151968dc1ab58 |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
Anti-dependency breaking needs to be careful not to use reserved regs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112832 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
|
17e9a62a01856bfe87c5cadacdf03b9d51397b56 |
02-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Fix .debug_range for linux. Patch by Krister Wombell. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112830 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
b1fcfbe89bd155fb88485b2a3a995adba3994003 |
02-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Fix .debug_range for linux. Patch by Krister Wombell. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112830 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
753eea4b9c4f76b7208d02345afb300260aec408 |
02-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added support for register allocators to record which intervals are spill intervals, and where the uses and defs of the original intervals were in the original code. Spill intervals can be hidden using the "-rmf-intervals=virt-nospills*" option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112811 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
enderMachineFunction.cpp
enderMachineFunction.h
|
33198391d6d30127643c0d1f4ae9ed1ef85ed7f0 |
02-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added support for register allocators to record which intervals are spill intervals, and where the uses and defs of the original intervals were in the original code. Spill intervals can be hidden using the "-rmf-intervals=virt-nospills*" option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112811 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
enderMachineFunction.cpp
enderMachineFunction.h
|
07987c32b62dab2cee09936b144f3b093b0e894d |
02-Sep-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Silence an ambiguous else warning from GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112809 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicBase.h
|
4315093eb76b8806fed72273f0909d68645f12d3 |
02-Sep-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Silence an ambiguous else warning from GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112809 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicBase.h
|
3522e1f08bb1dc8fdc9f687ff09443808e32915c |
02-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added counters for PBQP reduction rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112807 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicBase.h
BQP/HeuristicSolver.h
BQP/Solution.h
|
7642572e6d5e3ca0c5d18e2591989bd5c4f4b31c |
02-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Added counters for PBQP reduction rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112807 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicBase.h
BQP/HeuristicSolver.h
BQP/Solution.h
|
620f9d993bfea9ce88cc7adb036741785d27839d |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a bit of debug output for register scavenging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112787 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
d273a003b6ad27720b2f0bab1a0996150a3d6fbe |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a bit of debug output for register scavenging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112787 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
55fb7ac98050daeef904b5f05381f30486d90e24 |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
Tweak to ignoring reserved regs. The allocator was occasionally still looking at them since they'd end up in the register weights list. Tell it to stop doing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112756 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
188da252ab1b20bdb368e8f64a97c0fa4d5f5d66 |
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
Tweak to ignoring reserved regs. The allocator was occasionally still looking at them since they'd end up in the register weights list. Tell it to stop doing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112756 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
86fb1aede3d1c22c17980230a64eb4fc15e88f43 |
02-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach RemoveCopyByCommutingDef to check all aliases, not just subregisters. This caused a miscompilation in WebKit where %RAX had conflicting defs when RemoveCopyByCommutingDef was commuting a %EAX use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112751 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0077114efc8c1680e58980d05606ada2708c4295 |
02-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach RemoveCopyByCommutingDef to check all aliases, not just subregisters. This caused a miscompilation in WebKit where %RAX had conflicting defs when RemoveCopyByCommutingDef was commuting a %EAX use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112751 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ea1bc5c1e6cc7cf7732be6b0ccc63d90e363ab80 |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up trailing whitespace and an 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112746 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
662fb77687c7a40db72144bb9104bf886705cc85 |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up trailing whitespace and an 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112746 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
f1b063d8e34386cd84179faa58558f356441cbf7 |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
cleanup per feedback. use a helper function for getting the first non-reserved physical register in a register class. Make sure to assert if the register class is empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112743 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
5a4cbea3120f5e921849bd89c0b43096ef65787f |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
cleanup per feedback. use a helper function for getting the first non-reserved physical register in a register class. Make sure to assert if the register class is empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112743 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
d9a7ec07f9e281c16ca4b365dc03a354a0b78e61 |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The register allocator shouldn't consider allocating reserved registers. PBQP version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112742 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
269354e57024ab815bdb74f06cc6309a879d1f9f |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The register allocator shouldn't consider allocating reserved registers. PBQP version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112742 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
76fd62745d0f863d66d2b1b61ebbf7a490fd8741 |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The register allocator shouldn't consider allocating reserved registers. r112728 did this for fast regalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112741 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
067a648599a99dc5a499e0241a85436fe6037c5a |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The register allocator shouldn't consider allocating reserved registers. r112728 did this for fast regalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112741 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
2984541208516fa115cda953d2339be04761713e |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The register allocator shouldn't consider allocating reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112728 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
1f758831cbbdbfcb0cf164959b08b8219deac018 |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
The register allocator shouldn't consider allocating reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112728 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
5818a3ee4d1a5b4474c67ce70e245237b1edf29b |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up a few 80-column and trailing whitespace bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112726 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
07cb689d6260b78861d829bb05b188e1558c528e |
01-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up a few 80-column and trailing whitespace bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112726 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
24b0cd689b7b2db54251c47d9ba9af2c29842529 |
01-Sep-2010 |
Eric Christopher <echristo@apple.com> |
Speculatively revert 112699 and 112702, they seem to be causing self host errors on clang-x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112719 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
adc581f5cb6bdb929b1c6a155c330151ebd3bf72 |
01-Sep-2010 |
Eric Christopher <echristo@apple.com> |
Speculatively revert 112699 and 112702, they seem to be causing self host errors on clang-x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112719 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
2960c389ead08ffff8d01876906ddfa82059e401 |
01-Sep-2010 |
Duncan Sands <baldrick@free.fr> |
Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112702 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
fb4e8ab200b0027c77b5ac873d50601ea18013e9 |
01-Sep-2010 |
Duncan Sands <baldrick@free.fr> |
Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112702 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
265228e6020c662fb1b22998a4a374a065914081 |
01-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Use absolute label for DW_AT_stmt_list if a target does not prefer offset here. This patch was developed on top of original patch by Artur Pietrek. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112678 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ae84d5b9bafd1ba88aa12e8398e5385f229fa306 |
01-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Use absolute label for DW_AT_stmt_list if a target does not prefer offset here. This patch was developed on top of original patch by Artur Pietrek. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112678 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5a4501459d69cd65252c8309612b396f6fa17176 |
01-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Reapply r112623. Included additional check for unused byval argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112659 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0b48eade42022c929fcf0f2afcffdf849c5bd05a |
01-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Reapply r112623. Included additional check for unused byval argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112659 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d9e1fc71d8d656e3eb8aa1cc4765ba09d5392fd2 |
31-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track liveness of unallocatable, unreserved registers in machine DCE. Reserved registers are unpredictable, and are treated as always live by machine DCE. Allocatable registers are never reserved, and can be used for virtual registers. Unreserved, unallocatable registers can not be used for virtual registers, but otherwise behave like a normal allocatable register. Most targets only have the flag register in this set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112649 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
f14a648d80bcb45fa07db35f8f1f58e47111dc9e |
31-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track liveness of unallocatable, unreserved registers in machine DCE. Reserved registers are unpredictable, and are treated as always live by machine DCE. Allocatable registers are never reserved, and can be used for virtual registers. Unreserved, unallocatable registers can not be used for virtual registers, but otherwise behave like a normal allocatable register. Most targets only have the flag register in this set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112649 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
8d7f94df79024b05f6d7905140a2c1a7c055f151 |
31-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ignore unallocatable registers in RegAllocFast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112632 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
9d4b51b696e27b9c061955d4c76f9dbff529b143 |
31-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ignore unallocatable registers in RegAllocFast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112632 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4c8d7cf0fac920dd08c875da8a23c6e19893519d |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Revert r112623. It is causing self host build failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
81b79b5fa808730d102cdc4b60a52e602d425de5 |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Revert r112623. It is causing self host build failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
873476d74cb9d9cee1c8a9e27fbab4b539aab7f7 |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Remember byval argument's frame index during argument lowering and use this info to emit debug info. Fixes Radar 8367011. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
8480c2e314f6c01638ea16f32149417848352085 |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Remember byval argument's frame index during argument lowering and use this info to emit debug info. Fixes Radar 8367011. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
c26adccf2ab67ea09b13b8e948ca86120cec6e73 |
31-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Improve virtual frame base register allocation heuristics. 1. Allocate them in the entry block of the function to enable function-wide re-use. The instructions to create them should be re-materializable, so there shouldn't be additional cost compared to creating them local to the basic blocks where they are used. 2. Collect all of the frame index references for the function and sort them by the local offset referenced. Iterate over the sorted list to allocate the virtual base registers. This enables creation of base registers optimized for positive-offset access of frame references. (Note: This may be appropriate to later be a target hook to do the sorting in a target appropriate manner. For now it's done here for simplicity.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112609 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
864d22ea72ac418ba06feb5e09b18c35ec53b4b2 |
31-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Improve virtual frame base register allocation heuristics. 1. Allocate them in the entry block of the function to enable function-wide re-use. The instructions to create them should be re-materializable, so there shouldn't be additional cost compared to creating them local to the basic blocks where they are used. 2. Collect all of the frame index references for the function and sort them by the local offset referenced. Iterate over the sorted list to allocate the virtual base registers. This enables creation of base registers optimized for positive-offset access of frame references. (Note: This may be appropriate to later be a target hook to do the sorting in a target appropriate manner. For now it's done here for simplicity.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112609 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
d2c50213fa4988cb8c70c1ca24a794b56cea116a |
31-Aug-2010 |
Duncan Sands <baldrick@free.fr> |
Stop using the dom frontier in DwarfEHPrepare by not promoting alloca's any more. I plan to reimplement alloca promotion using SSAUpdater later. It looks like Bill's URoR logic really always needs domtree, so the pass now always asks for domtree info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112597 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
|
22efc18f12d8d5d0fa23b559121d211f4ea222f6 |
31-Aug-2010 |
Duncan Sands <baldrick@free.fr> |
Stop using the dom frontier in DwarfEHPrepare by not promoting alloca's any more. I plan to reimplement alloca promotion using SSAUpdater later. It looks like Bill's URoR logic really always needs domtree, so the pass now always asks for domtree info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112597 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
|
8c624d6e3c75b1870dd063cc3f1248ee8660952b |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Offset is not always unsigned number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
34ca5ed79717c9a3dad2bf5823d3747aaedbc74a |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Offset is not always unsigned number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
9392d76b5ca2db126618f8ad6a7d40b8b18478a5 |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112583 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9e3bd2c476570217f939f521ed191dd0278b1ada |
31-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112583 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8f1f127fe95447d9dd159ba435d2a6ac98d5f583 |
31-Aug-2010 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
zap unused method. x86 is the only user and already has a more powerfull version git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2e46e78c53011ddbc0587135c09b39077beb0c1e |
31-Aug-2010 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
zap unused method. x86 is the only user and already has a more powerfull version git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
977d95a2ff3327316e1859ef2d198b752a0d36e9 |
31-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add experimental -disable-physical-join command line option. Eventually, we want to disable physreg coalescing completely, and let the register allocator do its job using hints. This option makes it possible to measure the impact of disabling physreg coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112567 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e49e6a852b29b4f5fb13160ca3d2cc316f43030b |
31-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add experimental -disable-physical-join command line option. Eventually, we want to disable physreg coalescing completely, and let the register allocator do its job using hints. This option makes it possible to measure the impact of disabling physreg coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112567 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0ad053be9e3634e5bb67bb581764bc6c65277667 |
30-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
two changes: 1) nuke ConstDataCoalSection, which is dead. 2) revise my previous patch for rdar://8018335, which was completely wrong. Specifically, it doesn't make sense to mark __TEXT,__const_coal as PURE_INSTRUCTIONS, because it is for readonly data. templates (it turns out) go to const_coal_nt. The real fix for rdar://8018335 was to give ConstTextCoalSection a section kind of ReadOnly instead of Text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112496 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
1875ce4ad95b8dc7aa7a0ab50a9bf93fb84d50bf |
30-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
two changes: 1) nuke ConstDataCoalSection, which is dead. 2) revise my previous patch for rdar://8018335, which was completely wrong. Specifically, it doesn't make sense to mark __TEXT,__const_coal as PURE_INSTRUCTIONS, because it is for readonly data. templates (it turns out) go to const_coal_nt. The real fix for rdar://8018335 was to give ConstTextCoalSection a section kind of ReadOnly instead of Text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112496 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
55035e2b84e590ddcc1929056a926ff96f7aeb51 |
30-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r112461. It was failing on PPC... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112463 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
c040719a153df8202f10054f33c9ac581b1c6c57 |
30-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r112461. It was failing on PPC... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112463 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
a82a973314080d4ed8b8fa6d9c893151d11a920f |
30-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
When adding a register, we should mark it as "def" if it can optionally define said (physical) register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
25b141912ce4f5a4b8a0684e870569ece21facde |
30-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
When adding a register, we should mark it as "def" if it can optionally define said (physical) register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
0548094822a2fdc089ffdcbdd58bf9b407ba7b0f |
30-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
revert 112457, it looks like it broke selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112459 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
a11ce95cfce8f58bf086698404ea33b09ef98eea |
30-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
revert 112457, it looks like it broke selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112459 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
5154afcec460529345e6f3210a85f2c2803bc5f2 |
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
rewrite DwarfEHPrepare to use SSAUpdater to promote its allocas instead of PromoteMemToReg. This allows it to stop using DF and DT, eliminating a computation of DT and DF from clang -O3. Clang is now down to 2 runs of DomFrontier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112457 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
445560881898fe212c185bd4c0485140d7b4fc88 |
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
rewrite DwarfEHPrepare to use SSAUpdater to promote its allocas instead of PromoteMemToReg. This allows it to stop using DF and DT, eliminating a computation of DT and DF from clang -O3. Clang is now down to 2 runs of DomFrontier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112457 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
9a3f3fd545e3739b49efa240cba2d05bb62e6a3d |
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
inline function into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112455 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
c34c2200a8077f98cf5cac9fe6f8a6d69b89b54c |
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
inline function into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112455 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
32497e1a4b44bbad671605bf3d382c6dc4b92c23 |
28-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove unions from LLVM IR. They are severely buggy and not being actively maintained, improved, or extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
61c70e98ac3c7504d31dd9bc81c4e9cb998e9984 |
28-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove unions from LLVM IR. They are severely buggy and not being actively maintained, improved, or extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
48b94f4f8fba8cc639cc97abf41b6189cea8f11b |
28-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead proto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112354 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
5f8a87dd766196a259d3f670d928641ca3b00e95 |
28-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead proto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112354 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
0544cc94b83456b0b17a5570cbbb0fdc84fd9e5a |
28-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Completely disable tail calls when fast-isel is enabled, as fast-isel doesn't currently support dealing with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
badcda4afa35bf86ce2e6e77ca20f1ce2365b549 |
28-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Completely disable tail calls when fast-isel is enabled, as fast-isel doesn't currently support dealing with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d55573912a3e36ee90080419798234afdca34d62 |
28-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Trim a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
7258df71fa21483f03d3804164c57f32cfc22e01 |
28-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Trim a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
8cd320aab9573cbba94c7bcfdd33b43306fff024 |
28-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0991dfbbe048a88c0f85618f8c9a21d11b34d69c |
28-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
29d7d54a8ee2b77344d6f50c249b5f3779d146eb |
27-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove now unneeded command line flag that enables 'optimize compares.' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112287 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
69c5eb59f592087af89b971bea072f070f2a5cfa |
27-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove now unneeded command line flag that enables 'optimize compares.' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112287 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
91145b6e85eb303b0ef97d05c07370a8ad54e15e |
27-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Revert r112213. It is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
4cf81c47fe060fad290ea6b95388d1da7fad105a |
27-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Revert r112213. It is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
32b4e13e59e23f2354f6c3ecc45df8e43a989b0f |
27-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Simplify eliminateFrameIndex() interface back down now that PEI doesn't need to try to re-use scavenged frame index reference registers. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112241 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
egisterScavenging.cpp
|
fcb4a8ead3cd8d9540d5eaa448af5d14a0ee341a |
27-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Simplify eliminateFrameIndex() interface back down now that PEI doesn't need to try to re-use scavenged frame index reference registers. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112241 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
egisterScavenging.cpp
|
96c576bb77ff9536aa90375a586d3fb18cf6c674 |
27-Aug-2010 |
Devang Patel <dpatel@apple.com> |
If node is not available then use FuncInfo.ValueMap to emit debug info for byval parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112238 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6cd467bd0e31df2decdf7081868810ef822b64d3 |
27-Aug-2010 |
Devang Patel <dpatel@apple.com> |
If node is not available then use FuncInfo.ValueMap to emit debug info for byval parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112238 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
52612574fdef2475196e9f076c66c6cbc579d1bf |
27-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove the now obsolete frame index virtual re-use algorithm from PEI. Pre-RA virtual base registers handle this function, and more. A bit more cleanup to do on the interface to eliminateFrameIndex() after this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112237 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
700f5df518452162de7dda7461917f88e8f4c56e |
27-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove the now obsolete frame index virtual re-use algorithm from PEI. Pre-RA virtual base registers handle this function, and more. A bit more cleanup to do on the interface to eliminateFrameIndex() after this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112237 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
098e40cd1cb2e502cd9672aecf75cedde5713c35 |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Speculatively revert r112207. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e130d78ee193b2dcd49b61d52a9946a4e70b696f |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Speculatively revert r112207. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8c1d17c6b913e070b090c1badba0e56600276dff |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8f09beacb172b9f66ec561e6c31e164e217aafda |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f30282df0ae5c0fc9c4437b573e8521064682482 |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Update DanglingDebugInfo so that it can be used to track llvm.dbg.declare also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
f2ec7ae2799c149e4eccfb5a3632f9ba8c6dae7b |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Update DanglingDebugInfo so that it can be used to track llvm.dbg.declare also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
74e08708274a5e2580a784f6ce34e1a554725af9 |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Donot forget to resolve dangling debug info in a case where virtual register, used for a value, is initialized after a dbg intrinsic is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112207 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9d0796a0e06e3b44bbdd696259f80066c285d9c3 |
26-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Donot forget to resolve dangling debug info in a case where virtual register, used for a value, is initialized after a dbg intrinsic is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112207 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
478795fe95f4e51688771dc5af3a228cc156f803 |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
Add a hackaround for PR7993 which is causing failures on x86 builders that lack sse2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
341fa09a3c842e8a0df3510d3f9af186ede976c9 |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
Add a hackaround for PR7993 which is causing failures on x86 builders that lack sse2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
af14747dd46c49b16ea83b0564a880c03cb59175 |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
implement SplitVecOp_CONCAT_VECTORS, fixing the included testcase with SSE1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
8306968c147d5861d8a53fba86ac0fbf5c050b84 |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
implement SplitVecOp_CONCAT_VECTORS, fixing the included testcase with SSE1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
e520d5af029fb92f712d19da721887d82e66c219 |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112155 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
6dabd9dba013173460c0b95e6b41b5776c66270d |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112155 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
6bf2478e21ef37dd8e11229ca8605998927e699f |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove some llvmcontext arguments that are now dead post-refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112104 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
aafe626c7fa9f99150cccd27d0151a2cf7c8c00b |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove some llvmcontext arguments that are now dead post-refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112104 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
2491aa0b844f5271cd5076d543890a38bc69e1f1 |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
Change handling of illegal vector types to widen when possible instead of expanding: e.g. <2 x float> -> <4 x float> instead of -> 2 floats. This affects two places in the code: handling cross block values and handling function return and arguments. Since vectors are already widened by legalizetypes, this gives us much better code and unblocks x86-64 abi and SPU abi work. For example, this (which is a silly example of a cross-block value): define <4 x float> @test2(<4 x float> %A) nounwind { %B = shufflevector <4 x float> %A, <4 x float> undef, <2 x i32> <i32 0, i32 1> %C = fadd <2 x float> %B, %B br label %BB BB: %D = fadd <2 x float> %C, %C %E = shufflevector <2 x float> %D, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> ret <4 x float> %E } Now compiles into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 addps %xmm0, %xmm0 ret previously it compiled into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 pshufd $1, %xmm0, %xmm1 ## kill: XMM0<def> XMM0<kill> XMM0<def> insertps $0, %xmm0, %xmm0 insertps $16, %xmm1, %xmm0 addps %xmm0, %xmm0 ret This implements rdar://8230384 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
e6f7c267df11a44679c35dec79787fbc276839fb |
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
Change handling of illegal vector types to widen when possible instead of expanding: e.g. <2 x float> -> <4 x float> instead of -> 2 floats. This affects two places in the code: handling cross block values and handling function return and arguments. Since vectors are already widened by legalizetypes, this gives us much better code and unblocks x86-64 abi and SPU abi work. For example, this (which is a silly example of a cross-block value): define <4 x float> @test2(<4 x float> %A) nounwind { %B = shufflevector <4 x float> %A, <4 x float> undef, <2 x i32> <i32 0, i32 1> %C = fadd <2 x float> %B, %B br label %BB BB: %D = fadd <2 x float> %C, %C %E = shufflevector <2 x float> %D, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> ret <4 x float> %E } Now compiles into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 addps %xmm0, %xmm0 ret previously it compiled into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 pshufd $1, %xmm0, %xmm1 ## kill: XMM0<def> XMM0<kill> XMM0<def> insertps $0, %xmm0, %xmm0 insertps $16, %xmm1, %xmm0 addps %xmm0, %xmm0 ret This implements rdar://8230384 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
91241aeb46c08cac626a34b830528542e7695029 |
25-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112086 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
ab43add695179614927766269df08b22c157f931 |
25-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112086 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
21b5abbdec6ca9a100f47a1f1d5cf4a0b27313a0 |
25-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112085 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
78a06e50b74e5390e3d77bd80d0393191820c7c2 |
25-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112085 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
18229e1feeec6a214f6bff0d6a296d6cbbe9e8f4 |
25-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add some statistics for PEI register scavenging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112084 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c52b3cced8aebbc665021ec6b8bcd0974c4ad7ae |
25-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add some statistics for PEI register scavenging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112084 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7464440b04ed805cebb42de4f1ce80bd64bbe389 |
25-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
split the vector case of getCopyFromParts out to its own function, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3ac18845098b34b7b76c6fa4b95cfde7752ff8ad |
25-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
split the vector case of getCopyFromParts out to its own function, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
611bf0c193bf00ddbb5f16661606360cff9a0a3e |
25-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
split the vector case out of getCopyToParts into its own function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a13b860f4de136687cb219cdcd93d3e18a8c239e |
25-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
split the vector case out of getCopyToParts into its own function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
078216e4b3110e3e057d6e64a8dbddcf36bc26c8 |
25-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up, reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
549fa267efb00944a418a507d07101bae2f72b51 |
25-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up, reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
734d432236e7dd52c2026e105bd22e7537ebcaaa |
24-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add ARM heuristic for when to allocate a virtual base register for stack access. rdar://8277890&7352504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111968 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
3197380143cdc18837722129ac888528b9fbfc2b |
24-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add ARM heuristic for when to allocate a virtual base register for stack access. rdar://8277890&7352504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111968 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
d7ac185d7a151148cecab8162ff8cfaa1e6a956a |
24-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Move enabling the local stack allocation pass into the target where it belongs. For now it's still a command line option, but the interface to the generic code doesn't need to know that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111942 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
a273442891ae20fd8192526132e3819ea9e5eda9 |
24-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Move enabling the local stack allocation pass into the target where it belongs. For now it's still a command line option, but the interface to the generic code doesn't need to know that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111942 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
945ee41a3d773f5ef0599b4ae80361f907f15dfe |
24-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Revert r107202. It is not adding any value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
af608bd4fe3c334d2f81f174478825f35b195adc |
24-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Revert r107202. It is not adding any value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
36e0890af522bd38455b5c7612878e94266fdc57 |
23-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove the MFI storage of the local allocation block size. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111847 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
5e2475598e0dd73c0ed3c8e065cf0669277c3cab |
23-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove the MFI storage of the local allocation block size. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111847 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
53f249755ea8a0425127e4bd310c23590b347654 |
23-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Better handling of local offsets for downwards growing stacks. This corrects relative offsets when there are offsets encoded in the instructions and simplifies final allocation in PEI. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111836 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
67ff81a08319f916571cea90ed92e17015c8584f |
23-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Better handling of local offsets for downwards growing stacks. This corrects relative offsets when there are offsets encoded in the instructions and simplifies final allocation in PEI. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111836 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
1eac9de3cea3b4b753c8db371c563c36fba69dd5 |
23-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Handle qualified constants that are directly folded by FE. PR 7920. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111820 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0c4720c6bdf517d02aaf71d90c0572a5aa4813bc |
23-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Handle qualified constants that are directly folded by FE. PR 7920. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111820 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
291fe21a327d29b43f44bf3a58d44f65fc72a293 |
23-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111815 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLoopInfo.cpp
achineVerifier.cpp
HIElimination.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
02dd53e1c5b941ca5f60fca1b95ebcaf9ccd1dfc |
23-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111815 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLoopInfo.cpp
achineVerifier.cpp
HIElimination.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
b43bbc4ae6f61c27a77e2500133d936b05c97c12 |
23-Aug-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix some GCC warnings by providing a virtual destructor in the base of a class hierarchy with virtual methods and using llvm_unreachable to properly indicate unreachable states which would otherwise leave variables uninitialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111803 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
54f616304240fcbc41ca9b9b2af38eeb1171e8a8 |
23-Aug-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix some GCC warnings by providing a virtual destructor in the base of a class hierarchy with virtual methods and using llvm_unreachable to properly indicate unreachable states which would otherwise leave variables uninitialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111803 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5e9235bdd10f22cee033714709ddb1f580a3809f |
21-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Delete dead comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111744 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
24a1182184336c088f70e86191ebda47df629beb |
21-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Delete dead comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111744 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
01085e6f25479f3e4075a9c60d028e7a462410bb |
21-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Create the new linker type "linker_private_weak_def_auto". It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inline definition, but the compiler decided not to inline it. Note, unlike linker_private and linker_private_weak, linker_private_weak_def_auto may have only default visibility. The symbols are removed by the linker from the final linked image (executable or dynamic library). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
55ae515f9db484125a23429d4906c5edaf9f10d2 |
21-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Create the new linker type "linker_private_weak_def_auto". It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inline definition, but the compiler decided not to inline it. Note, unlike linker_private and linker_private_weak, linker_private_weak_def_auto may have only default visibility. The symbols are removed by the linker from the final linked image (executable or dynamic library). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
83465d69b550dfbaedcf725aefbd3e5014dedcd3 |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Downwards growing stack allocation order reverses relative offsets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111673 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
4c207c2ddb3bda2488044b7eac2a5c1051c36bd2 |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Downwards growing stack allocation order reverses relative offsets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111673 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
b4868fd6ec06486231de6fe1512b6fc236e24c90 |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add more dbg output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111670 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
ab6bdec837ebd858b5630fe76444afd46f2591e4 |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add more dbg output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111670 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
fd35181c8e7f00040a6bf1b67339ba66fd3c6d32 |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
properly check for whether base regs were inserted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111646 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
2d16f5b0cb5ae03c4b4ff6711d543552d97243a0 |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
properly check for whether base regs were inserted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111646 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
28c238c9ded0b5c91e122c94b5a02d76a5245c11 |
20-Aug-2010 |
Ying Wang <wangying@google.com> |
Fix sim build. Note that this only makes the sim build green, but the built images won't work for sure: No libbcc.so, which depends on something else that can not build in sim mode. No x86 bitcode is generated as well, I believe. Change-Id: Idca8378427196622ac77cd56a38c6a160f03ba22
ndroid.mk
smPrinter/Android.mk
electionDAG/Android.mk
|
fd0e13305739afae7a77b7f5cf81f73767bdd49b |
20-Aug-2010 |
Bob Wilson <bob.wilson@apple.com> |
If the target says that an extending load is not legal, regardless of whether it involves specific floating-point types, legalize should expand an extending load to a non-extending load followed by a separate extend operation. For example, we currently expand SEXTLOAD to EXTLOAD+SIGN_EXTEND_INREG (and assert that EXTLOAD should always be supported). Now we can expand that to LOAD+SIGN_EXTEND. This is needed to allow vector SIGN_EXTEND and ZERO_EXTEND to be used for NEON. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
63241f79e667feafb10936b7c2cf03c33f55dd01 |
20-Aug-2010 |
Bob Wilson <bob.wilson@apple.com> |
If the target says that an extending load is not legal, regardless of whether it involves specific floating-point types, legalize should expand an extending load to a non-extending load followed by a separate extend operation. For example, we currently expand SEXTLOAD to EXTLOAD+SIGN_EXTEND_INREG (and assert that EXTLOAD should always be supported). Now we can expand that to LOAD+SIGN_EXTEND. This is needed to allow vector SIGN_EXTEND and ZERO_EXTEND to be used for NEON. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8a242004e2fbb8631bef004a62a5d6a3ca98d52b |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Better handling of offsets on frame index references. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111585 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
e2f556933e1a19cddf6d4f370e2770c0f763b025 |
20-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Better handling of offsets on frame index references. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111585 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
1ddf50e1f168b13f1c4d1d131a27dc0e447db9ac |
20-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Update debug logs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111575 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
f942c13af8187415e59e82e0bc92420c6fd59009 |
20-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Update debug logs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111575 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
3fdf10389bc06c4744efe12268bd8a2070687093 |
20-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Properly update MachineDominators when splitting critical edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111574 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
19708923bed9eccd534243bc76c40b9553365b59 |
20-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Properly update MachineDominators when splitting critical edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111574 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
77c46efc3eb56b252dbb6eb874b32ffeaa992851 |
19-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Correct header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111540 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5567bb0c5fed4f769d51970b73465c82fe903162 |
19-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Correct header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111540 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
03450a77e4909dcfec50000b489f111a4596931d |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's possible to sink a def if its local uses are PHI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111537 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
e5e7946018844978d0ac09fdb35998a53b43ad34 |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's possible to sink a def if its local uses are PHI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111537 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
f53de21f5aae95fa4c10f1a7c0d0e142e0d852ab |
19-Aug-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Fix the msvc 2010 build. The Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 implements parts of C++0x based on the draft standard. An old version of the draft had a bug that makes std::pair<T1*, T2*>(something, 0) fail to compile. This is because the template<class U, class V> pair(U&& x, V&& y) constructor is selected, even though it later fails to implicitly convert U and V to frist_type and second_type. This has been fixed in n3090, but it seems that Microsoft is not going to update msvc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111535 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
6715be20e23ac19efd20e16d43fdd1f608e3e415 |
19-Aug-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Fix the msvc 2010 build. The Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 implements parts of C++0x based on the draft standard. An old version of the draft had a bug that makes std::pair<T1*, T2*>(something, 0) fail to compile. This is because the template<class U, class V> pair(U&& x, V&& y) constructor is selected, even though it later fails to implicitly convert U and V to frist_type and second_type. This has been fixed in n3090, but it seems that Microsoft is not going to update msvc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111535 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
73ff078ae9307ec77b36ed0972b112c4b3159a9f |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove disabled assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111531 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c546c754597cdc99b2dfa70b4a1054575daa753a |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove disabled assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111531 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
d971fb68d8964c7f0d95200653ab24abbc1b5f4a |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine-sink to break critical edges when appropriate. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111530 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
4dc301a7c5fc8e18e7773f8e0d2c495ae1cc44f7 |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine-sink to break critical edges when appropriate. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111530 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
ca48e70d0444ac828a1f3bed1a70d09eb657e19d |
19-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Update local stack block allocation to let PEI do the allocs if no additional base registers were required. This will allow for slightly better packing of the locals when alignment padding is necessary after callee saved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111508 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
a0fc005321ac163f10ebc5216a85068a496969df |
19-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Update local stack block allocation to let PEI do the allocs if no additional base registers were required. This will allow for slightly better packing of the locals when alignment padding is necessary after callee saved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111508 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
510ae28dd4eb9489fb79a93a24e07edcc5eb3c48 |
19-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a newline to debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111453 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
cd799ce8f8b93dc203aaee41900e346f097eb428 |
19-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a newline to debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111453 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
99ae3328316ca9d05b3a3483a009c1d405215ae9 |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
If any def of a machine-sink candidate has local uses, it's obviously not safe to sink it to a successor block. This bug has been hidden because a later check for critical-edge disable these illegal optimizations. This patch should significantly reduce the amount of time spent on checking dominator information for obviously unsafe sinking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111450 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c3439ad63f4d145ca7357b7918bd72dfde8213d3 |
19-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
If any def of a machine-sink candidate has local uses, it's obviously not safe to sink it to a successor block. This bug has been hidden because a later check for critical-edge disable these illegal optimizations. This patch should significantly reduce the amount of time spent on checking dominator information for obviously unsafe sinking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111450 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
931ad7afbae7e7edbf514e24c482183b6138c422 |
19-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Enable ARM base register reuse to local stack slot allocation. Whenever a new frame index reference to an object in the local block is seen, check if it's near enough to any previously allocaated base register to re-use. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111443 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
2b1e202e1c2137b03f7c6ecc18668e40819fa22f |
19-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Enable ARM base register reuse to local stack slot allocation. Whenever a new frame index reference to an object in the local block is seen, check if it's near enough to any previously allocaated base register to re-use. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111443 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
6d3b4eec757f7606cd5654dcc80fa56d4121d37f |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Thinking about it, we don't need MachineDominatorTree after all. The DomValue map discovers the iterated dominance frontier for free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111400 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
ff3ae8691c18c4c40d09fb21ecac880aea9a536b |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Thinking about it, we don't need MachineDominatorTree after all. The DomValue map discovers the iterated dominance frontier for free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111400 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
20270bb45782427d5efd5e2922c5d2ac453038ca |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r111394. It was too aggressive. We must complete the DFS, otherwise we might miss needed phi-defs, and prematurely color live ranges with a non-dominating value. This is not a big deal since we get to color more of the CFG and the next mapValue call will be faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111397 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
cf16bea74e3a6f84af914520562e9f9c5dfa0fad |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r111394. It was too aggressive. We must complete the DFS, otherwise we might miss needed phi-defs, and prematurely color live ranges with a non-dominating value. This is not a big deal since we get to color more of the CFG and the next mapValue call will be faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111397 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
a9a3192baef28d49cc2cb1805048c11626ab3f21 |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Aggressively prune the DFS when inserting phi-defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111394 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
4d440bd786ae4dad7035c30fd09044a9efc8dccd |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Aggressively prune the DFS when inserting phi-defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111394 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
cebdfd04596e6f57d76d948ce716e0dc8ac6e82f |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add the LiveIntervalMap class. Don't hook it up yet. LiveIntervalMap maps values from a parent LiveInterval to a child interval that is a strict subset. It will create phi-def values as needed to preserve the VNInfo SSA form in the child interval. This leads to an algorithm very similar to the one in SSAUpdaterImpl.h, but with enough differences that the code can't be reused: - We don't need to manipulate PHI instructions. - LiveIntervals have kills. - We have MachineDominatorTree. - We can use df_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111393 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
1407c84242688dbcdbaa5b0296c18f46d102f25a |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add the LiveIntervalMap class. Don't hook it up yet. LiveIntervalMap maps values from a parent LiveInterval to a child interval that is a strict subset. It will create phi-def values as needed to preserve the VNInfo SSA form in the child interval. This leads to an algorithm very similar to the one in SSAUpdaterImpl.h, but with enough differences that the code can't be reused: - We don't need to manipulate PHI instructions. - LiveIntervals have kills. - We have MachineDominatorTree. - We can use df_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111393 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
021fd61be69c5a763a5d32bc1912d5ecc83bb96b |
18-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111384 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3d7ff08c82be2f95902089dd59cff2a37999a991 |
18-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111384 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0bcf23f115608757b1d704e2f70a1148132551db |
18-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add hook for re-using virtual base registers for local stack slot access. Nothing fancy, just ask the target if any currently available base reg is in range for the instruction under consideration and use the first one that is. Placeholder ARM implementation simply returns false for now. ongoing saga of rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111374 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
74d803a58c7935c067397bb19afc05ec464d8159 |
18-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add hook for re-using virtual base registers for local stack slot access. Nothing fancy, just ask the target if any currently available base reg is in range for the instruction under consideration and use the first one that is. Placeholder ARM implementation simply returns false for now. ongoing saga of rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111374 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
4fcc88002cfb34b3d96db0df633cd1be721c2959 |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve subregs on PHI source operands. Patch by Krister Wombell! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111366 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
9ac248848faa839cff8e9f915c9b2c44295bc9f6 |
18-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Preserve subregs on PHI source operands. Patch by Krister Wombell! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111366 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
0db154b121c5929e8be95ffafc007f128e31be19 |
18-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add materialization of virtual base registers for frame indices allocated into the local block. Resolve references to those indices to a new base register. For simplification and testing purposes, a new virtual base register is allocated for each frame index being resolved. The result is truly horrible, but correct, code that's good for exercising the new code paths. Next up is adding thumb1 support, which should be very simple. Following that will be adding base register re-use and implementing a reasonable ARM heuristic for when a virtual base register should be generated at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111315 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
dc140c6e7b8350ca51aa1d408c10e25a27826e2c |
18-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add materialization of virtual base registers for frame indices allocated into the local block. Resolve references to those indices to a new base register. For simplification and testing purposes, a new virtual base register is allocated for each frame index being resolved. The result is truly horrible, but correct, code that's good for exercising the new code paths. Next up is adding thumb1 support, which should be very simple. Following that will be adding base register re-use and implementing a reasonable ARM heuristic for when a virtual base register should be generated at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111315 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
19e1b6f4fb4b1955beac6ec65864881350e0aa09 |
18-Aug-2010 |
Dale Johannesen <dalej@apple.com> |
Make fast scheduler handle asm clobbers correctly. PR 7882. Follows suggestion by Amaury Pouly, thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
6cf64a631a1522c137a1fcf88858ea1336822abf |
18-Aug-2010 |
Dale Johannesen <dalej@apple.com> |
Make fast scheduler handle asm clobbers correctly. PR 7882. Follows suggestion by Amaury Pouly, thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
dfd2d7c5f4b3577f659bc051f2a6e0217bcd26a4 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
PHI elimination shouldn't require machineloopinfo since it's used at -O0. Move the requirement to LiveIntervalAnalysis instead. Note this does not change the number of times machineloopinfo is computed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111285 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
HIElimination.h
|
148341cc9b60d7d88be9c07a2b32b436e0cd301d |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
PHI elimination shouldn't require machineloopinfo since it's used at -O0. Move the requirement to LiveIntervalAnalysis instead. Note this does not change the number of times machineloopinfo is computed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111285 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
HIElimination.h
|
b0211714be731bdd6e9eb090e90e0d8146a377a7 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Machine CSE preserves CFG. Pass manager was freeing machineloopinfo after machine cse before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111281 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
6542416560589c9cfa6298d2edc73f3350ccf56a |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Machine CSE preserves CFG. Pass manager was freeing machineloopinfo after machine cse before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111281 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
1160f08549905d636857987a930a40d1a7df125b |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111274 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
8ae231a06ce1f999f07841150635e190ddcba196 |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111274 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
64a2ed70ddd5d095eb7ebb0b1ac342f5a4732847 |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add hook to examine an instruction referencing a frame index to determine whether to allocate a virtual frame base register to resolve the frame index reference in it. Implement a simple version for ARM to aid debugging. In LocalStackSlotAllocation, scan the function for frame index references to local frame indices and ask the target whether to allocate virtual frame base registers for any it encounters. Purely infrastructural for debug output. Next step is to actually allocate base registers, then add intelligent re-use of them. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111262 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
8708ead5a46f4ec8f2d5f832be23381924d72b8d |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add hook to examine an instruction referencing a frame index to determine whether to allocate a virtual frame base register to resolve the frame index reference in it. Implement a simple version for ARM to aid debugging. In LocalStackSlotAllocation, scan the function for frame index references to local frame indices and ask the target whether to allocate virtual frame base registers for any it encounters. Purely infrastructural for debug output. Next step is to actually allocate base registers, then add intelligent re-use of them. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111262 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
064eff7d5699a0dbdeeece5a36a601f673662f55 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move the decision logic whether it's a good idea to split a critical edge to clients. Also fixed an erroneous check. An edge is only a back edge when the from and to blocks are in the same loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111256 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
HIElimination.h
|
e008384508342a2dec110eafaa87d93614976990 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move the decision logic whether it's a good idea to split a critical edge to clients. Also fixed an erroneous check. An edge is only a back edge when the from and to blocks are in the same loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111256 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
HIElimination.h
|
c1696103c9cd061022b401626d529363f47deeb5 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix debug message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111250 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
087fbeb7d14743d0904a94ef3c73cd5dcbc50c96 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix debug message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111250 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
0d8a0bb360888100e62c1e47c73b2a45a866f776 |
17-Aug-2010 |
Eric Christopher <echristo@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
44a2c3476bd15e03f294bae1b50016851f214f8d |
17-Aug-2010 |
Eric Christopher <echristo@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7e3584d845088ea1f6303e95aa6ce611f8eb8733 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
PHI elimination should not break back edge. It can cause some significant code placement issues. rdar://8263994 good: LBB0_2: mov r2, r0 . . . mov r1, r2 bne LBB0_2 bad: LBB0_2: mov r2, r0 . . . @ BB#3: mov r1, r2 b LBB0_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111221 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
97b9b97853d7e4fbb5c8460ef28126013c76e9a9 |
17-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
PHI elimination should not break back edge. It can cause some significant code placement issues. rdar://8263994 good: LBB0_2: mov r2, r0 . . . mov r1, r2 bne LBB0_2 bad: LBB0_2: mov r2, r0 . . . @ BB#3: mov r1, r2 b LBB0_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111221 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
|
a0d3ebeba523cd7e8ddaa013feae764e6b600b82 |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up. remove unused local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111206 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
fecdea0bf77599038eb368db3bc6a38a14900308 |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up. remove unused local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111206 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
bd03657f55405abc2bc149d25baefed154512a1b |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Better handle alignment requirements for local objects in pre-regalloc frame mapping. Have the local block track its alignment requirement, and then apply that when the block itself is allocated. Previously, offsets could get adjusted in PEI to be different, relative to one another, than the block allocation thought they would be, which defeats the point of doing the allocation this way. Continuing rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111197 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
4861ed60ac68a543d1b88e631e9fe2c55583b24b |
17-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Better handle alignment requirements for local objects in pre-regalloc frame mapping. Have the local block track its alignment requirement, and then apply that when the block itself is allocated. Previously, offsets could get adjusted in PEI to be different, relative to one another, than the block allocation thought they would be, which defeats the point of doing the allocation this way. Continuing rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111197 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
610c3f6dd98a3ab2560f985fdfed96e3b43aa26b |
16-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Until uleb/sleb are MC-ized, add a hack to make them work with ELF object emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111177 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
0b95fdbd6f9f9c9275c77c93a522b0998efbbff1 |
16-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Until uleb/sleb are MC-ized, add a hack to make them work with ELF object emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111177 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
|
395c0ad3e5726a6fd67f6e82053fe630aae14f88 |
16-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
track local frame size in MFI, not local to the pass, since PEI needs it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111164 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
63249347c2700fe2481e0bc36caa63f6e2cf6eab |
16-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
track local frame size in MFI, not local to the pass, since PEI needs it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111164 91177308-0d34-0410-b5e6-96231b3b80d8
ocalStackSlotAllocation.cpp
|
8ece80f341eea3613ea2788dd141429066e90361 |
16-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111156 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
owerSubregs.cpp
|
5ba3e4d75d37d4cb145ebd01c2b0b2fec0db27c0 |
16-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111156 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
owerSubregs.cpp
|
50587571c57f3068574d56e0976608d0660788b7 |
14-Aug-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111063 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
865287de4a93b9906bcfb2d57b66c32ed1fd870c |
14-Aug-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111063 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
f0b7b5f0d6afdcac071356692a80ab17488ae2ff |
14-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a local stack object block allocation pass. This is still an experimental pass that allocates locals relative to one another before register allocation and then assigns them to actual stack slots as a block later in PEI. This will eventually allow targets with limited index offset range to allocate additional base registers (not just FP and SP) to more efficiently reference locals, as well as handle situations where locals cannot be referenced via SP or FP at all (dynamic stack realignment together with variable sized objects, for example). It's currently incomplete and almost certainly buggy. Work in progress. Disabled by default and gated via the -enable-local-stack-alloc command line option. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111059 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LVMTargetMachine.cpp
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
3d72367d30c9ce6f387764a028763f7a366cc443 |
14-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a local stack object block allocation pass. This is still an experimental pass that allocates locals relative to one another before register allocation and then assigns them to actual stack slots as a block later in PEI. This will eventually allow targets with limited index offset range to allocate additional base registers (not just FP and SP) to more efficiently reference locals, as well as handle situations where locals cannot be referenced via SP or FP at all (dynamic stack realignment together with variable sized objects, for example). It's currently incomplete and almost certainly buggy. Work in progress. Disabled by default and gated via the -enable-local-stack-alloc command line option. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111059 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LVMTargetMachine.cpp
ocalStackSlotAllocation.cpp
rologEpilogInserter.cpp
|
f44e6aff1024b3718394172fd85e74415e31c329 |
14-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up the Spiller.h interface. The earliestStart argument is entirely specific to linear scan allocation, and can be easily calculated by RegAllocLinearScan. Replace std::vector with SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111055 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
plitKit.cpp
plitKit.h
|
0a2b2a1497a77f1db281d4dc9f21d01fe48f6ec6 |
14-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up the Spiller.h interface. The earliestStart argument is entirely specific to linear scan allocation, and can be easily calculated by RegAllocLinearScan. Replace std::vector with SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111055 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
plitKit.cpp
plitKit.h
|
4aca44260dcea424a6c4aadf08b776b0c45fc99b |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement splitting inside a single block. When a live range is contained a single block, we can split it around instruction clusters. The current approach is very primitive, splitting before and after the largest gap between uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111043 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
fc412d85c46a8656361fe1e9197ea85922e2cd61 |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement splitting inside a single block. When a live range is contained a single block, we can split it around instruction clusters. The current approach is very primitive, splitting before and after the largest gap between uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111043 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
51726e454ad4bd1c5f262445016e892e586e656d |
13-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up whitespace a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111019 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c92bb50a0cdecccfa53573df720d5893f83f615e |
13-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up whitespace a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111019 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1aa1dc945219b380d1d55e7f94e8323c41119075 |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Let LiveInterval::addRange extend existing ranges, it will verify that value numbers match. The old check could accidentally leave holes in openli. Also let useIntv add all ranges for the phi-def value inserted by enterIntvAtEnd. This works as long at the value mapping is established in enterIntvAtEnd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110995 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
2780d3ca8114ae11fb43f61655a5ddde22518fb8 |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Let LiveInterval::addRange extend existing ranges, it will verify that value numbers match. The old check could accidentally leave holes in openli. Also let useIntv add all ranges for the phi-def value inserted by enterIntvAtEnd. This works as long at the value mapping is established in enterIntvAtEnd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110995 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
d6c209aaf1ecf0724d981c6e198449f631fd018b |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to actually update SplitAnalysis statistics now that we have a fancy function to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110994 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
00667a54f21f2d58382ac2eed973706332ed5817 |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to actually update SplitAnalysis statistics now that we have a fancy function to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110994 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
d49638d917cd3d868c65937213016953932ab197 |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle an empty dupli. This can happen if the original interval has been broken into two disconnected parts. Ideally, we should be able to detect when the graph is disconnected and create separate intervals, but that code is not implemented yet. Example: Two basic blocks are both branching to a loop header. Our interval is defined in both basic blocks, and live into the loop along both edges. We decide to split the interval around the loop. The interval is split into an inside part and an outside part. The outside part now has two disconnected segments, one in each basic block. If we later decide to split the outside interval into single blocks, we get one interval per basic block and an empty dupli for the remainder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110976 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
09c45d2fe8fb0564ea2095f77fc79e184aa0a1a7 |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle an empty dupli. This can happen if the original interval has been broken into two disconnected parts. Ideally, we should be able to detect when the graph is disconnected and create separate intervals, but that code is not implemented yet. Example: Two basic blocks are both branching to a loop header. Our interval is defined in both basic blocks, and live into the loop along both edges. We decide to split the interval around the loop. The interval is split into an inside part and an outside part. The outside part now has two disconnected segments, one in each basic block. If we later decide to split the outside interval into single blocks, we get one interval per basic block and an empty dupli for the remainder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110976 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
5bac38b2ba90ba5bfe1a25a34f4bc3a39d55010d |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update the SplitAnalysis statistics as uses are moved from curli to the new split intervals. THis means the analysis can be used for multiple splits as long as curli doesn't shrink. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110975 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
2dee7a527b083e259f9e826c57c1e5dab9540798 |
13-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update the SplitAnalysis statistics as uses are moved from curli to the new split intervals. THis means the analysis can be used for multiple splits as long as curli doesn't shrink. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110975 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
c9b836affba0ac9b7ee60684bcc05b94ca68fdc6 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also recompute HasPHIKill flags in LiveInterval::RenumberValues. If a phi-def value were removed from the interval, the phi-kill flags are no longer valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110949 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
|
fff2c4726baa0d6c9cb184c815677e33c0357c93 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also recompute HasPHIKill flags in LiveInterval::RenumberValues. If a phi-def value were removed from the interval, the phi-kill flags are no longer valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110949 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
|
aa1ae3f989bb33e7b546519d3a816e3346a54e76 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110944 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
1b2932024f098a6968645ac78d5848951d877c19 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110944 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
9820ef1382ece54ec8143a62226db4f4a2872181 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110940 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
plitKit.cpp
|
e1f543fbb338ea80cdac021fcb09230ad86896c6 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110940 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
plitKit.cpp
|
fcf88a19a27508bbc8a1017edccf25d39b3f4419 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement single block splitting. Before spilling a live range, we split it into a separate range for each basic block where it is used. That way we only get one reload per basic block if the new smaller ranges can allocate to a register. This type of splitting is already present in the standard spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110934 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
f1b05f2b0ef48cb80b064e2f792b38c626822fc0 |
12-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement single block splitting. Before spilling a live range, we split it into a separate range for each basic block where it is used. That way we only get one reload per basic block if the new smaller ranges can allocate to a register. This type of splitting is already present in the standard spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110934 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
178706ff0f48939cf855474aba18c78d8a947bb2 |
11-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a FIXME. The SlotIndex::Slot enum should be private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110826 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
dfa28b157dd066eed4db9d2256f55c23b88df637 |
11-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a FIXME. The SlotIndex::Slot enum should be private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110826 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
6d7069e367f247469f3292d1262a1bbf5e97ca81 |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Turn optimize compares back on with fix. We needed to test that a machine op was a register before checking if it was defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110733 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
75486dbf4e9611f2070bf13b874f78a5587ed7ff |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Turn optimize compares back on with fix. We needed to test that a machine op was a register before checking if it was defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110733 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
15adb42f03193a02a1b35682e7cc7eff70dd18f1 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Give up on register class recalculation when the register is used with subreg operands. We don't currently have a hook to provide "the largest super class of A where all registers' getSubReg(subidx) is valid and in B". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110730 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
a516e94cf159b9ea02af31872fc59b7ceeef7965 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Give up on register class recalculation when the register is used with subreg operands. We don't currently have a hook to provide "the largest super class of A where all registers' getSubReg(subidx) is valid and in B". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110730 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
5fe199233a2ed1a430cb6eccad0b5040c6004989 |
10-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Revert r110718; it broke clang-i386-darwin9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110726 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
a8c58a6f59880a5bb2ef8fc86ebdeb15e96ed110 |
10-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Revert r110718; it broke clang-i386-darwin9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110726 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
eedebc5addde40edf5fe43c89bef153e0541d4c3 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid editing the current live interval during remat. The live interval may be used for a spill slot as well, and that spill slot could be shared by split registers. We cannot shrink it, even if we know the current register won't need the spill slot in that range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110721 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
b67b12ea64aed7651960dff5444c25d2d0c156b2 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid editing the current live interval during remat. The live interval may be used for a spill slot as well, and that spill slot could be shared by split registers. We cannot shrink it, even if we know the current register won't need the spill slot in that range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110721 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
c76e35847395c5d5ea38547ceff604ab91674625 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
More debug spew git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110720 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
987eeccb61bc9c155057453b23980e39de71ff8e |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
More debug spew git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110720 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
202db801ddc03d8d05ad762e4d62d71f837fa3e9 |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Turn optimize cmps on by default so that we can get some testing by the nightly ARM testers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110718 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
a54e3cddce8e9f5e84e1124466b9134f90961c84 |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Turn optimize cmps on by default so that we can get some testing by the nightly ARM testers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110718 91177308-0d34-0410-b5e6-96231b3b80d8
eepholeOptimizer.cpp
|
7966dfc430b5b778ad4f2633cb38cb2442601108 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Do not forget debug info for enums. Use named mdnode to keep track of these types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110712 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e7e5a0f6fb1dec21f296a9872088935860660819 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Do not forget debug info for enums. Use named mdnode to keep track of these types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110712 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
405c125eb889aa061e241f36dfb9693f1ab83e79 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement register class inflation. When splitting a live range, the new registers have fewer uses and the permissible register class may be less constrained. Recompute the register class constraint from the uses of new registers created for a split. This may let them be allocated from a larger set, possibly avoiding a spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110703 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
plitKit.cpp
|
9db3ea46cb7bd6bdf108d314daffd0dfd50a73fe |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement register class inflation. When splitting a live range, the new registers have fewer uses and the permissible register class may be less constrained. Recompute the register class constraint from the uses of new registers created for a split. This may let them be allocated from a larger set, possibly avoiding a spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110703 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
plitKit.cpp
|
b38f02435b58eaba878d7a1894b610c4679fbd41 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Recalculate the spill weight and allocation hint for virtual registers created during live range splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110686 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
08e93b14c37277ab40b835de340f89ba357d3332 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Recalculate the spill weight and allocation hint for virtual registers created during live range splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110686 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
3ab1af43d4b9846b4aa69a43de0f86eee781b9d4 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Handle TAG_constant for integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110656 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
293680756404020a4888860db9f34728c9cecd1f |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Handle TAG_constant for integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110656 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
710dbd3633f0768037bdd2337696df88f51b6e77 |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Update CMake...sorry for the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110654 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
94f7950e4d68399954d4ee651ffa6674b87ff299 |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Update CMake...sorry for the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110654 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
bcd0b63e939e4c2e44e6dfceea0017739b4d04d8 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110653 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ecbd8e866bedb87e68946fa711021e6b8efff43a |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110653 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3526241db68817079a71ea6f4eac7ef604e1307e |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Drop "const". It does not add value here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110652 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
85e9580e25fdee623dc436d7f06faaefb7525f43 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Drop "const". It does not add value here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110652 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
669db6bf656392e7eef896d9db628560bbe60c94 |
10-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add missing null check reported by Amaury Pouly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
c120af45671c75fd1297ac6300c03a6a9e1264da |
10-Aug-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add missing null check reported by Amaury Pouly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
b71395b1625744c00e3b0ec7338b7887a7cfbdc3 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Do not include file static variable in pubnames list. Refactor and simplify code to avoid redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110642 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9fa539ce33bbf44595bd4f0a903ab7d9c5e7cd93 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Do not include file static variable in pubnames list. Refactor and simplify code to avoid redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110642 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1646071b23513b28e27f5029ccedd2fb1797a5e1 |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Transpose the calculation of spill weights such that we are calculating one register at a time. This turns out to be slightly faster than iterating over instructions, but more importantly, it allows us to compute spill weights for new registers created after the spill weight pass has run. Also compute the allocation hint at the same time as the spill weight. This allows us to use the spill weight as a cost metric for copies, and choose the most profitable hint if there is more than one possibility. The new hints provide a very small (< 0.1%) but universal code size improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110631 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveInterval.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
df30cf9e61e6586b45b74d1312bef1ee758ef94f |
10-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Transpose the calculation of spill weights such that we are calculating one register at a time. This turns out to be slightly faster than iterating over instructions, but more importantly, it allows us to compute spill weights for new registers created after the spill weight pass has run. Also compute the allocation hint at the same time as the spill weight. This allows us to use the spill weight as a cost metric for copies, and choose the most profitable hint if there is more than one possibility. The new hints provide a very small (< 0.1%) but universal code size improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110631 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveInterval.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
cf5c6bcbc173148f9e53bd818c443ef7c391e417 |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer pass. This pass should expand with all of the small, fine-grained optimization passes to reduce compile time and increase happiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110627 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizeCmps.cpp
ptimizeExts.cpp
eepholeOptimizer.cpp
|
6cdb1abe4e4f6364649e7ef656589441754e82ae |
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer pass. This pass should expand with all of the small, fine-grained optimization passes to reduce compile time and increase happiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110627 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizeCmps.cpp
ptimizeExts.cpp
eepholeOptimizer.cpp
|
03049c4f641cb15ac64361fb2b00de8864f09bce |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Undo accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
02ecdefbe48a054d962d6977967d1ae57a31a074 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Undo accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b19f735310177781ed8bd969de5b5d0478aee1f8 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. Avoid redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
450b793a0446042ee9af9d384de7cca243856b0b |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. Avoid redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ee993e30d6a2b172d2682841d89445303ee21d49 |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2739896cdd3c987de3d7f9a41217b4b954287c8d |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
07c6151f640d973e55b65d55d104987bfcd12999 |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Refactoring. Update DbgVarible to handle queries itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110600 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8bd11de33e9f6ee9d3dd1eed157e801aa27d5783 |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Refactoring. Update DbgVarible to handle queries itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110600 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e7349c585a7a2765d92fea4463c64d623886a2e8 |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
It is ok, and convenient, to pass descriptors by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110590 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8162574aaafff760abf04ec780c24b45b6d9cfdb |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
It is ok, and convenient, to pass descriptors by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110590 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4a20fad0a9dfc11eb94b4d8471793fc86ae2c79b |
09-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
A REG_SEQUENCE instruction may use the same register twice. If we are emitting COPY instructions for the REG_SEQUENCE, make sure the kill flag goes on the last COPY. Otherwise we may be using a killed register. <rdar://problem/8287792> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110589 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
e4b9c4f1871c5f17681fdf143104c6834055b25b |
09-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
A REG_SEQUENCE instruction may use the same register twice. If we are emitting COPY instructions for the REG_SEQUENCE, make sure the kill flag goes on the last COPY. Otherwise we may be using a killed register. <rdar://problem/8287792> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110589 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
8bdfceca2e8cc919230158d81b5c38b2a470330e |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Rename a method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e03161c28e361d1813dd0085cacd596f5cde7327 |
09-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Rename a method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b38c700c87bd03e5271a8e2e86b7fb5b3060b55e |
08-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Use the "isCompare" machine instruction attribute instead of calling the relatively expensive comparison analyzer on each instruction. Also rename the comparison analyzer method to something more in line with what it actually does. This pass is will eventually be folded into the Machine CSE pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110539 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeCmps.cpp
|
c98af3370f899a0d1570b1dff01a2e36632f884f |
08-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Use the "isCompare" machine instruction attribute instead of calling the relatively expensive comparison analyzer on each instruction. Also rename the comparison analyzer method to something more in line with what it actually does. This pass is will eventually be folded into the Machine CSE pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110539 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeCmps.cpp
|
596875c89e8e4fe4eb5ac6940f963c75a37eb00e |
07-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Tidy some #includes and forward-declarations, and move the C binding code out of PassManager.cpp and into Core.cpp with the rest of the C binding code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110494 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
|
11112e0d7b1fb2741ed65a5085037918d1425916 |
07-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Tidy some #includes and forward-declarations, and move the C binding code out of PassManager.cpp and into Core.cpp with the rest of the C binding code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110494 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
|
729effdfba20fb5c1d08fe738d59c9decd9506ed |
07-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Lazily defer duplicating the live interval we are splitting until we know it is necessary. Sometimes, live range splitting doesn't shrink the current interval, but simply changes some instructions to use a new interval. That makes the original more suitable for spilling. In this case, we don't need to duplicate the original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110481 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
5eb308b9448ee5b14fac26c0533eac481bc28471 |
07-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Lazily defer duplicating the live interval we are splitting until we know it is necessary. Sometimes, live range splitting doesn't shrink the current interval, but simply changes some instructions to use a new interval. That makes the original more suitable for spilling. In this case, we don't need to duplicate the original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110481 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
4d5b6ff9b74c2e1d60e5f0c5a3c3f998d42187eb |
06-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Cleanup comment wording git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110466 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
5b02901e91a155feca84d7383c1e569aacd1739e |
06-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Cleanup comment wording git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110466 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
46a0c81c5c6beb1abcd2dcd292bc4f3a1f0b629a |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep the MachiuneFunctionPass pointer around. It is useful for verification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110464 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
6d108e2cb59a3fe4d71bbde41416b55fc7c31d22 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep the MachiuneFunctionPass pointer around. It is useful for verification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110464 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
eb1ebd630d848981711f5b8b9e89eae2cb0f599f |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveInterval::RenumberValues - Garbage collection for VNInfos. After heavy editing of a live interval, it is much easier to simply renumber the live values instead of trying to keep track of the unused ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110463 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
|
23436597a8efad427059f2a6db5264e6a40d2dc7 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add LiveInterval::RenumberValues - Garbage collection for VNInfos. After heavy editing of a live interval, it is much easier to simply renumber the live values instead of trying to keep track of the unused ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110463 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
plitKit.cpp
|
7569322765651f19eea0609fb082e6b267d5d2b5 |
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineCSE.cpp
achineDominators.cpp
achineFunctionAnalysis.cpp
achineFunctionPrinterPass.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeCmps.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIElimination.h
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
jLjEHPrepare.cpp
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.h
|
90c579de5a383cee278acc3f7e7b9d0a656e6a35 |
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineCSE.cpp
achineDominators.cpp
achineFunctionAnalysis.cpp
achineFunctionPrinterPass.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeCmps.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIElimination.h
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
jLjEHPrepare.cpp
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.h
|
3a9349621f5085f96c6ecfb945c3ccdfb4b04c26 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more verification of LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110454 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
58e1248dd2b3d76bbc78a9cb84cd022a35e83955 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more verification of LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110454 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
9340e5a92d795173afb17df23240d28665b5cfe4 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix swapped COPY operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110453 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
b85f5388a969706f517723bcac94f7af4b2a1870 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix swapped COPY operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110453 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
|
d53f768299811e2ee83916689dce99c6ddf7c79b |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't try to verify LiveIntervals for physical registers. When a physical register is in use, some alias of that register has a live interval with a relevant live range. That is the sad state of intervals after physreg coalescing of subregs, and it is good enough for correct register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110452 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
775aa22da28c0ded619308fa71a9be2b16bcd19b |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't try to verify LiveIntervals for physical registers. When a physical register is in use, some alias of that register has a live interval with a relevant live range. That is the sad state of intervals after physreg coalescing of subregs, and it is good enough for correct register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110452 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
c63d6e1bd796f3cec5a046f0e00e0a509888d48e |
06-Aug-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110429 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
9040c2d91076c62c4ce299e418180af04eb013c3 |
06-Aug-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110429 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
49fbac55a4aceae06fdfad7d5e24c513363c7cf8 |
06-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Add the Optimize Compares pass (disabled by default). This pass tries to remove comparison instructions when possible. For instance, if you have this code: sub r1, 1 cmp r1, 0 bz L1 and "sub" either sets the same flag as the "cmp" instruction or could be converted to set the same flag, then we can eliminate the "cmp" instruction all together. This is a important for ARM where the ALU instructions could set the CPSR flag, but need a special suffix ('s') to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110423 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizeCmps.cpp
|
e4ddbdfd3cf031034020671d03626f0373fbd5ca |
06-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Add the Optimize Compares pass (disabled by default). This pass tries to remove comparison instructions when possible. For instance, if you have this code: sub r1, 1 cmp r1, 0 bz L1 and "sub" either sets the same flag as the "cmp" instruction or could be converted to set the same flag, then we can eliminate the "cmp" instruction all together. This is a important for ARM where the ALU instructions could set the CPSR flag, but need a special suffix ('s') to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110423 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizeCmps.cpp
|
dbe9a67894076f0dc046194b6ea7846eded11fb8 |
06-Aug-2010 |
Devang Patel <dpatel@apple.com> |
While emitting DBG_VALUE for registers spilled at the end of a block do not use location of MBB->end(). If a block does not have terminator then incoming iterator points to end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110411 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
31defcf2349916ac759be33baaa4060703fd78df |
06-Aug-2010 |
Devang Patel <dpatel@apple.com> |
While emitting DBG_VALUE for registers spilled at the end of a block do not use location of MBB->end(). If a block does not have terminator then incoming iterator points to end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110411 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
619acdc63ab0a47d125dca0591285c8ac4c9ed20 |
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineCSE.cpp
achineDominators.cpp
achineFunctionAnalysis.cpp
achineFunctionPrinterPass.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIElimination.h
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
jLjEHPrepare.cpp
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.h
|
1f74590e9d1b9cf0f1f81a156efea73f76546e05 |
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineCSE.cpp
achineDominators.cpp
achineFunctionAnalysis.cpp
achineFunctionPrinterPass.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIElimination.h
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
jLjEHPrepare.cpp
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.h
|
40cf43d39190bcddefc8a8422b02b5a1e6e9d44c |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more aggressive about removing joined physreg copies. When a joined COPY changes subreg liveness, we keep it around as a KILL, otherwise it is safe to delete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110403 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f67202c94d4eb2fab788196cab1ad138ea8e32cd |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more aggressive about removing joined physreg copies. When a joined COPY changes subreg liveness, we keep it around as a KILL, otherwise it is safe to delete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110403 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
987f88fa7179f4d8f14a1526bba7017a7be6e2ec |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't verify LiveVariables if LiveIntervals is available. LiveVariables becomes horribly wrong while the coalescer is running, but the analysis is not zapped until after the coalescer pass has run. This causes tons of false reports when calling verify form the coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110402 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
c910c8d2fa6e73e8f9875e871a2f3a44574a0b01 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't verify LiveVariables if LiveIntervals is available. LiveVariables becomes horribly wrong while the coalescer is running, but the analysis is not zapped until after the coalescer pass has run. This causes tons of false reports when calling verify form the coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110402 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
0e63653ab0d25d579ad99948db606d8723d271dd |
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineCSE.cpp
achineDominators.cpp
achineFunctionAnalysis.cpp
achineFunctionPrinterPass.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIElimination.h
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
jLjEHPrepare.cpp
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.h
|
9ccaf53ada99c63737547c0235baeb8454b04e80 |
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineCSE.cpp
achineDominators.cpp
achineFunctionAnalysis.cpp
achineFunctionPrinterPass.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
HIElimination.cpp
HIElimination.h
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
enderMachineFunction.h
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
jLjEHPrepare.cpp
plitter.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.h
|
fe178c8344817e9a83d6e14190bd240b79c48fdf |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add basic verification of LiveIntervals. We verify that the LiveInterval is live at uses and defs, and that all instructions have a SlotIndex. Stuff we don't check yet: - Is the LiveInterval minimal? - Do all defs correspond to instructions or phis? - Do all defs dominate all their live ranges? - Are all live ranges continually reachable from their def? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110386 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1fe9c34d3f55399dee2c41617d8af4f09e5509e7 |
06-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add basic verification of LiveIntervals. We verify that the LiveInterval is live at uses and defs, and that all instructions have a SlotIndex. Stuff we don't check yet: - Is the LiveInterval minimal? - Do all defs correspond to instructions or phis? - Do all defs dominate all their live ranges? - Are all live ranges continually reachable from their def? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110386 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
f1172bbd107d5b180d7986d2517af246c64c5139 |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove double-def checking from MachineVerifier, so a register does not have to be killed before being redefined. These checks are usually disabled, and usually fail when enabled. We de facto allow live registers to be redefined without a kill, the corresponding assertions in RegScavenger were removed long ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110362 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineVerifier.cpp
|
73cf709a08d480c4315dc4aa9f644cf86494c4cf |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove double-def checking from MachineVerifier, so a register does not have to be killed before being redefined. These checks are usually disabled, and usually fail when enabled. We de facto allow live registers to be redefined without a kill, the corresponding assertions in RegScavenger were removed long ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110362 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineVerifier.cpp
|
b913342ada6aa8b5194d86a215754a3c565591e1 |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid using a live std::multimap iterator while editing the map. It looks like we sometimes compare singular iterators, reported by ENABLE_EXPENSIVE_CHECKS. This fixes PR7825. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110355 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
a330d4c3ea4037a67e766f11d0010e681f3edf68 |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid using a live std::multimap iterator while editing the map. It looks like we sometimes compare singular iterators, reported by ENABLE_EXPENSIVE_CHECKS. This fixes PR7825. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110355 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
77c87a2011f97e52139ebc624e9246ad9ae9b20b |
05-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
The lower invoke pass needs to have unreachable code elimination run after it because it could create such things. This fixes a MingW buildbot test failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110279 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
af33b7b4a775073585f2037bf4cb56f1cd87d13c |
05-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
The lower invoke pass needs to have unreachable code elimination run after it because it could create such things. This fixes a MingW buildbot test failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110279 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
de96d445aa98615e34adda7a81fdd76b4b96baca |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Coalesce stack slot accesses that arise when spilling both sides of a COPY. This helps avoid silly code: %R0<def = LOAD <fi#5> STORE <fi#5>, %R0<kill> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110266 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
1a0f91b7c56fb49be0c5914333363320ac2a5f46 |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Coalesce stack slot accesses that arise when spilling both sides of a COPY. This helps avoid silly code: %R0<def = LOAD <fi#5> STORE <fi#5>, %R0<kill> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110266 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
50415c1915888b81c4dbbaba3626d1a07721e9d6 |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Checkpoint SplitKit progress. We are now at a point where we can split around simple single-entry, single-exit loops, although still with some bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110257 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
7536f72a97ad25c3652fdfe26d392fd78b6ea7b9 |
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Checkpoint SplitKit progress. We are now at a point where we can split around simple single-entry, single-exit loops, although still with some bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110257 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
f9a52d20ebe925b21118b8fefb96da67a1a75d62 |
05-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Use location entry only of the location described by DBG_VALUE is valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110255 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5573a7da298e68db9e63307b766dd650f044287e |
05-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Use location entry only of the location described by DBG_VALUE is valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110255 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
23ae32f0fe2c9dd5f3207db4214a50cff187f1d9 |
04-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
The EH prepare passes really want to be the last passes run before code-gen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110248 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2464d618c0043b8dcd13170f145f5add7738aad3 |
04-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
The EH prepare passes really want to be the last passes run before code-gen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110248 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
0d6e3dfee9a157b597280a81773f9a5b39853502 |
04-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110244 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a54e0cca4be62678687f943a085e3f64eed9eb2c |
04-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110244 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a3f4d8febfda9cdfaf0184f7faa86d5b9b4fb7f2 |
04-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Change this llvm_unreachable to report_fatal_error, since it can be triggered by valid, if dubious, IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110240 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9f6a6862be09df9f1e90b0560e52da7d15935f24 |
04-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Change this llvm_unreachable to report_fatal_error, since it can be triggered by valid, if dubious, IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110240 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5a649fd01ace42174f1eb1ef23d65d741e773408 |
04-Aug-2010 |
Devang Patel <dpatel@apple.com> |
While spilling live registers at the end of block check whether they are used by DBG_VALUE machine instructions or not. If a spilled register is used by DBG_VALUE machine instruction then insert a new DBG_VALUE machine instruction to encode variable's new location on stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110235 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
459a36bd34809ffc5d74de79b3e46f6e02e5184f |
04-Aug-2010 |
Devang Patel <dpatel@apple.com> |
While spilling live registers at the end of block check whether they are used by DBG_VALUE machine instructions or not. If a spilled register is used by DBG_VALUE machine instruction then insert a new DBG_VALUE machine instruction to encode variable's new location on stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110235 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
3221d8addafdf734a26b83c84265e24497154b16 |
04-Aug-2010 |
Devang Patel <dpatel@apple.com> |
If a variable is spilled by code generator then use DW_OP_fbreg to describe its location on stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110234 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b2cf5816f9bada99ee9ba5cc1b56841142ebd706 |
04-Aug-2010 |
Devang Patel <dpatel@apple.com> |
If a variable is spilled by code generator then use DW_OP_fbreg to describe its location on stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110234 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4fdc101bb5a565923ebd4aef7732cdbc0a586988 |
04-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate unnecessary empty string literals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
d98af0a5b86425fdc723bb54fc59247c585d63ab |
04-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate unnecessary empty string literals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
df2af2505d05004fee23c2213e4561e5e876a989 |
03-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Oops. Don't normalize spill weights twice. When the normalizeSpillWeights function was introduced, I forgot to remove this normalization. This change could affect register allocation. Hopefully for the better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110119 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bae696956b74680a7fedafb7fea70628d1ef14df |
03-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Oops. Don't normalize spill weights twice. When the normalizeSpillWeights function was introduced, I forgot to remove this normalization. This change could affect register allocation. Hopefully for the better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110119 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
34894dc705c805d7b40e01eaf80c7a2b50b7d792 |
03-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Early exit and reduce indentation. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110069 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
94e4008fbaa85600777b55605098bfd9cc3b9294 |
03-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Early exit and reduce indentation. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110069 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
bd1ee45bf443225f9e9363663e65dec981ec2c8a |
02-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Free DbgScope created for dead functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110045 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e9a1ccaf8036fbd46a350ddd3367e25b1fbc8d54 |
02-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Free DbgScope created for dead functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110045 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3951b343e96b52f8707b65b40f1bbdcbcec17950 |
02-Aug-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Prefix `next' iterator operation with `llvm::'. Fixes potential ambiguity problems on VS 2010. Patch by nobled! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110029 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineInstr.cpp
electionDAG/SelectionDAG.cpp
|
ee56c42168f6c4271593f6018c4409b6a5910302 |
02-Aug-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Prefix `next' iterator operation with `llvm::'. Fixes potential ambiguity problems on VS 2010. Patch by nobled! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110029 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineInstr.cpp
electionDAG/SelectionDAG.cpp
|
06a2340b7fcd3f03b591e4e3c505b93b0661e2f6 |
02-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
PR7586: Make sure we don't claim that unknown bits are actually known in the ISD::AND case of TargetLowering::SimplifyDemandedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1d17d199a4cd6190fdf82e35c42b617eaae2cd35 |
02-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
PR7586: Make sure we don't claim that unknown bits are actually known in the ISD::AND case of TargetLowering::SimplifyDemandedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
4b3eb330a0dfae55c07e0ded7a309d01d2e69285 |
01-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Reference the personalities. Don't copy them into a new vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109966 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
57dba1cf53c87709cbb2839809f6cfa897fac047 |
01-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Reference the personalities. Don't copy them into a new vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109966 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
fe1b227c1a71616281beb6dc6981caeafefe13b9 |
30-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for bug reported by Evzen Muller on llvm-commits: make sure to correctly check the range of the constant when optimizing a comparison between a constant and a sign_extend_inreg node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ad78a88711979aa84a89a32576b615ff13b3de15 |
30-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for bug reported by Evzen Muller on llvm-commits: make sure to correctly check the range of the constant when optimizing a comparison between a constant and a sign_extend_inreg node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6b9e0db32aa329ee53c48dc04edef340e26b93a3 |
29-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109767 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1abcd06856df324eac98d4bf5ba673fb77ae6a11 |
29-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109767 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a1470c1187018157cab91c780931221f06d02271 |
29-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109765 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c46a5f20c5ab9c497a91d3227d6368e92069cace |
29-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109765 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9e5c880f7a7683c578e0911cb39d1898ebae9157 |
29-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a bug in the -regalloc=fast handling of exotic two-address instruction with multiple defs, like t2LDRSB_POST. The first def could accidentally steal the physreg that the second, tied def was required to be allocated to. Now, the tied use-def is treated more like an early clobber, and the physreg is reserved before allocating the other defs. This would never be a problem when the tied def was the only def which is the usual case. This fixes MallocBench/gs for thumb2 -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109715 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4bd94f7bbe2ed6e0d83d03b06c0d20bb346abeca |
29-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a bug in the -regalloc=fast handling of exotic two-address instruction with multiple defs, like t2LDRSB_POST. The first def could accidentally steal the physreg that the second, tied def was required to be allocated to. Now, the tied use-def is treated more like an early clobber, and the physreg is reserved before allocating the other defs. This would never be a problem when the tied def was the only def which is the usual case. This fixes MallocBench/gs for thumb2 -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109715 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
6940dd54825f3884155612630a7967af8fccb05b |
28-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the regclass of any virtual registers used by a machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109608 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a0c5bf19bff7d06faa3e039a0638806c9e5a8ff6 |
28-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the regclass of any virtual registers used by a machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109608 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
87ac40d70e260ffde8429a1b9b5c585ceda026b8 |
27-Jul-2010 |
Devang Patel <dpatel@apple.com> |
It is FE's responsibility to emit proper directory name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109538 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
37032350c8c95a3d742b75be101c11b32f4211d7 |
27-Jul-2010 |
Devang Patel <dpatel@apple.com> |
It is FE's responsibility to emit proper directory name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109538 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
144a9ad3897f8fa0d324a37a15957dcf76ef7a26 |
27-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109525 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
977fa34df8b54595ff64157d0f4e5a14921669e8 |
27-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109525 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
c5725d531800584aed0490f8654dd7dfd8b91203 |
27-Jul-2010 |
Nate Begeman <natebegeman@mac.com> |
Fix a crash in the dag combiner caused by ConstantFoldBIT_CONVERTofBUILD_VECTOR calling itself recursively and returning a SCALAR_TO_VECTOR node, but assuming the input was always a BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e0efc216eb94f8f92b85cb4f1af2da9ce2a583fc |
27-Jul-2010 |
Nate Begeman <natebegeman@mac.com> |
Fix a crash in the dag combiner caused by ConstantFoldBIT_CONVERTofBUILD_VECTOR calling itself recursively and returning a SCALAR_TO_VECTOR node, but assuming the input was always a BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
897202574a0e6d55be8ba0a06c4f3ef440de551a |
27-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109513 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
57cb4f8be1b6dcac5e504d82c8b2a911909f2deb |
27-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109513 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
0efad29282fd9bf0e6200c4074fdcdeb3251e5ec |
27-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109511 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
ae64eedae2531b8c0cbd2d8a415cffa3cd33cb13 |
27-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109511 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
73570ad9fa08fa18eb3fcf5d0f673236d20f0429 |
27-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
It's better to have the arrays, which would trigger the creation of stack protectors, to be near the stack protectors on the stack. Accomplish this by tagging the stack object with a predicate that indicates that it would trigger this. In the prolog-epilog inserter, assign these objects to the stack after the stack protector but before the other objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109481 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/FunctionLoweringInfo.cpp
|
dfc2c51d12fd53822279b6e564cdd5cef5c00b46 |
27-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
It's better to have the arrays, which would trigger the creation of stack protectors, to be near the stack protectors on the stack. Accomplish this by tagging the stack object with a predicate that indicates that it would trigger this. In the prolog-epilog inserter, assign these objects to the stack after the stack protector but before the other objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109481 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/FunctionLoweringInfo.cpp
|
ca2b7205e07ebc10ce4f60f9bd02706756bdab0a |
27-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SplitEditor to SplitKit. This class will be used to edit live intervals and rewrite instructions for live range splitting. Still work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109469 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
irtRegMap.h
|
f0179004e94259a8adab6c48f295ea9ab18af4c3 |
27-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SplitEditor to SplitKit. This class will be used to edit live intervals and rewrite instructions for live range splitting. Still work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109469 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
plitKit.cpp
plitKit.h
irtRegMap.h
|
8894ef746827f0205c8a6a520cd1cdcbf43fef3a |
27-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix a use-after-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109468 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
3eca15bdb5823d0f9ff5059a179a1759fee1a185 |
27-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix a use-after-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109468 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
7f9bb1d223d6ab9f65f6b620e0e5329eef75ba6c |
27-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Using llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109462 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
warfEHPrepare.cpp
|
23295cc1dd6dd42b999588f6de85cb52c9651165 |
27-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Using llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109462 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
warfEHPrepare.cpp
|
812c8b97ff7a87b99a59c6e23e7479ddba833999 |
26-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
The "excess register pressure" returned by HighRegPressure() is not accurate enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109449 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e0e925efb31ca98c78e53bf52db8529388a0390a |
26-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
The "excess register pressure" returned by HighRegPressure() is not accurate enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109449 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
99b93bd70c479f518a0b969a619824eeb7d718f0 |
26-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Handle Values with no value in getCopyFromRegs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7da5d3fc657bf434a245d11ad91f22feb86296c5 |
26-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Handle Values with no value in getCopyFromRegs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
33a417941c660c655b7327387297f59d8c0e841a |
26-Jul-2010 |
Dan Gohman <gohman@apple.com> |
A block dominates itself, by definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109402 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
ce0fe5da0d69dfd332084b9f2c159c8f06f534e0 |
26-Jul-2010 |
Dan Gohman <gohman@apple.com> |
A block dominates itself, by definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109402 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
dcdaddd04e3b806806b8ab9f042d291eb54264e3 |
26-Jul-2010 |
Duncan Sands <baldrick@free.fr> |
Pacify gcc-4.5 which wrongly thinks that RExcess (passed as the Excess parameter) may be used uninitialized in the callers of HighRegPressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109393 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
b3893b193b294c4dfd37e101e9d796568b28d461 |
26-Jul-2010 |
Duncan Sands <baldrick@free.fr> |
Pacify gcc-4.5 which wrongly thinks that RExcess (passed as the Excess parameter) may be used uninitialized in the callers of HighRegPressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109393 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
368ea11899c74ed22800690410dff9cd90e92427 |
26-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Factored out a bit of common code to mark VNInfos for deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109388 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
6f4e4df1005e67917ebfcf66c8ea5bad5f587155 |
26-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Factored out a bit of common code to mark VNInfos for deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109388 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
b42df31c2d72b3cfe7f04fad4aa3f57790272b95 |
25-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e28ed16d2507633893269670d289006f3e0b351e |
25-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2211e5212d5cda6ef616d6afabb662dfec6f27a4 |
25-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix crashes when scheduling a CopyToReg node -- getMachineOpcode asserts on those. Radar 8231572. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3f92f73970862c1926b4c70fe097c979de5f02d0 |
25-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix crashes when scheduling a CopyToReg node -- getMachineOpcode asserts on those. Radar 8231572. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3de7500eba1846790f95f6e0b7a20b503d94f25a |
24-Jul-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109354 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8c64b9766e654079339ea7f3a2da152f18d00179 |
24-Jul-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109354 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
bb84fece36a6b5e1e9dfaeacbb91378d5ff75f4e |
24-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change ScheduleDAGInstrs::Defs and ::Uses to be variable-size vectors instead of fixed size arrays, so that increasing FirstVirtualRegister to 16K won't cause a compile time performance regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109330 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
f28dd8861190df4926cdc66201a39a6af950d564 |
24-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change ScheduleDAGInstrs::Defs and ::Uses to be variable-size vectors instead of fixed size arrays, so that increasing FirstVirtualRegister to 16K won't cause a compile time performance regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109330 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
6c8121125d1d2f5a37b9f19b1d17652f4e29c497 |
24-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Use current working directory when Dirname is empty. This only happens when absolute source file path is used on compiler command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2f58485fc87143bb97e3d88dde9ab2d28211cd28 |
24-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Use current working directory when Dirname is empty. This only happens when absolute source file path is used on compiler command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8b3d5e935ad184f81e8bb63cfa02440b55105ecf |
24-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add an ILP scheduler. This is a register pressure aware scheduler that's appropriate for targets without detailed instruction iterineries. The scheduler schedules for increased instruction level parallelism in low register pressure situation; it schedules to reduce register pressure when the register pressure becomes high. On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2 by 16%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
70017e44cdba1946cc478ce1856a3e855a767e28 |
24-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add an ILP scheduler. This is a register pressure aware scheduler that's appropriate for targets without detailed instruction iterineries. The scheduler schedules for increased instruction level parallelism in low register pressure situation; it schedules to reduce register pressure when the register pressure becomes high. On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2 by 16%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
8a170eb3c2d87bf912e853234585680b4d619db4 |
24-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove too-strict assertion. We may want the vreg copy of the physical register to be of a different register class. For example, in Thumb1 if the live-in is a high register, we want the vreg to be a low register. rdar://8224931 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109291 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
734738d3bdbb98454a4c517252ef694cd95f4cb6 |
24-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove too-strict assertion. We may want the vreg copy of the physical register to be of a different register class. For example, in Thumb1 if the live-in is a high register, we want the vreg to be a low register. rdar://8224931 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109291 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
fa751bc8046754e15dadeea0fac1e6a69262f47c |
24-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Revert r109262. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109285 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5f2f69b6481cab766723edc74825eaa1143f4f62 |
24-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Revert r109262. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109285 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
922a4d36f7218b00baed5994960e79f7e977ec56 |
24-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Allow target to specify when is register pressure "too high". In most cases, it's too late to start backing off aggressive latency scheduling when most of the registers are in use so the threshold should be a bit tighter. - Correctly handle live out's and extract_subreg etc. - Enable register pressure aware scheduling by default for hybrid scheduler. For ARM, this is almost always a win on # of instructions. It's runtime neutral for most of the tests. But for some kernels with high register pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by 54 and sped up by 20%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3144687df78731ac4ddbc716a24b951678a73f57 |
24-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Allow target to specify when is register pressure "too high". In most cases, it's too late to start backing off aggressive latency scheduling when most of the registers are in use so the threshold should be a bit tighter. - Correctly handle live out's and extract_subreg etc. - Enable register pressure aware scheduling by default for hybrid scheduler. For ARM, this is almost always a win on # of instructions. It's runtime neutral for most of the tests. But for some kernels with high register pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by 54 and sped up by 20%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c034f4c7c0d71d45d583f03845862c9254ed094b |
23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use the proper type for shift counts. This fixes a bootstrap error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
cd20c6fb18230f399fc99276fbdee14ce9faf6a1 |
23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use the proper type for shift counts. This fixes a bootstrap error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0f862800821352ea9a12ebb6bc30b145d9ae6596 |
23-Jul-2010 |
Devang Patel <dpatel@apple.com> |
IF directory name is empty then try to extract one using absolute file name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109262 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f83f42599d1242cc498b8062bb514b357aa572ce |
23-Jul-2010 |
Devang Patel <dpatel@apple.com> |
IF directory name is empty then try to extract one using absolute file name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109262 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ee105e255c7e8f3ee27bcc9a089761f9c4518caa |
23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
DAGCombine (shl (anyext x, c)) to (anyext (shl x, c)) if the high bits are not demanded. This often allows the anyext to be folded away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a4f4d699ec627e798357929295aecd3d55b8d703 |
23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
DAGCombine (shl (anyext x, c)) to (anyext (shl x, c)) if the high bits are not demanded. This often allows the anyext to be folded away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6c2ecad2a59424d0aaeea21de48181d007f9ba37 |
23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make SDNode::dump() print a newline at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109234 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7c98283f0ef74a5663c4c4a0938a344b204336fd |
23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make SDNode::dump() print a newline at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109234 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
570139c4551620ce2a666aeea8af04434168b70c |
23-Jul-2010 |
Eric Christopher <echristo@apple.com> |
80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
54e1791e4ba30867bda603acadda77fa85de6aa1 |
23-Jul-2010 |
Eric Christopher <echristo@apple.com> |
80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
e9576566c90aca1da8c527fcc1656d3068841c10 |
22-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
remove the JIT "NeedsExactSize" feature and supporting logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109167 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
134d8eec8789184c7a7290ee101ca3d6f62f384a |
22-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
remove the JIT "NeedsExactSize" feature and supporting logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109167 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
bbc54b614225d792d47d5d1dc1aa6767f4657f25 |
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
keep in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
481c4c07347c40fa666d09f3b31fbe2ca27e2d52 |
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
keep in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e035519df392f87833b9f18e113129f55d90a7b7 |
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
mass elimination of reliance on automatic iterator dereferencing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109103 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
96f1d8ebdd33b3f9bdb3b1163f36072c68599f42 |
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
mass elimination of reliance on automatic iterator dereferencing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109103 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
af08dfbc409d39bdcb04522161c650c4e26dd060 |
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
undo 80 column trespassing I caused git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109092 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
ntrinsicLowering.cpp
|
a399781289092fcdceb58b21174229f4373c4191 |
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
undo 80 column trespassing I caused git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109092 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
ntrinsicLowering.cpp
|
8765b940b160e86c9d88fadbdef1a4dd8ad98df8 |
22-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply r109079 with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
89ba74d117577f5a1bd62ee209dc2ecb090172e3 |
22-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply r109079 with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
296ec6461ef65312e8384445d96e4857522102b8 |
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Revert r109079, which broke a lot of CodeGen tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109082 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8b9177aee2671568182e1688e1c53f2459038e46 |
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Revert r109079, which broke a lot of CodeGen tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109082 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
314fffa77ab2916603cc95112ec9829c0b742f8e |
22-Jul-2010 |
Reid Kleckner <reid@kleckner.net> |
Initial modifications to MCAssembler and TargetMachine for the MCJIT. Patch by Olivier Meurant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109080 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c96a82a53415fd0b6cb1bbea2593dc18683c70cc |
22-Jul-2010 |
Reid Kleckner <reid@kleckner.net> |
Initial modifications to MCAssembler and TargetMachine for the MCJIT. Patch by Olivier Meurant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109080 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9588e0ee6727eb09bddb7cbf4bd394dbc5ac2379 |
22-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Initialize RegLimit only when register pressure is being tracked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109079 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
a4081238aa51eb16a46a2da78438ff476798f34d |
22-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Initialize RegLimit only when register pressure is being tracked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109079 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2408253b0680ef77feed50de7e6743881ccfef6e |
22-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
More register pressure aware scheduling work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
4a863e2c75145432fd660ee65e61b578c5e90ac9 |
22-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
More register pressure aware scheduling work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
30ea00a73f82df33ce1a38628fbff1b56a778f4c |
22-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
For ARM/Darwin, add a dwarf entry indicating whether a function is arm or thumb rdar://8202967 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109057 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
917290043f87b8efa6ba540bec5963013c517912 |
22-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
For ARM/Darwin, add a dwarf entry indicating whether a function is arm or thumb rdar://8202967 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109057 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6374c3d4d7b1fece8ed9acb590f809a0e6fb17ee |
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
eadMachineInstructionElim.cpp
CMetadata.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
iveVariables.cpp
achineCSE.cpp
achineLICM.cpp
achineModuleInfo.cpp
achineSink.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
enderMachineFunction.cpp
lotIndexes.cpp
plitter.cpp
tackProtector.cpp
tackSlotColoring.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
d13db2c59cc94162d6cf0a04187d408bfef6d4a7 |
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
eadMachineInstructionElim.cpp
CMetadata.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
iveVariables.cpp
achineCSE.cpp
achineLICM.cpp
achineModuleInfo.cpp
achineSink.cpp
ptimizeExts.cpp
ptimizePHIs.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
enderMachineFunction.cpp
lotIndexes.cpp
plitter.cpp
tackProtector.cpp
tackSlotColoring.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
94aec127ded8dbc56fa82f454dbe8c167751d022 |
21-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and trailing whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109037 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1e20b963131dc205dc219a17baeda2b3e27c2b66 |
21-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and trailing whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109037 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
94e59a01f9c8930c75906988d293b93d01d1c59b |
21-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Disallow null as a named metadata operand. Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself. One should never delete or destroy an MDNode explicitly. MDNodes implicitly go away when there are no references to them (implementation details aside). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109028 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
872814ae048df032bddf9299c850f5bda08299a9 |
21-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Disallow null as a named metadata operand. Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself. One should never delete or destroy an MDNode explicitly. MDNodes implicitly go away when there are no references to them (implementation details aside). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109028 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
80ad6e82618d61d1618d3ea819bf547c57c6243c |
21-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Changed OStream templates to functions on raw_ostream, removed the unused "renderWarnings" function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109003 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
enderMachineFunction.h
|
5a8ea65c5c72ee35c83f611a985d81efb8a4626e |
21-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Changed OStream templates to functions on raw_ostream, removed the unused "renderWarnings" function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109003 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
enderMachineFunction.h
|
83bd3e6df5274f42bbae9f5f611b373ac61c945c |
21-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach bottom up pre-ra scheduler to track register pressure. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/TargetLowering.cpp
|
4f6b4674be5473319ac5e70c76fd5cb964da2128 |
21-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach bottom up pre-ra scheduler to track register pressure. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/TargetLowering.cpp
|
1c2a730810e1039c1fcce2386a3e924a5efaddad |
21-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change the createSpiller interface to take a MachineFunctionPass argument. The spillers can pluck the analyses they need from the pass reference. Switch some never-null pointers to references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108969 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
plitKit.cpp
plitKit.h
|
f2c6e367c1c0d8797e62e58a3ccdb8cceee27987 |
21-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change the createSpiller interface to take a MachineFunctionPass argument. The spillers can pluck the analyses they need from the pass reference. Switch some never-null pointers to references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108969 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
plitKit.cpp
plitKit.h
|
7d2657f05a17755385f752a0c9dbd1d7d2b0e67d |
20-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement loop splitting analysis. Determine which loop exit blocks need a 'pre-exit' block inserted. Recognize when this would be impossible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108941 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
6a0dc079efe7acf7e71cc4c0948fe814f35ba091 |
20-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement loop splitting analysis. Determine which loop exit blocks need a 'pre-exit' block inserted. Recognize when this would be impossible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108941 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
9d89738c258667352677d5058072d4eae73cf2ef |
20-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Fix test for switch statements and increase threshold a bit per experimentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108935 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
21d35c1399cbf353abfad82fc47c919ffbe7abc6 |
20-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Fix test for switch statements and increase threshold a bit per experimentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108935 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9a737a56093478a3fa86a6a0811fe6a8e6606efc |
20-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Appease the colonials. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108845 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
abff28087fd6be8150ff0e69def7de7312b2f76b |
20-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Appease the colonials. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108845 91177308-0d34-0410-b5e6-96231b3b80d8
plitKit.cpp
plitKit.h
|
20d56d957f5b3c3ae4ea6316b6eef8b5df2daebb |
20-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Beginning SplitKit - utility classes for live range splitting. This is a work in progress. So far we have some basic loop analysis to help determine where it is useful to split a live range around a loop. The actual loop splitting code from Splitter.cpp is also going to move in here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108842 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
8ae0263471cc29c5f8278ee1ea5b678042ec6dce |
20-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Beginning SplitKit - utility classes for live range splitting. This is a work in progress. So far we have some basic loop analysis to help determine where it is useful to split a live range around a loop. The actual loop splitting code from Splitter.cpp is also going to move in here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108842 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
nlineSpiller.cpp
plitKit.cpp
plitKit.h
|
bd9ad5fefa591e672511f173b28d35ef2e7d1d82 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Updated css classes for the pressure table legend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108839 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
6089e464dd9fe581ba03563e06e2c315dde05968 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Updated css classes for the pressure table legend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108839 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
d974ba3ec3c132eb574e890f7f0c49f4cbb4fe3d |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Oops - I tables render poorly in Chrome without this explicit height specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108824 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
2725abd039d7b0189ebe2096ce4fd25794c5cc84 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Oops - I tables render poorly in Chrome without this explicit height specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108824 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
|
8598a6ba4e6d974c7be1d0f993031b8713da6184 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Use run-length encoding to represent identical adjacent cells in the pressure and interval table. Reduces output HTML file sizes by ~80% in my test cases. Also fix access of private member type by << operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108823 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
enderMachineFunction.h
|
f80f31eb9fd8ffa446310803e9d1da16e1c81c19 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Use run-length encoding to represent identical adjacent cells in the pressure and interval table. Reduces output HTML file sizes by ~80% in my test cases. Also fix access of private member type by << operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108823 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
enderMachineFunction.h
|
5ec4614a0b90235bbd7588602507dfae0bff53e0 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Added support for turning HTML indentation on and off (indentation off by default). Reduces output file size ~20% on my test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108822 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
enderMachineFunction.h
|
245581b1aca7c4af512772fcef4bde5fb1ad7e84 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Added support for turning HTML indentation on and off (indentation off by default). Reduces output file size ~20% on my test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108822 91177308-0d34-0410-b5e6-96231b3b80d8
enderMachineFunction.cpp
enderMachineFunction.h
|
4e5aa5a7b1adb0f34df7cfc38c513473d4f7d1aa |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Switched to rendering after allocation (but before rewriting) in PBQP. Updated renderer to use allocation information from VirtRegMap (if available) to render spilled intervals differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108815 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
enderMachineFunction.cpp
enderMachineFunction.h
|
c4bcc778a8dcc385b129852c9aa1c712d042ad63 |
20-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Switched to rendering after allocation (but before rewriting) in PBQP. Updated renderer to use allocation information from VirtRegMap (if available) to render spilled intervals differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108815 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
enderMachineFunction.cpp
enderMachineFunction.h
|
f527e4a7083f385f5f6b14ef55b7f01d17618cc4 |
20-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Don't hoist things out of a large switch inside a loop, for the reasons in the comments. This is a major win on 253.perlbmk on ARM Darwin. I expect it to be a good heuristic in general, but it's possible some things will regress; I'll be watching. 7940152. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108792 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
bf1ae5e254f8f6f6f3dfe9438d14bef9b955f01f |
20-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Don't hoist things out of a large switch inside a loop, for the reasons in the comments. This is a major win on 253.perlbmk on ARM Darwin. I expect it to be a good heuristic in general, but it's possible some things will regress; I'll be watching. 7940152. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108792 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
45b08d3d2b9adb3282f16e0969f78aa6f20d0038 |
20-Jul-2010 |
Stuart Hastings <stuart@apple.com> |
Correct line info for declarations/definitions. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0db42710693badaab808ccf8bcd265144ce8493d |
20-Jul-2010 |
Stuart Hastings <stuart@apple.com> |
Correct line info for declarations/definitions. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e29098d3fe7ae7599c1a0087625ce2e1de6aba9f |
20-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Fix memory leak reported by valgrind. Do not visit operands of old instruction. Visit all operands of new instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108767 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
58b8176ed39038240984c0966fef847fe37c86c1 |
20-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Fix memory leak reported by valgrind. Do not visit operands of old instruction. Visit all operands of new instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108767 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
e7b4dec881fced628644b65eb90b9ff72dfc1fee |
20-Jul-2010 |
Dan Gohman <gohman@apple.com> |
After a custom inserter, in a block which has constant instructions, update the current basic block in addition to the current insert position, so that they remain consistent. This fixes rdar://8204072. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c6e59b71f50c7c77bc448a936dba8e84d90911e8 |
20-Jul-2010 |
Dan Gohman <gohman@apple.com> |
After a custom inserter, in a block which has constant instructions, update the current basic block in addition to the current insert position, so that they remain consistent. This fixes rdar://8204072. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
fe8ff14a3de380455d0aca6de3893bc40b170cdc |
20-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
ARM has to provide its own TargetLowering::findRepresentativeClass because its scalar floating point registers alias its vector registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108761 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d70f57b254114841892425a40944268d38ae0bcd |
20-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
ARM has to provide its own TargetLowering::findRepresentativeClass because its scalar floating point registers alias its vector registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108761 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2e3c153a446ce1c1c9b8abbcf9865688760661df |
19-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach computeRegisterProperties() to compute "representative" register class for legal value types. A "representative" register class is the largest legal super-reg register class for a value type. e.g. On i386, GR32 is the rep register class for i8 / i16 / i32; on x86_64 it would be GR64. This property will be used by the register pressure tracking instruction scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
46dcb57e18884099ca6ad2aebb81fd7e1513c1f6 |
19-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach computeRegisterProperties() to compute "representative" register class for legal value types. A "representative" register class is the largest legal super-reg register class for a value type. e.g. On i386, GR32 is the rep register class for i8 / i16 / i32; on x86_64 it would be GR64. This property will be used by the register pressure tracking instruction scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e8e44e77afab78b324fd9cd504042d9a02eb6129 |
19-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Spillers may alter MachineLoopInfo when breaking critical edges, so make it non-const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108734 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
|
9529a1c3dd9946c1e63075f4bf146a731769ebe2 |
19-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Spillers may alter MachineLoopInfo when breaking critical edges, so make it non-const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108734 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
|
99fbafe915c76d239fbfe568efd58c5237503097 |
19-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Fix PR 7662. Do not try to insert local variable info to a DIE used for function declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108731 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8b3a6b651e267e5e6e68a3bd0aabd8ee90eb1aac |
19-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Fix PR 7662. Do not try to insert local variable info to a DIE used for function declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108731 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e2a22361688856ccb802f8a55b6be9907c146c5b |
19-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108700 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
5907f4c385d6c6f89958a76f6f01fed1b58d8168 |
19-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108700 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
22348e3cedb6475985983a3f306eff88821422e7 |
19-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Render MachineFunctions to HTML pages, with options to render register pressure estimates and liveness alongside. Still experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108698 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
enderMachineFunction.cpp
enderMachineFunction.h
|
54cc2efb4e6ba3022ec297746b14a129d97fc07b |
19-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Render MachineFunctions to HTML pages, with options to render register pressure estimates and liveness alongside. Still experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108698 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
enderMachineFunction.cpp
enderMachineFunction.h
|
af16006b85c9e35af0b8352bfcfd5c12efae7012 |
19-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Remove r108639 now that it is handled by InstCombine instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
54026c0f1b10fc6335f2a090c12627e5f7126641 |
19-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Remove r108639 now that it is handled by InstCombine instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a3692dad3ef77c2a5e846f2324927e3ee0afee78 |
19-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
Target: Give the TargetAsmParser access to the TargetMachine. - Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108664 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
d73ada7d24832bc2a4c3965b8f00ffd951341acf |
19-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
Target: Give the TargetAsmParser access to the TargetMachine. - Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108664 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
dd7297238f1bcc0edcde64c64a3bb7465aa2f194 |
18-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Move several clients to using AsmParser constructor function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108645 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
9fbb37e10d3b2814877bb8d2893d863fe1da660b |
18-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Move several clients to using AsmParser constructor function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108645 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
4b1567dc90b900be2c07a860c45169a501a08e9c |
18-Jul-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Fix struct/class mismatch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108642 91177308-0d34-0410-b5e6-96231b3b80d8
plitter.h
|
806de357a512471d34170b7e84e57a1f0d0a0552 |
18-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix struct/class mismatch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108642 91177308-0d34-0410-b5e6-96231b3b80d8
plitter.h
|
25f2c7e1200a14b245b9daafc4318d08a82903d8 |
18-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Add a DAGCombine xform to fold away redundant float->double->float conversions around sqrt instructions. I am assured by people more knowledgeable than me that there are no rounding issues in eliminating this. This fixed <rdar://problem/8197504>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ecdfafe3b06844ab0412b48f6daedf3e13e7037 |
18-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Add a DAGCombine xform to fold away redundant float->double->float conversions around sqrt instructions. I am assured by people more knowledgeable than me that there are no rounding issues in eliminating this. This fixed <rdar://problem/8197504>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
01faa7b34c441fd85e675d1ee716c7eb0e3b2518 |
18-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Added -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require LoopSplitter be run prior to register allocation. Entirely for testing purposes at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108634 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
12f35c52a533da0c2c4c3e0a04f83355514992f9 |
18-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Added -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require LoopSplitter be run prior to register allocation. Entirely for testing purposes at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108634 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
f7e17759079cb76ced7a1c1abf47ade044395c55 |
17-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use isPrologLabel() instead of checking the opcode directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108628 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7490896f9dd4bb7955b39fa601ae7a9325e2775f |
17-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use isPrologLabel() instead of checking the opcode directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108628 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1fea14871dd85b67d95e899222471baa2c4e6338 |
17-Jul-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
update CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108620 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
d3bb335144a317bafb0f237fc8930595a855845a |
17-Jul-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
update CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108620 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
c1ffdc229a29b9505f408b78ed7a5d8dfb05f338 |
17-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Removed unused inRange variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108618 91177308-0d34-0410-b5e6-96231b3b80d8
plitter.cpp
|
3b6702db0cf9360750217e5798c3025c9fdb2c16 |
17-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Removed unused inRange variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108618 91177308-0d34-0410-b5e6-96231b3b80d8
plitter.cpp
|
2acb3a4a85ee259c8a50a5fdbe22ac210817a26d |
17-Jul-2010 |
Lang Hames <lhames@gmail.com> |
LoopSplitter - intended to split live intervals over loop boundaries. Still very much under development. Comments and fixes will be forthcoming. (This commit includes some small tweaks to LiveIntervals & LoopInfo to support the splitter) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108615 91177308-0d34-0410-b5e6-96231b3b80d8
plitter.cpp
plitter.h
|
60f422f894ae9aff2f508f34733be36f5a0ed20a |
17-Jul-2010 |
Lang Hames <lhames@gmail.com> |
LoopSplitter - intended to split live intervals over loop boundaries. Still very much under development. Comments and fixes will be forthcoming. (This commit includes some small tweaks to LiveIntervals & LoopInfo to support the splitter) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108615 91177308-0d34-0410-b5e6-96231b3b80d8
plitter.cpp
plitter.h
|
77228032f77c6ae9be222dd8397d09601115102b |
17-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Iterating over sets of pointers in a heuristic was a bad idea. Switching any command line paramater changed the register allocation produced by PBQP. Turns out variety is not the spice of life. Fixed some comparators, added others. All good now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108613 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Heuristics/Briggs.h
egAllocPBQP.cpp
|
d0f6f017319bbc32b57c2e574d774ac91fe20f18 |
17-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Iterating over sets of pointers in a heuristic was a bad idea. Switching any command line paramater changed the register allocation produced by PBQP. Turns out variety is not the spice of life. Fixed some comparators, added others. All good now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108613 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Heuristics/Briggs.h
egAllocPBQP.cpp
|
ea073c217e2ede8a86e264d85a4a10823ba854fc |
17-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Propagate alloca alignment information via variable size object frame information. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
2b8271e0298f4218d6dddc80b49b51b38a646353 |
17-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Propagate alloca alignment information via variable size object frame information. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5a1bec1ebbe8c4427a31930e6dd6cc81917fc378 |
17-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Consider this function: void foo() { __builtin_unreachable(); } It will output the following on Darwin X86: _func1: Leh_func_begin0: pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: This prolog adds a new Call Frame Information (CFI) row to the FDE with an address that is not within the address range of the code it describes -- part is equal to the end of the function -- and therefore results in an invalid EH frame. If we emit a nop in this situation, then the CFI row is now within the address range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108568 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dc86704114a065da0ff1d835edcd62aae51481dd |
17-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Consider this function: void foo() { __builtin_unreachable(); } It will output the following on Darwin X86: _func1: Leh_func_begin0: pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: This prolog adds a new Call Frame Information (CFI) row to the FDE with an address that is not within the address range of the code it describes -- part is equal to the end of the function -- and therefore results in an invalid EH frame. If we emit a nop in this situation, then the CFI row is now within the address range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108568 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a02effc0bdeef3db3c148485564cab5ab6a7294a |
17-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and thus is a much more meaningful name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7431beaba2a01c3fe299c861b2ec85cbf1dc81c4 |
17-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and thus is a much more meaningful name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cc2fd8fda05fec20a570a0e5412ab819b11cdb74 |
16-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove remaining calls to TII::isMoveInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108556 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
irtRegRewriter.cpp
|
af462c4b4f59429d993b10607a0c31deb8a8156f |
16-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove remaining calls to TII::isMoveInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108556 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
irtRegRewriter.cpp
|
b2c1c2be5dbabbbcf75ef4868c57426a64b8db6a |
16-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert r108369, sorting llvm.dbg.declare information by source position, since it doesn't work for front-ends which don't emit column information (which includes llvm-gcc in its present configuration), and doesn't work for clang for K&R style variables where the variables are declared in a different order from the parameter list. Instead, make a separate pass through the instructions to collect the llvm.dbg.declare instructions in order. This ensures that the debug information for variables is emitted in this order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108538 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
9c3d5e41b94ff51dc78ae42397151b52d9c2b546 |
16-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert r108369, sorting llvm.dbg.declare information by source position, since it doesn't work for front-ends which don't emit column information (which includes llvm-gcc in its present configuration), and doesn't work for clang for K&R style variables where the variables are declared in a different order from the parameter list. Instead, make a separate pass through the instructions to collect the llvm.dbg.declare instructions in order. This ensures that the debug information for variables is emitted in this order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108538 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d557b954a8fb8f563779d364bdce33e62885af2f |
16-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Get rid of a bunch of duplicated ELF enum values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108520 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
10bb4211d69a643e380c537cbc75745c5fea6d6a |
16-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Get rid of a bunch of duplicated ELF enum values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108520 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
def3acbff14a29a3295e245b91a639d05f8dc077 |
16-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway. TII::isMoveInstr is going tobe completely removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108507 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveIntervalAnalysis.cpp
achineCSE.cpp
ptimizePHIs.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
|
04c528a0c86ddf3d6a70681f72e1b2ec07b0b53a |
16-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway. TII::isMoveInstr is going tobe completely removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108507 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveIntervalAnalysis.cpp
achineCSE.cpp
ptimizePHIs.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
|
7aac0447c1490f83be94329ffb03a3e71bc090ac |
16-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use the source-order scheduler instead of the "fast" scheduler at -O0, because it's more likely to keep debug line information in its original order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e667e0172346773cb5718f694efa93ea49114c7b |
16-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use the source-order scheduler instead of the "fast" scheduler at -O0, because it's more likely to keep debug line information in its original order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
71710aeac8bd1711f1fc472c5e61b6ac45b59ba6 |
16-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
The SelectionDAGBuilder's handling of debug info, on rare occasions, caused code to be generated in a different order. All cases I've seen involved float softening in the type legalizer, and this could be perhaps be fixed there, but it's better not to generate things differently in the first place. 7797940 (6/29/2010..7/15/2010). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
bdc09d9b0943a8c5cee29c4f87666eaa97e081d4 |
16-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
The SelectionDAGBuilder's handling of debug info, on rare occasions, caused code to be generated in a different order. All cases I've seen involved float softening in the type legalizer, and this could be perhaps be fixed there, but it's better not to generate things differently in the first place. 7797940 (6/29/2010..7/15/2010). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
22d56b4791f13680c0de7c199f80e9b6d424e59b |
16-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert. This isn't the correct way to go. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
a60f0e7f817f170df55371491e246b95b0d8d6b0 |
16-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert. This isn't the correct way to go. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
f2cad15d57b820bba2e01de8307f3553804b7b27 |
16-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Handle code gen for the unreachable instruction if it's the only instruction in the function. We'll just turn it into a "trap" instruction instead. The problem with not handling this is that it might generate a prologue without the equivalent epilogue to go with it: $ cat t.ll define void @foo() { entry: unreachable } $ llc -o - t.ll -relocation-model=pic -disable-fp-elim -unwind-tables .section __TEXT,__text,regular,pure_instructions .globl _foo .align 4, 0x90 _foo: ## @foo Leh_func_begin0: ## BB#0: ## %entry pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: ... The unwind tables then have bad data in them causing all sorts of problems. Fixes <rdar://problem/8096481>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
e9bf7e692e56656ef13b33af86624d0fdcd578fb |
16-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Handle code gen for the unreachable instruction if it's the only instruction in the function. We'll just turn it into a "trap" instruction instead. The problem with not handling this is that it might generate a prologue without the equivalent epilogue to go with it: $ cat t.ll define void @foo() { entry: unreachable } $ llc -o - t.ll -relocation-model=pic -disable-fp-elim -unwind-tables .section __TEXT,__text,regular,pure_instructions .globl _foo .align 4, 0x90 _foo: ## @foo Leh_func_begin0: ## BB#0: ## %entry pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: ... The unwind tables then have bad data in them causing all sorts of problems. Fixes <rdar://problem/8096481>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
ddc0a8b9568a49c9b26f8c35d5ed777bc91c116d |
16-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Split -enable-finite-only-fp-math to two options: -enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108465 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAG.cpp
|
60108e96bbc5432f4fe06ba313e64448e97a0e15 |
16-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Split -enable-finite-only-fp-math to two options: -enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108465 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/SelectionDAG.cpp
|
5d56a902d64f9ff4aaaf6dabf79a0dc1f71d5213 |
15-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
fix the definitions of ConstTextCoalSection/ConstDataCoalSection to keep "Text" in sync with the "pure instructions" section attribute. Lack of this attribute was preventing the assembler from emitting multibyte noops instructions for templates (and inlines, and other coalesced stuff) and was causing the assembler to mismatch .o files. This fixes rdar://8018335 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108461 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6a624a65f47c850bbcbfc7eff4fd057be824027c |
15-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
fix the definitions of ConstTextCoalSection/ConstDataCoalSection to keep "Text" in sync with the "pure instructions" section attribute. Lack of this attribute was preventing the assembler from emitting multibyte noops instructions for templates (and inlines, and other coalesced stuff) and was causing the assembler to mismatch .o files. This fixes rdar://8018335 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108461 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6a56ec79c52ad100b3c3d0fe50570b768c1adf7c |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108452 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
87ea294b0d72ef5f29c6d3ea9c9c5faa8be7abc4 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108452 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
79fb120a8f47ab13ecef292360029884bbda9fd8 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108450 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
24173da61db2725bf91b0edf57cfa554ac105e9d |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108450 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
aa8662ee51dcdbb87c38a40d6c31b09d1c2f0c6e |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time make sure to allocate enough space in the std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108449 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
9c2a034730b289a2cf48bc91aa2ef69737a7afbb |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time make sure to allocate enough space in the std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108449 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
5de585a57e8c89ba0f01b6b90a66a413692cc9cd |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Reserve a goodly amount of room for the vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108448 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
e4a4147c877777fddfff50a89cac81a596f1a8ba |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Reserve a goodly amount of room for the vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108448 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
4ef0321f497397e58d7293973f6ed24253435f1d |
15-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Fix crash reported in PR7653. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
07538ad975994123317fe5b32daed4bf28683a1d |
15-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Fix crash reported in PR7653. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1ff672189788b92641eb9fd8659712710f54bbd8 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108440 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
38306d53f9319d0a36a059b229b807578cb2e5c5 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108440 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
c416f97029a85bc9be4b74f86ea724085a80ede4 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108438 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.h
|
dfb4eeb25c635ee6ad525bd13928a53b7c10d007 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108438 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.h
|
db24dfbbb21b020f6afc49519240a69a34e12ea2 |
15-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
revert bill's patches in an attempt to fix the buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108419 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
7fa889b946266f5cf3f386acf2487aed244e5d10 |
15-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
revert bill's patches in an attempt to fix the buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108419 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
6c0464208ba23b7481949cb1ca09b4b690fb837d |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108413 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
75a5b712086802daacf8bb646ffe9f8f72602670 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108413 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
f19a69f99860458ca506570deb3630888ec2124c |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of a hard-coded array. The length of that array could get *very* large, but we only need it to be the size of the number of pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108412 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
e010409cab2ccb7c812edaf072da2c1169ddb0da |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of a hard-coded array. The length of that array could get *very* large, but we only need it to be the size of the number of pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108412 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
0edb177ee6dec832b5ad83ab1f198e6e17a360b0 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of a hard-coded array. The length of that array could get *very* large, but we only need it to be the size of thenumber of pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108411 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
f7f72bc1eaf01bfc6f09094d200e6aea35921f65 |
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of a hard-coded array. The length of that array could get *very* large, but we only need it to be the size of thenumber of pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108411 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
d0c6a6bdc440b527399822b8c3fad444b816b3e0 |
15-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
a more graceful fix for test/Other/inline-asm-newline-terminator.ll, follow on to r103765 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108390 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
b5b73c4c86b68e5edc3d3fceff28e852c1141b7f |
15-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
a more graceful fix for test/Other/inline-asm-newline-terminator.ll, follow on to r103765 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108390 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
501c139176d85d108f879aeed8a0ac4091763e0a |
15-Jul-2010 |
Eric Christopher <echristo@apple.com> |
80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
723a05a66f0c7b2ba8a9e0bc162cf6a44c5569be |
15-Jul-2010 |
Eric Christopher <echristo@apple.com> |
80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
28629a7306f7d4aa67e71e3a6d107307a1e5e399 |
15-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make the order in which variables are described in debug information independent of the order that isel happens to visit the dbg_declare intrinsics. This fixes a bug in which the formal arguments were being printed in reverse order, now that fast isel is going bottom up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108369 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
336e8d7e7ce87721db464fdb22638bf0c98d6469 |
15-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make the order in which variables are described in debug information independent of the order that isel happens to visit the dbg_declare intrinsics. This fixes a bug in which the formal arguments were being printed in reverse order, now that fast isel is going bottom up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108369 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
1c64f5b7c8a54030b577e0b12609ec16ae6299d9 |
15-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Properly restore DebugLoc after leaving the local constant area. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
163f78ea4016d594d921154d8df1c9d746fb0ea8 |
15-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Properly restore DebugLoc after leaving the local constant area. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
31e2f82290b4c3f520edb06fb6d866aef7939a10 |
14-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Delete fast-isel's trivial load optimization; it breaks debugging because it can look past points where a debugger might modify user variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2dd50e656f048d222aaaa57168688326fa52421b |
14-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Delete fast-isel's trivial load optimization; it breaks debugging because it can look past points where a debugger might modify user variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a57cf7964f04923f805421545617006c82319355 |
14-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach ProcessImplicitDefs to transform more COPY instructions into IMPLICIT_DEF (and subsequently eliminate them). This allows machine LICM to hoist IMPLICIT_DEF's. PR7620. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108304 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
rocessImplicitDefs.cpp
|
db8980903717e1127463f00a34cae9bd29f82a91 |
14-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach ProcessImplicitDefs to transform more COPY instructions into IMPLICIT_DEF (and subsequently eliminate them). This allows machine LICM to hoist IMPLICIT_DEF's. PR7620. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108304 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
rocessImplicitDefs.cpp
|
f8b30eee74822408e2695de7a228455fe4535e22 |
14-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't propagate debug locations to instructions for materializing constants, since they may not be emited near the other instructions which get the same line, and this confuses debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108302 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a10b8494a50108482302f6f077d72fbc76d776ed |
14-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't propagate debug locations to instructions for materializing constants, since they may not be emited near the other instructions which get the same line, and this confuses debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108302 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
de315e45f15ed924610f0630673f729dbd27e006 |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print VNInfo flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108277 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
d9f6ec977a9543e88c52fa5fb3737ae03402fc4c |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print VNInfo flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108277 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
324c0e335cffaeeacdd15df43fa8beffcf125aca |
13-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
In inline asm treat indirect 'X' constraint as 'm'. This may not be right in all cases, but it's better than asserting which it was doing before. PR 7528. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b5611a623012fc373ea21d9c062b8a38c0ac75c7 |
13-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
In inline asm treat indirect 'X' constraint as 'm'. This may not be right in all cases, but it's better than asserting which it was doing before. PR 7528. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
2e1ab807069be1b7c68ae30a5c75bcb859923950 |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an assertion to make PR7542 fail consistently. LiveInterval::overlapsFrom dereferences end() if it is called on an empty interval. It would be reasonable to just return false - an empty interval doesn't overlap anything, but I want to know who is doing it first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108264 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
6382d2caddb98f30f556b43faa898ff675affaf7 |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an assertion to make PR7542 fail consistently. LiveInterval::overlapsFrom dereferences end() if it is called on an empty interval. It would be reasonable to just return false - an empty interval doesn't overlap anything, but I want to know who is doing it first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108264 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
3f0eb54d7f7bcfb8456eca6fd52cbfc4eee79f59 |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix LiveInterval::overlaps so it doesn't claim touching intervals overlap. Also, one binary search is enough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108261 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
186eb73845c29547cc837341f0c8c0f6d9284e67 |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix LiveInterval::overlaps so it doesn't claim touching intervals overlap. Also, one binary search is enough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108261 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f71d53b68b556ae43b8d3c748873c1fa02ce7a3b |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't add memory operands to storeRegToStackSlot / loadRegFromStackSlot results, they already have one. This fixes the himenobmtxpa miscompilation on ARM. The PostRA scheduler got confused by the double memoperand and hoisted a stack slot load above a store to the same slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108219 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
9fac4159ddf65d90ebcccd80a0ba513cd8e95be1 |
13-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't add memory operands to storeRegToStackSlot / loadRegFromStackSlot results, they already have one. This fixes the himenobmtxpa miscompilation on ARM. The PostRA scheduler got confused by the double memoperand and hoisted a stack slot load above a store to the same slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108219 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
06987da3f26bf015b05712886288c678ae8a18d6 |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a typo and fit in 80 columns. Found by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
9d544d04166b971ab5ca1ee7ee37465b4af6bbf5 |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a typo and fit in 80 columns. Found by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c2d3eee936fe8da7e8e257cb45580149421190bb |
12-Jul-2010 |
Duncan Sands <baldrick@free.fr> |
Convert some tab stops into spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108130 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/SelectionDAGPrinter.cpp
|
3472766f9eb7d66f234c390ce1b3a8b76f0ee9ce |
12-Jul-2010 |
Duncan Sands <baldrick@free.fr> |
Convert some tab stops into spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108130 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/SelectionDAGPrinter.cpp
|
9300e96920f4c6c61061318f41c173d8bab1f4de |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert the last use of getPhysicalRegisterRegClass and remove it. AggressiveAntiDepBreaker should not be using getPhysicalRegisterRegClass. An instruction might be using a register that can only be replaced with one from a subclass of getPhysicalRegisterRegClass. With this patch we use getMinimalPhysRegClass. This is correct, but conservative. We should check the uses of the register and select the largest register class that can be used in all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108122 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
7e1b566322ecb5ff752c9a5f2feb503b6fb75262 |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert the last use of getPhysicalRegisterRegClass and remove it. AggressiveAntiDepBreaker should not be using getPhysicalRegisterRegClass. An instruction might be using a register that can only be replaced with one from a subclass of getPhysicalRegisterRegClass. With this patch we use getMinimalPhysRegClass. This is correct, but conservative. We should check the uses of the register and select the largest register class that can be used in all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108122 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
569270d65ca081470f5efb95a5efe1b25bef3291 |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't use getPhysicalRegisterRegClass in PBQP. The existing checks that the physical register can be allocated in the class of the virtual are sufficient. I think that the test for virtual registers is more strict than it needs to be, it should be possible to coalesce two virtual registers the class of one is a subclass of the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108118 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
cbeb3db8fd502a21f07592f75712d59691ce471f |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't use getPhysicalRegisterRegClass in PBQP. The existing checks that the physical register can be allocated in the class of the virtual are sufficient. I think that the test for virtual registers is more strict than it needs to be, it should be possible to coalesce two virtual registers the class of one is a subclass of the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108118 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
d3408ec5cb70bab5083c5d6e23aaaaea96aaa9b8 |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert the last getPhysicalRegisterRegClass in VirtRegRewriter.cpp to getMinimalPhysRegClass. It was used to produce spills, and it is better to use the most specific class if possible. Update getLoadStoreRegOpcode to handle GR32_AD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108115 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
0bfd09201efdbba5fb70039ebf1c8aefc673cde1 |
12-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert the last getPhysicalRegisterRegClass in VirtRegRewriter.cpp to getMinimalPhysRegClass. It was used to produce spills, and it is better to use the most specific class if possible. Update getLoadStoreRegOpcode to handle GR32_AD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108115 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
1e1ba7afe793ef5fcefa50bf19887adc060e0786 |
12-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
change machinelicm to use MachineInstr::isSafeToMove. No intended functionality change. The avoidance of hoistiing implicitdef seems wrong though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108109 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
7791080151a5a8bbda073551289469301d006fcb |
12-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
change machinelicm to use MachineInstr::isSafeToMove. No intended functionality change. The avoidance of hoistiing implicitdef seems wrong though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108109 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d1eb83768d208ed2fec6e44580b2ea912940ab22 |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove TargetInstrInfo::copyRegToReg entirely. Targets must now implement TargetInstrInfo::copyPhysReg instead. There is no longer a default implementation forwarding to copyRegToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108095 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
744b3a5acdbd4d0fac9c6a7c9ad702502cc3cc37 |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove TargetInstrInfo::copyRegToReg entirely. Targets must now implement TargetInstrInfo::copyPhysReg instead. There is no longer a default implementation forwarding to copyRegToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108095 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
64a48a98393d53b778ad3e760bce4062ca3714de |
11-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert uses of getPhysicalRegisterRegClass in VirtRegRewriter.cpp. The first one was used just to call isSafeToMoveRegClassDefs. In general, using a more specific reg class is better, in practice only x86 implements that method and the results are always the same. The second one is in FindFreeRegister and is used to check if a register is in a register class, a much more direct call to contains is better as it should cover more cases and is faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108093 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
db776099911ea3fa42f11519632091e72bdcddfe |
11-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert uses of getPhysicalRegisterRegClass in VirtRegRewriter.cpp. The first one was used just to call isSafeToMoveRegClassDefs. In general, using a more specific reg class is better, in practice only x86 implements that method and the results are always the same. The second one is in FindFreeRegister and is used to check if a register is in a register class, a much more direct call to contains is better as it should cover more cases and is faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108093 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
f3c1d64b732e9cf5d0eecc2cdcb92f7d724f9a00 |
11-Jul-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Remove two other uses of ATTRIBUTE_UNUSED for variables only used within assert()s, switching to void-casts. Removed an unneeded Compiler.h include as a result. There are two other uses in LLVM, but they're not due to assert()s, so I've left them alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108088 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Heuristics/Briggs.h
|
c5080ba0c8278fba57efe605560d1f16a7a9e973 |
11-Jul-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Remove two other uses of ATTRIBUTE_UNUSED for variables only used within assert()s, switching to void-casts. Removed an unneeded Compiler.h include as a result. There are two other uses in LLVM, but they're not due to assert()s, so I've left them alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108088 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Heuristics/Briggs.h
|
af01e252c54c30e80a1734f256c04a4b273622d1 |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY for fast-isel bitconvert, but don't create cross-class copies. This doesn't change the behavior of SelectBitcast for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108073 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e7917bb207d5178dfb26066f839e4c295fd3a1eb |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY for fast-isel bitconvert, but don't create cross-class copies. This doesn't change the behavior of SelectBitcast for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108073 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
deaae440ab24bb0531c2e23bde4f64300291e832 |
11-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix va_arg for doubles. With this patch VAARG nodes always contain the correct alignment information, which simplifies ExpandRes_VAARG a bit. The patch introduces a new alignment information to TargetLoweringInfo. This is needed since the two natural candidates cannot be used: * The 's' in target data: If this is set to the minimal alignment of any argument, getCallFrameTypeAlignment would return 4 for doubles on ARM for example. * The getTransientStackAlignment method. It is possible for an architecture to have argument less aligned than what we maintain the stack pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
cbeeae23c31d32b833c9c7c3e8984e4cbcf22f45 |
11-Jul-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix va_arg for doubles. With this patch VAARG nodes always contain the correct alignment information, which simplifies ExpandRes_VAARG a bit. The patch introduces a new alignment information to TargetLoweringInfo. This is needed since the two natural candidates cannot be used: * The 's' in target data: If this is set to the minimal alignment of any argument, getCallFrameTypeAlignment would return 4 for doubles on ARM for example. * The getTransientStackAlignment method. It is possible for an architecture to have argument less aligned than what we maintain the stack pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
da8e3ccd1b8cf437ce008849bf877bdb3a5090be |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY for extracting ImplicitDef'ed values from fast-isel instructions. This assumes that the registers can be copied which is probably a safe assumption. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108070 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e797e0c8644a649d162fb339b148f5db10447d4e |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY for extracting ImplicitDef'ed values from fast-isel instructions. This assumes that the registers can be copied which is probably a safe assumption. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108070 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ac74d40a6fab0f487aba3fb882a6e226fcbafe9a |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY in FastISel everywhere it is safe and trivial. The remaining copyRegToReg calls actually check the return value (shock!), so we cannot trivially replace them with COPY instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5127f7991373d1c69e4d3241ec11913f4f44bb21 |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY in FastISel everywhere it is safe and trivial. The remaining copyRegToReg calls actually check the return value (shock!), so we cannot trivially replace them with COPY instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
58296bc252b47fa3839d438d67c58f8a5db89750 |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace copyRegToReg with COPY everywhere in lib/CodeGen except for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108062 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
piller.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
1e1098c6f39590e1e74e5cb3c2a1652d8f3cb16a |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace copyRegToReg with COPY everywhere in lib/CodeGen except for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108062 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
piller.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
4eca660c9f8861c84330761679a71b5978d3ccf2 |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only collect subreg extracting copies for later coalescing. This also avoids fatal copies from physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108061 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c0075cce7cf6682af8a09126709106866b2f5971 |
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only collect subreg extracting copies for later coalescing. This also avoids fatal copies from physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108061 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
41989a808cb7b72fbea814e8b9bca0df8606acd8 |
11-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the code which re-inserts DBG_VALUE nodes after scheduling; if a block is split (by a custom inserter), the insert point may be in a different block than it was originally. This fixes 32-bit llvm-gcc bootstrap builds, and I haven't been able to reproduce it otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
a8dab36f3dfdfcd3f74224afa4ffb32776674c93 |
11-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the code which re-inserts DBG_VALUE nodes after scheduling; if a block is split (by a custom inserter), the insert point may be in a different block than it was originally. This fixes 32-bit llvm-gcc bootstrap builds, and I haven't been able to reproduce it otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
49a439e4799aa900e5cc4dbacf74394bfca34f26 |
10-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Emit COPY instructions instead of using copyRegToReg in InstrEmitter, ScheduleDAGEmit, TwoAddressLowering, and PHIElimination. This switches the bulk of register copies to using COPY, but many less used copyRegToReg calls remain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108050 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
cheduleDAGEmit.cpp
electionDAG/InstrEmitter.cpp
woAddressInstructionPass.cpp
|
92c1f72c548e6a5e793ef19a0b04910992115b6c |
10-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Emit COPY instructions instead of using copyRegToReg in InstrEmitter, ScheduleDAGEmit, TwoAddressLowering, and PHIElimination. This switches the bulk of register copies to using COPY, but many less used copyRegToReg calls remain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108050 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
cheduleDAGEmit.cpp
electionDAG/InstrEmitter.cpp
woAddressInstructionPass.cpp
|
0efe7d3bcc7b0e65143eb25636cc15a7d665adb0 |
10-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Insert IMPLICIT_DEF instructions at the current insert position, not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108045 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
3cd26a2909cd5d002fe2742041a264ba217ba88e |
10-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Insert IMPLICIT_DEF instructions at the current insert position, not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108045 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
b4482cf9e41505aa91da0bdea2deba4147e3e495 |
10-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply bottom-up fast-isel, with several fixes for x86-32: - Check getBytesToPopOnReturn(). - Eschew ST0 and ST1 for return values. - Fix the PIC base register initialization so that it doesn't ever fail to end up the top of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108039 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
84023e0fbefc406a4c611d3d64a10df5d3a97dd7 |
10-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply bottom-up fast-isel, with several fixes for x86-32: - Check getBytesToPopOnReturn(). - Eschew ST0 and ST1 for return values. - Fix the PIC base register initialization so that it doesn't ever fail to end up the top of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108039 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f59e11c3be2372dc2fb11391b1bbcf901afbeca6 |
09-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Update DBG_VALUE to refer appropriate stack slot in case of a spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108023 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
7a029b6d7e58cb0f1010f14d99d7661e387cfb54 |
09-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Update DBG_VALUE to refer appropriate stack slot in case of a spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108023 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
b4598963a68501dc67167512c0a7b83528d58e71 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix small bug in isMoveInstr -> COPY translation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108013 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8ea324093cd512acc37f7b5a60e511e64103699e |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix small bug in isMoveInstr -> COPY translation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108013 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b4737986ba62ecb5647e3bd01bb7a14fbc610f8e |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Automatically fold COPY instructions into stack load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108012 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
1f32340d95ac480bfc74bcfd00fd5cffbe078652 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Automatically fold COPY instructions into stack load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108012 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
c8d7f9fe4842bb25aab9a895acb261fb621400c5 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remat uncoalescable COPY instrs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108010 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
90fc0f4443726e8be01c2b1ce46bdf75632a1e26 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remat uncoalescable COPY instrs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108010 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
32081510b8ac6bcf8d16793a8fee07e34833e999 |
09-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Clarify what mysterious check means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8886c495a33703d8bd8319d16b62645cee4dd546 |
09-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Clarify what mysterious check means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9571e5b43b0cd3370fe480bb6ffd766bcfde46ae |
09-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix MachineLICM to actually visit inner loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108001 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
aa7426070da3b74d60186763bb7c53af3e095427 |
09-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix MachineLICM to actually visit inner loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108001 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
915559a808b748c5bef27440b78298b1fc6fef5b |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change TII::foldMemoryOperand API to require the machine instruction to be inserted in a MBB, and return an already inserted MI. This target API change is necessary to allow foldMemoryOperand to call storeToStackSlot and loadFromStackSlot when folding a COPY to a stack slot reference in a target independent way. The foldMemoryOperandImpl hook is going to change in the same way, but I'll wait until COPY folding is actually implemented. Most targets only fold copies and won't need to specialize this hook at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107991 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
e05442d50806e2850eae1571958816028093df85 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change TII::foldMemoryOperand API to require the machine instruction to be inserted in a MBB, and return an already inserted MI. This target API change is necessary to allow foldMemoryOperand to call storeToStackSlot and loadFromStackSlot when folding a COPY to a stack slot reference in a target independent way. The foldMemoryOperandImpl hook is going to change in the same way, but I'll wait until COPY folding is actually implemented. Most targets only fold copies and won't need to specialize this hook at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107991 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
ec25c929e718999b22b3fcee506104f995b3b457 |
09-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
--- Reverse-merging r107947 into '.': U utils/TableGen/FastISelEmitter.cpp --- Reverse-merging r107943 into '.': U test/CodeGen/X86/fast-isel.ll U test/CodeGen/X86/fast-isel-loads.ll U include/llvm/Target/TargetLowering.h U include/llvm/Support/PassNameParser.h U include/llvm/CodeGen/FunctionLoweringInfo.h U include/llvm/CodeGen/CallingConvLower.h U include/llvm/CodeGen/FastISel.h U include/llvm/CodeGen/SelectionDAGISel.h U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/CallingConvLower.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp U lib/CodeGen/SelectionDAG/FastISel.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp U lib/CodeGen/SelectionDAG/InstrEmitter.cpp U lib/CodeGen/SelectionDAG/TargetLowering.cpp U lib/Target/XCore/XCoreISelLowering.cpp U lib/Target/XCore/XCoreISelLowering.h U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86ISelLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107987 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
02266e29f9250d74c5ec720aff23add3410ae920 |
09-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
--- Reverse-merging r107947 into '.': U utils/TableGen/FastISelEmitter.cpp --- Reverse-merging r107943 into '.': U test/CodeGen/X86/fast-isel.ll U test/CodeGen/X86/fast-isel-loads.ll U include/llvm/Target/TargetLowering.h U include/llvm/Support/PassNameParser.h U include/llvm/CodeGen/FunctionLoweringInfo.h U include/llvm/CodeGen/CallingConvLower.h U include/llvm/CodeGen/FastISel.h U include/llvm/CodeGen/SelectionDAGISel.h U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/CallingConvLower.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp U lib/CodeGen/SelectionDAG/FastISel.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp U lib/CodeGen/SelectionDAG/InstrEmitter.cpp U lib/CodeGen/SelectionDAG/TargetLowering.cpp U lib/Target/XCore/XCoreISelLowering.cpp U lib/Target/XCore/XCoreISelLowering.h U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86ISelLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107987 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
8d4191d6429537222756caa1c45cd809b6c1ab7d |
09-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
03f09a3e329abcb35c1a5aa3a4546668b1af21ee |
09-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
da4e8fd8045405042f32227ec15ae69df906ef16 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating %physreg:subidx operands in SimpleRegisterCoalescing::RemoveCopyByCommutingDef. This fixes PR7602. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107957 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8154f96f44b46cd7e06ccbbe6d9adb0f3134e107 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating %physreg:subidx operands in SimpleRegisterCoalescing::RemoveCopyByCommutingDef. This fixes PR7602. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107957 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
94b9ac922bd49eaa77501cb093204dedc158ff26 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Deal with a few remaining spots that assume physical registers have live intervals. This fixes PR7601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107955 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
846a31881f85ab9ad836315a8be4532a26c7335c |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Deal with a few remaining spots that assume physical registers have live intervals. This fixes PR7601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107955 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
008bccd351a8bebb88cadb49baddba54fb754ef5 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix broken isCopy handling in TrimLiveIntervalToLastUse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107950 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
665eb1246678f976239e8e14ee7fe3a2874af2df |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix broken isCopy handling in TrimLiveIntervalToLastUse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107950 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a849b8fd5b0d528398367ece3a2bb635e331ecca |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle COPY in VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107949 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
1769cccfc8f248a34ab794b787752e2bdd9b21b3 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle COPY in VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107949 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
1dac4614d6666137fab13240cbd1988227389164 |
09-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107943 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
bf87e2491789d6ff788629e22e93d0c1ca02ae85 |
09-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107943 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f028ffdf273a61cada6ffe2f838bd0c6770681f1 |
09-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
Reenable DAG combining for vector shuffles. It looks like it was temporarily disabled and then never turned back on again. Adjust some tests, one because this change avoids an unnecessary instruction, and the other to make it continue testing what it was intended to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f1d93ca920a106067d5773d57c85370a7efffe96 |
09-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
Reenable DAG combining for vector shuffles. It looks like it was temporarily disabled and then never turned back on again. Adjust some tests, one because this change avoids an unnecessary instruction, and the other to make it continue testing what it was intended to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fed1703144c218146aa0c1aab7c7b8a844b332ed |
09-Jul-2010 |
Stuart Hastings <stuart@apple.com> |
Reverting r107918 and r107919. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107930 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
99cfb69f17ccf6dca7378fe6d1c60758e5cabd1f |
09-Jul-2010 |
Stuart Hastings <stuart@apple.com> |
Reverting r107918 and r107919. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107930 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8918fb9ec1c75be9e2ee69a3a15be54d5ad3378a |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Fix broken isCopy handling in TrimLiveIntervalToLastUse" This reverts commit 107921. It broke the clang self host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107926 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
21e9445952d12ac4ec72ff59506e2b78e469f208 |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Fix broken isCopy handling in TrimLiveIntervalToLastUse" This reverts commit 107921. It broke the clang self host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107926 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1b2773bcc4e3443aa1e981c7849e941b00503f08 |
09-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Relax assertion. In optimized code, it is possible that first instruction is coming from a inlined function. This fixes PR7596 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107923 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0afbf23453a7ea2ed2705ca350ea64629852558c |
09-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Relax assertion. In optimized code, it is possible that first instruction is coming from a inlined function. This fixes PR7596 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107923 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
29b3696ea35b833f392f87faddff61f24a496833 |
09-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Extension of r107506. Make sure that we don't mark a function as having a call if the inline ASM doesn't need a stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c930cbcada7c62bb474019f4ce21bd6387d1c3f5 |
09-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Extension of r107506. Make sure that we don't mark a function as having a call if the inline ASM doesn't need a stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dffba45bcead389e957392f8cb5daef087f2c67c |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix broken isCopy handling in TrimLiveIntervalToLastUse git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107921 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
7cc4f9cd282165940e121745aa5762bb69a98b9b |
09-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix broken isCopy handling in TrimLiveIntervalToLastUse git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107921 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
43e24508090b94c1be5928a5c087baebeb04c49c |
09-Jul-2010 |
Stuart Hastings <stuart@apple.com> |
Fix decl/def debug info for template functions. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107919 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c0e2639a3450e5cca5cd5082cef55a64bbd27ad4 |
09-Jul-2010 |
Stuart Hastings <stuart@apple.com> |
Fix decl/def debug info for template functions. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107919 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d36a93d65fd9c67fb529eac11ec3a18050e02365 |
08-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Reuse DIEInteger for 1. This is frequently used while emitting an attribute using dwarf::DW_FORM_flag form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107903 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ca76f6f57cc50fcdbdb661ea80f7ffd42220fdbe |
08-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Reuse DIEInteger for 1. This is frequently used while emitting an attribute using dwarf::DW_FORM_flag form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107903 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
063fc74fa18287afc12477192f73d059e9947f6a |
08-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Clean up scavengeRegister() a bit to prefer available regs, which allows the simplification of frame index register scavenging to not have to check for available registers directly and instead just let scavengeRegister() handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107880 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
ed903d746d96d071305b8182680595ba281b3f12 |
08-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Clean up scavengeRegister() a bit to prefer available regs, which allows the simplification of frame index register scavenging to not have to check for available registers directly and instead just let scavengeRegister() handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107880 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
4dc8a1eda314b03118daf8dbd1e2c237c8082eea |
08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert EXTRACT_SUBREG to COPY when emitting machine instrs. EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead. Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg(). The isMoveInstr hook will be removed later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107879 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineCSE.cpp
ptimizeExts.cpp
rocessImplicitDefs.cpp
egAllocLinearScan.cpp
egisterCoalescer.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
0bc25f40402f48ba42fc45403f635b20d90fabb3 |
08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert EXTRACT_SUBREG to COPY when emitting machine instrs. EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead. Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg(). The isMoveInstr hook will be removed later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107879 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineCSE.cpp
ptimizeExts.cpp
rocessImplicitDefs.cpp
egAllocLinearScan.cpp
egisterCoalescer.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
68abc43d979f4218553846cd099f5a64eb5e62f2 |
08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove references to INSERT_SUBREG after de-SSA. Fix X86InstrInfo::convertToThreeAddressWithLEA to generate COPY instead of INSERT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107878 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
rocessImplicitDefs.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
|
5c00e077952d14899c3fc26709c7b2dfd36d0209 |
08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove references to INSERT_SUBREG after de-SSA. Fix X86InstrInfo::convertToThreeAddressWithLEA to generate COPY instead of INSERT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107878 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
rocessImplicitDefs.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
|
8ab9612964e9eda2ec3bd968a37efa4613b1a029 |
08-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Merge the duplicated iabs optimization in DAGCombiner and let it detected a few more idioms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cde51108def63dbb68ffd47f8950b8bdd43dd074 |
08-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Merge the duplicated iabs optimization in DAGCombiner and let it detected a few more idioms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7eb196dc0bcb2af3b6721bb5b2b8409f5fab301e |
08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add TargetInstrInfo::copyPhysReg hook and use it from LowerSubregs. This target hook is intended to replace copyRegToReg entirely, but for now it calls copyRegToReg. Any remaining calls to copyRegToReg wil be replaced by COPY instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107854 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
argetInstrInfoImpl.cpp
|
3651d92d91062ea4b1ee8b2a88eca03bd39e1968 |
08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add TargetInstrInfo::copyPhysReg hook and use it from LowerSubregs. This target hook is intended to replace copyRegToReg entirely, but for now it calls copyRegToReg. Any remaining calls to copyRegToReg wil be replaced by COPY instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107854 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
argetInstrInfoImpl.cpp
|
af52ee40fb60099ddec2b896aa4c759ef05b70c8 |
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert 107840 107839 107813 107804 107800 107797 107791. Debug info intrinsics win for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107850 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f59514152511694d46ca8b8d2db466d256ab5759 |
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert 107840 107839 107813 107804 107800 107797 107791. Debug info intrinsics win for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107850 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
7a5dff91a3068ae6e2898db5814d6494fd1b13a8 |
08-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
When processing frame index virtual registers, consider all available registers (if there are any) and use the one which remains available for the longest rather than just using the first one. This should help enable better re-use of the loaded frame index values. rdar://7318760 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107847 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
d9642faf7c66273eb3a8d99e5fa6b542da5374dd |
08-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
When processing frame index virtual registers, consider all available registers (if there are any) and use the one which remains available for the longest rather than just using the first one. This should help enable better re-use of the loaded frame index values. rdar://7318760 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107847 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
6421ef27c5ea03ae55e4cbaa4775242809f09d6e |
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't forward-declare registers for static allocas, which we'll prefer to materialize as local constants. This fixes the clang bootstrap abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
49dcb0f9ec865fd5474e5b552723adab2d7bf840 |
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't forward-declare registers for static allocas, which we'll prefer to materialize as local constants. This fixes the clang bootstrap abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ff6f2bc8452b9fed3bc951818fa1b5b62cb13862 |
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix -fast-isel-abort to check the right instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107839 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
61b7cea126a0178045839093c98f7a75b6620b72 |
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix -fast-isel-abort to check the right instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107839 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
82aaacec7c2d63a23febea743bba79186807dbec |
08-Jul-2010 |
Devang Patel <dpatel@apple.com> |
One MDNode may be used to create regular DIE as well as abstract DIE. Keep track of abstract subprogram DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8aa61477e3cbc6ebc399274042799a5cf09629a1 |
08-Jul-2010 |
Devang Patel <dpatel@apple.com> |
One MDNode may be used to create regular DIE as well as abstract DIE. Keep track of abstract subprogram DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0284a60ee82d70fdd48c779caae72470cdae3643 |
08-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107820 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
bcc8017c738e92d9c1af221b11c4916cb524184e |
08-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107820 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
0f532f2930ca2bcbd8ccdd6015cdbbe8f77da0cb |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Not all custom inserters create new basic blocks. If the inserter didn't create a new block, don't reset the insert position. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
5c480432b504bfbe8b3ba028f5f48e7e2e2f1f1e |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Not all custom inserters create new basic blocks. If the inserter didn't create a new block, don't reset the insert position. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
0f23f26115745426b34568a39acdb8d2f130c3ba |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Rename couple of maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107810 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
869aa463c82b1a9a92d3683d532fc106e2b96575 |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Rename couple of maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107810 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
84afdd5f7b616d05f3dff952d8b84428884e3671 |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
80 cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107807 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6140962aba758e758b04bd581bc6ef050f31549f |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
80 cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107807 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
34a97b220a7843f460ff3e700d81e5859f3cd50d |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Implement bottom-up fast-isel. This has the advantage of not requiring a separate DCE pass over MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107804 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
4df83ed159f21fdf73a57729c3e9d8c9fcd73607 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Implement bottom-up fast-isel. This has the advantage of not requiring a separate DCE pass over MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107804 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
002cc40ca6295586a9d71fb2dd9c7c3b37d0bac1 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add X86FastISel support for return statements. This entails refactoring a bunch of stuff, to allow the target-independent calling convention logic to be employed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107800 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
f423a69839c4810b890f8a8b09fb8cfbd6bf0139 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add X86FastISel support for return statements. This entails refactoring a bunch of stuff, to allow the target-independent calling convention logic to be employed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107800 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
c5d70bbbb306a822cc9f1713ab823f05fbff743b |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Update the insert position after scheduling, which may change the position when emitting multiple blocks when executing a custom inserter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5fc3da0665c6dab92a4f21f34e75f9b929dc88d5 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Update the insert position after scheduling, which may change the position when emitting multiple blocks when executing a custom inserter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fb582e2dbbe5652e50fd6023b5f58c77a23aa011 |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107796 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
cc87bfb59b34a0543b48d93f661f2abaee6b4cee |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107796 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
a0b270b49bb302c67a37e9918ce8f9258489c916 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix debugging strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107795 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
643fffe429cc467584c795f6177741944729e0a5 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix debugging strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107795 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
29e8a67092e97687732a760db9a45094e5a63a7c |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Give FunctionLoweringInfo an MBB member, avoiding the need to pass it around everywhere, and also give it an InsertPt member, to enable isel to operate at an arbitrary position within a block, rather than just appending to a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
eabaed26c3921453d824b71a93557c32132f4fdd |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Give FunctionLoweringInfo an MBB member, avoiding the need to pass it around everywhere, and also give it an InsertPt member, to enable isel to operate at an arbitrary position within a block, rather than just appending to a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
d74a2f95daef7adbedd8758eaaf419ee788c78af |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Simplify FastISel's constructor by giving it a FunctionLoweringInfo instance, rather than pointers to all of FunctionLoweringInfo's members. This eliminates an NDEBUG ABI sensitivity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
a4160c3434b08288d1f79f1acbe453d1b9610b22 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Simplify FastISel's constructor by giving it a FunctionLoweringInfo instance, rather than pointers to all of FunctionLoweringInfo's members. This eliminates an NDEBUG ABI sensitivity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
27ba216a1c7405ff956c798758dcb1f3ae2bf51d |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Move FunctionLoweringInfo.h out into include/llvm/CodeGen. This will allow target-specific fast-isel code to make use of it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107787 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
4c3fd9f92f89810d659973d2666ab729758de64a |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Move FunctionLoweringInfo.h out into include/llvm/CodeGen. This will allow target-specific fast-isel code to make use of it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107787 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f53e8cd8b1639a358a97deaea7ee5abae7c560ad |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Split the SDValue out of OutputArg so that SelectionDAG-independent code can do calling-convention queries. This obviates OutputArgReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107786 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
electionDAG/SelectionDAGBuilder.cpp
|
c9403659a98bf6487ab6fbf40b81628b5695c02e |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Split the SDValue out of OutputArg so that SelectionDAG-independent code can do calling-convention queries. This obviates OutputArgReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107786 91177308-0d34-0410-b5e6-96231b3b80d8
allingConvLower.cpp
electionDAG/SelectionDAGBuilder.cpp
|
89023e9437883ef7de1b45671d85c62148a86e49 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Move CallingConvLower.cpp out of the SelectionDAG directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107781 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
allingConvLower.cpp
electionDAG/CMakeLists.txt
electionDAG/CallingConvLower.cpp
|
2f2b0abbac946a6e37ffa4a9775f0af5b91e723c |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Move CallingConvLower.cpp out of the SelectionDAG directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107781 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
allingConvLower.cpp
electionDAG/CMakeLists.txt
electionDAG/CallingConvLower.cpp
|
9594c1e1bc0e0b3dba1957cb6a95497ab1165b82 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix more places assuming subregisters have live intervals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107780 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
fcb4ccd7aa674dba05f50de4083944efef6610d3 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix more places assuming subregisters have live intervals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107780 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1dc212a2004ab8e28c35d47202d010306cd032c0 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add a getFirstNonPHI utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107778 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
d463a7446402f0771465fe66fe0a7d9f72534902 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add a getFirstNonPHI utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107778 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
205f02e47fa577e263b11fd132c36c378303b243 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Remove references to INSERT_SUBREG after de-SSA" r107725. Buildbot breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107744 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
rocessImplicitDefs.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
|
4b76ffc1ffca2ed016467e916d5223515b485592 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Remove references to INSERT_SUBREG after de-SSA" r107725. Buildbot breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107744 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
rocessImplicitDefs.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
|
fb695a291ec7ad5be9f4c13eb7df14c903d4ad15 |
07-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
By default, the eh.sjlj.setjmp/longjmp intrinsics should just do nothing rather than assuming a target will custom lower them. Targets which do so should exlicitly mark them as having custom lowerings. PR7454. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107734 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c66e150b2cb1f2f8e2f4eb124b9177ffc6ef3a74 |
07-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
By default, the eh.sjlj.setjmp/longjmp intrinsics should just do nothing rather than assuming a target will custom lower them. Targets which do so should exlicitly mark them as having custom lowerings. PR7454. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107734 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5f2e4f2abbefe50ff5d7c7fa870b583db4871922 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove references to INSERT_SUBREG after de-SSA git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107732 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
rocessImplicitDefs.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
|
d3b376b4483d816367dd28a41bcbccede1cdcbf0 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove references to INSERT_SUBREG after de-SSA git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107732 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
rocessImplicitDefs.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
woAddressInstructionPass.cpp
|
b8c57c8a979c5b5e0176b0027019f1b574b1af27 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert INSERT_SUBREG to COPY in TwoAddressInstructionPass. INSERT_SUBREG will now only appear in SSA machine instructions. Fix the handling of partial redefs in ProcessImplicitDefs. This is now relevant since partial redef COPY instructions appear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107726 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
rocessImplicitDefs.cpp
woAddressInstructionPass.cpp
|
ed2185e171a86b8c0e166803fd4066383a6cff08 |
07-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert INSERT_SUBREG to COPY in TwoAddressInstructionPass. INSERT_SUBREG will now only appear in SSA machine instructions. Fix the handling of partial redefs in ProcessImplicitDefs. This is now relevant since partial redef COPY instructions appear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107726 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
rocessImplicitDefs.cpp
woAddressInstructionPass.cpp
|
42682b49e727d6c668372d8aa644811105741962 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext. SelectBasicBlock doesn't needs its BasicBlock argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
c9af33c6854afe7b082af2d892ec5f05dfa383c7 |
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext. SelectBasicBlock doesn't needs its BasicBlock argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
de09e922a6a82ff48d31328606f691591ae8fa19 |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Propagate debug loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
0d881dabc1a4e1aefad6dd38de166d8358285638 |
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Propagate debug loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
daa41b4ed9f6828f017691815f79447de913e4eb |
06-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
One more case assuming that subregs have live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107700 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5ee99923c1d4cb92b6cbdf6406c0df86ccbcc4df |
06-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
One more case assuming that subregs have live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107700 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
3371cce92f3c640cf4f2330d02281ffba41f82c7 |
06-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix buildbot breakage where a def is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107698 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
813eedd2072edc2db3ca8c5306f7f269d372f45a |
06-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix buildbot breakage where a def is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107698 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
35d76110c9d9b3955ff2f4f541658d4e01e57e44 |
06-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more forgiving when calculating alias interference for physreg coalescing. It is OK for an alias live range to overlap if there is a copy to or from the physical register. CoalescerPair can work out if the copy is coalescable independently of the alias. This means that we can join with the actual destination interval instead of using the getOrigDstReg() hack. It is no longer necessary to merge clobber ranges into subregisters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107695 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
9c2e7ca3513bf41ad4dd9ff807e0d2742f592722 |
06-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more forgiving when calculating alias interference for physreg coalescing. It is OK for an alias live range to overlap if there is a copy to or from the physical register. CoalescerPair can work out if the copy is coalescable independently of the alias. This means that we can join with the actual destination interval instead of using the getOrigDstReg() hack. It is no longer necessary to merge clobber ranges into subregisters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107695 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
3dd527d9807fa0c5f81fbbf92858e0362226b327 |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r107655 with fixes; insert the pseudo instruction into the block before calling the expansion hook. And don't put EFLAGS in a mbb's live-in list twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107691 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
electionDAG/InstrEmitter.cpp
|
14152b480d09c7ca912af7c06d00b0ff3912e4f5 |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r107655 with fixes; insert the pseudo instruction into the block before calling the expansion hook. And don't put EFLAGS in a mbb's live-in list twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107691 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
electionDAG/InstrEmitter.cpp
|
576bd0a9c1b476b98c06599234cea8ea62067765 |
06-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Fix to 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107684 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
894339e19fbb45a729008decd1d050ee518589a4 |
06-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Fix to 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107684 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
8d338e2aadd188d85c27555b7656012876dc25a4 |
06-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
tighten up this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107670 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
f8bd392dce26226249b99bc1fa8d112602da3e63 |
06-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
tighten up this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107670 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
17ce26121c7897de51b0206bf012c32e2f2cc53a |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert r107655. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107668 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
258c58cc6257cf61c9bdbb9c4cea67ba2691adf0 |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert r107655. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107668 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
d00b3e5a1dcdc5b1b6af951ef43a51215b3353c4 |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add versions of OutputArgReg, AnalyzeReturn, and AnalyzeCallOperands which do not depend on SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107666 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
aa8c19405ac3891ee7fbea1a509c6774ca7a5b59 |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add versions of OutputArgReg, AnalyzeReturn, and AnalyzeCallOperands which do not depend on SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107666 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
0957314cf283ecff14b085645bc3e9f31f7cd680 |
06-Jul-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix a major regression on COFF targets introduced by r103267: 'discardable' section means that it is used only during the program load and can be discarded afterwards. This way *only* debug sections can be discarded, but not the opposite. Seems like the copy-and-pasto from ELF code, since there it contains the reverse flag ('alloc'). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107658 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
36335be3b95f856b7eb7e0766e01ba423315e1ab |
06-Jul-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix a major regression on COFF targets introduced by r103267: 'discardable' section means that it is used only during the program load and can be discarded afterwards. This way *only* debug sections can be discarded, but not the opposite. Seems like the copy-and-pasto from ELF code, since there it contains the reverse flag ('alloc'). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107658 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
56f3378de6b873302cbf2f69582b29811cfd919b |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of custom-inserter functions to handle the case where the pseudo instruction is not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107655 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
b81c771c0d9ab5a980caf3383932b051eafd1a39 |
06-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of custom-inserter functions to handle the case where the pseudo instruction is not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107655 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
2c36e55d3f9bd31b94aa3d7d0116726e8f94cc61 |
06-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Fix up -fstack-protector on linux to use the segment registers. Split out testcases per architecture and os now. Patch from Nelson Elhage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107640 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
f7a0c7bf8bc8318ed28d889c9a56437ab3e91385 |
06-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Fix up -fstack-protector on linux to use the segment registers. Split out testcases per architecture and os now. Patch from Nelson Elhage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107640 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
062eb0cf4c787f574211dc3a80b45a77ab57514b |
05-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
more tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
32b4b5aea6dc38ac5aaff56fc717aebf188e39c9 |
05-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
more tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
81fa5fa294acd98d86c9f59b102c342c93260390 |
05-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
random tidying git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
598751ed2544291ba623e013b4e0b61bf56ca9c4 |
05-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
random tidying git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
7e8c0dc8db3dec3ddb2c2c0aa593b16fe97fd3d4 |
05-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107602 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b1e11455d1cf4df081a9593660d194c1a53b4334 |
05-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107602 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fdceec266f9efd7c1c7ba6a4a3027e935538e932 |
04-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Infer alignments of fixed frame objects when they are constructed. This ensures remat'ed loads from fixed slots have the right alignments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107591 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
|
f2f490368797fff899e8025133f10c37e3a2ebe5 |
04-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Infer alignments of fixed frame objects when they are constructed. This ensures remat'ed loads from fixed slots have the right alignments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107591 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
|
b6a40f48353acccac9fe0be0992f3a6d0f6bf202 |
04-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Proper indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d9cb7ca388c400e3c7a509c00d4cf63031de0dde |
04-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Proper indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b336f9b4deb8c3dc9c6d867112c8409638a3fd17 |
03-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107556 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
00e840f4698633123ca799493c54f67ae20756df |
03-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107556 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
9ff54089b59fb811a3530cf96ebb5c946cbb140f |
03-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove isSS argument from CreateFixedObject. Fixed objects cannot be spill slots so it's always false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107550 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
|
ed2ae136d29dd36122d2476801e7d7a86e8301e3 |
03-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove isSS argument from CreateFixedObject. Fixed objects cannot be spill slots so it's always false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107550 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
|
a87d098f0f4caff32ab45a5ad8653c1a4d4c3a8e |
03-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Detect and handle COPY in many places. This code is transitional, it will soon be possible to eliminate isExtractSubreg, isInsertSubreg, and isMoveInstr in most places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107547 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineCSE.cpp
ptimizePHIs.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
egAllocFast.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
273f7e42994a5bce0614d04d96dbfdf05fd652e5 |
03-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Detect and handle COPY in many places. This code is transitional, it will soon be possible to eliminate isExtractSubreg, isInsertSubreg, and isMoveInstr in most places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107547 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineCSE.cpp
ptimizePHIs.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
egAllocFast.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
1e8deafc52f6b2e25fe155866eb7247317724936 |
03-Jul-2010 |
Eric Christopher <echristo@apple.com> |
80-col fixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107537 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
cd075a4fb3b3ff52c68903540e1540b68500df4c |
03-Jul-2010 |
Eric Christopher <echristo@apple.com> |
80-col fixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107537 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
6f754853956e1dc90236b64ffc5c5d00aea6da10 |
03-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a new target independent COPY instruction and code to lower it. The COPY instruction is intended to replace the target specific copy instructions for virtual registers as well as the EXTRACT_SUBREG and INSERT_SUBREG instructions in MachineFunctions. It won't we used in a selection DAG. COPY is lowered to native register copies by LowerSubregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107529 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
a4e1ba53ddedd08669886b2849926bb33facc198 |
03-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a new target independent COPY instruction and code to lower it. The COPY instruction is intended to replace the target specific copy instructions for virtual registers as well as the EXTRACT_SUBREG and INSERT_SUBREG instructions in MachineFunctions. It won't we used in a selection DAG. COPY is lowered to native register copies by LowerSubregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107529 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
3532d72bae536ecc7f59a9dc83689a8b7c219207 |
02-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Custom inserters (e.g., conditional moves in Thumb1 can introduce new basic blocks, and if used as a function argument, that can cause call frame setup / destroy pairs to be split across a basic block boundary. That prevents us from doing a simple assertion to check that the pairs match and alloc/ dealloc the same amount of space. Modify the assertion to only check the amount allocated when there are matching pairs in the same basic block. rdar://8022442 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107517 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
6627ac040a14f3a79564fd6ec030f9361f81d20e |
02-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Custom inserters (e.g., conditional moves in Thumb1 can introduce new basic blocks, and if used as a function argument, that can cause call frame setup / destroy pairs to be split across a basic block boundary. That prevents us from doing a simple assertion to check that the pairs match and alloc/ dealloc the same amount of space. Modify the assertion to only check the amount allocated when there are matching pairs in the same basic block. rdar://8022442 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107517 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4cb1de56a6ed9c5d12360773ea32cd8e8b635e7f |
02-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Two-address pass should not assume unfolding is always successful. - X86 unfolding should check if the instructions being unfolded has memoperands. If there is no memoperands, then it must assume conservative alignment. If this would introduce an expensive sse unaligned load / store, then unfoldMemoryOperand etc. should not unfold the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107509 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
98ec91ea80e042907aac8d3cbd9614d29f6cba45 |
02-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Two-address pass should not assume unfolding is always successful. - X86 unfolding should check if the instructions being unfolded has memoperands. If there is no memoperands, then it must assume conservative alignment. If this would introduce an expensive sse unaligned load / store, then unfoldMemoryOperand etc. should not unfold the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107509 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
908c105be3c4c20123d2d45f434386039aada840 |
02-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Propagate the AlignStack bit in InlineAsm's to the PrologEpilog code, and use it to determine whether the asm forces stack alignment or not. gcc consistently does not do this for GCC-style asms; Apple gcc inconsistently sometimes does it for asm blocks. There is no convenient place to put a bit in either the SDNode or the MachineInstr form, so I've added an extra operand to each; unlovely, but it does allow for expansion for more bits, should we need it. PR 5125. Some existing testcases are affected. The operand lists of the SDNode and MachineInstr forms are indexed with awesome mnemonics, like "2"; I may fix this someday, but not now. I'm not making it any worse. If anyone is inspired I think you can find all the right places from this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107506 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
achineInstr.cpp
rologEpilogInserter.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f1e309eb4862459a76445942ba4dafc433b6f317 |
02-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Propagate the AlignStack bit in InlineAsm's to the PrologEpilog code, and use it to determine whether the asm forces stack alignment or not. gcc consistently does not do this for GCC-style asms; Apple gcc inconsistently sometimes does it for asm blocks. There is no convenient place to put a bit in either the SDNode or the MachineInstr form, so I've added an extra operand to each; unlovely, but it does allow for expansion for more bits, should we need it. PR 5125. Some existing testcases are affected. The operand lists of the SDNode and MachineInstr forms are indexed with awesome mnemonics, like "2"; I may fix this someday, but not now. I'm not making it any worse. If anyone is inspired I think you can find all the right places from this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107506 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
achineInstr.cpp
rologEpilogInserter.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
4bfd5155632750ee51cf7b29cf1320b0fa12dd6d |
02-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove invalid assert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107505 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
6bae55017c49e59746a65cef2513f031bbcebfce |
02-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove invalid assert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107505 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
917990fb72dca7c91b04232629f6cd5f1b9b4382 |
02-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly handle debug values during inline spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107503 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
3b9c7ebc444ccc311a5e4125b904f9767244577a |
02-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly handle debug values during inline spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107503 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
2729776a6786af81ccc2ff9e60fa5d20c4247407 |
02-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rematerialize as much as possible before inserting spills and reloads. This allows us to recognize the common case where all uses could be rematerialized, and no stack slot allocation is necessary. If some values could be fully rematerialized, remove them from the live range before allocating a stack slot for the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107492 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
8de3b1eb868fc5e9b6acb334ee487d943863f810 |
02-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rematerialize as much as possible before inserting spills and reloads. This allows us to recognize the common case where all uses could be rematerialized, and no stack slot allocation is necessary. If some values could be fully rematerialized, remove them from the live range before allocating a stack slot for the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107492 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
32a1ca986d7ea7912e00ae57f78b921b62837462 |
02-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
80-column and trailing whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6e9926108a69efbc11f1cadf947e98500e4d4228 |
02-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
80-column and trailing whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cafd7221ff055706e108f6c2d992bacb6b97f8e9 |
02-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
grammar tweaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ee7f8b5f058174a55372159bc23088198e5f5991 |
02-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
grammar tweaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7831c925340089b721aa1c93f30e6b407024d56a |
02-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Rename CreateReg to CreateRegs, and MakeReg to CreateReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107451 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
89496d0eb73ab8771b27b3d9c1db6492d8eefc3a |
02-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Rename CreateReg to CreateRegs, and MakeReg to CreateReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107451 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
73b3a72bb9b93a3d33b490fd415c2c186a4f2035 |
02-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Make the "linker_private" linkage type emit a non-weak symbol to the file. It will still be stripped by the linker when it generates the final image. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
eabd735c9a87203a567caf1ef117aeae9d288aaa |
02-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Make the "linker_private" linkage type emit a non-weak symbol to the file. It will still be stripped by the linker when it generates the final image. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f823966e3fdbd57c5f85cc1ce856c7435c474bf4 |
01-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Implement the "linker_private_weak" linkage type. This will be used for Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. However, this linkage isn't specific to Objective-C. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". Currently only supported on Darwin platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107433 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5e721d768254a920b78b9129d79a84c0163cb3f4 |
01-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Implement the "linker_private_weak" linkage type. This will be used for Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. However, this linkage isn't specific to Objective-C. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". Currently only supported on Darwin platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107433 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c7be3133a7438d16d32c98d532fe78143f4d8745 |
01-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Do not require line number entry for undefined local variable. This is a regression caused by r106792 and caught by gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107430 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7fb231cbecb18634ef4af8d87ab82b6987f664d8 |
01-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Do not require line number entry for undefined local variable. This is a regression caused by r106792 and caught by gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107430 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
58b651de4926fb540218be70049c896d0ec53bb9 |
01-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Pass the target instance to the AsmParser constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107426 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
9186fa6b0c8806786cae78bed50f95d1c7ce2b00 |
01-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Pass the target instance to the AsmParser constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107426 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
9e6742e75a3828fe4ccad95cde287c9dab159cf5 |
01-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Move COFF enumeration constants to llvm/Support/COFF.h, patch by Michael Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107418 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
94610588af55ae7d16ba7d72d1e68324631ec249 |
01-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Move COFF enumeration constants to llvm/Support/COFF.h, patch by Michael Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107418 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
21baf9a969a3edf80b3bc5206308963ee7ed93fb |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Temporarily disable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107393 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
63b95a6f820d768797b28bbfd5c12fabf74b7f1d |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Temporarily disable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107393 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
4852d8012f8dd3f14a3c1f2c5a21d2e09ff0b6af |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use FuncInfo's isExportedInst accessor method instead of doing the work manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c6f00e701e744fdf73508d47ff0cc75817ba8474 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use FuncInfo's isExportedInst accessor method instead of doing the work manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
da3b71300d42cc705f31a4382f6d9a3a36ea450f |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Rename CreateRegForValue to CreateReg, and change its argument from a Value to a Type, because it doesn't actually care about the Value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
ffda6bac113d4c079b534b1bfa7aea5498ee3e83 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Rename CreateRegForValue to CreateReg, and change its argument from a Value to a Type, because it doesn't actually care about the Value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
eef01c1f7105bdcda88be806454bd3f58882aac6 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fast isel no longer needs DeadMachineInstrElim to clean up after it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107381 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a528bc0e8af8e4d70ba03e03319cce7c5775e4ea |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fast isel no longer needs DeadMachineInstrElim to clean up after it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107381 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ece06e65c9d40925651216845e0d731d5365d2e3 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Teach fast-isel to avoid loading a value from memory when it's already available in a register. This is pretty primitive, but it reduces the number of instructions in common testcases by 4%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7fbcc98f20c062273bf16ce9832f40e5b8a205c6 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Teach fast-isel to avoid loading a value from memory when it's already available in a register. This is pretty primitive, but it reduces the number of instructions in common testcases by 4%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ab845e29e214cb54adaa26e719fc498eb4e7ec90 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Enable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
20d4be151b54feb18aa1e5cc04033a4aa64137ae |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Enable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
783c3f3620fe7ba0077c078ce66fe60300325415 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r106422, splitting the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, with fixes to use DenseMaps safely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
28a173581c67cda78b2febd24d10edb13f760c4c |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r106422, splitting the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, with fixes to use DenseMaps safely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
d9ce03f61cea9dc486bde67a2d256611bc74ea00 |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't use operator[] here, because it's not desirable to insert a default value if the search fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c25ad637662ec24880a7eadad69b1be311ea61ae |
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't use operator[] here, because it's not desirable to insert a default value if the search fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
652afaf8b379e44021fe9d64ca8e401c793a3be6 |
01-Jul-2010 |
Mikhail Glushenkov <foldr@codedgers.com> |
Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
dd2ad8432f104282ff43c94457f474ea0a264175 |
01-Jul-2010 |
Mikhail Glushenkov <foldr@codedgers.com> |
Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
651acac957560649e4b349bf0766a71f201f9fbf |
01-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add memory operand folding support to InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107355 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
e72a5c5e2e3d09ef02bae00620d499d3e59c8a7f |
01-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add memory operand folding support to InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107355 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
|
5cffd801c77dac1bca59ff953c8b98106f26e9a8 |
01-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add support for rematerialization to InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107351 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
piller.h
|
9e55afbf88f4853ac94b6a0ac021a89c5c929d6b |
01-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add support for rematerialization to InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107351 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
piller.h
|
d7cc7fe8c3e19967292c240d9b176a9e6ccdc7fc |
01-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use the catch-all selectors we already found when converting them to use the correct catch-all value. This saves having to iterate through all of the selectors in the program again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107345 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
d9e3b2b547ea4edcf51b2d4a21bcc05ba10e4ef8 |
01-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use the catch-all selectors we already found when converting them to use the correct catch-all value. This saves having to iterate through all of the selectors in the program again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107345 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
6c1547368f10302df81ea55ede12db645284f872 |
01-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Handle array and vector typed parameters in sjljehprepare like we do structs. rdar://8145832 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107332 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
e70fc8ea6427934ee780db68d72aca07c629e0cd |
01-Jul-2010 |
Jim Grosbach <grosbach@apple.com> |
Handle array and vector typed parameters in sjljehprepare like we do structs. rdar://8145832 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107332 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
97d5c397efa7d205f2726f903d78f312d21c3c56 |
30-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
grammar tweak in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
d27946d1d4272d7e2bbee00fac020dc8147dfd25 |
30-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
grammar tweak in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
5d60d231feb5e098d4fafc015ee3e971b0c42314 |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Some fool committed without testing (or even building) first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107307 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
d540801e13d1aef4f074f8c32115f55104130e28 |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Some fool committed without testing (or even building) first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107307 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
1a055fc3c3033bce92c276f0a3b3d487ca258f02 |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to track spill slot uses in VirtRegMap when inserting loads and stores. LocalRewriter::runOnMachineFunction uses this information to mark dead spill slots. This means that InlineSpiller now also works for functions that spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107302 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
piller.cpp
|
61e4a0bc10fa1d36d58935d42d248180993d65bb |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to track spill slot uses in VirtRegMap when inserting loads and stores. LocalRewriter::runOnMachineFunction uses this information to mark dead spill slots. This means that InlineSpiller now also works for functions that spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107302 91177308-0d34-0410-b5e6-96231b3b80d8
nlineSpiller.cpp
piller.cpp
|
e10f14bdfc65ef0f752c913eb41a1b6cfc9993e9 |
30-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
Remove an unused variable. The call to getRoot has side-effects, so this could break something (but doesn't seem to). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3f278ce9997c1885d302afb24619ee4d9c8707e5 |
30-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
Remove an unused variable. The call to getRoot has side-effects, so this could break something (but doesn't seem to). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
27265c6024e8e030368af774a37e81d5f7b02a44 |
30-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107282 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
e767e6bbb78dae999040a6123d2314a7ed11a5c4 |
30-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107282 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
a8c1d34c5e4722e4385838f04deb50bde8a06a7f |
30-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
37387d52883ac7f99826ba627fbda9d180e6656b |
30-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f292c8747cbcdfc0189b00c794b9f2307172c234 |
30-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use CallSite::arg_end instead of CallInst::op_end git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107276 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
d0fcab915441c0748667ef981ef85989abd28b11 |
30-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use CallSite::arg_end instead of CallInst::op_end git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107276 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
84e15a88a41aedb501b2e27a552e69e8ca33541e |
30-Jun-2010 |
John Mosby <ojomojo@gmail.com> |
Remove trailing whitespace, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107244 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
9f71f801b51cdc7df388b2693398cfea69fe67c7 |
30-Jun-2010 |
John Mosby <ojomojo@gmail.com> |
Remove trailing whitespace, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107244 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
a6aad8be44ec7487e73b6f039bc4725fef560cf8 |
30-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Do not construct DIE for already processed MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107237 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
90e19aad7dae346a7dc1a66f07bfe13038e67349 |
30-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Do not construct DIE for already processed MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107237 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
21958edc58067efccbe30899ac674df6a68ced6b |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use skipInstruction() as a simpler way of iterating over instructions using SrcReg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107234 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
170c41f3d50b7172437d90895a033daeb8d7563a |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use skipInstruction() as a simpler way of iterating over instructions using SrcReg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107234 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d14f306eb1061fa6cba9f6f1ddd26b1cb35e56b6 |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use clEnumValN macro to work around keyword clash git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107233 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
d5bd68ed08a414b00721c3c556459d0f295ea4d5 |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use clEnumValN macro to work around keyword clash git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107233 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
014bba213336acc237d464d594d8dd9fb865e0da |
30-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Add variables into a scope before constructing scope DIE otherwise variables won't be included DIE tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107228 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1d68d21bae7602fd1e561a85de9a736dc16eb3e2 |
30-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Add variables into a scope before constructing scope DIE otherwise variables won't be included DIE tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107228 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c5d099bb328827d677c2af983ac7b22d953749e3 |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Begin implementation of an inline spiller. InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107227 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
nlineSpiller.cpp
piller.cpp
|
914f2ff9e6969214d84a75745ec2851f045000f7 |
30-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Begin implementation of an inline spiller. InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107227 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
nlineSpiller.cpp
piller.cpp
|
e066d26445ddf4114e2738021273126206cc4822 |
30-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r107205 and r107207. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
07d317711781d8c9268f7d6afcf1ba7eadf1d127 |
30-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r107205 and r107207. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
abb79d9b00c05bee279441be7e3a12ab12743965 |
30-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Print InlinedAt location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107214 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e025e966a863229feb7ad188f520ce213bb30a34 |
30-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Print InlinedAt location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107214 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2fce0c9f2e1a59313a509ac2cdc5499dc0f3f7e3 |
29-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Print InlinedAt location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107208 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
da0e89f4c4057114fe7236fd001e9ef6d836ee82 |
29-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Print InlinedAt location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107208 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f8b6137ea514c38511dbeedde9c02e27c937cad3 |
29-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Introducing the "linker_weak" linkage type. This will be used for Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107205 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
207855cff9b4811004b9720f28a5bd0adf3784b7 |
29-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Introducing the "linker_weak" linkage type. This will be used for Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107205 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
dd38506815a0144a290312e6150b01044fe39a6f |
29-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Do not hardcode DW_AT_stmt_list value. Inspired by Artur Pietrek. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1e4782d6f95c065d06ed53eb96036737beb66bef |
29-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Do not hardcode DW_AT_stmt_list value. Inspired by Artur Pietrek. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
78e2c3c56b3f494fe2bd50f3948934c05ffec287 |
29-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix the handling of partial redefines in the fast register allocator. A partial redefine needs to be treated like a tied operand, and the register must be reloaded while processing use operands. This fixes a bug where partially redefined registers were processed as normal defs with a reload added. The reload could clobber another use operand if it was a kill that allowed register reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107193 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
d1303d2a66241c70e0e35dac371636c883235df8 |
29-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix the handling of partial redefines in the fast register allocator. A partial redefine needs to be treated like a tied operand, and the register must be reloaded while processing use operands. This fixes a bug where partially redefined registers were processed as normal defs with a reload added. The reload could clobber another use operand if it was a kill that allowed register reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107193 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
73fe9445048d911d093704eb98e0ef0949590f7d |
29-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a register scavenger crash when dealing with undefined subregs. The LowerSubregs pass needs to preserve implicit def operands attached to EXTRACT_SUBREG instructions when it replaces those instructions with copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107189 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
5d52165e4e2f83e6e66063382f323435da21090d |
29-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a register scavenger crash when dealing with undefined subregs. The LowerSubregs pass needs to preserve implicit def operands attached to EXTRACT_SUBREG instructions when it replaces those instructions with copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107189 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
6441b54e22cc0bad3e0d3da771e7821019135755 |
29-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
It seems clear that this should return Changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107141 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
80b9b8953753e0ca518671ef572d215d9365d091 |
29-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
It seems clear that this should return Changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107141 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
dd68477a2b0c937054dce377a953e161d4db7b5f |
29-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add a VT argument to getMinimalPhysRegClass and replace the copy related uses of getPhysicalRegisterRegClass with it. If we want to make a copy (or estimate its cost), it is better to use the smallest class as more efficient operations might be possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
d31f972bd33de85071c716f69bf5c6d735f730f2 |
29-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add a VT argument to getMinimalPhysRegClass and replace the copy related uses of getPhysicalRegisterRegClass with it. If we want to make a copy (or estimate its cost), it is better to use the smallest class as more efficient operations might be possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
3604cdf289e6596abd16d0c7bc8aec5c0a9140ed |
29-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
getMachineBasicBlockAddress returns a uintptr_t - don't truncate to unsigned only to extend back to a pointer sized value on the next line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107139 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
17c6e6d9cf4c9e56a6a28e4d0ae3699d376a8962 |
29-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
getMachineBasicBlockAddress returns a uintptr_t - don't truncate to unsigned only to extend back to a pointer sized value on the next line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107139 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
c2c4b85f9cc14fb3b2cfe087ae6038af17efe853 |
29-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand APIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107132 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
9d677680e4eca77a806171aaed179158f1835593 |
29-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand APIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107132 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
b375499e2d56fed3125a7d797ef21e03fe220176 |
29-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
Remove initialized but otherwise unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107127 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
electionDAG/SelectionDAGBuilder.cpp
|
90c64f4aac95ebfcdeb8ad78a373fdb9e61b002c |
29-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
Remove initialized but otherwise unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107127 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
electionDAG/SelectionDAGBuilder.cpp
|
a144454e83d1ec105266e004ccc5436c4bbc4fd8 |
29-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
When processing loops for scheduling latencies (used for live outs on loop back-edges), make sure not to include dbg_value instructions in the count. Closing in on the end of rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107119 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
2f2b25451b8fd6ab0625e78df9e5c710eba2d87f |
29-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
When processing loops for scheduling latencies (used for live outs on loop back-edges), make sure not to include dbg_value instructions in the count. Closing in on the end of rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107119 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
2e99a5698a87b33796c02975ffb00d30496c431f |
29-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Reapply my if-conversion cleanup from svn r106939 with fixes. There are 2 changes relative to the previous version of the patch: 1) For the "simple" if-conversion case, there's no need to worry about RemoveExtraEdges not handling an unanalyzable branch. Predicated terminators are ignored in this context, so RemoveExtraEdges does the right thing. This might break someday if we ever treat indirect branches (BRIND) as predicable, but for now, I just removed this part of the patch, because in the case where we do not add an unconditional branch, we rely on keeping the fall-through edge to CvtBBI (which is empty after this transformation). The change relative to the previous patch is: @@ -1036,10 +1036,6 @@ IterIfcvt = false; } - // RemoveExtraEdges won't work if the block has an unanalyzable branch, - // which is typically the case for IfConvertSimple, so explicitly remove - // CvtBBI as a successor. - BBI.BB->removeSuccessor(CvtBBI->BB); RemoveExtraEdges(BBI); // Update block info. BB can be iteratively if-converted. 2) My patch exposed a bug in the code for merging the tail of a "diamond", which had previously never been exercised. The code was simply checking that the tail had a single predecessor, but there was a case in MultiSource/Benchmarks/VersaBench/dbms where that single predecessor was neither edge of the diamond. I added the following change to check for that: @@ -1276,7 +1276,18 @@ // tail, add a unconditional branch to it. if (TailBB) { BBInfo TailBBI = BBAnalysis[TailBB->getNumber()]; - if (TailBB->pred_size() == 1 && !TailBBI.HasFallThrough) { + bool CanMergeTail = !TailBBI.HasFallThrough; + // There may still be a fall-through edge from BBI1 or BBI2 to TailBB; + // check if there are any other predecessors besides those. + unsigned NumPreds = TailBB->pred_size(); + if (NumPreds > 1) + CanMergeTail = false; + else if (NumPreds == 1 && CanMergeTail) { + MachineBasicBlock::pred_iterator PI = TailBB->pred_begin(); + if (*PI != BBI1->BB && *PI != BBI2->BB) + CanMergeTail = false; + } + if (CanMergeTail) { MergeBlocks(BBI, TailBBI); TailBBI.IsDone = true; } else { With these fixes, I was able to run all the SingleSource and MultiSource tests successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107110 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
8eab75f390eb469fea16a290dcd841365007a9a6 |
29-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Reapply my if-conversion cleanup from svn r106939 with fixes. There are 2 changes relative to the previous version of the patch: 1) For the "simple" if-conversion case, there's no need to worry about RemoveExtraEdges not handling an unanalyzable branch. Predicated terminators are ignored in this context, so RemoveExtraEdges does the right thing. This might break someday if we ever treat indirect branches (BRIND) as predicable, but for now, I just removed this part of the patch, because in the case where we do not add an unconditional branch, we rely on keeping the fall-through edge to CvtBBI (which is empty after this transformation). The change relative to the previous patch is: @@ -1036,10 +1036,6 @@ IterIfcvt = false; } - // RemoveExtraEdges won't work if the block has an unanalyzable branch, - // which is typically the case for IfConvertSimple, so explicitly remove - // CvtBBI as a successor. - BBI.BB->removeSuccessor(CvtBBI->BB); RemoveExtraEdges(BBI); // Update block info. BB can be iteratively if-converted. 2) My patch exposed a bug in the code for merging the tail of a "diamond", which had previously never been exercised. The code was simply checking that the tail had a single predecessor, but there was a case in MultiSource/Benchmarks/VersaBench/dbms where that single predecessor was neither edge of the diamond. I added the following change to check for that: @@ -1276,7 +1276,18 @@ // tail, add a unconditional branch to it. if (TailBB) { BBInfo TailBBI = BBAnalysis[TailBB->getNumber()]; - if (TailBB->pred_size() == 1 && !TailBBI.HasFallThrough) { + bool CanMergeTail = !TailBBI.HasFallThrough; + // There may still be a fall-through edge from BBI1 or BBI2 to TailBB; + // check if there are any other predecessors besides those. + unsigned NumPreds = TailBB->pred_size(); + if (NumPreds > 1) + CanMergeTail = false; + else if (NumPreds == 1 && CanMergeTail) { + MachineBasicBlock::pred_iterator PI = TailBB->pred_begin(); + if (*PI != BBI1->BB && *PI != BBI2->BB) + CanMergeTail = false; + } + if (CanMergeTail) { MergeBlocks(BBI, TailBBI); TailBBI.IsDone = true; } else { With these fixes, I was able to run all the SingleSource and MultiSource tests successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107110 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
b52a0393a18e4e470b25c0ab40832e44aa404a48 |
29-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Unlike other targets, ARM now uses BUILD_VECTORs post-legalization so they can't be changed arbitrarily by the DAGCombiner without checking if it is running after legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8674949513837dab7efa11c8d338db4f714a244b |
29-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Unlike other targets, ARM now uses BUILD_VECTORs post-legalization so they can't be changed arbitrarily by the DAGCombiner without checking if it is running after legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
efc6c9e1817bf7ffcea509d5ba3898182c8c850f |
29-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use DW_FORM_addr for DW_AT_entry_pc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107085 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
|
9b93b6b49a406bbeec364408e115c671098f3944 |
29-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use DW_FORM_addr for DW_AT_entry_pc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107085 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
|
0d7310c2a722fa920a8830c986d11644a48f1b5c |
29-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
In asm's, output operands with matching input constraints have to be registers, per gcc documentation. This affects the logic for determining what "g" should lower to. PR 7393. A couple of existing testcases are affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107079 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a5989f8e222f6e2ad67704d7e8cc67c86c4d0697 |
29-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
In asm's, output operands with matching input constraints have to be registers, per gcc documentation. This affects the logic for determining what "g" should lower to. PR 7393. A couple of existing testcases are affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107079 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
50d17d2bedf58d6c31bffb924b3500f525222d50 |
28-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Include inlined function in list of processed subprograms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107065 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0dd4558e7d0d2191c3d69e61e6a3e349dd605c80 |
28-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Include inlined function in list of processed subprograms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107065 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8ea33f61299e277eb9c0a645e6b4a0d3cf2f4597 |
28-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
new, no longer brain-dead, r106907 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107060 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
d459f457b8c855030217d878988062918dc71e13 |
28-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
new, no longer brain-dead, r106907 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107060 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2777f987eb5766714eac7417ffa55ba8c271f6ea |
28-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
After physreg coalescing, physical registers might not have live ranges where you would expect. Don't assert on that case, just give up. This fixes PR7513. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107046 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
610bebf777de07ca68f016a63b548fbe22c2fd3c |
28-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
After physreg coalescing, physical registers might not have live ranges where you would expect. Don't assert on that case, just give up. This fixes PR7513. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107046 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
acb50a5453fccd3ec03ca4e794d515ccbb04dddc |
28-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more special treatment for inline asm in RegAllocFast. When an instruction has tied operands and physreg defines, we must take extra care that the tied operands conflict with neither physreg defs nor uses. The special treatment is given to inline asm and instructions with tied operands / early clobbers and physreg defines. This fixes PR7509. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107043 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
d843b3925fdc275b262ddc2ff8fabc8c98f9a5a0 |
28-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add more special treatment for inline asm in RegAllocFast. When an instruction has tied operands and physreg defines, we must take extra care that the tied operands conflict with neither physreg defs nor uses. The special treatment is given to inline asm and instructions with tied operands / early clobbers and physreg defines. This fixes PR7509. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107043 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
8233507609c88f4b114846102d4c03122acdb41a |
28-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Preserve deleted function's local variables' debug info. Radar 8122864. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4a1cad673c5bf0812099c6c8f551fe6af967c2b3 |
28-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Preserve deleted function's local variables' debug info. Radar 8122864. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107027 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8d4fc8be39e2ba48ced10250e0f4409b47c01f3a |
28-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
simplify: we have solid argument iterator range git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107014 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
32621ad9ff9ae7deafe72873ed83f39e7b28ae83 |
28-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
simplify: we have solid argument iterator range git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107014 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
9ba6d69ace3ee3348083365c0f619ea7e1acc694 |
28-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106907, "make sure to handle dbg_value instructions in the middle of the block, not...", it caused a bunch of nightly test regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107009 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c4abe3aaaf45f69387b8cf55f1870ea416586290 |
28-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106907, "make sure to handle dbg_value instructions in the middle of the block, not...", it caused a bunch of nightly test regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107009 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
15642b3d55e7d2b4fbb0014abe2858301b8701b6 |
28-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106990 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f347b82d49394965d2a5937ea9bd68d90029655e |
28-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106990 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2f45a279878f7bfc2f91e64bd7aa21c0b3910582 |
26-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
When splitting a VAARG, remember its alignment. This produces terrible but correct code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAG.cpp
|
72d13ff755fe8484c89468252f945ba23fe98f71 |
26-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
When splitting a VAARG, remember its alignment. This produces terrible but correct code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAG.cpp
|
edababcb0f91ad2f63ecf8b583094274316a588b |
26-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert my if-conversion cleanup since it caused a bunch of nightly test regressions. --- Reverse-merging r106939 into '.': U test/CodeGen/Thumb2/thumb2-ifcvt3.ll U lib/CodeGen/IfConversion.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106951 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
de4fe231392165c7566081fb3f86aee4f6a4e0d6 |
26-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert my if-conversion cleanup since it caused a bunch of nightly test regressions. --- Reverse-merging r106939 into '.': U test/CodeGen/Thumb2/thumb2-ifcvt3.ll U lib/CodeGen/IfConversion.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106951 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a84255142829697b442d9c7e46d44f7b8df22ab7 |
26-Jun-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
VNInfos don't need to be destructed anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106943 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
|
ce9a20b808ba48adf72e0c0615f903a65e9f9eb8 |
26-Jun-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
VNInfos don't need to be destructed anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106943 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
|
53c5d7bad5bc59b8bb102883dace0a9e7c8c685e |
26-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Clean up some problems with extra CFG edges being introduced during if-conversion. The RemoveExtraEdges function doesn't work for blocks that end with unanalyzable branches, so in those cases, the "extra" edges must be explicitly removed. The CopyAndPredicateBlock and MergeBlocks methods can also avoid copying successor edges due to branches that have already been removed. The latter case is especially helpful when MergeBlocks is called for handling "diamond" if-conversions, where otherwise you can end up with some weird intermediate states in the CFG. Unfortunately I've been unable to find cases where this cleanup actually makes a significant difference in the code. There is one test where we manage to remove an empty block at the end of a function. Radar 6911268. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106939 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
ccd9bcca14e7046b7078cdf472a9185b86cdf07d |
26-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Clean up some problems with extra CFG edges being introduced during if-conversion. The RemoveExtraEdges function doesn't work for blocks that end with unanalyzable branches, so in those cases, the "extra" edges must be explicitly removed. The CopyAndPredicateBlock and MergeBlocks methods can also avoid copying successor edges due to branches that have already been removed. The latter case is especially helpful when MergeBlocks is called for handling "diamond" if-conversions, where otherwise you can end up with some weird intermediate states in the CFG. Unfortunately I've been unable to find cases where this cleanup actually makes a significant difference in the code. There is one test where we manage to remove an empty block at the end of a function. Radar 6911268. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106939 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
1213ebceb342a5b41dd8efe99c460b042cf369eb |
26-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
make sure to handle dbg_value instructions in the middle of the block, not just at the head, when doing diamond if-conversion. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106907 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
9f054f017c7bced071f5a4de606cec6751edd23f |
26-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
make sure to handle dbg_value instructions in the middle of the block, not just at the head, when doing diamond if-conversion. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106907 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
5ccea1ae2270cf66621fc0dec8d2de091701c4f1 |
26-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't track kills in VNInfo. Use interval ends instead. The VNInfo.kills vector was almost unused except for all the code keeping it updated. The few places using it were easily rewritten to check for interval ends instead. The two new methods LiveInterval::killedAt and killedInRange are replacements. This brings us down to 3 independent data structures tracking kills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106905 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
piller.cpp
trongPHIElimination.cpp
|
15a571436da812c7cecbc3f3423ead2edff50358 |
26-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't track kills in VNInfo. Use interval ends instead. The VNInfo.kills vector was almost unused except for all the code keeping it updated. The few places using it were easily rewritten to check for interval ends instead. The two new methods LiveInterval::killedAt and killedInRange are replacements. This brings us down to 3 independent data structures tracking kills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106905 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
piller.cpp
trongPHIElimination.cpp
|
09f725277d18268655bf3e5e261061a54bfa1d14 |
26-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Change if-conversion block size limit checks to add some flexibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106901 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
electionDAG/TargetLowering.cpp
|
13151432edace19ee867a93b5c14573df4f75d24 |
26-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Change if-conversion block size limit checks to add some flexibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106901 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
electionDAG/TargetLowering.cpp
|
55202eaf6299c8be2aaa97697c6dfccbbbfcc81c |
26-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Collect debug info for optimized variables of inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106895 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
78e127d81b58de8663f8328dc1cdbd1f31a759fd |
26-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Collect debug info for optimized variables of inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106895 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f44b1718327f90a935b618d42e1d6deb44660b0f |
26-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and typo fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106894 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
135ec50ce26b4bb9aee305f5e861d2348969aa31 |
26-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and typo fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106894 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a7ba9cda87adafd4fcb30902120010c21888e8f4 |
25-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
The hasMemory argument is irrelevant to how the argument for an "i" constraint should get lowered; PR 6309. While this argument was passed around a lot, this is the only place it was used, so it goes away from a lot of other places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
1784d160e4efa75782884d451d0788b9457e67dc |
25-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
The hasMemory argument is irrelevant to how the argument for an "i" constraint should get lowered; PR 6309. While this argument was passed around a lot, this is the only place it was used, so it goes away from a lot of other places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
4a244bb79c3ba23075cd38dc44609bcac48b3989 |
25-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
- Reapply r106066 now that the bzip2 build regression has been fixed. - 2010-06-25-CoalescerSubRegDefDead.ll is the testcase for r106878. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106880 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
730c07e50d03be3d64fd4d808c590e6890d32178 |
25-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
- Reapply r106066 now that the bzip2 build regression has been fixed. - 2010-06-25-CoalescerSubRegDefDead.ll is the testcase for r106878. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106880 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
176e4013d93709dd8ad66d5ba69a8a45c1480752 |
25-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
We should remove the live range from the destination register only if *all* defs are dead, not just the def of this register. I.e., a register could be dead, but it's subreg isn't. Testcase to follow with a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106878 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
39d258aa49717218628c158504996482bbbb0a5a |
25-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
We should remove the live range from the destination register only if *all* defs are dead, not just the def of this register. I.e., a register could be dead, but it's subreg isn't. Testcase to follow with a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106878 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d08d8e20c6c7d8067bf03677688bcd70b896f58c |
25-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
Cosmetic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106865 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
493315922b190b74a7de8ac3cd1dfb914d81d6a6 |
25-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
Cosmetic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106865 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
102b00fc58d0800bf8821316133b3c908d51f904 |
25-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
Remove variables which are assigned to but for which the value is not used. Spotted by gcc-4.6. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
b447c4e65b5f6d39db16cb8fc338133965291972 |
25-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
Remove variables which are assigned to but for which the value is not used. Spotted by gcc-4.6. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
663ba35dfec121ff9154a5941d6c2b592af5843d |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand accessors and CallInst for getting hold of the intrinsic's arguments simplify along the way (at least for me this is much more legible now) Bill, Baldrick or Anton, please review\! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106838 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
2bf4b3be5ca34d822ae7a79e9f2df655da8e0aa8 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand accessors and CallInst for getting hold of the intrinsic's arguments simplify along the way (at least for me this is much more legible now) Bill, Baldrick or Anton, please review\! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106838 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
b6b7c1db28bfbd1440d704e81c4aa1e845950514 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API (the simple part) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106837 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
c13055db267909518e758fd4f93f4dec1c23df29 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API (the simple part) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106837 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
525e20ed81a3314402b99f0dfd6c5307e809c93c |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0635f35114732cdb055ee38bad5f743e49729efa |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fbe9808466411123e05c64d5951fdf07285f1303 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106835 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
45c097fe43d565905041d2a9fc77567d2deca709 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106835 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
581c8c1ce744d7d27c65fffa10971dc2184cd587 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API and CallSite to access arguments of CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106833 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
9e38531d9561630520732146c32977443c73c243 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API and CallSite to access arguments of CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106833 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
539da8b1371f7273e4ece0d9fd211c25a475ee01 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API and CallSite to access arguments of CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106829 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
hadowStackGC.cpp
|
89c4cead3c1448902f5fc6c266de5f20222c6b03 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API and CallSite to access arguments of CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106829 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
hadowStackGC.cpp
|
010139fa9acf693e4c288ab7e3a8e35e76413329 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
1518444f0c0f7675a30f34bcf58e8cef21d37c80 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
ba060ceda3b40bf3ae99041d86f05d66cdb22ed9 |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
prune an include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
d3f526c04a404aeac3a09db37d92b1f795a405ac |
25-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
prune an include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
db121e0e74fdddc3da2cfa236a90ea2ce1b78f01 |
25-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a case where an earlyclobber operand of an asm is reused as an input. PR 4118. Testcase is too big, as usual with bugs in this area, but there's one in the PR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106816 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
969b9fe379c333bd5065d387da7b43ed90e001de |
25-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a case where an earlyclobber operand of an asm is reused as an input. PR 4118. Testcase is too big, as usual with bugs in this area, but there's one in the PR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106816 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
535617ab120d25498f849fff8e7f22fa630e9a28 |
25-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure all eliminated kills are removed from VNInfo lists. This fixes PR7479 and PR7485. The test cases from those PRs are big, so not included. However, PR7485 comes from self hosting on FreeBSD, so we will surely hear about any regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106811 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
fa1e73c447b61ba180cc85b78b53d78a6b63bbf6 |
25-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure all eliminated kills are removed from VNInfo lists. This fixes PR7479 and PR7485. The test cases from those PRs are big, so not included. However, PR7485 comes from self hosting on FreeBSD, so we will surely hear about any regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106811 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
cd5e961837f7c23e7e149b1707aff47b550d712a |
25-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106809 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
0879e2279025522a070d57a7c4e0122daef94e2f |
25-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106809 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
94431e415ad4d68eed6e8d91f3904230a24a10c0 |
25-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach EmitLiveInCopies to omit copies for unused virtual registers, and to clean up unused incoming physregs from the live-in list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106805 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
fe5e4dabbf05f3b7b8c6d652adb6b500e5dec8cd |
25-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach EmitLiveInCopies to omit copies for unused virtual registers, and to clean up unused incoming physregs from the live-in list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106805 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
1bd8afcfb510c8b0826bc152ae72b67b4dbbcf1b |
25-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
It's possible that a flag is added to the SDNode that points back to the original SDNode. This is badness. Also, this function allows one SDNode to point multiple flags to another SDNode. Badness as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
10707f3b442aa5a6cc55b899d630871f06b8ebbc |
25-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
It's possible that a flag is added to the SDNode that points back to the original SDNode. This is badness. Also, this function allows one SDNode to point multiple flags to another SDNode. Badness as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
3d5b9833b5e2cfc178a3d778f59c49b007e061c6 |
24-Jun-2010 |
Devang Patel <dpatel@apple.com> |
DBG_VALUE machine instruction pointing to undefined register for a variable justify a separate scope if the variable is inlined function's argument. Radar 8122864. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106792 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
486ca764216fea073d3bcc0716b181ca861b74f7 |
24-Jun-2010 |
Devang Patel <dpatel@apple.com> |
DBG_VALUE machine instruction pointing to undefined register for a variable justify a separate scope if the variable is inlined function's argument. Radar 8122864. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106792 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
68c0866a658bae2998837d2acdb4254020cd31db |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't return a std::vector in the Spiller interface, but take a reference to a vector instead. This avoids needless copying and allocation. Add documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106788 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
67674e2685af8ab16292550becac15f7b17ea831 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't return a std::vector in the Spiller interface, but take a reference to a vector instead. This avoids needless copying and allocation. Add documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106788 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
2f10baebbbd8a6bc19fa8467f54bb51f2fa3abd9 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the now unused LiveIntervals::getVNInfoSourceReg(). This method was always a bit too simplistic for the real world. It didn't really deal with subregisters and such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106781 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3c7b3fecacee40df7b9a99d290638398b5a62173 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the now unused LiveIntervals::getVNInfoSourceReg(). This method was always a bit too simplistic for the real world. It didn't really deal with subregisters and such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106781 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e22d58640ef9311428ab299c2ab8ec1c924ab3d8 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach AdjustCopiesBackFrom to also use CoalescerPair to identify compatible copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106780 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
c0490ac91502c3f9e791124c6f3a8ad17aab6a72 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach AdjustCopiesBackFrom to also use CoalescerPair to identify compatible copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106780 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
69b940a61d3020164011fe09465476ff0e1ce5cb |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -fast-spill option. This code path has never really been used, and we are going to be handling spilling through the Spiller interface in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106777 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
54edf4f7da971cbb0c1546039db488a259480398 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -fast-spill option. This code path has never really been used, and we are going to be handling spilling through the Spiller interface in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106777 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e1893d8c6f3ef230e7ac239bb2d39d60a402573b |
24-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Loosen up the requirements in the Horrible Hack(tm) to include all selectors which don't have a catch-all associated with them not just clean-ups. This fixes the SingleSource/Benchmarks/Shootout-C++/except.cpp testcase that broke because of my change r105902. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106772 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
efbf30610739d73d1f2dba9a8c29aa30c8c3daa4 |
24-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Loosen up the requirements in the Horrible Hack(tm) to include all selectors which don't have a catch-all associated with them not just clean-ups. This fixes the SingleSource/Benchmarks/Shootout-C++/except.cpp testcase that broke because of my change r105902. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106772 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
fee9bfb7501c08ba9f298255db6d7e1ae601c82c |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace a big gob of old coalescer logic with the new CoalescerPair class. CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. This second attempt fixes some crashes that only occurred Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106769 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
a24986d8bfd941252f7d080943e02bbe6a0c2944 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace a big gob of old coalescer logic with the new CoalescerPair class. CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. This second attempt fixes some crashes that only occurred Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106769 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
14053931593973f354f228bd8b2759d1876ba86a |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print the LSBs of a SlotIndex symbolically using letters referring to the [L]oad, [u]se, [d]ef, or [S]tore slots. This makes it easier to see if two indices refer to the same instruction, avoiding mental mod 4 calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106766 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
eec418d26f08e9cf32b8eab03da59d6cd5dd7faa |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print the LSBs of a SlotIndex symbolically using letters referring to the [L]oad, [u]se, [d]ef, or [S]tore slots. This makes it easier to see if two indices refer to the same instruction, avoiding mental mod 4 calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106766 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
0f6c671f57ee4d8802cf957f32615fbb4c36c4d1 |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Simplify this code; switch lowering shouldn't produce cases which trivially fold away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
deca052d9d1d1303854a1c9617c383aa6c58ba0b |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Simplify this code; switch lowering shouldn't produce cases which trivially fold away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
91866ff351de74af0456153f2af783a2df6b28b3 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more strict about subreg-to-subreg copies in CoalescerPair. Also keep track of the original DstREg before subregister adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106753 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
8df08017d81ef3749acdc3234e3f33c15a6d0def |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more strict about subreg-to-subreg copies in CoalescerPair. Also keep track of the original DstREg before subregister adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106753 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
|
598299d6f58174b27eff3a13424767166e53842d |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that VNI kills are pointing to existing instructions. In this case it is essential that the kill is real because the spiller will decide to omit a spill if it thinks there is a later kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106751 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
af5c60b40d50af635e1d02c0c3db508cfb9f2d1f |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that VNI kills are pointing to existing instructions. In this case it is essential that the kill is real because the spiller will decide to omit a spill if it thinks there is a later kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106751 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cb26983c363c82f2568f7ee27030429d9b011445 |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the other half of the BRCOND optimization, and update as many tests as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ee1c8707789ac540ca2d0037d397f39fa91e7571 |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the other half of the BRCOND optimization, and update as many tests as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a74a6cc09492bbf519b12d61597e60cd5daf6834 |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the first have of the optimization which eliminates BRCOND when the condition is constant. This optimization shouldn't be necessary, because codegen shouldn't be able to find dead control paths that the IR-level optimizer can't find. And it's undesirable, because it encourages bugpoint to leave "br i1 false" branches in its output. And it wasn't updating the CFG. I updated all the tests I could, but some tests are too reduced and I wasn't able to meaningfully preserve them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
102f3851bbde16fdd826d072240731365fe6da5d |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the first have of the optimization which eliminates BRCOND when the condition is constant. This optimization shouldn't be necessary, because codegen shouldn't be able to find dead control paths that the IR-level optimizer can't find. And it's undesirable, because it encourages bugpoint to leave "br i1 false" branches in its output. And it wasn't updating the CFG. I updated all the tests I could, but some tests are too reduced and I wasn't able to meaningfully preserve them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
50fbd4f02314b827bc855a82b8556755ba292edd |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r106634, now that the bug it exposed is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
4e39e9da0f3a435445261d0f796bb0913f3c2bf0 |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r106634, now that the bug it exposed is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
a2375554a0236fc056f8cdb659890bcf81f24a6b |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Optimize the "bit test" code path for switch lowering in the case where the bit mask has exactly one bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8e0163ac1e8fcf0f8d2340d65439edef8230b01c |
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Optimize the "bit test" code path for switch lowering in the case where the bit mask has exactly one bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4c27741adcd10a796a2d4e5e3c9892a760900838 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Replace a big gob of old coalescer logic with the new CoalescerPair class." Whiny buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106710 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
b8ac3b035ba14663ebe57fde17f6a9f25134e005 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Replace a big gob of old coalescer logic with the new CoalescerPair class." Whiny buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106710 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
d7e0a5977a7f6b8f5240811ae992f1e41305da55 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace a big gob of old coalescer logic with the new CoalescerPair class. CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106701 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
e9c59711d3d1e8b133763393bea92af6e36b0031 |
24-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace a big gob of old coalescer logic with the new CoalescerPair class. CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106701 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
053ba0aaa534280f122b7f2e56efbf6dc831b662 |
23-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
MorphNodeTo doesn't preserve the memory operands. Because we're morphing a node into the same node, but with different non-memory operands, we need to replace the memory operands after it's finished morphing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106643 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
151d26d15dc6fe89329d7cccb0638c324c58f485 |
23-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
MorphNodeTo doesn't preserve the memory operands. Because we're morphing a node into the same node, but with different non-memory operands, we need to replace the memory operands after it's finished morphing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106643 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
2c14c912df3540b365db73cbc8a69a0cbf5ca116 |
23-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106263, "Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
cbe762b5d165c565feb98b745e93b71d208a1e36 |
23-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106263, "Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
c0e1bf49809893f4289118ef063f38958fd73ee9 |
23-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Some targets don't require the fencing MEMBARRIER instructions surrounding atomic intrinsics, either because the use locking instructions for the atomics, or because they perform the locking directly. Add support in the DAG combiner to fold away the fences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
9a526495e0c06c4014d7500788cad1929fd244d3 |
23-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Some targets don't require the fencing MEMBARRIER instructions surrounding atomic intrinsics, either because the use locking instructions for the atomics, or because they perform the locking directly. Add support in the DAG combiner to fold away the fences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
529c7135ea1d5159b061771a31ac105a83d7cd2f |
23-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a few VNInfo data structure checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106627 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
014b8631c0df0c5a91ccee2485bcd408844ed377 |
23-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a few VNInfo data structure checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106627 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
1bc9adcdd394599fea13a4fa6819d015ed4c92b2 |
23-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106066, "Create a more targeted fix for not sinking instructions into a range where it"... it causes bzip2 to be miscompiled by Clang. Conflicts: lib/CodeGen/MachineSink.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106614 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
d24c9d5f91442f893bebc2ea8d5ee845bc8b77a9 |
23-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106066, "Create a more targeted fix for not sinking instructions into a range where it"... it causes bzip2 to be miscompiled by Clang. Conflicts: lib/CodeGen/MachineSink.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106614 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
a5b260b977cdcf9850156e2d2e81333b9a56e491 |
23-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also convert SUBREG_TO_REG to a KILL when relevant, like the other subreg instructions. This does not affect codegen much because SUBREG_TO_REG is only used by X86 and X86 does not use the register scavenger, but it prevents verifier errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106583 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
f175c5c82891f0f68807d8b88020cd2a3a9cdbf6 |
23-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also convert SUBREG_TO_REG to a KILL when relevant, like the other subreg instructions. This does not affect codegen much because SUBREG_TO_REG is only used by X86 and X86 does not use the register scavenger, but it prevents verifier errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106583 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
cd9f79d845c9ed3fb621a62ebdf4beaf090a43f4 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Move PHIElimination's SplitCriticalEdge for MachineBasicBlocks out into a utility routine, teach it how to update MachineLoopInfo, and make use of it in MachineLICM to split critical edges on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106555 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineLICM.cpp
HIElimination.cpp
|
853d3fb8d24fab2258e9cd5dce3ec8ff4189eeda |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Move PHIElimination's SplitCriticalEdge for MachineBasicBlocks out into a utility routine, teach it how to update MachineLoopInfo, and make use of it in MachineLICM to split critical edges on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106555 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineLICM.cpp
HIElimination.cpp
|
c91943aafbbfbe1e857c7f77c6312f5181a45c11 |
22-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the SimpleJoin optimization from SimpleRegisterCoalescing. Measurements show that it does not speed up coalescing, so there is no reason the keep the added complexity around. Also clean out some unused methods and static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106548 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
6ff1c3f36c53d37097d1e66b58cd8d129d690127 |
22-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the SimpleJoin optimization from SimpleRegisterCoalescing. Measurements show that it does not speed up coalescing, so there is no reason the keep the added complexity around. Also clean out some unused methods and static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106548 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
559d513348a11936bc90b64aad75e2540b26c6a4 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Use pre-increment instead of post-increment when the result is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106542 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
reAllocSplitting.cpp
|
fe60104ac97f3a8736dcfbfdf9547c7b7cc7b951 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Use pre-increment instead of post-increment when the result is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106542 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
reAllocSplitting.cpp
|
05dd6677dfb1aa786a45736ea01d5cd70e2165b6 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
When unfolding a load, avoid assuming which instruction that kill and dead flags will end up on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106520 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
cc1ca987f35581357f88d6071330e89fc8de2aa1 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
When unfolding a load, avoid assuming which instruction that kill and dead flags will end up on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106520 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
8fa7adcbc5b4d12c6bebec5371379666fda75ef2 |
22-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use single interface, using twine, to get named metadata. getNamedMetadata(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a762b093107ac3aa438815627006425d0b13a236 |
22-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use single interface, using twine, to get named metadata. getNamedMetadata(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8bed85099fd6ea5f408e5dbaa7c1e60dade7e159 |
22-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Tail merging pass shall not break up IT blocks. rdar://8115404 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106517 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
argetInstrInfoImpl.cpp
|
4d54e5b2dd4a3d3bed38ff9c7aa57fc66adb5855 |
22-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Tail merging pass shall not break up IT blocks. rdar://8115404 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106517 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
argetInstrInfoImpl.cpp
|
84c7566688cfbcb75436e5277b699988e949b255 |
22-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Discard special LLVM prefix from linkage name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106516 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7e1d742e1a868871d7c35d3880d8aa5d6d5d21e2 |
22-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Discard special LLVM prefix from linkage name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106516 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b7edda0a45949d975f9ab7416ed61d1c96daaf56 |
22-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Do not rely on Twine temporaries to survive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d1bbc6b70e2288033fcb8c5b8273e8afb0fe9718 |
22-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Do not rely on Twine temporaries to survive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0a36fc6946e4825448d29dd2d61e3ec192a1f3b3 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix the new load-unfolding code to update LiveVariable's dead flags, in addition to the kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106512 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
7aa7bc735dfca40a20e74ad63a2c27f744699e01 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix the new load-unfolding code to update LiveVariable's dead flags, in addition to the kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106512 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c21558b46d27f29c8861ee9695995e5a31ce7381 |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach two-address lowering how to unfold a load to open up commuting opportunities. For example, this lets it emit this: movq (%rax), %rcx addq %rdx, %rcx instead of this: movq %rdx, %rcx addq (%rax), %rcx in the case where %rdx has subsequent uses. It's the same number of instructions, and usually the same encoding size on x86, but it appears faster, and in general, it may allow better scheduling for the load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106493 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
584fedf188e863604f7b946a931c0f40cf9c944e |
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach two-address lowering how to unfold a load to open up commuting opportunities. For example, this lets it emit this: movq (%rax), %rcx addq %rdx, %rcx instead of this: movq %rdx, %rcx addq (%rax), %rcx in the case where %rdx has subsequent uses. It's the same number of instructions, and usually the same encoding size on x86, but it appears faster, and in general, it may allow better scheduling for the load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106493 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b93b42ae0b0dfe7a60d8e6cd703cda7d29ec18e8 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Use A.append(...) instead of A.insert(A.end(), ...) when A is a SmallVector, and other SmallVector simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
403a8cdda5e76ea689693de16474650b4b0df818 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Use A.append(...) instead of A.insert(A.end(), ...) when A is a SmallVector, and other SmallVector simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
3185f47524babd9241b0c4a32450cafd0395b1c4 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Revert r106422, which is breaking the non-fast-isel path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
c7bd7b7f12f3df9f03f84eff45e8266446c54936 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Revert r106422, which is breaking the non-fast-isel path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
277695c78cd0b56fdfbbffa142e2c49b5a6ca098 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
More changes for non-top-down fast-isel. Split the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, so that it can be used in other ways. Add a new getNonRegisterValue function which uses it, for use in code which doesn't want a CopyFromReg even when FuncMap.ValueMap already has an entry for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
faeb0e744838553e6c46dab0ff3f9d8fc41fc766 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
More changes for non-top-down fast-isel. Split the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, so that it can be used in other ways. Add a new getNonRegisterValue function which uses it, for use in code which doesn't want a CopyFromReg even when FuncMap.ValueMap already has an entry for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
3eb49aec27e9f475d7d32afba0f796e4516ecc90 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Do one lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3193a689db3de8640d412ccd9482301647359a4e |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Do one lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
fb8fc280c2ca288e1aeceedbff0b91ec44c00791 |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Generalize this to look in the regular ValueMap in addition to the LocalValueMap, to make it more flexible when fast-isel isn't proceding straight top-down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
37db6cdaea47d0637bdbe624f7b10ff8f82928ad |
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Generalize this to look in the regular ValueMap in addition to the LocalValueMap, to make it more flexible when fast-isel isn't proceding straight top-down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8d7f162c51100a24ac72c89d94b48bd892a7433e |
19-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106383 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
54eee524f192a0e7395d057481e8d4240729d7b4 |
19-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106383 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
fdeb393caefd0e169d3195892e8c220a1688372a |
19-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach regular and fast isel to set dead flags on unused implicit defs on calls and similar instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106353 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
|
db4971259ce94cea26e555e9ade82672a3581f5c |
19-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach regular and fast isel to set dead flags on unused implicit defs on calls and similar instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106353 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
|
b1a0ebd2137a270821d02550b00ecbc67e85492c |
19-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only run CoalesceExtSubRegs when we can expect LiveIntervalAnalysis to clean up the inserted INSERT_SUBREGs after us. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106345 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
fe181f4848a8c774155b8d853c2f53f7e7679872 |
19-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only run CoalesceExtSubRegs when we can expect LiveIntervalAnalysis to clean up the inserted INSERT_SUBREGs after us. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106345 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
24ff056654cd4eae6c6403b81dfceaa46605f395 |
19-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow ARM if-converter to be run after post allocation scheduling. - This fixed a number of bugs in if-converter, tail merging, and post-allocation scheduler. If-converter now runs branch folding / tail merging first to maximize if-conversion opportunities. - Also changed the t2IT instruction slightly. It now defines the ITSTATE register which is read by instructions in the IT block. - Added Thumb2 specific hazard recognizer to ensure the scheduler doesn't change the instruction ordering in the IT block (since IT mask has been finalized). It also ensures no other instructions can be scheduled between instructions in the IT block. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106344 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
argetInstrInfoImpl.cpp
|
86050dc8cc0aaea8c9dfeb89de02cafbd7f48d92 |
19-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow ARM if-converter to be run after post allocation scheduling. - This fixed a number of bugs in if-converter, tail merging, and post-allocation scheduler. If-converter now runs branch folding / tail merging first to maximize if-conversion opportunities. - Also changed the t2IT instruction slightly. It now defines the ITSTATE register which is read by instructions in the IT block. - Added Thumb2 specific hazard recognizer to ensure the scheduler doesn't change the instruction ordering in the IT block (since IT mask has been finalized). It also ensures no other instructions can be scheduled between instructions in the IT block. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106344 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
argetInstrInfoImpl.cpp
|
dd67159ea024c078f6c9f3c41bc400b1f3f2f6e1 |
19-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
back-end libcall handling for ATOMIC_SWAP (__sync_lock_test_and_set) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
ef6eb9c7ab7967790566c5e2d47977d89fc060ee |
19-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
back-end libcall handling for ATOMIC_SWAP (__sync_lock_test_and_set) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
46f67f5cb3178309558a258409fcf9fa99c45e80 |
19-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
TwoAddressInstructionPass::CoalesceExtSubRegs can insert INSERT_SUBREG instructions, but it doesn't really understand live ranges, so the first INSERT_SUBREG uses an implicitly defined register. Fix it in LiveVariableAnalysis by adding the <undef> flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106333 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0465bcffbbffb5ff5f420787b4350cb8abb196f7 |
19-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
TwoAddressInstructionPass::CoalesceExtSubRegs can insert INSERT_SUBREG instructions, but it doesn't really understand live ranges, so the first INSERT_SUBREG uses an implicitly defined register. Fix it in LiveVariableAnalysis by adding the <undef> flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106333 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d50455b0277fa2ee50a8d3498954fe90fb650221 |
19-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix an inverted condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106330 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6a5e2832d0a30719602f9befe61f35ab19299de7 |
19-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix an inverted condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106330 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
0575fadf6350cdfeec42797a029617dced4ac3f4 |
19-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix cross initialization compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a845706dc1cebfe75913832e07ef114519a879d6 |
19-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix cross initialization compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a03a63ce7fb2438b664a7a2ae56f1bdae44ea0ea |
18-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach iff-converter to properly count # of dups. It was not skipping over dbg_value's which resulted in non-duplicated instructions being deleted. rdar://8104384. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106323 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a9934dc20a5e137a35be6f640c79fda9261f985b |
18-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach iff-converter to properly count # of dups. It was not skipping over dbg_value's which resulted in non-duplicated instructions being deleted. rdar://8104384. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106323 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
9157197823bde76c883b180dd5b76e6893c24b00 |
18-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Add Expand-to-libcall support for additional atomics. This covers the usual entries used by llvm-gcc. *_[U]MIN and such can be added later if needed. This enables the front ends to simplify handling of the atomic intrinsics by removing the target-specific decision about which targets can handle the intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
e03262fcfc09356a0e3ec589041bc2e0248944e9 |
18-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Add Expand-to-libcall support for additional atomics. This covers the usual entries used by llvm-gcc. *_[U]MIN and such can be added later if needed. This enables the front ends to simplify handling of the atomic intrinsics by removing the target-specific decision about which targets can handle the intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
3f57a6025111ce8f71b0116a2efd01afa971fa5b |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't leak RegClass2VRegMap, which is now a new[] array instead of a std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106298 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
71f095b20a2b1710d35b81fced4ae8b2ca1a6f61 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't leak RegClass2VRegMap, which is now a new[] array instead of a std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106298 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
05bf7d1642fe2553cc94fd2c27da62357560ab8d |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Start TargetRegisterClass indices at 0 instead of 1, so that MachineRegisterInfo doesn't have to confusingly allocate an extra entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106296 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
a606d955de3b0f777131d74162eb6f11b5f95d75 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Start TargetRegisterClass indices at 0 instead of 1, so that MachineRegisterInfo doesn't have to confusingly allocate an extra entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106296 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
d00487b4c1a7a20dc10f75be89a3b8158cbd1eaa |
18-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix PR7372: Conditional branches (at least on ARM) are treated as predicated, so when IfConverter::CopyAndPredicateBlock checks to see if it should ignore an instruction because it is a branch, it should not check if the branch is predicated. This case (when IgnoreBr is true) is only relevant from IfConvertTriangle, where new branches are inserted after the block has been copied and predicated. If the original branch is not removed, we end up with multiple conditional branches (possibly conflicting) at the end of the block. Aside from any immediate errors resulting from that, this confuses the AnalyzeBranch functions so that the branches are not analyzable. That in turn causes the IfConverter to think that the "Simple" pattern can be applied, and things go downhill fast because the "Simple" pattern does _not_ apply if the block can fall through. This is pretty fragile. If there are other degenerate cases where AnalyzeBranch fails, but where the block may still fall through, the IfConverter should not perform its "Simple" if-conversion. But, I don't know how to do that with the current AnalyzeBranch interface, so for now, the best thing seems to be to avoid creating branches that AnalyzeBranch cannot handle. Evan, please review! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106291 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
f50e952b0d3df2045b48c8e1ce86639affa6d02c |
18-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix PR7372: Conditional branches (at least on ARM) are treated as predicated, so when IfConverter::CopyAndPredicateBlock checks to see if it should ignore an instruction because it is a branch, it should not check if the branch is predicated. This case (when IgnoreBr is true) is only relevant from IfConvertTriangle, where new branches are inserted after the block has been copied and predicated. If the original branch is not removed, we end up with multiple conditional branches (possibly conflicting) at the end of the block. Aside from any immediate errors resulting from that, this confuses the AnalyzeBranch functions so that the branches are not analyzable. That in turn causes the IfConverter to think that the "Simple" pattern can be applied, and things go downhill fast because the "Simple" pattern does _not_ apply if the block can fall through. This is pretty fragile. If there are other degenerate cases where AnalyzeBranch fails, but where the block may still fall through, the IfConverter should not perform its "Simple" if-conversion. But, I don't know how to do that with the current AnalyzeBranch interface, so for now, the best thing seems to be to avoid creating branches that AnalyzeBranch cannot handle. Evan, please review! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106291 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e25284cbbb6f846f148f3f71db650279ff927d47 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't bother calling releaseMemory before destroying the DominatorTreeBase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106287 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
45934330150aecbc98c2d60fe7f17fa69e62ba71 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't bother calling releaseMemory before destroying the DominatorTreeBase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106287 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
5f946e25b216f2f9705c23eb5a3a03af5c39792d |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
927f866105fa29feb32c050ee823d60c2509ec76 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e2a9508b0f0ac87d802ef01aa8038846c2ef7976 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Give NamedRegionTimer an Enabled flag, allowing all its clients to switch from this: if (TimePassesIsEnabled) { NamedRegionTimer T(Name, GroupName); do_something(); } else { do_something(); // duplicate the code, this time without a timer! } to this: { NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled); do_something(); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106285 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGISel.cpp
|
03c3dc7b6828d48a9f3be50896b3390a696caa64 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Give NamedRegionTimer an Enabled flag, allowing all its clients to switch from this: if (TimePassesIsEnabled) { NamedRegionTimer T(Name, GroupName); do_something(); } else { do_something(); // duplicate the code, this time without a timer! } to this: { NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled); do_something(); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106285 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGISel.cpp
|
84ba6fadbac7620809a99ab7c637de49d16ee63e |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't replace the old Ordering object with a new one; just clear() the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
27445f0375ae01652c08569c7843bddc95cedd61 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't replace the old Ordering object with a new one; just clear() the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
23cb629501cb8a9881c02bd7adc3bb03a0984fa3 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't call clear() on DbgInfo when it's going to be deleted anyway. Don't replace the old DbgInfo with a new one when clear() on the old one is sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c97df860dd8172077c9b3b086c192f1b05365699 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't call clear() on DbgInfo when it's going to be deleted anyway. Don't replace the old DbgInfo with a new one when clear() on the old one is sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4e3d982962b5816515cbe36e73a9f41ed5af6673 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Change UpdateNodeOperands' operand and return value from SDValue to SDNode *, since it doesn't care about the ResNo value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106282 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
027657db7cf60bcbf40403496d7e4a170f9ce1ec |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Change UpdateNodeOperands' operand and return value from SDValue to SDNode *, since it doesn't care about the ResNo value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106282 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
bcc946d7409ba0d8918f4d0256090ff1a8b90392 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate unnecessary uses of getZExtValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106279 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e368b460a206fafa0d31d5d059b1779b94f7df8c |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate unnecessary uses of getZExtValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106279 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1c3b8d6192c8d27aecfbfed5eb46e2863c595aa4 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
isValueValidForType can be a static member function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106278 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7720cb3823d5b5868f9b88b0127277820edcb562 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
isValueValidForType can be a static member function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106278 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ee544cf62d01d9b70170f92b5650dcd763e6013f |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass, which is faster, simpler, and less surprising. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
8a7f7426eeb18fef58c3471db23fc829b67bc350 |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass, which is faster, simpler, and less surprising. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
c0348bf891cf25a857b53fbc7eea116cef00d3da |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Handle ext(ext(x)) -> ext(x) immediately, since it's simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9e86a735682f3f62ff79291b4673e00cf5f2385b |
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Handle ext(ext(x)) -> ext(x) immediately, since it's simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9fa5e3347d0fcd2a4626807dc2d8f7ceedf48ffd |
18-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This addresses a longstanding deficiency noted in many FIXMEs scattered across all the targets. This effectively moves the problem up one level, replacing eleven FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path through FastISel where we actually supply a DebugLoc, fixing Radar 7421831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106243 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
achineBasicBlock.cpp
HIElimination.cpp
electionDAG/FastISel.cpp
|
3bf912593301152b65accb9d9c37a95172f1df5a |
18-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This addresses a longstanding deficiency noted in many FIXMEs scattered across all the targets. This effectively moves the problem up one level, replacing eleven FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path through FastISel where we actually supply a DebugLoc, fixing Radar 7421831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106243 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
achineBasicBlock.cpp
HIElimination.cpp
electionDAG/FastISel.cpp
|
ca99c62bc866adc18ff78d20e867c7f4c35f6885 |
17-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
add missing break. inconsequential as the code shouldn't be reached, but for correctness' sake, it should be there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106229 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
59c38f31acf87901208bbf790508196b1c0ad1fd |
17-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
add missing break. inconsequential as the code shouldn't be reached, but for correctness' sake, it should be there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106229 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7f31562a65a7245f4ada75d6e30c9ecb74ebcd5d |
17-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Add entries for Expanding atomic intrinsics to libcalls. Just a placeholder for the moment. The implementation of the libcall will follow. Currently, the llvm-gcc knows when the intrinsics can be correctly handled by the back end and only generates them in those cases, issuing libcalls directly otherwise. That's too much coupling. The intrinsics should always be generated and the back end decide how to handle them, be it with a libcall, inline code, or whatever. This patch is a step in that direction. rdar://8097623 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b56ce8171ec52f44015d95127faaa7dd4ed92763 |
17-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Add entries for Expanding atomic intrinsics to libcalls. Just a placeholder for the moment. The implementation of the libcall will follow. Currently, the llvm-gcc knows when the intrinsics can be correctly handled by the back end and only generates them in those cases, issuing libcalls directly otherwise. That's too much coupling. The intrinsics should always be generated and the back end decide how to handle them, be it with a libcall, inline code, or whatever. This patch is a step in that direction. rdar://8097623 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8122b0391df729cb15600c0df73331070c912ba9 |
17-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
ISD::MEMBARRIER should lower to a libcall (__sync_synchronize) if the target sets the legalize action to Expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bbfc0d22a9a8e197a5ea428f14d37366a1fadd5f |
17-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
ISD::MEMBARRIER should lower to a libcall (__sync_synchronize) if the target sets the legalize action to Expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4e06d2e90727a807d5164a034f237c78da56cc38 |
16-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow a register to be redefined multiple times in a basic block. LiveVariableAnalysis was a bit picky about a register only being redefined once, but that really isn't necessary. Here is an example of chained INSERT_SUBREGs that we can handle now: 68 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1028<kill>, 14 register: %reg1040 +[70,134:0) 76 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1029<kill>, 13 register: %reg1040 replace range with [70,78:1) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,134:0) 0@78-(134) 1@70-(78) 84 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1030<kill>, 12 register: %reg1040 replace range with [78,86:2) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,134:0) 0@86-(134) 1@70-(78) 2@78-(86) 92 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1031<kill>, 11 register: %reg1040 replace range with [86,94:3) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,94:3)[94,134:0) 0@94-(134) 1@70-(78) 2@78-(86) 3@86-(94) rdar://problem/8096390 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106152 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c66d0f2a9386cc7cb3237b8e3cace2b62a9c7dc8 |
16-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow a register to be redefined multiple times in a basic block. LiveVariableAnalysis was a bit picky about a register only being redefined once, but that really isn't necessary. Here is an example of chained INSERT_SUBREGs that we can handle now: 68 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1028<kill>, 14 register: %reg1040 +[70,134:0) 76 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1029<kill>, 13 register: %reg1040 replace range with [70,78:1) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,134:0) 0@78-(134) 1@70-(78) 84 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1030<kill>, 12 register: %reg1040 replace range with [78,86:2) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,134:0) 0@86-(134) 1@70-(78) 2@78-(86) 92 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1031<kill>, 11 register: %reg1040 replace range with [86,94:3) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,94:3)[94,134:0) 0@94-(134) 1@70-(78) 2@78-(86) 3@86-(94) rdar://problem/8096390 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106152 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ee4995fbcb91de2c96d353f4f6d0d0c8875604e4 |
16-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
add FIXME git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106126 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
956352eb4682ba7000486d8712a4435a843a48d4 |
16-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
add FIXME git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106126 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
5b6de7032dccbde9105d1037f315b1d08bfaf339 |
16-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comment to include that the use of a preg is also verboten in this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106119 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
504c0cda91a6c6c8828c5a55f1516881b6f99e8c |
16-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comment to include that the use of a preg is also verboten in this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106119 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
160f30cd4ff881f768384f38f1b9d7694faa0b40 |
16-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106091 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
fConversion.cpp
ostRAHazardRecognizer.cpp
egisterScavenging.cpp
|
46df4eb46e784036cf895db271fe29e1cf2a975a |
16-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106091 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
fConversion.cpp
ostRAHazardRecognizer.cpp
egisterScavenging.cpp
|
afc051bfd042cc6aa897a26d93eeb88f9f4802ca |
16-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use separate named MDNode to hold each function's local variable info. This speeds up local variable handling in DwarfDebug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106075 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2f7d5291de87bfa195884e84dc0efe9705c2215c |
16-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use separate named MDNode to hold each function's local variable info. This speeds up local variable handling in DwarfDebug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106075 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
00147c7a6791447a7ffb601e304b5b2642a7ca57 |
16-Jun-2010 |
Eric Christopher <echristo@apple.com> |
Don't emit the linkage for initializer label for mach-o tls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106073 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7500e06e3886a13e3017d7af77c35d309e875182 |
16-Jun-2010 |
Eric Christopher <echristo@apple.com> |
Don't emit the linkage for initializer label for mach-o tls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106073 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e3010a3eb7a6f76947a8243c1a785ecb8f3d3e5f |
16-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Create a more targeted fix for not sinking instructions into a range where it will conflict with another live range. The place which creates this scenerio is the code in X86 that lowers a select instruction by splitting the MBBs. This eliminates the need to check from the bottom up in an MBB for live pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106066 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
d361a77f14997d4674f41545103acad3a4a902f1 |
16-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Create a more targeted fix for not sinking instructions into a range where it will conflict with another live range. The place which creates this scenerio is the code in X86 that lowers a select instruction by splitting the MBBs. This eliminates the need to check from the bottom up in an MBB for live pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106066 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
9182e2711677e7eceaed04136fadca5e83455f4f |
16-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Added a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106063 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cad22ad0bf1f1d5a40f1bc8ebe02d4edc25e2553 |
16-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Added a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106063 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2f5b10d1af73d991aed66a932a4282ab23e4af13 |
16-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix 80col violations, remove trailing whitespace, and clarify a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106057 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
92fffe04057d4528d1336b6a552a07f06858d3cb |
16-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix 80col violations, remove trailing whitespace, and clarify a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106057 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
ee86aec03d3f894e9afee3d8140bce2e73644fe5 |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the local register allocator. Please use the fast allocator instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106051 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocLocal.cpp
|
8a3eab9b20acb7193285bc31c9a3e23c7c7d7173 |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the local register allocator. Please use the fast allocator instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106051 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocLocal.cpp
|
fac0ffebe509898a3b97b01d483a02a68417cc62 |
15-Jun-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed vector widening of binary instructions that can trap. Patch by Visa Putkinen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106038 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
9c4a84b4f38790a74d2e4c95870e27e71a79e326 |
15-Jun-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed vector widening of binary instructions that can trap. Patch by Visa Putkinen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106038 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
89b9c321592b13b84c4da082a66399caf7c46697 |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
IfConversion's AnalyzeBlocks method always returns false; clean it up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106027 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6fb124bee95d07f5d5aed42c92182a813fd31cbd |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
IfConversion's AnalyzeBlocks method always returns false; clean it up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106027 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
aea9847a6ae97b9d964fce7f1e5e59619a5ad65a |
15-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
fix naming git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106024 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
288694f430bc227d12b74f84f7e26e64d3b7f56b |
15-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
fix naming git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106024 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
642767a8f648c45c9dabaea089bdf48783ad4806 |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix an exotic bug that only showed up in an internal test case. SimpleRegisterCoalescing::JoinIntervals() uses CoalescerPair to determine if a copy is coalescable, and in very rare cases it can return true where LHS is not live - the coalescable copy can come from an alias of the physreg in LHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106021 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1b2f94c621250889cb328816714e24671057f705 |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix an exotic bug that only showed up in an internal test case. SimpleRegisterCoalescing::JoinIntervals() uses CoalescerPair to determine if a copy is coalescable, and in very rare cases it can return true where LHS is not live - the coalescable copy can come from an alias of the physreg in LHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106021 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
01320da35e8a0a327ede52cc1d4598b0a317f00b |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106015 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
669db04130911252a38d4470a7c136ffc26ec577 |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106015 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
1405972013c7dfb9b02437a5f1a45bfa3a3ee7df |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add some missing checks for the case where the extract_subregs are combined to an insert_subreg, i.e., where the destination register is larger than the source. We need to check that the subregs can be composed for that case in a symmetrical way to the case when the destination is smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106004 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4ffd22d8103aa374dc9573012993139948165577 |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add some missing checks for the case where the extract_subregs are combined to an insert_subreg, i.e., where the destination register is larger than the source. We need to check that the subregs can be composed for that case in a symmetrical way to the case when the destination is smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106004 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0aaa52e36a8f2c71ed0661a2d13d93d7bf069a35 |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid processing early clobbers twice in RegAllocFast. Early clobbers defining a virtual register were first alocated to a physreg and then processed as a physreg EC, spilling the virtreg. This fixes PR7382. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105998 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
75ac4d9c2dfb22f84da25dec03df7a07f3dad1fa |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid processing early clobbers twice in RegAllocFast. Early clobbers defining a virtual register were first alocated to a physreg and then processed as a physreg EC, spilling the virtreg. This fixes PR7382. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105998 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
7f1a4e2fde272e28ccf372a5aa79dc3a19916180 |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add CoalescerPair helper class. Given a copy instruction, CoalescerPair can determine which registers to coalesce in order to eliminate the copy. It deals with all the subreg fun to determine a tuple (DstReg, SrcReg, SubIdx) such that: - SrcReg is a virtual register that will disappear after coalescing. - DstReg is a virtual or physical register whose live range will be extended. - SubIdx is 0 when DstReg is a physical register. - SrcReg can be joined with DstReg:SubIdx. CoalescerPair::isCoalescable() determines if another copy instruction is compatible with the same tuple. This fixes some NEON miscompilations where shuffles are getting coalesced as if they were copies. The CoalescerPair class will replace a lot of the spaghetti logic in JoinCopy later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105997 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
40d07bbebbe73914af28be1bdab169ce8333adca |
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add CoalescerPair helper class. Given a copy instruction, CoalescerPair can determine which registers to coalesce in order to eliminate the copy. It deals with all the subreg fun to determine a tuple (DstReg, SrcReg, SubIdx) such that: - SrcReg is a virtual register that will disappear after coalescing. - DstReg is a virtual or physical register whose live range will be extended. - SubIdx is 0 when DstReg is a physical register. - SrcReg can be joined with DstReg:SubIdx. CoalescerPair::isCoalescable() determines if another copy instruction is compatible with the same tuple. This fixes some NEON miscompilations where shuffles are getting coalesced as if they were copies. The CoalescerPair class will replace a lot of the spaghetti logic in JoinCopy later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105997 91177308-0d34-0410-b5e6-96231b3b80d8
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
34878d753622fd752584a83384a226c58b98e36b |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Generalize the pre-coalescing of extract_subregs feeding reg_sequences, replacing the overly conservative checks that I had introduced recently to deal with correctness issues. This makes a pretty noticable difference in our testcases where reg_sequences are used. I've updated one test to check that we no longer emit the unnecessary subreg moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105991 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
852a7e362e3c539f1fe23307e946eae9ca18ae14 |
15-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Generalize the pre-coalescing of extract_subregs feeding reg_sequences, replacing the overly conservative checks that I had introduced recently to deal with correctness issues. This makes a pretty noticable difference in our testcases where reg_sequences are used. I've updated one test to check that we no longer emit the unnecessary subreg moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105991 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b2dd2153080f2db2f5cdd9ba31308dc0e29f602f |
15-Jun-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105987 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
76863b16c63673c81ade357cec87b7c00b4267d7 |
15-Jun-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105987 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
f864806003a377d7c9a78e6a9ddadaae48d56beb |
14-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
More dbg_value cleanup so the presence of debug info doesn't affect code-gen. Make sure to skip the dbg_value instructions when moving dups out of the diamond. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105965 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c834f413ae9bfd6d41545aed8d6b91c8ccb8ea16 |
14-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
More dbg_value cleanup so the presence of debug info doesn't affect code-gen. Make sure to skip the dbg_value instructions when moving dups out of the diamond. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105965 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
bc9ff676e202bdcb252a79b41eedc644e98380d9 |
14-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Do away with SimpleHazardRecognizer.h. It's not used and offers little value. - Rename ExactHazardRecognizer to PostRAHazardRecognizer and move its header to include to allow targets to extend it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105959 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
xactHazardRecognizer.h
ostRAHazardRecognizer.cpp
ostRASchedulerList.cpp
impleHazardRecognizer.h
argetInstrInfoImpl.cpp
|
774bc882fdb3bbb0558075360c6e5bc510a0bdad |
14-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Do away with SimpleHazardRecognizer.h. It's not used and offers little value. - Rename ExactHazardRecognizer to PostRAHazardRecognizer and move its header to include to allow targets to extend it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105959 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
xactHazardRecognizer.h
ostRAHazardRecognizer.cpp
ostRASchedulerList.cpp
impleHazardRecognizer.h
argetInstrInfoImpl.cpp
|
0b5007ad4a5374ca356440b453b39c7036af7745 |
14-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid uncessary array copying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105955 91177308-0d34-0410-b5e6-96231b3b80d8
impleHazardRecognizer.h
|
538ccb0d997ce310cd177b562e7b4baa0dad583c |
14-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid uncessary array copying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105955 91177308-0d34-0410-b5e6-96231b3b80d8
impleHazardRecognizer.h
|
1b6f579571a05f65629239ba72725b0876937d91 |
14-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
fix a -Wbool-conversions warning from clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105942 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
98cdfc779df1d8d9a0071103af13f43ba65504c2 |
14-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
fix a -Wbool-conversions warning from clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105942 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
f761979641f10e87b328ffece9b148ce091cea3a |
12-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
When performing the Horrible Hack(tm-Duncan) on the EH code to convert a clean-up to a catch-all after inlining, take into account that there could be filter IDs as well. The presence of filters don't mean that the selector catches anything. It's just metadata information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105872 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
94366111d37d5ce37790e3c5f407d714b7f0751d |
12-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
When performing the Horrible Hack(tm-Duncan) on the EH code to convert a clean-up to a catch-all after inlining, take into account that there could be filter IDs as well. The presence of filters don't mean that the selector catches anything. It's just metadata information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105872 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
f4fba53483a529e8f3adc304a811dd7bd3937854 |
12-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to provide its own hazard recognizer to post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105862 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
729aab3dd3a6ea5ca23430936270154090fcc10b |
12-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to provide its own hazard recognizer to post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105862 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
4156fe354873ab09b67131de27bb054a53e28217 |
12-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105861 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
44acc24117b1a9eafb7b9b993731ca0115569ea2 |
12-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105861 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
aa685d67d6746a64b517beb1b5c485e8285840d2 |
11-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Support for nested functions/classes in debug output. (Again.) Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
215aa15a0d0df75af8d9cef6ef49026dcc3258a8 |
11-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Support for nested functions/classes in debug output. (Again.) Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6bc6e42f47edc5a46345db00719186806367d035 |
10-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105775 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
302ef834e0a2fd03e4b435079a9fa6c1e1cdc23b |
10-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105775 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
582cfd2c7045bedf00235368b74bf6351391cc7d |
09-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mark physregs defined by inline asm as implicit. This is a bit of a hack to make inline asm look more like call instructions. It would be better to produce correct dead flags during isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
3013a2068421335304dce861dd5977e8cf43cbca |
09-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mark physregs defined by inline asm as implicit. This is a bit of a hack to make inline asm look more like call instructions. It would be better to produce correct dead flags during isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
88287d63dcf967e22d0e235765743e4f09e3ce5d |
09-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to place 2-address pass inserted copies in better spots. Thumb2 will use this to try to avoid breaking up IT blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105745 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
68fc2daf8fa446be04d2ed2b3cbb1b00c382458f |
09-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to place 2-address pass inserted copies in better spots. Thumb2 will use this to try to avoid breaking up IT blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105745 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
e9a62547cf624ee5bc2090c326fc90d52d997f3d |
09-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
It's an error to translate this: %reg1025 = <sext> %reg1024 ... %reg1026 = SUBREG_TO_REG 0, %reg1024, 4 into this: %reg1025 = <sext> %reg1024 ... %reg1027 = EXTRACT_SUBREG %reg1025, 4 %reg1026 = SUBREG_TO_REG 0, %reg1027, 4 The problem here is that SUBREG_TO_REG is there to assert that an implicit zext occurs. It doesn't insert a zext instruction. If we allow the EXTRACT_SUBREG here, it will give us the value after the <sext>, not the original value of %reg1024 before <sext>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105741 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
d64ba3ee62cc854218d9b76b9420493d82313d06 |
09-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
It's an error to translate this: %reg1025 = <sext> %reg1024 ... %reg1026 = SUBREG_TO_REG 0, %reg1024, 4 into this: %reg1025 = <sext> %reg1024 ... %reg1027 = EXTRACT_SUBREG %reg1025, 4 %reg1026 = SUBREG_TO_REG 0, %reg1027, 4 The problem here is that SUBREG_TO_REG is there to assert that an implicit zext occurs. It doesn't insert a zext instruction. If we allow the EXTRACT_SUBREG here, it will give us the value after the <sext>, not the original value of %reg1024 before <sext>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105741 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
818eeea70b328917317b5eca6a352f830565587d |
09-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add argument name comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
c3c2517fed43457fed8c2e891556866dba5b83cf |
09-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add argument name comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
28188e1c4986d9e4985f0f4a8ce268743eb94631 |
08-Jun-2010 |
Shih-wei Liao <sliao@google.com> |
Git hiccup. Retry.... Change-Id: I5a329137a43f36bab32ea62386ade11da550c0b0
ndroid.mk
smPrinter/Android.mk
electionDAG/Android.mk
|
c156bc696311928af01132d159b9e307436779bb |
08-Jun-2010 |
Shih-wei Liao <sliao@google.com> |
Fix llvm.mk and the other 49 mk files Change-Id: I5aa02363c1083297d163a575f5a35c495f950230
ndroid.mk
smPrinter/Android.mk
electionDAG/Android.mk
|
e2ce99f7360ce809150de9eb86d248675078445d |
08-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a mistake in my previous change r105437: don't access operand 2 and assume that it is an immediate before checking that the instruction is an EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105585 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
66dc4e2acdc96990e73cfc1b8d0c2d5fa9619ae5 |
08-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a mistake in my previous change r105437: don't access operand 2 and assume that it is an immediate before checking that the instruction is an EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105585 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0244cecc53f44bef92a685feb005e6843c44491b |
08-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Add some basic debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105561 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
ba1fe142450f46b44deccb21c8b422bc02b32d8b |
08-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Add some basic debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105561 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
8b5e7c9a4de3a0057b1e298647543f2bca3496b1 |
07-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Cleanup. Process the dbg_values separately git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105554 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
66f360e990fd54ba1ea02e1ad66e2551cdb519af |
07-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Cleanup. Process the dbg_values separately git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105554 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
13d9723c06f4fc61c6ba5c31230cc69b9458dc09 |
07-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Move exit check where it really belongs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105541 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
41a628237ce7892e081f126826db6b2391b100aa |
07-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Move exit check where it really belongs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105541 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6284bf453a19da6b21c5bac5a7783b42ae694589 |
05-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Revert 105492 & 105493 due to a testcase regression. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105511 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6d56b9fabcfb1fc874a6122cf41d876c4673e9d4 |
05-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Revert 105492 & 105493 due to a testcase regression. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105511 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fd642741f04a7ecd810718e310667d34d7e8b309 |
05-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
Fix some liveout handling related to tail calls, see comments. I don't think this ever resulted in problems on x86, but it would on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105509 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
88004c25c795dae031d22e5560cc4a0f98594e7c |
05-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
Fix some liveout handling related to tail calls, see comments. I don't think this ever resulted in problems on x86, but it would on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105509 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
614eadeaf0a05ef96843af280b49bfc2f2358ff7 |
05-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 105308 with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105502 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
2b4e727c6f55a4045a397250648227e2ded6c7d9 |
05-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 105308 with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105502 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
3c47a2c563d3630572257e8673c3188665ccaf6a |
05-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Make if-conversion ignore dbg_value instructions in its analysis. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105498 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
870c80540d90e748df95b2e9180fa1961d739229 |
05-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Make if-conversion ignore dbg_value instructions in its analysis. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105498 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
868b080e81e10ff07964a96130abeb5caacbb925 |
05-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Support for nested functions/classes in debug output. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0f1b8135673f512b3373f3e1f16607f70537be72 |
05-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Support for nested functions/classes in debug output. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
92330c000cdc7c328110d6f9de5e4017fefac545 |
04-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Skip dbg_value instructions when scanning instructions in register scavenging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105481 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
1c8ab781d5b24bc473b4baa8f3fb6e9b55597aa3 |
04-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Skip dbg_value instructions when scanning instructions in register scavenging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105481 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
4b9d16ad3bbd5453808b9560f021ccc560e945c4 |
04-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of the call instructions whose clobber lists were skipped during fast register allocation. Process all of the clobber lists at the end of the function, marking the registers as used in MachineRegisterInfo. This is necessary in case the calls clobber callee-saved registers (sic). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105473 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
6de07178e1e6445080bf4f7704e274c5f219ff70 |
04-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of the call instructions whose clobber lists were skipped during fast register allocation. Process all of the clobber lists at the end of the function, marking the registers as used in MachineRegisterInfo. This is necessary in case the calls clobber callee-saved registers (sic). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105473 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
58929fc959f84e379f40ae9c6e8c436dadc7b0cd |
04-Jun-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed a bug during widening where we would avoid legalizing a node. When we replace an OpA with a widened OpB, it is possible to get new uses of OpA due to CSE when recursively updating nodes. Since OpA has been processed, the new uses are not examined again. The patch checks if this occurred and it it did, updates the new uses of OpA to use OpB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
f62546ab046d4bc2f055921f25f127fbb942b806 |
04-Jun-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed a bug during widening where we would avoid legalizing a node. When we replace an OpA with a widened OpB, it is possible to get new uses of OpA due to CSE when recursively updating nodes. Since OpA has been processed, the new uses are not examined again. The patch checks if this occurred and it it did, updates the new uses of OpA to use OpB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
aebde74bd1043e0ba04cd6efcd48905979395a9b |
04-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add some missing checks in TwoAddressInstructionPass::CoalesceExtSubRegs. Check that all the instructions are in the same basic block, that the EXTRACT_SUBREGs write to the same subregs that are being extracted, and that the source and destination registers are in the same regclass. Some of these constraints can be relaxed with a bit more work. Jakob suggested that the loop that checks for subregs when NewSubIdx != 0 should use the "nodbg" iterator, so I made that change here, too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105437 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
26bf8f9a1b6b7f9ce198c319dc650ad3073b05f8 |
04-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add some missing checks in TwoAddressInstructionPass::CoalesceExtSubRegs. Check that all the instructions are in the same basic block, that the EXTRACT_SUBREGs write to the same subregs that are being extracted, and that the source and destination registers are in the same regclass. Some of these constraints can be relaxed with a bit more work. Jakob suggested that the loop that checks for subregs when NewSubIdx != 0 should use the "nodbg" iterator, so I made that change here, too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105437 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
abe1fa816602c5e4ab74e28fbb6af73899fee339 |
04-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Cleanup 80-column and trim trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105435 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
6ee358b4eb92298357687cb460dde8e26678aca2 |
04-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Cleanup 80-column and trim trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105435 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
8101682108a26049367567a8fbc0ecaf7307481b |
03-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix SimplifyDemandedBits' AssertZext logic to demand all the bits. It needs to demand the high bits because it's asserting that they're zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
400f75cb5ed39ab4f071f78f6a26beefbc8a46f0 |
03-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix SimplifyDemandedBits' AssertZext logic to demand all the bits. It needs to demand the high bits because it's asserting that they're zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d6967f3865749675ab22ed1d1897e1164c03c3bf |
03-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert 105308. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105399 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
3844173f6e5c2d3e309d71d8980e25cca1b9305d |
03-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert 105308. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105399 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
1a4c2e3aabbed57e325b457355c13d7b7c09f73b |
03-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Machine sink could potentially sink instructions into a block where the physical registers it defines then interfere with an existing preg live range. For instance, if we had something like these machine instructions: BB#0 ... = imul ... EFLAGS<imp-def,dead> test ..., EFLAGS<imp-def> jcc BB#2 EFLAGS<imp-use> BB#1 ... ; fallthrough to BB#2 BB#2 ... ; No code that defines EFLAGS jcc ... EFLAGS<imp-use> Machine sink will come along, see that imul implicitly defines EFLAGS, but because it's "dead", it assumes that it can move imul into BB#2. But when it does, imul's "dead" imp-def of EFLAGS is raised from the dead (a zombie) and messes up the condition code for the jump (and pretty much anything else which relies upon it being correct). The solution is to know which pregs are live going into a basic block. However, that information isn't calculated at this point. Nor does the LiveVariables pass take into account non-allocatable physical registers. In lieu of this, we do a *very* conservative pass through the basic block to determine if a preg is live coming out of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105387 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
869d60d39d579b2051a8e34f460de72f071c2172 |
03-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Machine sink could potentially sink instructions into a block where the physical registers it defines then interfere with an existing preg live range. For instance, if we had something like these machine instructions: BB#0 ... = imul ... EFLAGS<imp-def,dead> test ..., EFLAGS<imp-def> jcc BB#2 EFLAGS<imp-use> BB#1 ... ; fallthrough to BB#2 BB#2 ... ; No code that defines EFLAGS jcc ... EFLAGS<imp-use> Machine sink will come along, see that imul implicitly defines EFLAGS, but because it's "dead", it assumes that it can move imul into BB#2. But when it does, imul's "dead" imp-def of EFLAGS is raised from the dead (a zombie) and messes up the condition code for the jump (and pretty much anything else which relies upon it being correct). The solution is to know which pregs are live going into a basic block. However, that information isn't calculated at this point. Nor does the LiveVariables pass take into account non-allocatable physical registers. In lieu of this, we do a *very* conservative pass through the basic block to determine if a preg is live coming out of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105387 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
dbf4b2d0533807a789d38f850f5e6cb00d1d3d1f |
03-Jun-2010 |
Eric Christopher <echristo@apple.com> |
One underscore, not two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7310064f4d14b62029805ab16a11ff443ea309d5 |
03-Jun-2010 |
Eric Christopher <echristo@apple.com> |
One underscore, not two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
64d4b7c572c6b6a711dfdcd62a7919ba3c4665b9 |
03-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Implement expansion in type legalization for add/sub with overflow. The expansion is the same as that used by LegalizeDAG. The resulting code sucks in terms of performance/codesize on x86-32 for a 64-bit operation; I haven't looked into whether different expansions might be better in general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
268637ed0f34e10e4125e94c44ff3e2975a19166 |
03-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Implement expansion in type legalization for add/sub with overflow. The expansion is the same as that used by LegalizeDAG. The resulting code sucks in terms of performance/codesize on x86-32 for a 64-bit operation; I haven't looked into whether different expansions might be better in general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
09142076c8b5b2ee4371ee938f11d70aad241d58 |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the fast register allocator by default for -O0 builds. This affects both llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105372 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
8b89c64b5ca469366b8cde5a242ac41c040bb1aa |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the fast register allocator by default for -O0 builds. This affects both llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105372 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
20e4cc9761f93188b3466fe87c2ff832eb05087e |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use readsWritesVirtualRegister instead of counting uses and defs when inserting spills and reloads. This means that a partial define of a register causes a reload so the other parts of the register are preserved. The reload can be prevented by adding an <imp-def> operand for the full register. This is already done by the coalescer and live interval analysis where relevant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105369 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ead06be02fe6b9a2bf6fbe04237c1276ed0cdb5c |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use readsWritesVirtualRegister instead of counting uses and defs when inserting spills and reloads. This means that a partial define of a register causes a reload so the other parts of the register are preserved. The reload can be prevented by adding an <imp-def> operand for the full register. This is already done by the coalescer and live interval analysis where relevant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105369 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c3e90d71d0f3a6eacd5e8ff69f6821e3ea666648 |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add full register <imp-def> operands when the coalescer is creating partial register updates. These operands tell the spiller that the other parts of the partially defined register are don't-care, and a reload is not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105361 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
02571a3a1f2b446cbef29761ebe50bde400621fc |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add full register <imp-def> operands when the coalescer is creating partial register updates. These operands tell the spiller that the other parts of the partially defined register are don't-care, and a reload is not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105361 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
529a9497d20172f52db11116aae0cd2c5e030c31 |
03-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Compulsive reformating. No functionalitical changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105359 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
05c68374c1c73599a0b7044ad09fb4827d128ec5 |
03-Jun-2010 |
Bill Wendling <isanbard@gmail.com> |
Compulsive reformating. No functionalitical changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105359 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
d2776e0f42e69a90cd99e134481505520973584b |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Slightly change the meaning of the reMaterialize target hook when the original instruction defines subregisters. Any existing subreg indices on the original instruction are preserved or composed with the new subreg index. Also substitute multiple operands mentioning the original register by using the new MachineInstr::substituteRegister() function. This is necessary because there will soon be <imp-def> operands added to non read-modify-write partial definitions. This instruction: %reg1234:foo = FLAP %reg1234<imp-def> will reMaterialize(%reg3333, bar) like this: %reg3333:bar-foo = FLAP %reg333:bar<imp-def> Finally, replace the TargetRegisterInfo pointer argument with a reference to indicate that it cannot be NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105358 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
9edf7deb37f0f97664f279040fa15d89f32e23d9 |
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Slightly change the meaning of the reMaterialize target hook when the original instruction defines subregisters. Any existing subreg indices on the original instruction are preserved or composed with the new subreg index. Also substitute multiple operands mentioning the original register by using the new MachineInstr::substituteRegister() function. This is necessary because there will soon be <imp-def> operands added to non read-modify-write partial definitions. This instruction: %reg1234:foo = FLAP %reg1234<imp-def> will reMaterialize(%reg3333, bar) like this: %reg3333:bar-foo = FLAP %reg333:bar<imp-def> Finally, replace the TargetRegisterInfo pointer argument with a reference to indicate that it cannot be NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105358 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
9699a4f87d05daf8809924950a4301a2f93058ad |
02-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the TargetRegisterClass member from CalleeSavedInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105344 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
42d075c4fb21995265961501cec9ff6e3fb497ce |
02-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the TargetRegisterClass member from CalleeSavedInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105344 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
a17d0b8d02df6535afb7593244d410a3dc4ff60a |
02-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Skip identical instruction while calculating DBG_VALUE range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105340 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
354eb7ea968f35a9e8628b8036a69f48a66e1ff9 |
02-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Skip identical instruction while calculating DBG_VALUE range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105340 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
89e6290f4307712cdf70249b099f9a9df0b407f5 |
02-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Rename canCombinedSubRegIndex method to something more grammatically correct and tidy up the comment describing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105339 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
91a74da036d3a9442953ae1de3e797a50da4ccf0 |
02-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Rename canCombinedSubRegIndex method to something more grammatically correct and tidy up the comment describing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105339 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
a1b75ab2cf9d5564d13145165350c4596a45bd5f |
02-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use local small vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105332 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b9abe9f2ad213a1510c23525721d317ec44ee97f |
02-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use local small vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105332 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c8d6fe97e38e04e8765ab8fd0fe5a1c3d8bc5234 |
02-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Not all entries in the range will have an SUnit. Check for that when looking for debug information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105324 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
|
086723d244952aee690a8aa39485a0fa0d3a7700 |
02-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Not all entries in the range will have an SUnit. Check for that when looking for debug information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105324 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
|
579a22a7c5b2254698bde8c386a92ed8724b85cf |
02-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove uses of getCalleeSavedRegClasses from outside the backends and removes the virtual declaration. With that out of the way I should be able to cleanup one backend at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105321 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
ce48c1de828688b34cf5c2038fde23368a0a45f4 |
02-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove uses of getCalleeSavedRegClasses from outside the backends and removes the virtual declaration. With that out of the way I should be able to cleanup one backend at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105321 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
2100c364b8bd9f851e6024ad77930e6b5a844163 |
02-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine cse of instructions which define physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105308 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
9d709a8edb696e89b33cd3c2886c8db735b02318 |
02-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine cse of instructions which define physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105308 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
e0ee785fabe21bbba1264dc3ba37c4a5620a2a75 |
02-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix an obvious mistake: don't change the operands until all of them have been checked and it is safe to proceed with the changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105304 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b2c2a972b075542ab5a02c554ec4a5cc0bcb95a0 |
02-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix an obvious mistake: don't change the operands until all of them have been checked and it is safe to proceed with the changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105304 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
20caa1c63307ea36d44818e0d0cc6cd4307c294b |
02-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Update debug information when breaking anti-dependencies. rdar://7759363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105300 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
|
533934e06e99a86e8c93f8ec9b9d3b2c527b747e |
02-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Update debug information when breaking anti-dependencies. rdar://7759363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105300 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
riticalAntiDepBreaker.cpp
|
badcdfda8809d29968ee2e8c0725b79d4f85b9bb |
02-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly compose subregister indices when coalescing. The comment about ordering of subreg indices is no longer true. This exposed a bug in the new substVirtReg method that is also fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105294 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
impleRegisterCoalescing.cpp
|
a5135f60dd95275dcbc1123f866889151ced933d |
02-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly compose subregister indices when coalescing. The comment about ordering of subreg indices is no longer true. This exposed a bug in the new substVirtReg method that is also fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105294 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
impleRegisterCoalescing.cpp
|
954ada4da87cba06470d953205c25f6f11ae26ec |
01-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Ignore line number of debug value in undefined register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105292 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f2e77676242bb5a3940da7b41c42704135e6bd92 |
01-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Ignore line number of debug value in undefined register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105292 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
90b1ad99c727ad747cd53df6b711bb0085e0431b |
01-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Keep track of incoming debug value of unused argument. Radar 7927666. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105285 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
9126c0d42a5176e5865171713fae4a62e3c69912 |
01-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Keep track of incoming debug value of unused argument. Radar 7927666. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105285 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
47fa62aff11934bcf792a38f629e430449bac7e3 |
01-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fill in missing support for ISD::FEXP, ISD::FPOWI, and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
956b3490349019163d1d12bb42b82f7e1fcc20ee |
01-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fill in missing support for ISD::FEXP, ISD::FPOWI, and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
03d478c3834bcfc03a2527c6c9c7879b80119b8a |
01-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a FIXME git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105282 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
2f3257ef04a40adfeb6440d1b02f7bbfee0dd4fc |
01-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a FIXME git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105282 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
0792de9269ffb9b87d457d5e78e8c02a57b7318a |
01-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
When processing function arguments when splitting live ranges across invokes, handle structs passed by value via an extract/insert pair, as a bitcast won't work on a struct. rdar://7742824 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105280 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
dc58b25ebc4d6b79f36db09a0b718ca957a610eb |
01-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
When processing function arguments when splitting live ranges across invokes, handle structs passed by value via an extract/insert pair, as a bitcast won't work on a struct. rdar://7742824 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105280 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
86ac7a2df2f4a98d1ccf3460e9a0d6e13acdc868 |
31-May-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6623: when optimizing for size, don't inline memcpy/memsets that are too large. This causes the freebsd bootloader to be too large apparently. It's unclear if this should be an -Os or -Oz thing. Thoughts welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6c41ad8c9a93668c481436fc4a5e47e6f14776e7 |
31-May-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6623: when optimizing for size, don't inline memcpy/memsets that are too large. This causes the freebsd bootloader to be too large apparently. It's unclear if this should be an -Os or -Oz thing. Thoughts welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
be18530bad23c05d0ef862de176751393662e6ac |
31-May-2010 |
Chris Lattner <sabre@nondot.org> |
the 'limit' argument to FindOptimalMemOpLowering is unsigned, not uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6b378618273bab1ee64c5034f4fd8e8338b7110f |
31-May-2010 |
Chris Lattner <sabre@nondot.org> |
the 'limit' argument to FindOptimalMemOpLowering is unsigned, not uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7d2325fdbbbfe925bbaebfbcca6faae7619f3d02 |
30-May-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Use `llvm::next' instead of `next' to make VC++ 2010 happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105168 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
|
10e02a017a877b750d4cdf0ebf11b90dee5e0d61 |
30-May-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Use `llvm::next' instead of `next' to make VC++ 2010 happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105168 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
|
65320320ae39d7b5d8f7f8257cc2875572832c78 |
29-May-2010 |
Dan Gohman <gohman@apple.com> |
Reorder some code in SelectionDAGBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
462f6b57b6276502e1279d0e508c0b9fc24feb50 |
29-May-2010 |
Dan Gohman <gohman@apple.com> |
Reorder some code in SelectionDAGBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f716cbbdbfbcb9cdf736cbaa22a08d7fa3023b23 |
29-May-2010 |
Dan Gohman <gohman@apple.com> |
SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set doesn't needs its EnableFastISel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
7451d3e09d26115195280ba36f686a0a90815089 |
29-May-2010 |
Dan Gohman <gohman@apple.com> |
SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set doesn't needs its EnableFastISel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
29d2dee8ce02be48848c1d0e427b8b7596527e6f |
29-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105100 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
0f9c658558f70ba0017575019adbbd0b0b6b13e5 |
29-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105100 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
6ff19ceeabd0392ef4f1a9c45789b5f0edd2c4ba |
29-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove schedule-livein-copies. It's not being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105095 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
701d4d309f892d34428e3078f350d3d28d7d2a94 |
29-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove schedule-livein-copies. It's not being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105095 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
ac6195401811e4178adf4b31453a68c9ef7dfb37 |
29-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle composed subreg indices when processing REQ_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105066 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5a0d4fcb8d0e624cf9452659f83e20f7e9e3444d |
29-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle composed subreg indices when processing REQ_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105066 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
fc04e791ba0837c80d7965008fea07528ea2b7e6 |
29-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Doh. Machine LICM is re-initializing the CSE map over and over. Patch by Anna Zaks. rdar://8037934. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105065 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
82e0a1a1a81ad54452823a8eb1e8d743cf38f098 |
29-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Doh. Machine LICM is re-initializing the CSE map over and over. Patch by Anna Zaks. rdar://8037934. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105065 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c5c2c5f54202791a3a853cd8ae5c2dbfd9d3f930 |
29-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix some latency computation bugs: if the use is not a machine opcode do not just return zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105061 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
046fa3f90a31ebfa10df89ae348f478d492709a9 |
29-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix some latency computation bugs: if the use is not a machine opcode do not just return zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105061 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
aef97088b2009870ac72ccc82fc7df4c735dc17a |
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a TargetRegisterInfo::composeSubRegIndices hook with a default implementation that is correct for most targets. Tablegen will override where needed. Add MachineOperand::subst{Virt,Phys}Reg methods that correctly handle existing subreg indices when sustituting registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104985 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2da53370241fdd1b5c291483311b34e609f06c73 |
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a TargetRegisterInfo::composeSubRegIndices hook with a default implementation that is correct for most targets. Tablegen will override where needed. Add MachineOperand::subst{Virt,Phys}Reg methods that correctly handle existing subreg indices when sustituting registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104985 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8a965e54f03119fff0e778e3726b6cf0ba56143d |
28-May-2010 |
Stuart Hastings <stuart@apple.com> |
Revert 104841, 104842, 104876 due to buildbot failures. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104953 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8ffc42f8eaf74dc85a90ca15326508a3a00b44ad |
28-May-2010 |
Stuart Hastings <stuart@apple.com> |
Revert 104841, 104842, 104876 due to buildbot failures. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104953 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3eb67d59fcf724e8345fb783b1b891e31dcfc151 |
28-May-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the restriction that the array size in an alloca must be i32. This will help reduce the amount of casting required on 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f75a7d3fbf7fbb3071f45e248d3fb93312ec4fbd |
28-May-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the restriction that the array size in an alloca must be i32. This will help reduce the amount of casting required on 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
120ec5506c7ad2df875648127316b9ea938dc409 |
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a -regalloc=default option that chooses a register allocator based on the -O optimization level. This only really affects llc for now because both the llvm-gcc and clang front ends override the default register allocator. I intend to remove that code later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104904 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
700bfada6375546f82000bdd1b4cdbe87beebea5 |
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a -regalloc=default option that chooses a register allocator based on the -O optimization level. This only really affects llc for now because both the llvm-gcc and clang front ends override the default register allocator. I intend to remove that code later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104904 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
asses.cpp
|
1f2914c7abfcd183e1a4bd74d5378c0b4a92b0e6 |
28-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Update the saved stack pointer in the sjlj function context following either an alloca() or an llvm.stackrestore(). rdar://8031573 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
jLjEHPrepare.cpp
|
0798eddd07b8dc827a4e6e9028c4c3a8d9444286 |
28-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Update the saved stack pointer in the sjlj function context following either an alloca() or an llvm.stackrestore(). rdar://8031573 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
jLjEHPrepare.cpp
|
ae810412a11fc5c29b2e0c452bccf28d41263528 |
28-May-2010 |
Jim Grosbach <grosbach@apple.com> |
back out 104862/104869. Can reuse stacksave after all. Very cool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104897 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a65850230af7f13d9111450f645886b968dea2a2 |
28-May-2010 |
Jim Grosbach <grosbach@apple.com> |
back out 104862/104869. Can reuse stacksave after all. Very cool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104897 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8269974e9c1c53bad0f1b43c6d9c18dbec07aec4 |
27-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not drop location info for inlined function args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104884 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d8720f4ba3546df76d75c94a8893a385de273cc6 |
27-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not drop location info for inlined function args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104884 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
92eafd90273fe162d82b1927d2c237f6b5e0ce64 |
27-May-2010 |
Jim Grosbach <grosbach@apple.com> |
hook ISD::STACKADDR to an intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
084fb0ea3246300aa81dd2561ce4d84401b74792 |
27-May-2010 |
Jim Grosbach <grosbach@apple.com> |
hook ISD::STACKADDR to an intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ff71bf8b828facd2dbd7c74b56cc73af6f1f035e |
27-May-2010 |
Devang Patel <dpatel@apple.com> |
inlined function's arguments need a label to mark the start point because they are not directly attached to current function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104848 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
55e9717e59165d15161991be56c75c3e80220ee8 |
27-May-2010 |
Devang Patel <dpatel@apple.com> |
inlined function's arguments need a label to mark the start point because they are not directly attached to current function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104848 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
adfbf7d02607b2b783d159933dccba8a58530645 |
27-May-2010 |
Stuart Hastings <stuart@apple.com> |
Support for nested functions/classes in debug output. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104841 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
aa66d2f48ad0c2d2b3f8929dea432bb17a5442a5 |
27-May-2010 |
Stuart Hastings <stuart@apple.com> |
Support for nested functions/classes in debug output. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104841 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d09fbfaf7096c492a0ce0c4b8658500b3b175c23 |
27-May-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. Eliminate unneeded debug_loc entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104785 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
80250686d5df7f3b603eeaa08fb94f2765829e0a |
27-May-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. Eliminate unneeded debug_loc entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104785 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6c198f7fc668ee28ee378728a94bfc66ec312299 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Add FIXME comment to remove this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
804a231dd5b064006a252f67fe27abced0827ac8 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Add FIXME comment to remove this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
55587774f8da604ccc3a04c3b24f3370ba2811ee |
26-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Add TargetMachine support for setting the value of MCRelaxAll with -filetype=obj. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104747 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
cb8326dc09d900688b2d15bd9c977d1c3b722427 |
26-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Add TargetMachine support for setting the value of MCRelaxAll with -filetype=obj. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104747 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8d91da999f5fc691e292df1516bd4cd22c8e0572 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to force an line number entry (using previous location) for a temp label at unknown location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104740 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
77051f58e9417670c66d7b7f420a98ef46dbcdc6 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to force an line number entry (using previous location) for a temp label at unknown location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104740 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
983da3c173bb3d1cf51d93f5d6b821dbfd838425 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Add "setjmp_syscall", "savectx", "qsetjmp", "vfork", "getcontext" to the list of usual suspects that could "return twice". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104737 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8d717c7d999231c8c54601720b08cd3eecf6d518 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Add "setjmp_syscall", "savectx", "qsetjmp", "vfork", "getcontext" to the list of usual suspects that could "return twice". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104737 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cc38a49327e841070b34fe1a92c1191a791887bb |
26-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry in ISD::. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104734 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
23ff7cff52702a8bff904d8ab4c9ca67cc19d6ca |
26-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry in ISD::. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104734 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
4d92eb87021611d02189876ca49c39effa250423 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Update debug info when live-in reg is copied into a vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104732 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
394427b014a7126e56f3ee411993f08677d93c83 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Update debug info when live-in reg is copied into a vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104732 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0b1ce962a2a8684fc22012e7e31c899c00bbc6e9 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Move the check for "calls setjmp" to SelectionDAGISel so that it can be used by more than just the stack slot coloring algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
|
9af7e9a1b5fb04ba677059ada9290cd3864523b2 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Move the check for "calls setjmp" to SelectionDAGISel so that it can be used by more than just the stack slot coloring algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
|
d28f15b0bfee38cc5b6f06a30dec2ab7bdb6b72b |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Identify instructions, that needs a label to mark debug info entity, in advance. This simplifies beginScope(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104720 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b2b31a6f93f5329c86e41c04ec8c33799d012f9e |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Identify instructions, that needs a label to mark debug info entity, in advance. This simplifies beginScope(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104720 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
79a689415e4c8f0482a0b4281065f3e8d15a6f30 |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the use of PriorityQueue and just use a std::vector, implementing pop with a linear search for a "best" element. The priority queue was a neat idea, but in practice the comparison functions depend on dynamic information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104718 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
|
93d343357944beb701d425fc7ef00dd7b0a32bd7 |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the use of PriorityQueue and just use a std::vector, implementing pop with a linear search for a "best" element. The priority queue was a neat idea, but in practice the comparison functions depend on dynamic information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104718 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
|
cfa89e2af22dab62b8e4fc8cd459a8d8a075b659 |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d89c2580510b8f79394039987f0ad84dee903e59 |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
531898eda4b0c22303e5a0db9430f30686e6bf02 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104706 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b21a758bc232fcecdaca4fbc05334bb5b79cdad1 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104706 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
23720f49524206b4f17037e9c2c51673b59ceb83 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not construct location list backword! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e2df84254d628db835eb3e6456187cc3c0085a07 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not construct location list backword! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c157e6c2e69bb0e0fdda6f5e51742e003b7c882f |
26-May-2010 |
Eric Christopher <echristo@apple.com> |
Temporarily revert r104655 as it's breaking the bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
|
174e597d466547d34cf8fcd2a95976e0cf5ebbac |
26-May-2010 |
Eric Christopher <echristo@apple.com> |
Temporarily revert r104655 as it's breaking the bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
|
fb562b309c80b8f531ac88325f0774eac3456a89 |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Change push_all to a non-virtual function and implement it in the base class, since all the implementations are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104659 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
|
a4e4ffd389497eb28f5fe91521fb71da4340e5d6 |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Change push_all to a non-virtual function and implement it in the base class, since all the implementations are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104659 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
electionDAG/ScheduleDAGRRList.cpp
|
5cb0f94be447245a2106b50e5432df353c89ee01 |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Trim #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104657 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
5eabaa2d7c001d801a36d76affc1aa257ca2975c |
26-May-2010 |
Dan Gohman <gohman@apple.com> |
Trim #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104657 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
ae3b4c328e882f4a9db6f10af73b106cb14a3290 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Dale and Evan suggested putting the "check for setjmp" much earlier in the machine code generation. That's a good idea, so I made it so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104655 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
|
be22683202731127a5128db8be404edcee91defd |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Dale and Evan suggested putting the "check for setjmp" much earlier in the machine code generation. That's a good idea, so I made it so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104655 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
tackSlotColoring.cpp
|
12188d5bab61d27a61e0a1ad41c28f929d6837a7 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
First cut at supporting .debug_loc section. This is used to track variable information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104649 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c3f5f783a2923e7842802d5cd1a932ee56c3bb45 |
26-May-2010 |
Devang Patel <dpatel@apple.com> |
First cut at supporting .debug_loc section. This is used to track variable information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104649 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
755681747a9e64b034d9e3a1c9174388cf6f06b6 |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Constify function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104646 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
f10bc81b4e84003f8842e8ee7eee9d626de77e5f |
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Constify function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104646 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
b52ad0ebb4e4dcb826bd7076bf05fec738be3603 |
25-May-2010 |
Dan Gohman <gohman@apple.com> |
Do one map lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104645 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
eddc114a66b4520369e0f86ab1d3132dac2449b2 |
25-May-2010 |
Dan Gohman <gohman@apple.com> |
Do one map lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104645 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3fe79fd1451918e661b45268de5610b9657ae72c |
25-May-2010 |
Eric Christopher <echristo@apple.com> |
Move the verbose asm output up a bit so it can be used in the special cases as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104642 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
04386ca726d726c214be15a0c3e9dbdc82b1e691 |
25-May-2010 |
Eric Christopher <echristo@apple.com> |
Move the verbose asm output up a bit so it can be used in the special cases as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104642 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bdfd6ab89d0bcefa2ca91a87da5fa2a03bcde305 |
25-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Okay, bear with me here... If you have a setjmp/longjmp situation, it's possible for stack slot coloring to reuse a stack slot before it's really dead. For instance, if we have something like this: 1: y = g; x = sigsetjmp(env, 0); switch (x) { case 1: /* ... */ goto run; case 0: run: do_run(); /* marked as "no return" */ break; case 3: if (...) { /* ... */ goto run; } /* ... */ break; } 2: g = y; "y" may be put onto the stack, so the expression "g = y" is relying upon the fact that the stack slot containing "y" isn't modified between (1) and (2). But it can be, because of the "no return" calls in there. A longjmp might come back with 3, modify the stack slot, and then go to case 0. And it's perfectly acceptable to reuse the stack slot there because there's no CFG flow from case 3 to (2). The fix is to disable certain optimizations in these situations. Ideally, we'd disable them for all "returns twice" functions. But we don't support that attribute. Check for "setjmp" and "sigsetjmp" instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104640 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
5edfbdc9635405fe601d6d4645443d3a38c5e7b7 |
25-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Okay, bear with me here... If you have a setjmp/longjmp situation, it's possible for stack slot coloring to reuse a stack slot before it's really dead. For instance, if we have something like this: 1: y = g; x = sigsetjmp(env, 0); switch (x) { case 1: /* ... */ goto run; case 0: run: do_run(); /* marked as "no return" */ break; case 3: if (...) { /* ... */ goto run; } /* ... */ break; } 2: g = y; "y" may be put onto the stack, so the expression "g = y" is relying upon the fact that the stack slot containing "y" isn't modified between (1) and (2). But it can be, because of the "no return" calls in there. A longjmp might come back with 3, modify the stack slot, and then go to case 0. And it's perfectly acceptable to reuse the stack slot there because there's no CFG flow from case 3 to (2). The fix is to disable certain optimizations in these situations. Ideally, we'd disable them for all "returns twice" functions. But we don't support that attribute. Check for "setjmp" and "sigsetjmp" instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104640 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
fdc794a7f748a2b83c8a2e32378111785ad53146 |
25-May-2010 |
Eric Christopher <echristo@apple.com> |
Add support for initialized global data for darwin tls. Update comments and testcases accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104635 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
02b46bc9426925b90137d264216a54aa413335fd |
25-May-2010 |
Eric Christopher <echristo@apple.com> |
Add support for initialized global data for darwin tls. Update comments and testcases accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104635 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
8b480cba0f1a48393bf59c644c01209cb3f6a49d |
25-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print symbolic SubRegIndex names on machine operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104628 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1fc8e759a767077726f9be35b93767e68bdf101f |
25-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print symbolic SubRegIndex names on machine operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104628 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a31ed7f5ec684073b38e1b0ee9d7c45d3137e59e |
25-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix another variant of PR 7191. Also add a testcase Mon Ping provided; unfortunately bugpoint failed to reduce it, but I think it's important to have a test for this in the suite. 8023512. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104624 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
86234c30a7dea821e970323df4f168b9632d0bb7 |
25-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix another variant of PR 7191. Also add a testcase Mon Ping provided; unfortunately bugpoint failed to reduce it, but I think it's important to have a test for this in the suite. 8023512. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104624 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d6ec44a21184fd239fe86118b2d10bf64ece97a4 |
25-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix PR 7191. I have been unable to create a .ll file that fails, sorry. (oye, a word which should be better known to people writing tree traversals, means grandchild.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
61734eb117063b4cd2a10c2403213cedd1347a06 |
25-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix PR 7191. I have been unable to create a .ll file that fails, sorry. (oye, a word which should be better known to people writing tree traversals, means grandchild.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a334be36d4073c634b23311638c6c7fc5299f023 |
25-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable invalid coalescer assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104574 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b7a31709171ba42d83d2fb575818e7ccd900fb03 |
25-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable invalid coalescer assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104574 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6656daaf1ea65f19b7efe11e7d403d55882507e7 |
25-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Print out the name of the function during SSC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104572 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
ef473bfc4470bd018b6fb5485d4eab1aa793336e |
25-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Print out the name of the function during SSC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104572 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
31c3c535a9f5b7769e3c55f5782492cecfc524eb |
24-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid adding duplicate function live-in's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104560 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineRegisterInfo.cpp
|
3946043a80a043b3cf43b34bf068feaadc46485b |
24-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid adding duplicate function live-in's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104560 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineRegisterInfo.cpp
|
5173233ef4f496bfc5b0363bc5a61c75a53f4a89 |
24-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not emit line number entries for unknown debug values. This fixes recent regression in store.exp from gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104524 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
295cdf8b8293f31953bad9a4a9c0586e934181c6 |
24-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not emit line number entries for unknown debug values. This fixes recent regression in store.exp from gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104524 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fcaf5017e209a16cafbf7821b2e6c0c306b67398 |
24-May-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Encode the Caml frametable by following what the comment says: the number of descriptors is first emitted, and StackOffsets are emitted in 16 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104488 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
3816c25fdc03fb2945ecfe4df41e1834ea386245 |
24-May-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Encode the Caml frametable by following what the comment says: the number of descriptors is first emitted, and StackOffsets are emitted in 16 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104488 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
d6347f1b665be97f30a471eebe151e67a62bf7d7 |
23-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Add an MCLoggingStreamer, for use in debugging integrated-as mismatches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104463 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fdb5a8617996a20370756962e34c2e80176d6e87 |
23-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Add an MCLoggingStreamer, for use in debugging integrated-as mismatches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104463 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
32d1bb9fe7eadcd5088e8048cfd952fc6178604e |
22-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Implement @llvm.returnaddress. rdar://8015977. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104421 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
2457f2c66184e978d4ed8fa9e2128effff26cb0b |
22-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Implement @llvm.returnaddress. rdar://8015977. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104421 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
237b7dd26af11c4e0e8d1acc829cf12bfb50cd1a |
22-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Implement eh.sjlj.longjmp for ARM. Clean up the intrinsic a bit. Followups: docs patch for the builtin and eh.sjlj.setjmp cleanup to match longjmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5eb195153950bc7ebfc30649494a78b2096b5ef8 |
22-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Implement eh.sjlj.longjmp for ARM. Clean up the intrinsic a bit. Followups: docs patch for the builtin and eh.sjlj.setjmp cleanup to match longjmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0f986f6715496c159b8dc0b2b09f531b6416d3ee |
22-May-2010 |
Eric Christopher <echristo@apple.com> |
Add full bss data support for darwin tls variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104414 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
8116ca5134b355b897450f9a537c9c77e1f08723 |
22-May-2010 |
Eric Christopher <echristo@apple.com> |
Add full bss data support for darwin tls variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104414 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
fc01d2a751127ebc5a4cd2da214df4e5dbaa1223 |
22-May-2010 |
Devang Patel <dpatel@apple.com> |
Collect variable information during endFunction() instead of beginFunction(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104412 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
65eb482e8fcd6084d83793aeb767ef0bddefc92a |
22-May-2010 |
Devang Patel <dpatel@apple.com> |
Collect variable information during endFunction() instead of beginFunction(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104412 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ed0a884c3cbc7d62e3f0bc702a9111c541e72ac7 |
22-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Clean up extra whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
70fe6643d6d16b9a1bb9560d75e60539ba93ba6b |
22-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Clean up extra whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b648fc2706a9460a0925f72b4cf8c1d1de4754f2 |
22-May-2010 |
Eric Christopher <echristo@apple.com> |
Make this LookAheadLimit, not the uninitialized LookAheadLeft. Evan please verify! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104408 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
e81d0105894a7d0cdd9ffb788a10715ed073ac67 |
22-May-2010 |
Eric Christopher <echristo@apple.com> |
Make this LookAheadLimit, not the uninitialized LookAheadLeft. Evan please verify! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104408 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
84a9e8cbb98bd7cc7ca6655ccf6226b3df217eeb |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow machine cse to cse instructions which define physical registers. Controlled by option -machine-cse-phys-defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104385 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
835810bbf8cd8b5ed92df66127c5aed16d022c74 |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow machine cse to cse instructions which define physical registers. Controlled by option -machine-cse-phys-defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104385 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
9c38d5ce139e13148f4db86582463a313f53cdc0 |
21-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change CodeGen/ARM/2009-11-02-NegativeLane.ll to use 16-bit vector elements so that it will continue to test what it was meant to test when I commit a separate change for better support of BUILD_VECTOR and VECTOR_SHUFFLE for Neon. Fix a DAG combiner crash exposed by this test change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
78f006acdfda52f7250929e1c2fea8afbb9a5b07 |
21-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change CodeGen/ARM/2009-11-02-NegativeLane.ll to use 16-bit vector elements so that it will continue to test what it was meant to test when I commit a separate change for better support of BUILD_VECTOR and VECTOR_SHUFFLE for Neon. Fix a DAG combiner crash exposed by this test change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4f6dae3022a364e3b152881ef065dbd3b1238fc0 |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Change MachineInstr::findRegisterDefOperandIdx so it can also look for defs that are aliases of the specified register. - Rename modifiesRegister to definesRegister since it's looking a def of the specific register or one of its super-registers. It's not looking for def of a sub-register or alias that could change the specified register. - Added modifiesRegister to look for defs of aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104377 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
1015ba7018c87f48cc7bb45a564eb4a27241e76a |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Change MachineInstr::findRegisterDefOperandIdx so it can also look for defs that are aliases of the specified register. - Rename modifiesRegister to definesRegister since it's looking a def of the specific register or one of its super-registers. It's not looking for def of a sub-register or alias that could change the specified register. - Added modifiesRegister to look for defs of aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104377 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
939210a030c5eecadb187d43d962bace862c9565 |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::readsWritesVirtualRegister() to determine if an instruction reads or writes a register. This takes partial redefines and undef uses into account. Don't actually use it yet. That caused miscompiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104372 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
18b2c9d3bf5a6633535eaad8388f0353b14cbfb8 |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::readsWritesVirtualRegister() to determine if an instruction reads or writes a register. This takes partial redefines and undef uses into account. Don't actually use it yet. That caused miscompiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104372 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
519d9bf22f1a9d2c2c6506e59498bfecc388d700 |
21-May-2010 |
Devang Patel <dpatel@apple.com> |
Simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104338 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
379fe83dda937658b6b08d3c531f0db6c25b7dd7 |
21-May-2010 |
Devang Patel <dpatel@apple.com> |
Simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104338 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
803cf590545edb48068c49927507e09ad150470e |
21-May-2010 |
Chris Lattner <sabre@nondot.org> |
constify accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104325 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
65569b8ddff9d4b8647377291f8f0f2cb647bfb9 |
21-May-2010 |
Chris Lattner <sabre@nondot.org> |
constify accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104325 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
7601de6e9b8f88939bef505184b9ff6bdc7d8430 |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Use MachineInstr::readsWritesVirtualRegister to determine if a register is read." This reverts r104322. I think it was causing miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104323 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
19f5f71bba08e690611fa213647ac6bae814756b |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Use MachineInstr::readsWritesVirtualRegister to determine if a register is read." This reverts r104322. I think it was causing miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104323 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
9d53a41099f8da0845f23177cf375ba6556fa6b6 |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MachineInstr::readsWritesVirtualRegister to determine if a register is read. This correctly handles partial redefines and undef uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104322 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
00c53caa339f954cb3590a05e8653b864b4355cf |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MachineInstr::readsWritesVirtualRegister to determine if a register is read. This correctly handles partial redefines and undef uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104322 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
7c1a14eb8d491e8de0cad7d94d59c76d65d48b5c |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach VirtRegRewriter to handle spilling in instructions that have multiple definitions of the virtual register. This happens when spilling the registers produced by REG_SEQUENCE: %reg1047:5<def>, %reg1047:6<def>, %reg1047:7<def> = VLD3d8 %reg1033, 0, pred:14, pred:%reg0 The rewriter would spill the register multiple times, dead store elimination tried to keep up, but ended up cutting the branch it was sitting on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104321 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
2afb7505c5e9ffd08a96fdd4c43f962a50160053 |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach VirtRegRewriter to handle spilling in instructions that have multiple definitions of the virtual register. This happens when spilling the registers produced by REG_SEQUENCE: %reg1047:5<def>, %reg1047:6<def>, %reg1047:7<def> = VLD3d8 %reg1033, 0, pred:14, pred:%reg0 The rewriter would spill the register multiple times, dead store elimination tried to keep up, but ended up cutting the branch it was sitting on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104321 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
1734eb0cfb23984c5cb611cd697a094f8c53adcd |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
If the first definition of a virtual register is a partial redef, add an <imp-def> operand for the full register. This ensures that the full physical register is marked live after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104320 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
63e6a488cb6c29983415221719d05fbf99e00193 |
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
If the first definition of a virtual register is a partial redef, add an <imp-def> operand for the full register. This ensures that the full physical register is marked live after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104320 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
7d556e02bb8cf12313bd377fa4d7e11131031a68 |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename -pre-RA-sched=hybrid to -pre-RA-sched=list-hybrid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
b11ac950d69c7a238de0a22fd23fbfcd994f57ee |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename -pre-RA-sched=hybrid to -pre-RA-sched=list-hybrid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c4f998d0437057426bc3d408d3a33fc13d6d3116 |
21-May-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c0c5a26deadb11b607ffd54b7b8978a56bf3545f |
21-May-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5373b294648bf0285621a82281f136578ba70082 |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow targets more controls on what nodes are scheduled by reg pressure, what for latency in hybrid mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
1cc3984148be113c6e5e470f23c9ddbd37679c5f |
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow targets more controls on what nodes are scheduled by reg pressure, what for latency in hybrid mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
6da145f2b10f2362c7bf0bb9cc947d81f535b63d |
20-May-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104265 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ee43286ca9b6ae68d3419e23e51925cd1a6808aa |
20-May-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104265 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
88f506ece3ebef96c431871ddeff117e5837eb5d |
20-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove dbg_value workaround and associated command line option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104254 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
76526f88632325fab1c33d9c1a8248087eb5e548 |
20-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove dbg_value workaround and associated command line option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104254 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
f0e703313005cc56fd7acf0b3e6e1604a37bad4f |
20-May-2010 |
Devang Patel <dpatel@apple.com> |
Split DbgVariable. Eventually, variable info will be communicated through frame index, or DBG_VALUE instruction, or collection of DBG_VALUE instructions. Plus each DbgVariable may not need a label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
26c1e56f13b08ce3233b8f2e1c3e208af7b1ad1f |
20-May-2010 |
Devang Patel <dpatel@apple.com> |
Split DbgVariable. Eventually, variable info will be communicated through frame index, or DBG_VALUE instruction, or collection of DBG_VALUE instructions. Plus each DbgVariable may not need a label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
41294b1283bac771807eb4266ff112ae45f5dc47 |
20-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a hybrid bottom up scheduler that reduce register usage while avoiding pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot of long latency instructions so a strict register pressure reduction scheduler does not work well. Early experiments show this speeds up some NEON loops by over 30%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGISel.cpp
|
15a16def6e70c8f7df1023da80ceb89887203b40 |
20-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a hybrid bottom up scheduler that reduce register usage while avoiding pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot of long latency instructions so a strict register pressure reduction scheduler does not work well. Early experiments show this speeds up some NEON loops by over 30%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGISel.cpp
|
6ffa1e38380bb76d491a690f831a897627193dee |
20-May-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104209 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
761fd4c1d97977c16de9f0cf921056a37b906304 |
20-May-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104209 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2d4ea3e6925c65e2a182ea83c3e7d1aab11cc0da |
20-May-2010 |
Eric Christopher <echristo@apple.com> |
Partial code for emitting thread local bss data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104197 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c1a887d76d95100e7e05aa76e077710bc4e0b1cf |
20-May-2010 |
Eric Christopher <echristo@apple.com> |
Partial code for emitting thread local bss data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104197 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c80cb51c8a4cfe1f0fade8b6d102c1cdd06ef6ee |
20-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Optimize away insertelement of an undef value. This shows up in test/Codegen/ARM/reg_sequence.ll but it doesn't affect the generated code because the coalescer cleans it up. Radar 7998853. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104185 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
492fd454ca3aa3d45e76c4f42b602e934cf519b1 |
20-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Optimize away insertelement of an undef value. This shows up in test/Codegen/ARM/reg_sequence.ll but it doesn't affect the generated code because the coalescer cleans it up. Radar 7998853. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104185 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6f29a754162b29886fc19f7a8a9a3d001eb16af9 |
20-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Enable preserving debug information through post-RA scheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104175 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
de70b1f9be3a483064e4696fac5a7d41ebe19140 |
20-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Enable preserving debug information through post-RA scheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104175 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
d1f63b751c3b5e73366efa359f211d899587e571 |
20-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Fix the post-RA instruction scheduler to handle instructions referenced by more than one dbg_value instruction. rdar://7759363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104174 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
309d20c89c5fde5a6ebe3b40a3fd0fbc3e5ffe40 |
20-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Fix the post-RA instruction scheduler to handle instructions referenced by more than one dbg_value instruction. rdar://7759363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104174 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
816cb0b9f360cbf46a6952671566e89e40c2361d |
20-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104173 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
e163168aab987dc3df0845b9e92310f764d8b158 |
20-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104173 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
f25c583e3901f27cc48cd10497931b73a1941103 |
19-May-2010 |
Devang Patel <dpatel@apple.com> |
Revert r104165. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
461a646a035a8c5cf717fcd006db0d637e342e70 |
19-May-2010 |
Devang Patel <dpatel@apple.com> |
Revert r104165. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
46a9fd6231d2753aedb3248402b9db36d7bc515f |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add support for partial redefs to the fast register allocator. A partial redef now triggers a reload if required. Also don't add <imp-def,dead> operands for physical superregisters. Kill flags are still treated as full register kills, and <imp-use,kill> operands are added for physical superregisters as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104167 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
d32e735ae6e3fbebcae9a23d7cda091770bb3a14 |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add support for partial redefs to the fast register allocator. A partial redef now triggers a reload if required. Also don't add <imp-def,dead> operands for physical superregisters. Kill flags are still treated as full register kills, and <imp-use,kill> operands are added for physical superregisters as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104167 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a5db75c20bb3cb31b8fdb4c710159297c2d3c65f |
19-May-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to maintain InsnsBeginScopeSet separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f4ccaeaef93c56af7017b7e503888e8a0f6d8851 |
19-May-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to maintain InsnsBeginScopeSet separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c019e2207bf16ff3ff3a3d3aa62b02447404fff2 |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::readsVirtualRegister() in preparation for proper handling of partial redefines. We are going to treat a partial redefine of a virtual register as a read-modify-write: %reg1024:6 = OP Unless the register is fully clobbered: %reg1024:6 = OP, %reg1024<imp-def> MachineInstr::readsVirtualRegister() knows the difference. The first case is a read, the second isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104149 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7ebc4d63db05ac214d36bc01b4d60adadaf923e5 |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::readsVirtualRegister() in preparation for proper handling of partial redefines. We are going to treat a partial redefine of a virtual register as a read-modify-write: %reg1024:6 = OP Unless the register is fully clobbered: %reg1024:6 = OP, %reg1024<imp-def> MachineInstr::readsVirtualRegister() knows the difference. The first case is a read, the second isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104149 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a9d350eb0820423726b445a8b31dfe8b9830f6f3 |
19-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring: pull SchedPreference enum from TargetLowering.h to TargetMachine.h and put it in its own namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104147 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
211ffa13519cadfb7f9baf4c8447fa055bf38fe8 |
19-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring: pull SchedPreference enum from TargetLowering.h to TargetMachine.h and put it in its own namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104147 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
5caaacb937a7e392ee106eddfbea1595b1474d6c |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
TwoAddressInstructionPass doesn't really know how to merge live intervals when lowering REG_SEQUENCE instructions. Insert copies for REG_SEQUENCE sources not killed to avoid breaking later passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104146 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
343735288798bbd1cd2ed2750fa6cd323f12c26c |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
TwoAddressInstructionPass doesn't really know how to merge live intervals when lowering REG_SEQUENCE instructions. Insert copies for REG_SEQUENCE sources not killed to avoid breaking later passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104146 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
8b6ad17be11b0c0cbebe20b5a7f755b902318604 |
19-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
When expanding a vector_shuffle, the element type may not be legal and may need to be promoted. The BUILD_VECTOR and EXTRACT_VECTOR_ELT nodes generated here already allow the promoted type to be used without further changes, so just do the promotion. This fixes part of pr7167. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104141 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
14b2141497a913a2d5b508a0174ba09cac61e0bf |
19-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
When expanding a vector_shuffle, the element type may not be legal and may need to be promoted. The BUILD_VECTOR and EXTRACT_VECTOR_ELT nodes generated here already allow the promoted type to be used without further changes, so just do the promotion. This fixes part of pr7167. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104141 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
67360f8736c2d627d2eadf4f5a8c799f10df1a27 |
19-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Intrinsics which do a vector compare (results are all zero or all ones) are modeled as icmp / fcmp + sext. This is turned into a vsetcc by dag combine (yes, not a good long term solution). The targets can then isel the vsetcc to the appropriate instruction. The trouble arises when the result of a vector cmp + sext is then and'ed with all ones. Instcombine will turn it into a vector cmp + zext, dag combiner will miss turning it into a vsetcc and hell breaks loose after that. Teach dag combine to turn a vector cpm + zest into a vsetcc + and 1. This fixes rdar://7923010. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104094 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0a942dbb1e0f303191639498c35e742309f08a64 |
19-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Intrinsics which do a vector compare (results are all zero or all ones) are modeled as icmp / fcmp + sext. This is turned into a vsetcc by dag combine (yes, not a good long term solution). The targets can then isel the vsetcc to the appropriate instruction. The trouble arises when the result of a vector cmp + sext is then and'ed with all ones. Instcombine will turn it into a vector cmp + zext, dag combiner will miss turning it into a vsetcc and hell breaks loose after that. Teach dag combine to turn a vector cpm + zest into a vsetcc + and 1. This fixes rdar://7923010. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104094 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
baf26cfa90bdece7dc75b73f705cab5ce6347f39 |
19-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a crash when debugging the coalescer. DebugValue instructions are not in the coalescer's instruction map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104086 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
417d1705bb2b9abde78385023b999e25e40efc36 |
19-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a crash when debugging the coalescer. DebugValue instructions are not in the coalescer's instruction map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104086 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e4d58782c23f1a525a100864d2c284dd2b1c9fc9 |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to update VirtRegLastUse when spilling without killing before a call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104074 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
dcf7708ad9ed9e320ab814e7fa8512e4854cc637 |
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to update VirtRegLastUse when spilling without killing before a call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104074 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e0dbb624960f848bac8e74be2e78cacaaaff5357 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Sink dag combine's post index load / store code that swap base ptr and index into the target hook. Only the target knows whether the swap is safe. In Thumb2 mode, the offset must be an immediate. rdar://7998649 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
28dad2a5caccf579f7430acd3af8fa6e6f8b575e |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Sink dag combine's post index load / store code that swap base ptr and index into the target hook. Only the target knows whether the swap is safe. In Thumb2 mode, the offset must be an immediate. rdar://7998649 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
64f3a9433186f879b5ab6db10ab1c630cf210be6 |
18-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly handle multiple definitions of a virtual register in the same instruction. This can happen on ARM: >> %reg1035:5<def>, %reg1035:6<def> = VLD1q16 %reg1028, 0, pred:14, pred:%reg0 Regs: Q0=%reg1032* R0=%reg1028* R1=%reg1029* R2 R3=%reg1031* Killing last use: %reg1028 Allocating %reg1035 from QPR Assigning %reg1035 to Q1 << %D2<def>, %D3<def> = VLD1q16 %R0<kill>, 0, pred:14, pred:%reg0, %Q1<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104056 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
0eeb05c969c6c314ca7991a10627451762787e2d |
18-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly handle multiple definitions of a virtual register in the same instruction. This can happen on ARM: >> %reg1035:5<def>, %reg1035:6<def> = VLD1q16 %reg1028, 0, pred:14, pred:%reg0 Regs: Q0=%reg1032* R0=%reg1028* R1=%reg1029* R2 R3=%reg1031* Killing last use: %reg1028 Allocating %reg1035 from QPR Assigning %reg1035 to Q1 << %D2<def>, %D3<def> = VLD1q16 %R0<kill>, 0, pred:14, pred:%reg0, %Q1<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104056 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
dbb64e300629710c534b03122f81105666029798 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Continuously refine the register class of REG_SEQUENCE def with all the source registers and sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104051 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
5012f9b82525121c28709ad7a2cc27818a38c213 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Continuously refine the register class of REG_SEQUENCE def with all the source registers and sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104051 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
e25ef5aed6f1dc0bb97e36b7b877004bdf3e83f8 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR7162: Use source register classes and sub-indices to determine the correct register class of the definitions of REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
27e4840e03a6fea9f7a36a83b09a8ab7fed1a620 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR7162: Use source register classes and sub-indices to determine the correct register class of the definitions of REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
62679fb6f8f1555afc9617e05301e5feb0b8dd7e |
18-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach the machine code verifier to use getSubRegisterRegClass(). The old approach was wrong. It had an off-by-one error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104034 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
6a8d2c6119aeb32ac914c3dd9b1263ebd0baa51f |
18-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach the machine code verifier to use getSubRegisterRegClass(). The old approach was wrong. It had an off-by-one error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104034 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ef9233c63693eb43a364fefd7e5d5af10b95a98b |
18-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
llc (et al): Add support for --show-encoding and --show-inst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104029 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
3538c808f8fd1d4124f0cda4c962467ec8ae5b70 |
18-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
llc (et al): Add support for --show-encoding and --show-inst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104029 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ef2f4a72b268ceb774bebddbbb4360f7dbc36b8f |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
FIX PR7158. SimplifyVBinOp was asserting when it fails to constant fold (op (build_vector), (build_vector)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104004 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a083988c8a7d57f37bfdd9d595fc3d55c60ea8ae |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
FIX PR7158. SimplifyVBinOp was asserting when it fails to constant fold (op (build_vector), (build_vector)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104004 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0e4cfb317a0b0a088c97e03176353f14b75a6686 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR7175. Insert copies of a REG_SEQUENCE source if it is used by other REG_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103994 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c6dcce3ba5bd22325ecf1dbdfddf8136b50d4838 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR7175. Insert copies of a REG_SEQUENCE source if it is used by other REG_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103994 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
9282b976fbaa60c27c50d9cb490d471346833920 |
18-May-2010 |
Bill Wendling <isanbard@gmail.com> |
- Set the "HasCalls" flag after instruction selection is finished. - Change the logic DisableFramePointerElim() to check for the -disable-non-leaf-fp-elim before -disable-fp-elim. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
53f7602b61157ed56ccbf91379c188c55235f619 |
18-May-2010 |
Bill Wendling <isanbard@gmail.com> |
- Set the "HasCalls" flag after instruction selection is finished. - Change the logic DisableFramePointerElim() to check for the -disable-non-leaf-fp-elim before -disable-fp-elim. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ba2a5e8587e7c9f72ddef756ed0873abe758acb5 |
18-May-2010 |
Eric Christopher <echristo@apple.com> |
More data/parsing support for tls directives. Add a few more testcases and cleanup comments as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103985 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
c6177a4531a5d7e2207a3184cc8a4f1792073a7d |
18-May-2010 |
Eric Christopher <echristo@apple.com> |
More data/parsing support for tls directives. Add a few more testcases and cleanup comments as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103985 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
e17aa701d44f2696638086730c6c7a713f055bef |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR7156. If the sources of a REG_SEQUENCE are all IMPLICIT_DEF's. Replace it with an IMPLICIT_DEF rather than deleting it or else it would be left without a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103984 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
44bfdd3d78d32bb8fcd5ad123199246e554306d8 |
18-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR7156. If the sources of a REG_SEQUENCE are all IMPLICIT_DEF's. Replace it with an IMPLICIT_DEF rather than deleting it or else it would be left without a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103984 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b11aae23f9cb597ae394108ed33770c12beaa2d7 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pull the UsedInInstr.test() calls into calcSpillCost() and remember aliases. This fixes the miscompilations of MultiSource/Applications/JM/l{en,de}cod. Clang now successfully self hosts in a debug build with the fast register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103975 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
b8acb7be804c8c537f2475f3a24303a0b37ab107 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pull the UsedInInstr.test() calls into calcSpillCost() and remember aliases. This fixes the miscompilations of MultiSource/Applications/JM/l{en,de}cod. Clang now successfully self hosts in a debug build with the fast register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103975 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
d372b185ac15ab79a8c9d92b93df89a09b1cf386 |
17-May-2010 |
Eric Christopher <echristo@apple.com> |
Add some section and constant support for darwin TLS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103974 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
423c9e3e589a79be757842d421600590c68d5b43 |
17-May-2010 |
Eric Christopher <echristo@apple.com> |
Add some section and constant support for darwin TLS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103974 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6dbffd4b44cbd1b38d1a4dc0b290c958e3e1bbe5 |
17-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Careful with reg_sequence coalescing to not to overwrite sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103971 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
53c779bb3a5712b67cf6bae785cb83a90841d17e |
17-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Careful with reg_sequence coalescing to not to overwrite sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103971 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
a87eacc96be799ab26d7b9529960517375d670ec |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove debug option. Add comment on spill order determinism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103961 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
2997985b4cafc2a1e562819a2f3e0c6abe5fb223 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove debug option. Add comment on spill order determinism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103961 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
9ef9cf930da64449cabc476e90b846db461e5764 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid allocating the same physreg to multiple virtregs in one instruction. While that approach works wonders for register pressure, it tends to break everything. This should unbreak the arm-linux builder and fix a number of miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103946 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
aa4b0159dacf12e48a60d66229dfd2b19406da87 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid allocating the same physreg to multiple virtregs in one instruction. While that approach works wonders for register pressure, it tends to break everything. This should unbreak the arm-linux builder and fix a number of miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103946 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
915fa2f0335d13ec3c2e9e048b5545259bad3fab |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Minor optimizations. DenseMap::begin() is surprisingly slow on an empty map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103940 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
f3ea06b108d45c53dade87d6f1f48ac0a0e20562 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Minor optimizations. DenseMap::begin() is surprisingly slow on an empty map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103940 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a796979e89e849c6e5d1e33987613e7464d52073 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract spill cost calculation to a new method, and use definePhysReg() to clear out aliases when allocating. Clean up allocVirtReg(). Use calcSpillCost() to allow more aggressive hinting. Now the hint is always taken unless blocked by a reserved register. This leads to more coalescing, lower register pressure, and less spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103939 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
548643c573d53950e28e9e810cd0454ba9a21af0 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract spill cost calculation to a new method, and use definePhysReg() to clear out aliases when allocating. Clean up allocVirtReg(). Use calcSpillCost() to allow more aggressive hinting. Now the hint is always taken unless blocked by a reserved register. This leads to more coalescing, lower register pressure, and less spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103939 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
22d1bc617b77161c9a665eccd1382234fc86f0fd |
17-May-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Remove unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103936 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
bae5210321e0c3ea28723334841555135a61e915 |
17-May-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Remove unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103936 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
b6cc453b7f1f370f19b9a6d3f6a645d7c1ca62e7 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only use clairvoyance when defining a register, and then only if it has one use. This makes allocation independent on the ordering of use-def chains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103935 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
0c9e4f5f3ff139733d74462a0ad5b94014e764a8 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Only use clairvoyance when defining a register, and then only if it has one use. This makes allocation independent on the ordering of use-def chains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103935 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
11533ee7857e843eeae4dbc91e87c635577072c8 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate a hash table probe when killing virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103934 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
646dd7c899ea213301e193a25536a4bceebf7937 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate a hash table probe when killing virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103934 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
15624383d48378f026f4d64fa238decd3e8e74b7 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Execute virtreg kills immediately instead of after processing all uses. This is safe to do because the physreg has been marked UsedInInstr and the kill flag will be set on the last operand using the virtreg if there are more then one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103933 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
ac3e529831877cea609ed668f95b1dc06e34698c |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Execute virtreg kills immediately instead of after processing all uses. This is safe to do because the physreg has been marked UsedInInstr and the kill flag will be set on the last operand using the virtreg if there are more then one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103933 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
15694bec65a490599e846fc0073bf50291e59a59 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Sprinkle superregister <imp-def> and <imp-kill> operands when dealing with subregister indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103931 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
41e1401de5cb8752fb9d06e65e62bfe97cc1304e |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Sprinkle superregister <imp-def> and <imp-kill> operands when dealing with subregister indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103931 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
3e7e1c0109c9f65bc01cf6d219fc71113c9dd427 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Now that we don't keep live registers across calls, there is not reason to go through the very long list of call-clobbered registers. We just assume all registers are clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103930 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4b6bbe885d851b1cfba2be9b5efc6365a2b7828a |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Now that we don't keep live registers across calls, there is not reason to go through the very long list of call-clobbered registers. We just assume all registers are clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103930 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a6f27c91ca4929e2b2fbe5d645d813ba21bb3531 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Boldly attempt consistent capitalization. Functional changes unintended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103929 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
844db9cc6f1a9458b60b8debeef3132f555dcd8f |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Boldly attempt consistent capitalization. Functional changes unintended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103929 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
3cd6f7d3b8f6217521c1f4f909bcd9cbd00aa331 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Spill and kill all virtual registers across a call. Debug code doesn't use callee saved registers anyway, and the code is simpler this way. Now spillVirtReg always kills, and the isKill parameter is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103927 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
e6aba837974f7d2539efad9a09fe06b4d1566e5d |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Spill and kill all virtual registers across a call. Debug code doesn't use callee saved registers anyway, and the code is simpler this way. Now spillVirtReg always kills, and the isKill parameter is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103927 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a248bcef4531a49a1baf6e4e3ed57df37952b5fe |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reduce hashtable probes by using DenseMap::insert() for lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103926 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
01dcbf850732790fe7d5b5ed23426d535b07f316 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reduce hashtable probes by using DenseMap::insert() for lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103926 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
1691e382417def5a49c4dbb0cdb44c1ee451b8c5 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make MBB a class member instead of passing it around everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103925 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
6fb69d85e9576445e98c4114ee7064deb4476712 |
17-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make MBB a class member instead of passing it around everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103925 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
2a70a224af450c22fd123822870c9d887787f488 |
17-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Yes, if the redef is a copy, update the old val# with the copy. But make sure to clear the copy field if the redef is not a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103922 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ad6c5a20ba87e7aba91ef7e8b270715a25379770 |
17-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Yes, if the redef is a copy, update the old val# with the copy. But make sure to clear the copy field if the redef is not a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103922 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
58d8a7077b0bf5ba425b29950da3ef52021d3252 |
15-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix uint64->{float, double} conversion to do rounding correctly in 32-bit. The implementation in LegalizeIntegerTypes to handle this as sint64->float + appropriate power of 2 is subject to double rounding, considered incorrect by numerics people. Use this implementation only when it is safe. This leads to using library calls in some cases that produced inline code before, but it's correct now. (EVTToAPFloatSemantics belongs somewhere else, any suggestions?) Add a correctly rounding (though not particularly fast) conversion that uses X87 80-bit computations for x86-32. 7885399, 5901940. This shows up in gcc.c-torture/execute/ieee/rbug.c in the gcc testsuite on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
8d908ebd1926d00ff47d8284e52657705efb7f9b |
15-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix uint64->{float, double} conversion to do rounding correctly in 32-bit. The implementation in LegalizeIntegerTypes to handle this as sint64->float + appropriate power of 2 is subject to double rounding, considered incorrect by numerics people. Use this implementation only when it is safe. This leads to using library calls in some cases that produced inline code before, but it's correct now. (EVTToAPFloatSemantics belongs somewhere else, any suggestions?) Add a correctly rounding (though not particularly fast) conversion that uses X87 80-bit computations for x86-32. 7885399, 5901940. This shows up in gcc.c-torture/execute/ieee/rbug.c in the gcc testsuite on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
1e6035e0cc0a22270dd8641971a09067c8ba965d |
15-May-2010 |
Dale Johannesen <dalej@apple.com> |
Improve assertion messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103882 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
789955127e06774b629e9db1cfa983184ceeda76 |
15-May-2010 |
Dale Johannesen <dalej@apple.com> |
Improve assertion messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103882 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
90131ba41b81e394bcea8f19229c4cfcfdec25a6 |
15-May-2010 |
Chris Lattner <sabre@nondot.org> |
improve portability to systems that don't have powf/modf (e.g. solaris 9) patch by Evzen Muller! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103876 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
|
87565c1d779a1903d10ddd11d886c0f79ee430b5 |
15-May-2010 |
Chris Lattner <sabre@nondot.org> |
improve portability to systems that don't have powf/modf (e.g. solaris 9) patch by Evzen Muller! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103876 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
|
daa8e0efc9b646d89ca9deb9acd3b8f2eb349a1d |
15-May-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix an GCC warning that seems to have actually caught a bug (!!!) in a condition's grouping. Every other use of Allocatable.test(Hint) groups it the same way as it is indented, so move the parentheses to agree with that grouping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103869 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
2c13ab2bb840295ffba5f28bb1df7aa0b8d9736e |
15-May-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix an GCC warning that seems to have actually caught a bug (!!!) in a condition's grouping. Every other use of Allocatable.test(Hint) groups it the same way as it is indented, so move the parentheses to agree with that grouping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103869 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
43de6f9c8a6549f7f9b63fbefd0fc7e3d2b2fcab |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Calculate liveness on the fly for local registers. When working top-down in a basic block, substituting physregs for virtregs, the use-def chains are kept up to date. That means we can recognize a virtreg kill by the use-def chain becoming empty. This makes the fast allocator independent of incoming kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103866 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
1e03ff42433afe3a9ffad2765b537f10db3aa921 |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Calculate liveness on the fly for local registers. When working top-down in a basic block, substituting physregs for virtregs, the use-def chains are kept up to date. That means we can recognize a virtreg kill by the use-def chain becoming empty. This makes the fast allocator independent of incoming kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103866 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
c26921338838a91d8fb4ae4db9e7ac39ff032c5d |
15-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
A partial re-def instruction may be a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103850 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
61d531066d540a1a05fa44048ebef4bb1614acea |
15-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
A partial re-def instruction may be a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103850 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
37f5064fd0e6e9524efc05736649b20d5ba0ec66 |
15-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach two-address pass to do some coalescing while eliminating REG_SEQUENCE instructions. e.g. %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1027<def> = EXTRACT_SUBREG %reg1026, 6 %reg1028<def> = EXTRACT_SUBREG %reg1026<kill>, 5 ... %reg1029<def> = REG_SEQUENCE %reg1028<kill>, 5, %reg1027<kill>, 6, %reg1028, 7, %reg1027, 8, %reg1028, 9, %reg1027, 10, %reg1030<kill>, 11, %reg1032<kill>, 12 After REG_SEQUENCE is eliminated, we are left with: %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1029:6<def> = EXTRACT_SUBREG %reg1026, 6 %reg1029:5<def> = EXTRACT_SUBREG %reg1026<kill>, 5 The regular coalescer will not be able to coalesce reg1026 and reg1029 because it doesn't know how to combine sub-register indices 5 and 6. Now 2-address pass will consult the target whether sub-registers 5 and 6 of reg1026 can be combined to into a larger sub-register (or combined to be reg1026 itself as is the case here). If it is possible, it will be able to replace references of reg1026 with reg1029 + the larger sub-register index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103835 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b990a2f249196ad3e0cc451d40a45fc2f9278eaf |
15-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach two-address pass to do some coalescing while eliminating REG_SEQUENCE instructions. e.g. %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1027<def> = EXTRACT_SUBREG %reg1026, 6 %reg1028<def> = EXTRACT_SUBREG %reg1026<kill>, 5 ... %reg1029<def> = REG_SEQUENCE %reg1028<kill>, 5, %reg1027<kill>, 6, %reg1028, 7, %reg1027, 8, %reg1028, 9, %reg1027, 10, %reg1030<kill>, 11, %reg1032<kill>, 12 After REG_SEQUENCE is eliminated, we are left with: %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1029:6<def> = EXTRACT_SUBREG %reg1026, 6 %reg1029:5<def> = EXTRACT_SUBREG %reg1026<kill>, 5 The regular coalescer will not be able to coalesce reg1026 and reg1029 because it doesn't know how to combine sub-register indices 5 and 6. Now 2-address pass will consult the target whether sub-registers 5 and 6 of reg1026 can be combined to into a larger sub-register (or combined to be reg1026 itself as is the case here). If it is possible, it will be able to replace references of reg1026 with reg1029 + the larger sub-register index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103835 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
170e16745833e36e689b40a1892eeca6f2e3b4aa |
15-May-2010 |
Dan Gohman <gohman@apple.com> |
Fast ISel trivially coalesces away no-op casts, so check for this when setting kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7f0d69555caab5f5468ddf74b5840f59c4c6fd83 |
15-May-2010 |
Dan Gohman <gohman@apple.com> |
Fast ISel trivially coalesces away no-op casts, so check for this when setting kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2bc9006bd8d16c429530fb6f7f8b983807f635a2 |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't bother spilling before a return git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103831 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
6a6328ba3d007b2e5a71131793179ef96d4bee7d |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't bother spilling before a return git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103831 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
3475dfb8268e224ee029235642c56943e6fd3e01 |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
RegAllocLocal can count copies too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103830 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ab2d00863f105b671b5f0da60152e14f13e0a4b3 |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
RegAllocLocal can count copies too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103830 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
203ea2e343da87cac7ec9bd9cdc5a3213fe6bd8d |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track allocatable instead of reserved regs, and never take an unallocatable hint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103828 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
efa155fd6e3820495205a09f8b9f20390d126153 |
15-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track allocatable instead of reserved regs, and never take an unallocatable hint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103828 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
b992d3c1061218bea64e3b91099c8b170608b670 |
15-May-2010 |
Dan Gohman <gohman@apple.com> |
Don't set kill flags for instructions which the scheduler has cloned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
8b3a8f5773d799762b61adf976b9771117f0f261 |
15-May-2010 |
Dan Gohman <gohman@apple.com> |
Don't set kill flags for instructions which the scheduler has cloned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
758561f3a5d9f511409bdd975e1ad423292f2abe |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid scanning the long tail of physreg operands on calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103823 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
e97dda4fc58ee401ebb4aa9153d10f8ce8ba9a70 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid scanning the long tail of physreg operands on calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103823 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
c28e12a7f03668a467038318026dd21727ac9014 |
14-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not forget to mark prcessed arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
26c699565424e93e9d0d0495d7e914d89071d6e0 |
14-May-2010 |
Devang Patel <dpatel@apple.com> |
Do not forget to mark prcessed arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2e10016f9a5f6a39a7d997e791430aa2abf64b47 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count coalesced copies git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103821 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
8a65c510a4fa1245d101da6318618d025702028c |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count coalesced copies git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103821 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
f2128e52130f87340a2faf1e1d884314c639fab0 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow virtreg redefines when verifying for RegAllocFast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103820 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a0e618de5d9b40e5b5189c299086487e5ad767f2 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow virtreg redefines when verifying for RegAllocFast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103820 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
9f47ab73fbffe6710d9909ad84bc1913acbfb2b1 |
14-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103807 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
01384ef159caa7eebff0e1d703638f2e2c862092 |
14-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103807 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
ed0972f996d416cab0595d968855836d509158e5 |
14-May-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and trailing whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103806 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9001303a3fc3e901c1e5e8b5daea56e55989c114 |
14-May-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and trailing whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103806 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
48176992051d565bc8805c3beae6a19b0fc2fc2c |
14-May-2010 |
Jim Grosbach <grosbach@apple.com> |
add cmd line option to leave dbgvalues in during post-RA sceduling. Useful while debugging what's mishandled about them in the post-RA pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103805 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
5468e0928bcbfc18890d32c7525d281c14e6c303 |
14-May-2010 |
Jim Grosbach <grosbach@apple.com> |
add cmd line option to leave dbgvalues in during post-RA sceduling. Useful while debugging what's mishandled about them in the post-RA pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103805 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
b6d3f2514f08b9451a7b7fb8599c87aba6f0cb7f |
14-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe what the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103802 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
b92187a4103dca24c3767c380f63593d1f6161a7 |
14-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe what the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103802 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
fad0168253264a619250511d333e81b42af3f07b |
14-May-2010 |
Devang Patel <dpatel@apple.com> |
Add support to preserve type info for the variables that are removed by the optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103798 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
98e1cac52c0eb35fdf6608befd58a8d09d3459d6 |
14-May-2010 |
Devang Patel <dpatel@apple.com> |
Add support to preserve type info for the variables that are removed by the optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103798 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c9589e520bfbe60dcc05b040e4a3c02f4b8e428f |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When verifying two-address instructions, check the following: - Kill is implicit when use and def registers are identical. - Only virtual registers can differ. Add a -verify-fast-regalloc to run the verifier before the fast allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103797 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
egAllocFast.cpp
|
1b2c761a9cc9a57b417c676f4bd97d11b6ba1869 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When verifying two-address instructions, check the following: - Kill is implicit when use and def registers are identical. - Only virtual registers can differ. Add a -verify-fast-regalloc to run the verifier before the fast allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103797 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
egAllocFast.cpp
|
56ce5e47b5bbe69ae14a90e0b94166a93aa31220 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the handling of physreg defs and uses in RegAllocFast. This adds extra security against using clobbered physregs, and it adds kill markers to physreg uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103784 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4ed10826833701b14064f55b6514289e0a7ff5ef |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the handling of physreg defs and uses in RegAllocFast. This adds extra security against using clobbered physregs, and it adds kill markers to physreg uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103784 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
2d0791417af10ea180128589be39b5661d3f3496 |
14-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
XFAIL the test I added with vg_leak, apparently it is the first and only llc -filetype=obj test, and -filetype=obj leaks a few objects. Added a FIXME, we need to sort out the ownership model for the various MC objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103769 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
bd616b69f7ab072a623b55a244bf61541eac5f32 |
14-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
XFAIL the test I added with vg_leak, apparently it is the first and only llc -filetype=obj test, and -filetype=obj leaks a few objects. Added a FIXME, we need to sort out the ownership model for the various MC objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103769 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f09bec35d06ca60cff9af63b36b54f84ef5d4d6f |
14-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
Inline Asm: Ensure buffer is newline terminated to match how the text is printed. - This is a hack, but I can't decide the best place to handle this. Chris? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103765 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
d11d59e35a977e65387c3033dd7b0b7af5641f1e |
14-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
Inline Asm: Ensure buffer is newline terminated to match how the text is printed. - This is a hack, but I can't decide the best place to handle this. Chris? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103765 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
83717f07d2f438e9c54e81aa93a7860975e03978 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable opportunistic coalescing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103764 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
7ff82e1501c416552125f77a62edebe576e469b0 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable opportunistic coalescing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103764 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
b5e3070df1690aabec017fb8d2fd18fa345009b4 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trust kill flags from isel and later passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103748 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
57b6076d343e03237ea8b56ab291f488cc97300f |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trust kill flags from isel and later passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103748 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
3629320719e3a8b8345a5722e15e7ddb9ecd654d |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix an embarrassing runtime regression for RegAllocFast. This loop is quadratic in the capacity for a DenseMap: while(!map.empty()) map.erase(map.begin()); Instead we now do a normal begin() - end() iteration followed by map.clear(). That also has the nice sideeffect of shrinking the map capacity on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103747 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
7d4f25904de543b039a28eddbea3034a5d80e7f8 |
14-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix an embarrassing runtime regression for RegAllocFast. This loop is quadratic in the capacity for a DenseMap: while(!map.empty()) map.erase(map.begin()); Instead we now do a normal begin() - end() iteration followed by map.clear(). That also has the nice sideeffect of shrinking the map capacity on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103747 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
19dc8c9bcd5007ca61d8b42d363602a24216f0a6 |
14-May-2010 |
Dale Johannesen <dalej@apple.com> |
Implement a correct ui64->f32 conversion. The old one was subject to double rounding in extreme cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a5afa1cb214146fd270c86f606b634c8ed6682f2 |
14-May-2010 |
Dale Johannesen <dalej@apple.com> |
Implement a correct ui64->f32 conversion. The old one was subject to double rounding in extreme cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ea137978e7febdae05ec3e47578f8c514c0c1b7b |
13-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up RegAllocFast debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103739 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
c9c4dacd03a4b80d61ed6b9c6ffeb1b1f76b8d1c |
13-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up RegAllocFast debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103739 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a858f3e98f4ebe01e1e9fb3f1733dbcd4799d452 |
13-May-2010 |
Dan Gohman <gohman@apple.com> |
Teach MachineLICM and MachineSink how to clear kill flags conservatively when they move instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103737 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
|
e6cd757e6800b9b94a6459ec148c0624c4f2e3c1 |
13-May-2010 |
Dan Gohman <gohman@apple.com> |
Teach MachineLICM and MachineSink how to clear kill flags conservatively when they move instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103737 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
|
2914807ff0557213406f9be8c35dfa593196b4d0 |
13-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a utility function for conservatively clearing kill flags, and make use of it in MachineCSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103726 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
achineRegisterInfo.cpp
|
49b4589978ca181537c8ae694ac4c8d58d27a09a |
13-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a utility function for conservatively clearing kill flags, and make use of it in MachineCSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103726 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
achineRegisterInfo.cpp
|
1ffc159c03023848aefac15da5fc351c0d0eff84 |
13-May-2010 |
Dan Gohman <gohman@apple.com> |
An Instruction has a trivial kill only if its use is in the same basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e1308d86ed2402483aa9d056af531fd773e1121f |
13-May-2010 |
Dan Gohman <gohman@apple.com> |
An Instruction has a trivial kill only if its use is in the same basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ac97579ccf8f2dc1588dbff9af8727d990c41dc1 |
13-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Take allocation hints from copy instructions to/from physregs. This causes way more identity copies to be generated, ripe for coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103686 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
4bf4bafcced902ee6d58a90486768f08a3795d02 |
13-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Take allocation hints from copy instructions to/from physregs. This causes way more identity copies to be generated, ripe for coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103686 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
b047a55c7163093d1db81501ce224b4f73d792a6 |
13-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
More asserts around physreg uses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103685 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
63e34f690c511a146b936435f84ee76fda154f7c |
13-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
More asserts around physreg uses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103685 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
5247047ea2bc867def200835f4ab1bbd8d93d4d5 |
13-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
If REG_SEQUENCE source is livein, copy it first. Also, update livevariables information when a copy is introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103680 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
054dbb8e8230ae1a7f1f386b6bf307a36af7dd20 |
13-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
If REG_SEQUENCE source is livein, copy it first. Also, update livevariables information when a copy is introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103680 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
73aac95b5bb57fac7a6ac3452b39d7dee5687385 |
13-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not attempt copy coalescing if the source and dest sub-register indices do not match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103679 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
de7dea2e44ea59674acb5680482cd516c6fce3bb |
13-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not attempt copy coalescing if the source and dest sub-register indices do not match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103679 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
2a3bf5ca49917f8dc647cf69e77c04a6575ff46a |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure to add kill flags to the last use of a virtreg when it is redefined. The X86 floating point stack pass and others depend on good kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103635 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
804291e31658d46fb1db5ecaf42b31950c02a6f2 |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure to add kill flags to the last use of a virtreg when it is redefined. The X86 floating point stack pass and others depend on good kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103635 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
f01b62dabc0372b5cf4525272fba263e6589f066 |
12-May-2010 |
Duncan Sands <baldrick@free.fr> |
Remove unused variable. Tweak a comment while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5b1b3b73f2e4fc66eb8a9273673d128b139caf03 |
12-May-2010 |
Duncan Sands <baldrick@free.fr> |
Remove unused variable. Tweak a comment while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
45ad6ff8701825cf79c5d3ce42e2b5a88dc85f65 |
12-May-2010 |
Nathan Jeffords <blunted2night@gmail.com> |
updated support for the COFF .linkonce Now, the .linkonce directive is emitted as part of MCSectionCOFF::PrintSwitchToSection instead of AsmPrinter::EmitLinkage since it is an attribute of the section the symbol was placed into not the symbol itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103568 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
871bb94c4343dcc7391af7833ebb4313a782440b |
12-May-2010 |
Nathan Jeffords <blunted2night@gmail.com> |
updated support for the COFF .linkonce Now, the .linkonce directive is emitted as part of MCSectionCOFF::PrintSwitchToSection instead of AsmPrinter::EmitLinkage since it is an attribute of the section the symbol was placed into not the symbol itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103568 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
82e2b2f2aecb3d540ec72e279b80216013d68545 |
12-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach local regalloc about virtual registers with sub-indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103539 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
736f89b1c15410f1b77db820ad8353fb4b0dda19 |
12-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach local regalloc about virtual registers with sub-indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103539 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e04036b24a60b8fe05ad7efb59efa6e607392379 |
12-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103538 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3ae56bcd8ab0b9cba006f772a623b81d4c7bfd7f |
12-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103538 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
335d4e49a5accdfde53efe66dd15113239bed8ba |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid scoping issues, fix buildbots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103530 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
1a1ad578a3f925dfda58874156fd154fa1d941ea |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid scoping issues, fix buildbots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103530 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
5d4cee00f4f8a3ae9fabcc0200d4be6ed2530be0 |
12-May-2010 |
Dan Gohman <gohman@apple.com> |
Add initial kill flag support to FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a6cb641f48df20f6f79018569b519e5a32e897a2 |
12-May-2010 |
Dan Gohman <gohman@apple.com> |
Add initial kill flag support to FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0521a440058c735eb1b39b7033ea2508d56bbffd |
12-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
Make Clang happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103528 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
0efd768aeac9576e9a8ebb8a693f4a00bc6ecbbc |
12-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
Make Clang happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103528 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
667bbd457c7fb1c713ac342bc3bc0b72cbe68637 |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Store the Dirty bit in the LiveReg structure instead of a bit vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103522 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
210e2afcc74e8ce5102d13939b23040fafa71c09 |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Store the Dirty bit in the LiveReg structure instead of a bit vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103522 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
b61a807660942000e86b5637b22c5f99b97e78a2 |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of the last place a live virtreg was used. This allows us to add accurate kill markers, something the scavenger likes. Add some more tests from ARM that needed this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103521 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
76b4d5a0210f161c08543f00f355955c94d3f2ec |
12-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of the last place a live virtreg was used. This allows us to add accurate kill markers, something the scavenger likes. Add some more tests from ARM that needed this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103521 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
687956a7f61e50f67d231de0826c547fa77c01a9 |
11-May-2010 |
Dan Gohman <gohman@apple.com> |
Don't set kill flags on uses of CopyFromReg nodes. InstrEmitter doesn't create separate virtual registers for CopyFromReg values, so uses of them don't necessarily kill the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
9d7019f586719a03f3519142ca2166166962e433 |
11-May-2010 |
Dan Gohman <gohman@apple.com> |
Don't set kill flags on uses of CopyFromReg nodes. InstrEmitter doesn't create separate virtual registers for CopyFromReg values, so uses of them don't necessarily kill the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
516679eae7954b6e1d8388c21cc9bc29d64bc1fe |
11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103508 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
8e8b3cb9371e60b22d1f401ec63a774c6115e98d |
11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103508 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
287e0145ea89b5c660b09a428d56b05f057b8251 |
11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the tracking of used physregs to a bulk bitor followed by a transitive closure after allocating all blocks. Add a few more test cases for -regalloc=fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103500 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
egAllocFast.cpp
|
82b07dc4995d48065bd95affff4d8513a5cad4f2 |
11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the tracking of used physregs to a bulk bitor followed by a transitive closure after allocating all blocks. Add a few more test cases for -regalloc=fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103500 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
egAllocFast.cpp
|
87177829e96ec9552c8a426fffd40a3090e515e5 |
11-May-2010 |
Duncan Sands <baldrick@free.fr> |
I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is the opposite, for future use by dragonegg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103495 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuilder.cpp
|
16d8f8bd919b72866e687d99f3aa94a140137c59 |
11-May-2010 |
Duncan Sands <baldrick@free.fr> |
I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is the opposite, for future use by dragonegg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103495 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuilder.cpp
|
62f1433c25004a1c53c4a0f1b2f5b3c101343ef4 |
11-May-2010 |
Dan Gohman <gohman@apple.com> |
Trim #includes and forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
038df88e28b88dfea7e95d6331ffcdc03e71d8e4 |
11-May-2010 |
Dan Gohman <gohman@apple.com> |
Trim #includes and forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
ed72e218d07aff19d39b9923fc213d76037c927c |
11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mostly rewrite RegAllocFast. Sorry for the big change. The path leading up to this patch had some TableGen changes that I didn't want to commit before I knew they were useful. They weren't, and this version does not need them. The fast register allocator now does no liveness calculations. Instead it relies on kill flags provided by isel. (Currently those kill flags are also ignored due to isel bugs). The allocation algorithm is supposed to work with any subset of valid kill flags. More kill flags simply means fewer spills inserted. Registers are allocated from a working set that contains no aliases. That means most allocations can be done directly without expensive alias checks. When the working set runs out of registers we do the full alias check to find new free registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103488 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
bbf33b38aaaa6cdbdd2c6a595aa081734308ce83 |
11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Mostly rewrite RegAllocFast. Sorry for the big change. The path leading up to this patch had some TableGen changes that I didn't want to commit before I knew they were useful. They weren't, and this version does not need them. The fast register allocator now does no liveness calculations. Instead it relies on kill flags provided by isel. (Currently those kill flags are also ignored due to isel bugs). The allocation algorithm is supposed to work with any subset of valid kill flags. More kill flags simply means fewer spills inserted. Registers are allocated from a working set that contains no aliases. That means most allocations can be done directly without expensive alias checks. When the working set runs out of registers we do the full alias check to find new free registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103488 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
cfbb32346a7eca19d4dc00fd2c1a0248537b3497 |
11-May-2010 |
Dan Gohman <gohman@apple.com> |
Implement a bunch more TargetSelectionDAGInfo infrastructure. Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetSelectionDAGInfo.cpp
|
ff7a562751604a9fe13efc75bd59622244b54d35 |
11-May-2010 |
Dan Gohman <gohman@apple.com> |
Implement a bunch more TargetSelectionDAGInfo infrastructure. Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetSelectionDAGInfo.cpp
|
491363c2ba41b17b9e3698918beaea8f5bf9d024 |
11-May-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Fixes for Microsoft Visual Studio 2010, from Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103457 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
piller.cpp
|
7d9663c70b3300070298d716dba6e6f6ce2d1e3e |
11-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Fixes for Microsoft Visual Studio 2010, from Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103457 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
piller.cpp
|
962eb08b75df3e36a4237ec9415944809a403b86 |
11-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe eliminate copies where src and dst have different sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103450 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
egAllocFast.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
31b9c44cc13bb686010cf6bfbeef8745c39939b9 |
11-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe eliminate copies where src and dst have different sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103450 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
egAllocFast.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
210f7c158bced38cb5e60a7085650125ccc25145 |
11-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Ensure REG_SEQUENCE source operands are unique. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103449 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0bcccac50481921ab86dfdbaadec79f1db35c662 |
11-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Ensure REG_SEQUENCE source operands are unique. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103449 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3be2ceb2bec76f6d38f0d51f1045ad6700c6f453 |
11-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
60ffa9467b0c7df2f76e2b2de7af17b776805e28 |
11-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
7e5a86e0c9d0445f638f6423d72e7069e4ef7a89 |
11-May-2010 |
Devang Patel <dpatel@apple.com> |
Enable multiple Compile Units in one module. This means now 'llvm-ld a.bc b.bc' will preserve debug info appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103439 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
163a9f7c5f545414506364a94689e22d59533fe6 |
11-May-2010 |
Devang Patel <dpatel@apple.com> |
Enable multiple Compile Units in one module. This means now 'llvm-ld a.bc b.bc' will preserve debug info appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103439 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c4041fa017cd060a3603952a14ca02c6223bf3a9 |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to propagate implicit_def that defines part of a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103436 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
9cc9bfaf86510790c36198b033f241635614a8d0 |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to propagate implicit_def that defines part of a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103436 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
635c7780796be3419d6112faa857f7077ab89f01 |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Clear RegSequences vector after eliminating REG_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103435 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
fc6e6a9b3b2b2de7bee47d9dcbdfdc72ca7f5238 |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Clear RegSequences vector after eliminating REG_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103435 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f6c387a40e55d90ef26b06df3bfe0ec8c0556f89 |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Be careful with operand promotion. For a binary operation, the source operands may be the same. PR7018. rdar://7939869. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aad753bbbd98c952f7e65246af2faf5c7d5a850b |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Be careful with operand promotion. For a binary operation, the source operands may be the same. PR7018. rdar://7939869. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2b72505bf40454601b9cfce6e3e59f7838dba944 |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-defined valno is always valno even for partial re-def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103410 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
623d3c10e12a4227926e5b69947f7f0fa7e1908a |
10-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-defined valno is always valno even for partial re-def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103410 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0f4fd7667762ae4cc2a4679b5b68ce67e23401c2 |
10-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix PR7096. When a block containing multiple defs is tail duplicated, the SSAUpdater for the value from the first def may see uses of undefined values, because the later defs will not have been updated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103407 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
fde18e5eff86b5055d7ed541fa87cde5aa1ab31c |
10-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix PR7096. When a block containing multiple defs is tail duplicated, the SSAUpdater for the value from the first def may see uses of undefined values, because the later defs will not have been updated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103407 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
a415e0ebca988dfbb3377b7369c02f80fec7b46e |
10-May-2010 |
Duncan Sands <baldrick@free.fr> |
Add an assertion to catch attempts to access off the end of the array. Based on a patch by Javier Martinez. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ad017dcb3a41bb053a6a5fa873d07222763dae75 |
10-May-2010 |
Duncan Sands <baldrick@free.fr> |
Add an assertion to catch attempts to access off the end of the array. Based on a patch by Javier Martinez. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
532a9a81c9c75f5a509737710899cf1184e888e2 |
08-May-2010 |
Devang Patel <dpatel@apple.com> |
Instead of just verifying compile unit, verify entire type, variable, namespace etc.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103327 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c665a5146d37cbc793f2e4413fd39a40ec230e12 |
08-May-2010 |
Devang Patel <dpatel@apple.com> |
Instead of just verifying compile unit, verify entire type, variable, namespace etc.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103327 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4942c4b48d0756df697bf4e488b95dc498170d6e |
08-May-2010 |
Devang Patel <dpatel@apple.com> |
Remove DIGlobal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a49d8772902c2a72c298952f633ab4224cf33add |
08-May-2010 |
Devang Patel <dpatel@apple.com> |
Remove DIGlobal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c690002d5a85ab55cd9a4d163ec28f35344f2154 |
08-May-2010 |
Dan Gohman <gohman@apple.com> |
SDDbgValues are apparently not being legalized. Fix a symptom of the problem, and not the real problem itself, by dropping debug info for i128 values. rdar://7958162. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
4ce86f459c92258f887fd8fd884fa55066b3a0cd |
08-May-2010 |
Dan Gohman <gohman@apple.com> |
SDDbgValues are apparently not being legalized. Fix a symptom of the problem, and not the real problem itself, by dropping debug info for i128 values. rdar://7958162. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
5117aa643b38c256ef031f08a17ac25ce52d51b3 |
08-May-2010 |
Devang Patel <dpatel@apple.com> |
Verify variable directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
02f0dbd97a9bc01528aa12c2f260d928683ab411 |
08-May-2010 |
Devang Patel <dpatel@apple.com> |
Verify variable directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
f0675bac94cc87caeb09e14d371b6c7a4fca0811 |
07-May-2010 |
Chris Lattner <sabre@nondot.org> |
add COFF support for COMDAT sections, patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103304 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6e5ce287b0e53c264af0ba37169ad964e19b5bb7 |
07-May-2010 |
Chris Lattner <sabre@nondot.org> |
add COFF support for COMDAT sections, patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103304 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
9738af915ba0f9ac00beefc4189c1acf962bcaf8 |
07-May-2010 |
Devang Patel <dpatel@apple.com> |
Verify entire type descriptor not just tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103303 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9c00487dc33b21061a5daf3ef9c2455715683f3f |
07-May-2010 |
Devang Patel <dpatel@apple.com> |
Verify entire type descriptor not just tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103303 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6a11bccbdc8ea01d75400341046cc1b8b2f482b1 |
07-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix PR 7087, and probably other things, by extending getConstantFP to accept the two supported long double target types. This was not the original intent, but there are other places that assume this works and it's easy enough to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0a406ae0d940d92c51ee145b48ff7a483a366849 |
07-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix PR 7087, and probably other things, by extending getConstantFP to accept the two supported long double target types. This was not the original intent, but there are other places that assume this works and it's easy enough to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9c371c62fee60d6fcd700c6f6099d8990c5441dc |
07-May-2010 |
Devang Patel <dpatel@apple.com> |
Wrap const MDNode * inside DIDescriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e9f8f5e6004fd49f2aff4dd23db8e9b0e4454fc6 |
07-May-2010 |
Devang Patel <dpatel@apple.com> |
Wrap const MDNode * inside DIDescriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
19302aa91af26253b5a9d5e39ec5745b0e0cdf66 |
07-May-2010 |
Devang Patel <dpatel@apple.com> |
Avoid DIDescriptor::getNode(). Use overloaded operators instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
2db49d797b86b7f3615bae17b2b016727778a6c4 |
07-May-2010 |
Devang Patel <dpatel@apple.com> |
Avoid DIDescriptor::getNode(). Use overloaded operators instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
82868058499ce8d37685c5fc02137d88609a8b34 |
07-May-2010 |
Chris Lattner <sabre@nondot.org> |
switch MCSectionCOFF from a syntactic to semantic representation, patch by Peter Housel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103267 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
eb40a0fd98c44ecc6360e7fab33cf9e9911bed4f |
07-May-2010 |
Chris Lattner <sabre@nondot.org> |
switch MCSectionCOFF from a syntactic to semantic representation, patch by Peter Housel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103267 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
9eb9de5c77aaafc88c3aba563e5e27043747a8b9 |
07-May-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r103133 and add testcase from PR7066. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103233 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
403d312c0ffefdd0f54eed5e5ddcf163533f9103 |
07-May-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r103133 and add testcase from PR7066. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103233 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ebdca48b2c83e021d050f2f42c5c50942cf76f36 |
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Transfer debug location information from PHI nodes to resulting lowered copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
fb95f89e8ebd0b71408472e2544e2b8d6d4738e5 |
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Transfer debug location information from PHI nodes to resulting lowered copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
abaa71f04b1208b9290cd346768be89f1fe806db |
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Print debug information for SDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cc751bb99ca868467bb9676af351bbdc29873fff |
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Print debug information for SDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
77c565e27c142ea036195463767a90d80f7c4d9b |
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Disable the new unknown-location code for now. It causes a major increase in the debug line info section, and it's causing regressions in a gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103226 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
281d65d004df3ecf84aeb8be68cd0ce0215d5f19 |
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Disable the new unknown-location code for now. It causes a major increase in the debug line info section, and it's causing regressions in a gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103226 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
75a44ec07c056f9bcf17368b6643810ecfbe1264 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it doesn't have to guess. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
achineRegisterInfo.cpp
HIElimination.cpp
cheduleDAGEmit.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
piller.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
34dcc6fadca0a1117cdbd0e9b35c991a55b6e556 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it doesn't have to guess. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
achineRegisterInfo.cpp
HIElimination.cpp
cheduleDAGEmit.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
piller.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
1f8534d080a425fa232552decf8012a4d6a95419 |
06-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103193 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocFast.cpp
egAllocLocal.cpp
egisterScavenging.cpp
piller.cpp
irtRegRewriter.cpp
|
746ad69e088176819981b4b2c5ac8dcd49f5e60e |
06-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103193 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocFast.cpp
egAllocLocal.cpp
egisterScavenging.cpp
piller.cpp
irtRegRewriter.cpp
|
88d379aef900646a062c0e0716faf4057bc86b9b |
06-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103185 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
e9b3ac27dda22a6939246323935111070cf24280 |
06-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103185 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
3343fba25cd891c05016ac4cb58277ba365952e5 |
06-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fixes a coalescer bug that caused llc to crash on 2009-11-30-LiveVariablesBug.ll with the fix in 103157. %reg1039:1<def> = VMOVS %S1<kill>, pred:14, pred:%reg0 is not coalescable since none of the super-registers of S1 are in reg1039's register class: DPR_VFP2. But it is still a legal copy instruction so it should not assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103170 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
62bb2f63f92fa00e0a89e4dabef030a5b441905c |
06-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fixes a coalescer bug that caused llc to crash on 2009-11-30-LiveVariablesBug.ll with the fix in 103157. %reg1039:1<def> = VMOVS %S1<kill>, pred:14, pred:%reg0 is not coalescable since none of the super-registers of S1 are in reg1039's register class: DPR_VFP2. But it is still a legal copy instruction so it should not assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103170 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f79f0f79cfe8d4f689fbd3c91cf3dd25d8f84c8c |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Update LabelsBeforeInsn also, when creating unknown-position labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103145 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
75395847817b88798f9d8cdfb7bc99388167d291 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Update LabelsBeforeInsn also, when creating unknown-position labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103145 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d095d3410fd7b5f586abcf00b4d990735edef4b7 |
06-May-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' failed. Users can write broken code that emits the same label twice with asm renaming, detect this and emit a fatal backend error instead of aborting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103140 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b4202dbb36e9799c96890fc3aa0040c1aedb33c8 |
06-May-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' failed. Users can write broken code that emits the same label twice with asm renaming, detect this and emit a fatal backend error instead of aborting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103140 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
42b46125a8fc0feeac2177f0886cdad2247b45b6 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
In bottom-up mode, defer the materialization of local constant values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103139 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
97c94b8fc630b55e17a37481910810639e28d086 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
In bottom-up mode, defer the materialization of local constant values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103139 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
33dcdb7421cfa95ab8b8c19636d4c6d9cb96d5e6 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add an "IsBottomUp" member function to FastISel, which will be used to support a new bottom-up mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103138 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a7a0ed79012ea36f838239cf1d04959711aec2a9 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add an "IsBottomUp" member function to FastISel, which will be used to support a new bottom-up mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103138 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5d0dda591ca511756f2fbe2b9987f786d230863e |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Emit debug info for MachineInstrs with unknown debug locations, instead of just letting them inherit the debug locations of adjacent instructions. Debug info should aim to be either accurate or absent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103135 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1cc0d628552a43568ec7c143698025ab18f2e072 |
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Emit debug info for MachineInstrs with unknown debug locations, instead of just letting them inherit the debug locations of adjacent instructions. Debug info should aim to be either accurate or absent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103135 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9c90aa7f66008eba300cdec4cb2cf631b5de8f57 |
06-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6520. An earlyclobber physreg must not be allocated to anything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103133 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
51bfd452d5d748abc5e65b71b8f7213a13e10569 |
06-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6520. An earlyclobber physreg must not be allocated to anything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103133 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
f094cf7243b30e010d6867228499a93c1286be9c |
06-May-2010 |
Devang Patel <dpatel@apple.com> |
Use getValue() for PHINodes when direct NodeMap access does not work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d47f3c803f4e1e7f84e8fdcd3c9a5120ae5d37ad |
06-May-2010 |
Devang Patel <dpatel@apple.com> |
Use getValue() for PHINodes when direct NodeMap access does not work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7317f5c2b561c43fe805433835a6bda575cfed0f |
05-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move REG_SEQUENCE removal to 2addr pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103109 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
woAddressInstructionPass.cpp
|
3d720fbc6ad40bc9287a420f824d244965d24631 |
05-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move REG_SEQUENCE removal to 2addr pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103109 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
woAddressInstructionPass.cpp
|
449c026d222070919b95fc424d37e03eebeb2ac1 |
05-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach liveintervalanalysis about virtual registers which are defined by reg_sequence instructions that are formed by registers defined by distinct instructions. e.g. 80 %reg1041:6<def> = VSHRNv4i16 %reg1034<kill>, 12, pred:14, pred:%reg0 . . . 120 %reg1041:5<def> = VSHRNv4i16 %reg1039<kill>, 12, pred:14, pred:%reg0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103102 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3749943648772743c9c0e852553e50e6700a0c1b |
05-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach liveintervalanalysis about virtual registers which are defined by reg_sequence instructions that are formed by registers defined by distinct instructions. e.g. 80 %reg1041:6<def> = VSHRNv4i16 %reg1034<kill>, 12, pred:14, pred:%reg0 . . . 120 %reg1041:5<def> = VSHRNv4i16 %reg1039<kill>, 12, pred:14, pred:%reg0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103102 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cae2b64b64944f9e64c8ec0ef7d7fc15d1bdb47e |
05-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Combine the implementations of the core part of the SSAUpdater and MachineSSAUpdater to avoid duplicating all the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103060 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
4aad88d1fd88413029dd05255306b07cb19396ee |
05-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Combine the implementations of the core part of the SSAUpdater and MachineSSAUpdater to avoid duplicating all the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103060 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
63a335136a7aeeb9fed9d2577b115bb13b751adc |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g. %reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ... %reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6 => %reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ... PHI elimination now does more than phi elimination. It is really a de-SSA pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103039 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
HIElimination.h
|
afff40a62da19be15295c0f8ed5d4d450ccb45a5 |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g. %reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ... %reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6 => %reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ... PHI elimination now does more than phi elimination. It is really a de-SSA pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103039 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
HIElimination.h
|
ee17651a02e38910e5dc7fbe1b615f923dbaae43 |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename variables for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103013 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
28428cd6f31c1ea3cf4cea03e64189a4c32b84a3 |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename variables for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103013 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
ab4b3ce2fbaa457d86d1d7f5d95d2fb3d4152ad5 |
04-May-2010 |
Devang Patel <dpatel@apple.com> |
Set DW_AT_APPLE_omit_frame_ptr in endFunction() where MachineFunction is available all the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103001 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9c488376efc195e3ee3061d0c3e25e56ff25c7bf |
04-May-2010 |
Devang Patel <dpatel@apple.com> |
Set DW_AT_APPLE_omit_frame_ptr in endFunction() where MachineFunction is available all the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103001 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
927ac56aa25df500c7dfed7f5f5527d621db7928 |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Instruction selection optimizations may have moved the def of a function argument out of the entry block. rdar://7937489 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f1ced259b5617e9c15fcafd47e090c22e2702062 |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Instruction selection optimizations may have moved the def of a function argument out of the entry block. rdar://7937489 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ab5a32f5c8568bb0ee2841fbe381315fbe0c6d9e |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach scheduler about REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102984 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
ba609c88a5a0eb717772c89bda89157c85fdf95e |
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach scheduler about REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102984 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
44f221f6395fef3d62e8eee66e592bb0077c5467 |
04-May-2010 |
Dan Gohman <gohman@apple.com> |
Re-enable isel kill flags, now that the local allocator is ignoring them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
2131e2a75fc562e4dbaeb6954eac35147c71104f |
04-May-2010 |
Dan Gohman <gohman@apple.com> |
Re-enable isel kill flags, now that the local allocator is ignoring them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
9551919e6c3146ff0bce6843ff2c382558d7ea01 |
04-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove preexisting kill flags in RegAllocLocal, just like LiveVariables does. This should make it possible to start producing kill flags in isel without breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102976 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a50fba933c25593dc6374bad9298e8b688c9c934 |
04-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove preexisting kill flags in RegAllocLocal, just like LiveVariables does. This should make it possible to start producing kill flags in isel without breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102976 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
080b7d4073d554d405f9fd81d5a5bee529f755e6 |
04-May-2010 |
Dan Gohman <gohman@apple.com> |
Factor out FastISel's code for materializing constants and other values in registers into a separate function to de-couple it from the top-down-specific logic in getRegForValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1fdc614bee2a324fcc210d1e46d9b6fca3ca324b |
04-May-2010 |
Dan Gohman <gohman@apple.com> |
Factor out FastISel's code for materializing constants and other values in registers into a separate function to de-couple it from the top-down-specific logic in getRegForValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ffe8498449f1d062772ce7290e3069a9f3d7e675 |
04-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check that subregisters don't have independent values in RemoveCopyByCommutingDef(). This fixes PR6941. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102970 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b98c549d135c8f38b2fc1b086cc46f0b243ce862 |
04-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check that subregisters don't have independent values in RemoveCopyByCommutingDef(). This fixes PR6941. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102970 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c2f3b2883bebe9024a26255df4760fcb8f7a846b |
04-May-2010 |
Eric Christopher <echristo@apple.com> |
Reword a comment slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102966 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b4c14aaa50b58ac723d0ed179695e1cd7296572a |
04-May-2010 |
Eric Christopher <echristo@apple.com> |
Reword a comment slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102966 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
50b82b963d266c0701b7329d9558aba883aae008 |
03-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Print basic block numbers in live interval debug output. Since the rest of the debug output is showing machine instructions, the IR-level basic block names aren't very meaningful, and because multiple machine basic blocks may be derived from one IR-level BB, they're also not unique. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102960 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ad98f795d0dba3db721139a8a74a98acdce0ff60 |
03-May-2010 |
Bob Wilson <bob.wilson@apple.com> |
Print basic block numbers in live interval debug output. Since the rest of the debug output is showing machine instructions, the IR-level basic block names aren't very meaningful, and because multiple machine basic blocks may be derived from one IR-level BB, they're also not unique. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102960 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bc24148368b0a27cd164357b9867fbff6058fae0 |
03-May-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug which prevented tail merging of return instructions in beneficial cases. See the changes in test/CodeGen/X86/tail-opts.ll and test/CodeGen/ARM/ifcvt2.ll for details. The fix is to change HashEndOfMBB to hash at most one instruction, instead of trying to apply heuristics about when it will be profitable to consider more than one instruction. The regular tail-merging heuristics are already prepared to handle the same cases, and they're more precise. Also, make test/CodeGen/ARM/ifcvt5.ll and test/CodeGen/Thumb2/thumb2-branch.ll slightly more complex so that they continue to test what they're intended to test. And, this eliminates the problem in test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll, the testcase from PR5204. Update it accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102907 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
30fc5bbfd1047c666bfd653fefb74ffdc6e966f5 |
03-May-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug which prevented tail merging of return instructions in beneficial cases. See the changes in test/CodeGen/X86/tail-opts.ll and test/CodeGen/ARM/ifcvt2.ll for details. The fix is to change HashEndOfMBB to hash at most one instruction, instead of trying to apply heuristics about when it will be profitable to consider more than one instruction. The regular tail-merging heuristics are already prepared to handle the same cases, and they're more precise. Also, make test/CodeGen/ARM/ifcvt5.ll and test/CodeGen/Thumb2/thumb2-branch.ll slightly more complex so that they continue to test what they're intended to test. And, this eliminates the problem in test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll, the testcase from PR5204. Update it accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102907 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
1ffdb1f5cb10080ecbcdbeb414ef27a62e53b0f8 |
01-May-2010 |
Dale Johannesen <dalej@apple.com> |
Don't count debug info as instructions. This was preventing the emission of the NOP on Darwin for a function with no actual code. From timberwolfmc with TEST=optllcdbg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d014761c9337f270f497aa960d51ee424bb166d5 |
01-May-2010 |
Dale Johannesen <dalej@apple.com> |
Don't count debug info as instructions. This was preventing the emission of the NOP on Darwin for a function with no actual code. From timberwolfmc with TEST=optllcdbg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c9c3d9938b7533786ed9a1736a86453d9241ce68 |
01-May-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Insert ANY_EXTEND node instead of invalid truncate during DAG Combining (X & 1), when needed. This fixes PR7001 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
17458a786e4d3eeff9c66fc0ec284b763df53642 |
01-May-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Insert ANY_EXTEND node instead of invalid truncate during DAG Combining (X & 1), when needed. This fixes PR7001 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
62343d11e8e829a1907b3f0179176f46c5d0249e |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Remove the code for special-casing byval for fast-isel. SelectionDAG handles argument lowering anyway, so there's no need for special casing here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
d725f04ff81db0e61baa153bf21ca2dd08838244 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Remove the code for special-casing byval for fast-isel. SelectionDAG handles argument lowering anyway, so there's no need for special casing here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
e7fc4ec5183e0c471c65359502f8755692a7a31c |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Re-disable kill flags, as there is more trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102826 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
0b7afeb4408dc20476b125f66af1829d6741795e |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Re-disable kill flags, as there is more trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102826 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
a6ef48a1ddd2dc4c1440eaab619df2539892ddcc |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Re-enable kill flags from SelectionDAGISel, with a fix: don't try to put a kill flag on a DBG_INFO instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102820 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
3a401bcd04e3a04eea9e91649e1a820ff7cc60c1 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Re-enable kill flags from SelectionDAGISel, with a fix: don't try to put a kill flag on a DBG_INFO instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102820 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
d65a0859aac6ec84155cdd63ef883e21762430f6 |
01-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a bug where debug info affected stack slot coloring. Seen in SingleSrc/Benchmarks/Misc/flops with TEST=optllcdbg. 7929951. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102819 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
e576f51e664821c69985d5db7e0fb109dd1cd137 |
01-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a bug where debug info affected stack slot coloring. Seen in SingleSrc/Benchmarks/Misc/flops with TEST=optllcdbg. 7929951. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102819 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
1cee581edc39c1c21f28ef723046e7ee53cd9549 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102817 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1b79a2ff547a5ead0eef933bb02f51b3a2f4cc1c |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102817 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
764bd4bf9503227ad36c3f423965fd5c7476cc38 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Don't pass SDValues by non-const reference unless they may be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
5d11ea39f7f78169efdc4a62fd924e8f0661ca55 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Don't pass SDValues by non-const reference unless they may be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
f09400f3bb920cf6f79dc030f42e8d103e14b5c6 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Reorgnaize more switch code lowering to clean up some tricky code, and to eliminate the need for the SelectionDAGBuilder state to be live during CodeGenAndEmitDAG calls. Call SDB->clear() before CodeGenAndEmitDAG calls instead of before it, and move the CurDAG->clear() out of SelectionDAGBuilder, which doesn't own the DAG, and into CodeGenAndEmitDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
95140a4cc168bb75a54a434e3e53f9060742dc41 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Reorgnaize more switch code lowering to clean up some tricky code, and to eliminate the need for the SelectionDAGBuilder state to be live during CodeGenAndEmitDAG calls. Call SDB->clear() before CodeGenAndEmitDAG calls instead of before it, and move the CurDAG->clear() out of SelectionDAGBuilder, which doesn't own the DAG, and into CodeGenAndEmitDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f66cc81ee47a15d453cd5deba4620cbba1b87608 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Delete the EdgeMapping variable itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
1b40319eba671399539c53b91b36d667f86662d3 |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Delete the EdgeMapping variable itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
e9198cc2d055953ec847dbcaf55f92dd32b434cc |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Get rid of the EdgeMapping map. Instead, just check for BasicBlock changes before doing phi lowering for switches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102809 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGISel.cpp
|
af1d8ca44a18f304f207e209b3bdb94b590f86ff |
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Get rid of the EdgeMapping map. Instead, just check for BasicBlock changes before doing phi lowering for switches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102809 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAGISel.cpp
|
80b03f1f6ae6743a15190ef38f34be0bd1e59656 |
01-May-2010 |
Bill Wendling <isanbard@gmail.com> |
EXTRACT_VECTOR_ELT of an INSERT_VECTOR_ELT may have the same index, but the indexes could be of a different value type. Or not even using the same SDNode for the constant (weird, I know). Compare the actual values instead of the pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d71bb562758c417e91ab05424cea93264b35c67a |
01-May-2010 |
Bill Wendling <isanbard@gmail.com> |
EXTRACT_VECTOR_ELT of an INSERT_VECTOR_ELT may have the same index, but the indexes could be of a different value type. Or not even using the same SDNode for the constant (weird, I know). Compare the actual values instead of the pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9909dc57f84619aff2e1813b2b85a9b75d03a796 |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove this debug output. The MachineFunction will be printed once all of instruction selection is done; it's confusing to see parts of it printed, while other parts are omitted, along the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102771 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e7fd7c688689a0f51caf350af47c87fb6a915b92 |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove this debug output. The MachineFunction will be printed once all of instruction selection is done; it's confusing to see parts of it printed, while other parts are omitted, along the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102771 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2d6824fb98bd262ef04a8db7a254b9d6052b3eef |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
The local register allocator has to spill dirty callee saved registers before a call that might throw. The landing pad assumes that all registers are in stack slots. We used to spill those dirty CSRs after the call, and the stack slots would be wrong when arriving at the landing pad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102770 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
8387d7db193c2ab1961593487d77cefb550a82c7 |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
The local register allocator has to spill dirty callee saved registers before a call that might throw. The landing pad assumes that all registers are in stack slots. We used to spill those dirty CSRs after the call, and the stack slots would be wrong when arriving at the landing pad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102770 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
9e3b7aef13b3933667e956d041d5f38ec2db69c0 |
30-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Attach AT_APPLE_optimized attribute to optimized function's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102743 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ccff812777470d294b7d7407783ccb6111ca0d10 |
30-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Attach AT_APPLE_optimized attribute to optimized function's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102743 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6d5decf16e5536e693dd2cce564491e94750112c |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
EmitDbgValue doesn't need its EdgeMapping argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
|
891ff8fbd61a06ef8ea57461fa377ebbb663ed09 |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
EmitDbgValue doesn't need its EdgeMapping argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
|
3864974bf35e15ae8f248ebe134fd2d2727c9a62 |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use floating point in SimpleRegisterCoalescing. Rounding differences causes tests to fail on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102729 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
132dace4aa34fb108cdd294ae4f8db36a35e01c4 |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use floating point in SimpleRegisterCoalescing. Rounding differences causes tests to fail on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102729 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c76659ee1f2f8a09c597af8067726792d6b09f0c |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Apply a patch from Jan Sjodin to fix a compiler abort on vector comparisons sign-extended to a different bitwidth than the comparison operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ce89f47de03e056e7cb52b0fff24834ef409a57 |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Apply a patch from Jan Sjodin to fix a compiler abort on vector comparisons sign-extended to a different bitwidth than the comparison operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9dcf5529eb20919cd6179f227dcc7a3ef77f75df |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Temporarily disable SelectionDAG kill flags, which are causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
71cee76d26bdbb50d86a206717fe5b4265b396e7 |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Temporarily disable SelectionDAG kill flags, which are causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
df29c910ec09b2a5f34f0c1c1685772aa3e62a7a |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Set register kill flags on the SelectionDAG path, at least in the easy cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
47bd03b2779bc500fb0472518d0e278f080ee79a |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Set register kill flags on the SelectionDAG path, at least in the easy cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
5c78d8186925a0d79083ccad45fac7d95e28d039 |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reject really weird coalescer case when trying to merge identical subregisters of different register classes. e.g. %reg1048:3<def> = EXTRACT_SUBREG %RAX<kill>, 3 Where %reg1048 is a GR32 register. This is not impossible to handle, but it is pretty hard and very rare. This should unbreak the dragonegg builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102672 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f07fc974d330fa355ba60f23828657f54f97e5aa |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reject really weird coalescer case when trying to merge identical subregisters of different register classes. e.g. %reg1048:3<def> = EXTRACT_SUBREG %RAX<kill>, 3 Where %reg1048 is a GR32 register. This is not impossible to handle, but it is pretty hard and very rare. This should unbreak the dragonegg builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102672 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f0a214e1ac4dfd9f5dfda963eaa7e62b64af1f90 |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix typos in assertion strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102666 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a555ac9d157a999eaa0c8eed58e13849abfa3a53 |
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix typos in assertion strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102666 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b3f0c5280304144411ffe536b8006fc9896f5da6 |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Slightly verboser debug spew from coalescer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102663 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
02104df05f97fd7f4d477376bdfa2f1b7a327a15 |
30-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Slightly verboser debug spew from coalescer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102663 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
5e9ee00e44758b4f587d8d48f0983161761d8924 |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
719f6a9d9cf29d7daa33cfe43a9e7fe671b24df1 |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6914a05c88c501c6f3c1548fcc13c22f0d3cfa22 |
29-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Make naked functions work on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102657 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
8c5358c93675b009ba2d57c3a5980f6bc58ba536 |
29-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Make naked functions work on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102657 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
77defb51f91553f5180feef4ae25da44e8d34491 |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Print variable scope name in DEBUG_VALUE comment. Useful in some cases. e.g. ##DEBUG_VALUE: runOnMachineFunction:this <- RDI+0 ##DEBUG_VALUE: runOnMachineFunction:fn <- RSI+0 ##DEBUG_VALUE: DeadDefs <- undef ## SimpleRegisterCoalescing.cpp:2706 ##DEBUG_VALUE: getRegInfo:this <- [%rsp+$56]+$0 ##DEBUG_VALUE: getTarget:this <- [%rsp+$56]+$0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102655 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
67a444ca362b6f2dc64016494eb1165d46aef0bf |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Print variable scope name in DEBUG_VALUE comment. Useful in some cases. e.g. ##DEBUG_VALUE: runOnMachineFunction:this <- RDI+0 ##DEBUG_VALUE: runOnMachineFunction:fn <- RSI+0 ##DEBUG_VALUE: DeadDefs <- undef ## SimpleRegisterCoalescing.cpp:2706 ##DEBUG_VALUE: getRegInfo:this <- [%rsp+$56]+$0 ##DEBUG_VALUE: getTarget:this <- [%rsp+$56]+$0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102655 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c59b9cac46b3d42f3a6c32553a3dc24411d5d3ad |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove DBG_VALUE which reference dead stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102654 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
bd6cb4ba1f743f840da844b44aa0ec92e56777ee |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove DBG_VALUE which reference dead stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102654 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
49175c18166113a88864caa333920cf068b2d2fa |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
DO not push DBG_VALUE machine instructions for inlined fuction arguments in entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102653 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a83ce98d5f5860809ce339968656a383098221f6 |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
DO not push DBG_VALUE machine instructions for inlined fuction arguments in entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102653 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a59a85f8dd03d52907019f1a4caaf7653b01b7d3 |
29-Apr-2010 |
Shih-wei Liao <sliao@google.com> |
For disassembler Change-Id: I14e64ec4640cbeb57ac87473775e8ba8a7320b3f
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
0e82acdb5538286d0e48c7e6b92e0db7325045a9 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
8fed76115e8052a8835f0ad217ad68482f83a7c9 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
5722df6ab13f7a3ed55218996115975ceb0666aa |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable 102565 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102602 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
a36acad67ddade353a79a6b1a7b43bfaa01e86e1 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable 102565 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102602 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
7cd90ba5960619304d4d1df199d2415ba079dd9d |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily disable my changes to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
16e4ace95196c2b34246746b7481a8de3d715c19 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily disable my changes to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
dc3bde49acd47f1111c72cda8e977b12b020e0af |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not generate duplicate dbg_value instructions for function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102585 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
9e8a2b93465bc8abd9b318faebb256b1c168baa9 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not generate duplicate dbg_value instructions for function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102585 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
e351086c0b0694ee262c158678d9247a7294bfe6 |
29-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix missing #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
c924556dd5fd3a3912d5e9ce201ee571bdefdd1a |
29-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix missing #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
e9b5ce10f07770d06aac415704e284bcbfdf70c3 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid emitting a dbg_value machineinstr that's not going to be inserted into entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
ee1d91a8301f91318e1aeed55c35ba5f6ca0b913 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid emitting a dbg_value machineinstr that's not going to be inserted into entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
4fc6bce87e792f4b90a25157a9852405b657a350 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Check Reg against zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
1deef27b0ad538e5017675cf1e085002973bbbb2 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Check Reg against zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
5a18c02adf710ec282a3b8d4eebc30ac85df53ca |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Really preserve dbg_value instructions when the register is spilled. - Also, update dbg_value is the value is being re-matted from a frame slot, e.g. fixed slots for arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102565 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6691a8935c9f2e049ff5eed45ba2894f60108909 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Really preserve dbg_value instructions when the register is spilled. - Also, update dbg_value is the value is being re-matted from a frame slot, e.g. fixed slots for arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102565 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
69f539f9f277e192b8799d64e7458911cf0198c8 |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f38c6c89f1137f54adb76bb375b15ff0ec3a925a |
29-Apr-2010 |
Devang Patel <dpatel@apple.com> |
tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5c8110883afbf3b4ec5031dc5bfe0f5627f2ca0e |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Replace r102368 with code that's less fragile. This creates DBG_VALUE instructions for function arguments early and insert them after instruction selection is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102554 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
2ad0fcf794924f618a7240741cc14a39be99d0f2 |
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Replace r102368 with code that's less fragile. This creates DBG_VALUE instructions for function arguments early and insert them after instruction selection is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102554 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
6a6ebc272604460d6f290fd727627a7b3cb6825f |
28-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pretty print DBG_VALUE machine instructions. Before: DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707 Now: DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102518 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
59b3655564bb6717b296ca9e71f13bf7db45b590 |
28-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pretty print DBG_VALUE machine instructions. Before: DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707 Now: DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102518 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7516e9ec8193626b3bc987ea7eec3ec2e89e0f9e |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Rework global alignment computation again. Now we do round up alignment of globals to the preferred alignment, but only when there is no section specified on the global (by far the common case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e87f7bb50e1d08a09e29252806f6502dcff0539d |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Rework global alignment computation again. Now we do round up alignment of globals to the preferred alignment, but only when there is no section specified on the global (by far the common case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
01f2b921d6a01d992b863516ed7c8976665f3707 |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca matching llvm.dbg.declare intrinsic is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
54fc4d6a48b32772b1a114a43e20de521257899b |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca matching llvm.dbg.declare intrinsic is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
caaeddd7eee9c73ec3abe9bb03f097e98a8b78b3 |
28-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Recompute kill flags from live intervals after coalescing instead of trying to update them. Computing kill flags is notoriously difficult, and the coalescer would get it wrong sometimes, and it would completely skip physical registers. Now we simply remove kill flags based on the live intervals after coalescing. This is a few percent slower, but now we get correct kill flags for physical registers after coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102510 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
0fd109963aa86021d5b78ccddd62d80ccafdb010 |
28-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Recompute kill flags from live intervals after coalescing instead of trying to update them. Computing kill flags is notoriously difficult, and the coalescer would get it wrong sometimes, and it would completely skip physical registers. Now we simply remove kill flags based on the live intervals after coalescing. This is a few percent slower, but now we get correct kill flags for physical registers after coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102510 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
7abe37e4aee38cc79d91dd069a37d7e91d5bef53 |
28-Apr-2010 |
Shih-wei Liao <sliao@google.com> |
Sync upstream to r102410. Re-turn on sdk. Change-Id: I91a890863989a67243b4d2dfd1ae09b843ebaeaf
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
nalysis.cpp
ndroid.mk
ntiDepBreaker.h
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterDwarf.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
ranchFolding.cpp
MakeLists.txt
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
warfEHPrepare.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
xactHazardRecognizer.cpp
xactHazardRecognizer.h
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
ntrinsicLowering.cpp
LVMTargetMachine.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineCSE.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
achineInstr.cpp
achineLICM.cpp
achineModuleInfo.cpp
achineModuleInfoImpls.cpp
achineRegisterInfo.cpp
achineSSAUpdater.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeExts.cpp
HIElimination.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.cpp
rologEpilogInserter.h
egAllocFast.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egisterScavenging.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/CMakeLists.txt
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SDDbgValue.h
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
electionDAG/TargetSelectionDAGInfo.cpp
hadowStackGC.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
piller.cpp
ailDuplication.cpp
argetInstrInfoImpl.cpp
argetLoweringObjectFileImpl.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegRewriter.cpp
irtRegRewriter.h
|
7d1357abe48d8ec4c34dc887c106b9169287cdb3 |
28-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Try operation promotion only if regular dag combine and target-specific ones failed to do anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102492 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b3a3d5e858d6613d24a23056bf8b4ce80dcaec41 |
28-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Try operation promotion only if regular dag combine and target-specific ones failed to do anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102492 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7c3efb1a081fdfffdadb7905416577b3a183a6d0 |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Emit debug info for byval parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102486 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
28ff35d030e2f49ff4e4b1544c015ebe011a530b |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Emit debug info for byval parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102486 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
027b93645e161c2c511ea19f2c3c417870eeade5 |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
further simplify EmitAlignment by eliminating the ForcedAlignBits argument, tweaking the single client of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a7b611c10d0e5fef5870d854518e639ce3d3c6be |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
further simplify EmitAlignment by eliminating the ForcedAlignBits argument, tweaking the single client of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9e7e33eb013fcec81386063f12a329c1724df680 |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove a dead argument to EmitAlignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
755824756ccdc8f7b1c6f85efffdffb526461cc4 |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove a dead argument to EmitAlignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7101e23fe14d55b7b9059fbe3a9e9f9525492c87 |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some default arguments to EmitAlignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102482 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
059ea138a6e4180de0d70390f7147dac66614517 |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some default arguments to EmitAlignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102482 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
7e62539fafefac54ad61e8fbf4eef36ed97f8de3 |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102481 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a43098d388131dd0757aa72fd0e7db3587293906 |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102481 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
becba8133e604550965ecff83231f526bdbce87e |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Use isReg(), isImm() and isFPImm(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
97303ee27d3985363987ccdd04a8147713462308 |
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Use isReg(), isImm() and isFPImm(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
480c5d74958e87a8d343a121a623bd40a4650df1 |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Check operand type first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102468 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
dcde3db38eaf6f32f96e5f5373b8b29013d272b3 |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Check operand type first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102468 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7f78e21c44fcdfbe2f95fd3882f9b5a9b938b137 |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Ignore DBG_VALUE instructions that points to undef values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0f9d95254291418a548d1341db540b5d5c11e8f4 |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Ignore DBG_VALUE instructions that points to undef values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGBuilder.cpp
|
3a2a7d379409ccf8f5cefeb23c5c4feaf59652fd |
27-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- When legal, promote a load to zextload rather than ext load. - Catch more further dag combine opportunities as result of operand promotion, e.g. (i32 anyext (i16 trunc (i32 x))) -> (i32 x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ac7eae5b89d82603c4cf315458380c6a401a8fb2 |
27-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- When legal, promote a load to zextload rather than ext load. - Catch more further dag combine opportunities as result of operand promotion, e.g. (i32 anyext (i16 trunc (i32 x))) -> (i32 x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ce7bf01bc7777be166bc3cac7f7c5015410f83ee |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. This patch fixes bug (PR6894) introduced by previous version of this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
eac9c07fde0620a3b19cc923c0e80397530b26b0 |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. This patch fixes bug (PR6894) introduced by previous version of this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
53a0cbf8e9c52c144b25de5a0d81b5b237c4abbc |
27-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not count kill, implicit_def instructions as printed instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102453 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ed33b13a10258fe1589bf6a76d6d65ec33823076 |
27-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not count kill, implicit_def instructions as printed instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102453 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0631a92272bef91243ddfe9cc5fa0ca41360c98f |
27-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
round zero-byte .zerofill directives up to 1 byte. This should fix some "g++.dg-struct-layout-1" failures, rdar://7886017 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4c4d0c0cc582a61d9e7f58594c71540aaa56b280 |
27-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
round zero-byte .zerofill directives up to 1 byte. This should fix some "g++.dg-struct-layout-1" failures, rdar://7886017 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
13a9c28ea720bba420231537abbd3e4574d8fb2b |
27-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Revert a small part of 102372; this fixes at least one of the dbg testsuite regressions. I don't think this is really the right fix; this change exposed an existing problem upstream somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fc0b860bcc886844cf80d31ef717e665dbbae0bd |
27-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Revert a small part of 102372; this fixes at least one of the dbg testsuite regressions. I don't think this is really the right fix; this change exposed an existing problem upstream somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
451ff1faa2ad731b04aea2b988f364eb1fad4dcf |
27-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment in verbose-asm mode indicating why a noop is being generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102401 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d61647d306bc297603c607411b2777b217cd65b6 |
27-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment in verbose-asm mode indicating why a noop is being generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102401 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a408333857f9fc404c69a4954590c348caef9e0d |
27-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
on darwin empty functions need to codegen into something of non-zero length, otherwise labels get incorrectly merged. We handled this by emitting a ".byte 0", but this isn't correct on thumb/arm targets where the text segment needs to be a multiple of 2/4 bytes. Handle this by emitting a noop. This is more gross than it should be because arm/ppc are not fully mc'ized yet. This fixes rdar://7908505 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ee9eb411fffddbb8fe70418c05946a131889b487 |
27-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
on darwin empty functions need to codegen into something of non-zero length, otherwise labels get incorrectly merged. We handled this by emitting a ".byte 0", but this isn't correct on thumb/arm targets where the text segment needs to be a multiple of 2/4 bytes. Handle this by emitting a noop. This is more gross than it should be because arm/ppc are not fully mc'ized yet. This fixes rdar://7908505 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1f5a127b1d0c26ed15d6d6301a5a6c3cc1d3c333 |
27-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Avoid adding a null MD node operand, which crashes with "-debug" when trying to print the operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
cc7354e9936595fd2654e1690310fcdc5ef10971 |
27-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Avoid adding a null MD node operand, which crashes with "-debug" when trying to print the operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
325691a9830284f14c9832e888e4d1979e05dd7f |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Use DW_AT_entry_pc instead of DW_AT_low_pc/DW_AT_high_pc pair. This simplifies debug range entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102394 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5098da0a7e3fb841f71bf5be9211b36fa95f140f |
27-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Use DW_AT_entry_pc instead of DW_AT_low_pc/DW_AT_high_pc pair. This simplifies debug range entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102394 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
30af6cb62139f95ec241fcea89523fe504b0d312 |
26-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Remove crufty comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
925965e6ba8013fcc25be2df0117d63319b4bce7 |
26-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Remove crufty comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f600a3dc179e28b00a08506e27f860bd8e824a32 |
26-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Add DBG_VALUE handling for byval parameters; this produces a comment on targets that support it, but the Dwarf writer is not hooked up yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
fdb42fa5fe794cc2c89e2ed7f57a89ed24d9952a |
26-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Add DBG_VALUE handling for byval parameters; this produces a comment on targets that support it, but the Dwarf writer is not hooked up yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
f734f3770ccecf3696a51bef51941cee318e8986 |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Insert dbg_value instructions for function entry block liveins (i.e. function arguments). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102368 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
f48023b3cf80f3a360cfef94b1e0d0084fd5d760 |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Insert dbg_value instructions for function entry block liveins (i.e. function arguments). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102368 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
5e94a08f3ca2123d63bd7c72561702f1f188b5de |
26-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6921 a different way. Intead of increasing the alignment of globals with a specified alignment, we fix common variables to obey their alignment. Add a comment explaining why this behavior is important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
567dd1f5d0ae454e7c51ef070bbb8d31a43ed4bc |
26-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6921 a different way. Intead of increasing the alignment of globals with a specified alignment, we fix common variables to obey their alignment. Add a comment explaining why this behavior is important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1073cd074bb3e2c9871f6c255a52282f9445f642 |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable 102323 with fix: do not update dbg_value's with incorrect frame indices when the live interval are being re-materialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102361 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6fa7636e614cbf0a19d374e169791a774281e8d3 |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable 102323 with fix: do not update dbg_value's with incorrect frame indices when the live interval are being re-materialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102361 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3d6eda151c0ae80c195ef6e89f53579be748d4a7 |
26-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Revert r102300/102301, which serious broke objc apps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102359 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f74e25f60c8c63b819ff603cb4c3c18424dc87a7 |
26-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Revert r102300/102301, which serious broke objc apps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102359 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7ec1b701399922fe00266e9f375e64fdb101b1a9 |
26-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Update MachineSSAUpdater with the same changes I made for the IR-level SSAUpdater. I'm going to try to refactor this to share most of the code between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102353 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
211678a0d761942578970fc78a72c56d69ed36db |
26-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Update MachineSSAUpdater with the same changes I made for the IR-level SSAUpdater. I'm going to try to refactor this to share most of the code between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102353 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
bb8107aa09b1f7b43ea073afead7f10e9ac88934 |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Temporary disable spiller modifying dbg_value. It's breaking build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102327 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6cd4b342617f9729101c987739507e8e2527bf0f |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Temporary disable spiller modifying dbg_value. It's breaking build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102327 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
17b0c672b8e2eec92c19b81fa192a5d74ebfdfe0 |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Move TargetLowering::EmitTargetCodeForFrameDebugValue to TargetInstrInfo and rename it to emitFrameIndexDebugValue. - Teach spiller to modify DBG_VALUE instructions to reference spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102323 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
|
962021bc7f6721c20c7dfe8ca809e2d98b1c554a |
26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Move TargetLowering::EmitTargetCodeForFrameDebugValue to TargetInstrInfo and rename it to emitFrameIndexDebugValue. - Teach spiller to modify DBG_VALUE instructions to reference spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102323 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
|
96310c0dd995c16e6fd45e7451c6ec8f88a99a74 |
25-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Stop abusing EmitInstrWithCustomInserter for target-dependent form of DEBUG_VALUE, as it doesn't have reasonable default behavior for unsupported targets. Add a new hook instead. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
f822e733aff93b34e6cd85b2f92d86e71fe67f87 |
25-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Stop abusing EmitInstrWithCustomInserter for target-dependent form of DEBUG_VALUE, as it doesn't have reasonable default behavior for unsupported targets. Add a new hook instead. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
f9265f21edaba93f944a49f3100907ef8c46ad9e |
25-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Add comment re byval args. Doesn't actually work this way yet. xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7dc7840850eb4a61da80c846be85308734a47bf5 |
25-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Add comment re byval args. Doesn't actually work this way yet. xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
43af388111189a0d7bc44272988fb4d08d295f65 |
25-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR6921: globals were not getting correctly rounded up to their preferred alignment unless they were common or some other special case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102300 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
044698b39a5360f6132cdbecf484f78ae76cb6e1 |
25-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR6921: globals were not getting correctly rounded up to their preferred alignment unless they were common or some other special case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102300 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
97fc8fdf4daba72cf80d38efe2bb2a345e51b9cd |
24-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
When a load operand is promoted to an extload, replace other uses with uses of extload result truncated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102236 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
95c57ea1825fedc10dc2a311b0d97105f6e61148 |
24-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
When a load operand is promoted to an extload, replace other uses with uses of extload result truncated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102236 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0b116fb6460ad77f8e9b5719605af6876147ab09 |
24-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Apply a fix for a vector setcc dagcombine from Jan Sjodin. No testcase yet, as the testcase now fails downstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a7bcef1bce8c5b97b748e5cc7d6eca19cbbc2bef |
24-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Apply a fix for a vector setcc dagcombine from Jan Sjodin. No testcase yet, as the testcase now fails downstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1cf9cb5058d8c2846f51fb4eed2ec4550ee51bc4 |
23-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102202 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
caf7740f96cdcd47b7ba7fc660b82e1f664363be |
23-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102202 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
26c78408c25a33a232c062aa9cebc4463b6a5245 |
23-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move FastISel's HandlePHINodesInSuccessorBlocks call down into FastISel itself too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
e8c92dd439581bec7e3516cbdbea74e2e60fe7f0 |
23-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move FastISel's HandlePHINodesInSuccessorBlocks call down into FastISel itself too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
30573dd9c9a10e5587f0c17b775e2be1ccdd871a |
23-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Revert 102135, 102129, 102127, 102106, 102104, 102102, 102012, 102004, because 102004 causes codegen to emit invalid assembly on at least x86_64-unknown-gnu-linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102155 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
314bf7cbbf7e27b47faa4e78d321ea16057ae6a0 |
23-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Revert 102135, 102129, 102127, 102106, 102104, 102102, 102012, 102004, because 102004 causes codegen to emit invalid assembly on at least x86_64-unknown-gnu-linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102155 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a53b98584db262b91e0bc44ae2ba51113c68554a |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102129 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
c04d54527e1d7e8b50cefcde7563bcbc7425e978 |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102129 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
a81e33672bff2d2a45c9b65ac5f6f854aa96b463 |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks down into SelectionDAGBuilder itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
c105a2b5b7d8969e78bd4b203e980dced8a1c689 |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks down into SelectionDAGBuilder itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
bbf90b91a1424e74b007b78316ebc3f5d8a2838b |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Adjust debug range offsets for isWeakForLinker() functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102127 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
18ee3bb0b784d29fdff40301d5691e7e855de547 |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Adjust debug range offsets for isWeakForLinker() functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102127 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c603a5e90a8b769326863a33a7dc1081a2a13a31 |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISel and into SelectionDAGBuilder and FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
f81eca0ab908fdcf98ae0efaa75acccc8ba40dc2 |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISel and into SelectionDAGBuilder and FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
895cf79d141249ede2d7a7fcb42e788fa303fae7 |
22-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- It's not safe to promote rotates (at least not trivially). - Some code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102111 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
07c4e1085d04fa773708d0bd91794d80c426eae6 |
22-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- It's not safe to promote rotates (at least not trivially). - Some code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102111 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b9f9295340d41f66173577be33359b9976636b5a |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3b172f1c018a093d0dae3105324d782103fcda6d |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
174620f9f6fdf56a8319ccf801d617304bef08e1 |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move PHINodesToUpdate out of SelectionDAGBuilder and into FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102109 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
620427d5a165d98d33ad6a5be2d01c3e8525c2f6 |
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move PHINodesToUpdate out of SelectionDAGBuilder and into FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102109 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
292d04453755e1f57c4d591070d8d6b063becc51 |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Rename InsnAfterLabelMap and InsnBeforeLabelMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102106 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f1dabde404d2b2d6b4ca136f418f61f3b470039a |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Rename InsnAfterLabelMap and InsnBeforeLabelMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102106 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1005c8e1ce2cde1625a753fc841e7e866adb66d4 |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Keep track of MCSymbol used to mark beginning of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102104 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3547a88b504a4f322cf3f20e05906e8276ebe6bb |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Keep track of MCSymbol used to mark beginning of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102104 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
297c4312fa33e0474bbe2399f6c27dfda7d2330f |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
At this point Start and End are not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102102 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bc655eaee05689860dd2e8d539e721d678a8e6ab |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
At this point Start and End are not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102102 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
586839019f44df0b0a153d34ecd4f069e53a162e |
22-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run LiveVariables instead of computing liveness locally in -regalloc=fast. This actually makes everything slower, but the plan is to have isel add <kill> flags the way it is already adding <dead> flags. Then LiveVariables can be removed again. When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as fast as -regalloc=local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102034 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
a063e19593800142afaef5389f35605da901b805 |
22-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run LiveVariables instead of computing liveness locally in -regalloc=fast. This actually makes everything slower, but the plan is to have isel add <kill> flags the way it is already adding <dead> flags. Then LiveVariables can be removed again. When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as fast as -regalloc=local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102034 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocFast.cpp
|
ef6da7e4aec7f920a7ed987932929434676e1a02 |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not try to optimize a copy that has already been marked for deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102027 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e3dd8550c6c65d02b067ec96ac12a560dabd4452 |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not try to optimize a copy that has already been marked for deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102027 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
58e58f65efd7058a0863b0ee98db135a615c2371 |
21-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add command line option to disable debug info printing in .s file. This option does not impact debug info generation and preservation through earlier compile starges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102012 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
708e474c2ff2922786a9ea6562772d2f271dec28 |
21-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add command line option to disable debug info printing in .s file. This option does not impact debug info generation and preservation through earlier compile starges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102012 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ff2bb6b56699e2f5317064b7dce737e3c866d961 |
21-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add fast register allocator, enabled with -regalloc=fast. So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102006 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocFast.cpp
|
00207237ddfffe93b275914d086a0c7da1bbf63b |
21-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add fast register allocator, enabled with -regalloc=fast. So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102006 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocFast.cpp
|
ec3b2a4950a9a8d2cba9b48e0fb256968797085f |
21-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9cdb4109d5fbbff3b881d3288a6ec518abc7712e |
21-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8898906b56e8cd9ef4cbe04e36f8e9467bd59692 |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Implement -disable-non-leaf-fp-elim which disable frame pointer elimination optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101984 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e566763b1915c7a4821ce95937b763724d271fec |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Implement -disable-non-leaf-fp-elim which disable frame pointer elimination optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101984 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b9305c0abac4003f96cbc46c2548211f294fd2ff |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers on TargetMachine and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f0757b0edc1ef3d1998485d3f74cadaa3f7180a0 |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers on TargetMachine and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
371e43f8f295d5154c67e2ec1a8e3b5b40d10891 |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Update CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101976 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
af5097537c4599096d3f4b98a9fcff07c622d7f2 |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Update CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101976 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
db189c22c8bf5193452582d2a1913b18531ed831 |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move several SelectionDAG-independent utility functions out of the SelectionDAG directory and into a new Analysis.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101975 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
|
5eb6d65a27fd77a0bf10bd49f5cccb9f1796d98b |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move several SelectionDAG-independent utility functions out of the SelectionDAG directory and into a new Analysis.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101975 91177308-0d34-0410-b5e6-96231b3b80d8
nalysis.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
|
f0e104f3e09697030c1ef37b077aa286afe73ef6 |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Clean up some crappy code which deals with coalescing of copies which look at extract_subreg / insert_subreg, etc. - Add support for more aggressive insert_subreg coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101971 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
30fdb5c2ac35b8af818ee62bfd184357f20eca34 |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Clean up some crappy code which deals with coalescing of copies which look at extract_subreg / insert_subreg, etc. - Add support for more aggressive insert_subreg coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101971 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
b1bfff9b2abc4be11ac499f29e79a78e27e9ba25 |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite machine cse to avoid recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101964 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
311569861162c12b78b6c445793d4074aa4e4512 |
21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite machine cse to avoid recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101964 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
a51d382b60efe52265502a72967ea32d5d1c7492 |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add another variant of this test which found a place where CodeGen's ComputeMaskedBits was being over-conservative when computing bits for an ADD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bc7588eb6882466fe3cd2e36bfb3d01e4ce23faa |
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add another variant of this test which found a place where CodeGen's ComputeMaskedBits was being over-conservative when computing bits for an ADD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9413edc0257abc50efe873d949163718a0a3832c |
21-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Because of the EMMS problem, right now we have to support user-defined operations that use MMX register types, but the compiler shouldn't generate them on its own. This adds a Synthesizable abstraction to represent this, and changes the vector widening computation so it won't produce MMX types. (The motivation is to remove noise from the ABI compatibility part of the gcc test suite, which has some breakage right now.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7609017dc3112337c3098e7d04dcd437549f8b14 |
21-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Because of the EMMS problem, right now we have to support user-defined operations that use MMX register types, but the compiler shouldn't generate them on its own. This adds a Synthesizable abstraction to represent this, and changes the vector widening computation so it won't produce MMX types. (The motivation is to remove noise from the ABI compatibility part of the gcc test suite, which has some breakage right now.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
354909d99898c56df5f930b1f3352979d66cfea3 |
20-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When MachineLICM is hoisting a physical register after regalloc, make sure the register is not killed in the loop. This fixes 188.ammp on ARM where the post-ra scheduler would grab a register that looked available but wasn't. A testcase would be huge and fragile, sorry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101930 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9196ab640559ca473931b1ad74b90bbed516272f |
20-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When MachineLICM is hoisting a physical register after regalloc, make sure the register is not killed in the loop. This fixes 188.ammp on ARM where the post-ra scheduler would grab a register that looked available but wasn't. A testcase would be huge and fragile, sorry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101930 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d133dfff23ca39e3ea76cb38ff0675a61b9d7ac0 |
20-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101914 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
d6060a4ce94424e0fd7b926d7cb41799b6debe4a |
20-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101914 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
648a9b2b40f51f9064a92db47a6c92f6412fceb5 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink the CopyToExportRegsIfNeeded calls out of SelectionDAGISel into SelectionDAGBuilder. This avoids a separate pass over the instructions, and has the side effect of providing debug location information to the copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101906 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
92884f7ee54186b136a1ade7fa0194097f225c81 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink the CopyToExportRegsIfNeeded calls out of SelectionDAGISel into SelectionDAGBuilder. This avoids a separate pass over the instructions, and has the side effect of providing debug location information to the copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101906 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
a334412b0dbab13c2f8148293a4b9ddcb40044d4 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Don't send PHI nodes down to SelectionDAGBuilder of FastISel, since they end up doing nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
ba5be5c07bb19dcf484e3aa40cd139dd07c10407 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Don't send PHI nodes down to SelectionDAGBuilder of FastISel, since they end up doing nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
8911d2138ed1bcf9878293606c2f566e1e33f0ee |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink this use_empty() check into isUsedOutsideOfDefiningBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101902 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
d84e806dd4b03fa711ae2665ac1acef646f16c5c |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink this use_empty() check into isUsedOutsideOfDefiningBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101902 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
dea0ab09fecb6b7c8a105ba528b489d6d7979732 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
If a PHI node somehow has debug info, propogate it to the MachineInstr PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
c025c853522feef9e8350c52b9013e5bf178dec3 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
If a PHI node somehow has debug info, propogate it to the MachineInstr PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
2fad02dcd29f9da8769c945da3cec7abcfa7a17a |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Don't iterate through the whole block just to find the PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
3f1403f14e45a862ff97c14d80a1daf28518722a |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Don't iterate through the whole block just to find the PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
bf96362ab8192e400753e35b7e687e3fb70fc1be |
20-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
use abstract accessors to CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101899 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
a9b2313c13a1bc8cbae751da03a9049ecaf0f918 |
20-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
use abstract accessors to CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101899 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
e36440acd3987b39076da145b268aac592ca5ccb |
20-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Bill's change in r95336 broke empty aggregates embedded in other types. fix this by only bumping zero-byte globals up to a single byte if the *entire global* is zero size, fixing PR6340. This also fixes empty arrays etc to be handled correctly, and only does this on subsection-via-symbols targets (aka darwin) which is the only place where this matters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101879 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
44e05080f828e80e262fc00cc1fa48a8a37b7f3e |
20-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Bill's change in r95336 broke empty aggregates embedded in other types. fix this by only bumping zero-byte globals up to a single byte if the *entire global* is zero size, fixing PR6340. This also fixes empty arrays etc to be handled correctly, and only does this on subsection-via-symbols targets (aka darwin) which is the only place where this matters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101879 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3799fdc10724d4bcbd88b186e49dcb695ace4adf |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete a redundant return statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
8b1dbebc1e783fde62d01608d5f3a436c5a1a737 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete a redundant return statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
dfbd6e1d86989c35dccac586c556fbb0404b8963 |
20-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
The visitXOR method can return the same SDNode. If so, we don't want to delete it as it's not dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101855 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
86c5abb4c0edfffdd24729e142a62b9b949f025d |
20-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
The visitXOR method can return the same SDNode. If so, we don't want to delete it as it's not dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101855 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
752cd58fa3bd2180cbc5d741ec8a95367bfe43be |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove this debug output; it isn't that useful, and it's incomplete in the case where a basic block is split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a9056dbec17fe2d83d61b934ccb3f8088eca5d08 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove this debug output; it isn't that useful, and it's incomplete in the case where a basic block is split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
550184afe7e057c65a8d498c81b629cca7def656 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink DebugLoc handling out of SelectionDAGISel into FastISel and SelectionDAGBuilder, where it doesn't have to be as complicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101848 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
8ba3aa7f9c5048c31172788f98ad2b90ffad565a |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink DebugLoc handling out of SelectionDAGISel into FastISel and SelectionDAGBuilder, where it doesn't have to be as complicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101848 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
d0e9b6728ee42919652fd1fe450f2c73ebe0ea79 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove MachineFunction's DefaultDebugLoc member, and make DwarfDebug.cpp responsible for figuring out what that's supposed to be on its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101844 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGISel.cpp
|
084751cd16c3b8017b5a237bd2575b65a6543f79 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove MachineFunction's DefaultDebugLoc member, and make DwarfDebug.cpp responsible for figuring out what that's supposed to be on its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101844 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/SelectionDAGISel.cpp
|
0f8f498760c8743fcc0a7a6165558a0a8b11b698 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the removal of SelectionDAGISel's BB, with a fix for the case where multiple blocks are emitted; functions which do this need to return the new BB so that their callers can stay current. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a9a3321938aac13477bdc53af0018bce88b45d78 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the removal of SelectionDAGISel's BB, with a fix for the case where multiple blocks are emitted; functions which do this need to return the new BB so that their callers can stay current. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4991063c792ad7bfa20d3660ff76678da4fdde20 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Revert 101825, which is causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
68b7960c1a09b047dbac8eab185d2ca0dd7a2134 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Revert 101825, which is causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fa0ccf5802433e433f39167caf3d1e1732d388c3 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Make BreakAntiDependencies' SUnits argument const, and make the Begin and End arguments by-value rather than by-reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101830 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
66db3a0f10e96ae190c8a46a1a8d5242928d068c |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Make BreakAntiDependencies' SUnits argument const, and make the Begin and End arguments by-value rather than by-reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101830 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
4d7bf110597da67d71ae81903d7a262dddda0faf |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate SelectionDAGISel's "current block" member. Just pass it as an argument to things that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101825 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
35bb85b7ee108a265a20686e97d1b011f4ab5ce9 |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate SelectionDAGISel's "current block" member. Just pass it as an argument to things that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101825 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
49e2c678a41530c1a2af5d78b9c3bf2d8e436b8f |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the CurMBB member from SelectionDAGBuilder. For places that need it, just pass around the parent block of the current instruction explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
99be8ae3898d87373ef0c8f1159b287e28a8d81b |
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the CurMBB member from SelectionDAGBuilder. For places that need it, just pass around the parent block of the current instruction explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
1f79d43e4bf4e29624c784835968099ecd439296 |
19-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More progress on promoting i16 operations to i32 for x86. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4c26e93e895bfd72a66076de22a216316115f531 |
19-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More progress on promoting i16 operations to i32 for x86. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
96e471458768f250d37913a720ebb74f4177f218 |
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Give SelectionDAG a TargetMachine too, rather than having it fetch one from the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
50d2b1ac029d63500ea9b9347561b1454fa6ed6a |
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Give SelectionDAG a TargetMachine too, rather than having it fetch one from the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
71c7dc15e8a5dc493183770aa87a4e385ba68408 |
19-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
285fb1cc4a7ea924b4d94e9c2cb890125d56a7e0 |
19-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
9147417b152d607a6c4cef89f239044f46e33610 |
19-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add DW_AT_APPLE_omit_frame_ptr to encode -fomit-frame-pointer flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101805 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2a4a3b7c6180202d24aff5b1992067907aefcab6 |
19-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add DW_AT_APPLE_omit_frame_ptr to encode -fomit-frame-pointer flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101805 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
60257f555b0a59ac0f04198236878cb24f113fdc |
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Code that needs a TargetMachine should have access to one directly, rather than just getting one through a TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101802 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
55e59c186303ff02c0be7429da3b1b36c347f164 |
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Code that needs a TargetMachine should have access to one directly, rather than just getting one through a TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101802 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
46086310d44e564e5a025bd9a80cdec4eb053d1e |
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move isInTailCallPosition out of SelectionDAGBuilder, as it isn't SelectionDAG-specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
|
46007b3712290c09d895f4bd245ac852f412556c |
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move isInTailCallPosition out of SelectionDAGBuilder, as it isn't SelectionDAG-specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
|
2491664d4979d33da2b90fc471cab2287c863e59 |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101655 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
3fb150a9024a38872ec4abbc3300e08a8bfc1812 |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101655 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
443093da0797ffc3b48ef30121243d1a700e63df |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to TargetLoweringObjectFile usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101640 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0d805c33d134d88169e3dc4a3272cff9a5713ce7 |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to TargetLoweringObjectFile usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101640 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8db6249bf8e3ee5dcea276ec29a24835125e8538 |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use const_cast instead of a C-style cast to cast away const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101639 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
82d5eaf23e9588e47c18ce63acb6a5d35d67490a |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use const_cast instead of a C-style cast to cast away const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101639 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f03f02354f27ab9ec96cb6c4bba753e1edcf768b |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Start function numbering at 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101638 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
9f23dee08c7052af2c4baae3e2b06518896742eb |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Start function numbering at 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101638 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
32ce037e2a83aa4761ebf33ce5b40548f98032ec |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete now-unnecessary const_casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101637 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
383b5f6b91914454a9a8a6d829b4eeb714c75113 |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete now-unnecessary const_casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101637 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
dbb121b1f19bf77e0bef8725d5ee42c1b8761caf |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use const qualifiers with TargetLowering. This eliminates several const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
d858e90f039f5fcdc2fa93035e911a5a9505cc50 |
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use const qualifiers with TargetLowering. This eliminates several const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
7e116d468e600c91a625df282bb9ad162915abbc |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Postra machine licm must add registers defined by loop invariants to *all* of the live-in sets of BBs in the loop. Otherwise later pass may end up using the registers and override the invariant. rdar://7852937 No reasonablly sized test case possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101626 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
94d1d9c2190b93feeb01934dbf1f2b828ceb82dc |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Postra machine licm must add registers defined by loop invariants to *all* of the live-in sets of BBs in the loop. Otherwise later pass may end up using the registers and override the invariant. rdar://7852937 No reasonablly sized test case possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101626 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
0173c089ff006c5938c0a3d0a9b1902d2950c092 |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix codegen passes. -disable-ssc shouldn't disable postra machine licm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101622 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f2b910922d80b254a06a62e350b1b6ae15f390b5 |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix codegen passes. -disable-ssc shouldn't disable postra machine licm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101622 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
3cbcbbb034222376591cff2913ba8d4d67f3d48e |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More work to allow dag combiner to promote 16-bit ops to 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
e5b51ac7708402473f0a558f4aac74fab63d4f7e |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More work to allow dag combiner to promote 16-bit ops to 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
3cbdec6dedc906ff84cedfa4fe96e11b9a786c0b |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Another 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
4ff28527bb8e5ed4ae4b65f0fa6967eb79a05d4c |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Another 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
f4a83a31319b6f4b1849f33668ae09407a469dc5 |
17-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
As a temporary workaround for post-RA not handling DebugValue instructions, just remove them all. Radar 7873207 (working around the root problem of Radar 7759363). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101604 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
8295d4c96c8530acb7ae0098d813b53dc4fe0a89 |
17-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
As a temporary workaround for post-RA not handling DebugValue instructions, just remove them all. Radar 7873207 (working around the root problem of Radar 7759363). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101604 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
451f8eccb47a6ecc5a5fa188b9d0e937e245b5e1 |
17-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Use a simpler data structure to calculate the least recently used register in RegAllocLocal." This reverts commit 101392. It broke a buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101595 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
23eaf26fa3510526b11230c76ea39221277dd2ea |
17-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Use a simpler data structure to calculate the least recently used register in RegAllocLocal." This reverts commit 101392. It broke a buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101595 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
fbf918ba42cda25ba57d28eecd0aee89a83a1ecc |
17-Apr-2010 |
Eric Christopher <echristo@apple.com> |
Revert 101465, it broke internal OpenGL testing. Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
551754c4958086cc6910da7c950f2875e212f5cf |
17-Apr-2010 |
Eric Christopher <echristo@apple.com> |
Revert 101465, it broke internal OpenGL testing. Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
146c6f7e026d4c91ed4fb030660f5af245ee03c6 |
17-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add support to emit dwarf ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101575 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f2548caaa8b290aa598bf49c27dff72f7751ba5c |
17-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add support to emit dwarf ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101575 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2de80f5ba1a0c9fbee00823791430ee80c46a13a |
17-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a simpler data structure to calculate the least recently used register in RegAllocLocal. This makes the local register allocator about 20% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101574 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
cf7fbd41be73c2738ee07fded656d23f798976df |
17-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a simpler data structure to calculate the least recently used register in RegAllocLocal. This makes the local register allocator about 20% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101574 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a475cffeb463990d6e0c7eca6460da78428c233c |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
(i32 sext_in_reg (i32 aext (i16 x)), i16) -> (i32 sext x). No known test case until -promote-16bit is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
003d7c4b5d639fcb0231604fe21339dd7071f418 |
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
(i32 sext_in_reg (i32 aext (i16 x)), i16) -> (i32 sext x). No known test case until -promote-16bit is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fe8017b12f996ebfdc9ef29dd936e607bd4812db |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Create a new TargetSelectionDAGInfo class. This will eventually acquire SelectionDAG-specific parts of TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/TargetSelectionDAGInfo.cpp
|
8c0e89925d6b76b7671fe904a97c618d155dea42 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Create a new TargetSelectionDAGInfo class. This will eventually acquire SelectionDAG-specific parts of TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/TargetSelectionDAGInfo.cpp
|
5002ea3266303651474a1a3034f55e71e79dc869 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Commit this, which should have accompanied 101531. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4bcf0a9233e334532d86111829375f73776984ad |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Commit this, which should have accompanied 101531. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4b380387d14ecc0ef71c64555d0ab3e7e3bff6b3 |
16-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
53f6ed9560aa4586ba217fbf94acbfada52f561f |
16-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
8028064fa56a65bd94ba104ee4a173c1256e9800 |
16-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101500 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
182465c589f95ff165331d06035ec53ff05bf1f5 |
16-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101500 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
0d3e7be65f6ad6ec6c49fb8f99f88d0c0dd82b66 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Avoid creating virtual registers for unused values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
33b7a291aa1bd477bc09e3ef5fccb76249502a5e |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Avoid creating virtual registers for unused values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
2008c183b287fe50d9252eba6d3eb179d3aa77b3 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix an assertion string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ac7d05c4bfbd988a08e9cd8ac817be7b22cd9953 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix an assertion string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
25a14aa84b7d02b310abf7eb5e34b5bcf079f0b2 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a44e522b7df67e4a895850b6813e980c3321fb78 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b86413602e2d1d0d510016044092949168ac4d3f |
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101434 with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
4ec2258ffb495d7ce00177e447740ef1123a27db |
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101434 with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
d3bb92c70ca1917ac73529da0f7091fddde71d8f |
16-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
The JIT calls TidyLandingPads to tidy up the landing pads. However, because the JIT doesn't use the MC back-end asm printer to emit labels that it uses, the section for the MCSymbol is never set. And thus the MCSymbol for the EH label isn't marked as "defined". Because of that, TidyLandingPads removes the needed landing pads from the JIT output. This breaks EH for every JIT program. This is a work-around for this limitation. We pass in the label locations map. If the label has a non-zero value, then it was "emitted" by the JIT and TidyLandingPads shouldn't remove that label. A nicer solution would be to mark the MCSymbol as "used" by the JIT and not rely upon the section being set to determine if it's defined or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101453 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
47639fc5be0b8f4873d076a9ed24b9a3c0682b15 |
16-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
The JIT calls TidyLandingPads to tidy up the landing pads. However, because the JIT doesn't use the MC back-end asm printer to emit labels that it uses, the section for the MCSymbol is never set. And thus the MCSymbol for the EH label isn't marked as "defined". Because of that, TidyLandingPads removes the needed landing pads from the JIT output. This breaks EH for every JIT program. This is a work-around for this limitation. We pass in the label locations map. If the label has a non-zero value, then it was "emitted" by the JIT and TidyLandingPads shouldn't remove that label. A nicer solution would be to mark the MCSymbol as "used" by the JIT and not rely upon the section being set to determine if it's defined or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101453 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
c4f94dae2a4060c4c9d86f0f10a95df9eff3979d |
16-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Adding support for dag combiner to promote operations for profit. This requires target specific queries. For example, x86 should promote i16 to i32 when it does not impact load folding. x86 support is off by default. It can be enabled with -promote-16bit. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101448 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
64b7bf71e84094193b40ab81aa7dacad921ecbea |
16-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Adding support for dag combiner to promote operations for profit. This requires target specific queries. For example, x86 should promote i16 to i32 when it does not impact load folding. x86 support is off by default. It can be enabled with -promote-16bit. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101448 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
28efe60cc84a70c449e296b4f47a19bb0a748a51 |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Refine further the scope where the global DebugLoc value is active. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f89d1dc9b77ee006324653f70496d29ac3d3bc6c |
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Refine further the scope where the global DebugLoc value is active. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ab05d8fcf61f7b926cf3e08f111794c69ca60690 |
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101423 and r101397, they break llvm-gcc self-host on darwin10 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
607a7ab3da72a2eb53553a520507cbb8068dd1d8 |
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101423 and r101397, they break llvm-gcc self-host on darwin10 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
700380b1058c3a8aa8d9d3374c2ba574fb4d3b31 |
16-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid sinking machine instructions into a loop. MachineLoopInfo is already available when MachineSinking runs, so the check is free. There is no test case because it would require a critical edge into a loop, and CodeGenPrepare splits those. This check is just to be extra careful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101420 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
626f3d7a57f4f2a46880331fdacce259195213ef |
16-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid sinking machine instructions into a loop. MachineLoopInfo is already available when MachineSinking runs, so the check is free. There is no test case because it would require a critical edge into a loop, and CodeGenPrepare splits those. This check is just to be extra careful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101420 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
763153ef8466ad11db0c5bb55647483cc5d69a2a |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101364, which has been backed out in r101368 with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
2ff961f66816daab8bbc58a19025161d969821c2 |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101364, which has been backed out in r101368 with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
0557b4be5f010f72d5320c702b076bd346a62adc |
15-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6847. RegScavenger should ignore DebugValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101392 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
5ef9d76f6f1afe5a07a9cffe7ce5780d07a25d9c |
15-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6847. RegScavenger should ignore DebugValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101392 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e6a7015ae97dd479c112bb8d55192975a02e3224 |
15-Apr-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Make sure the initialization of a GC root is after its definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101388 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
8538f0496a2dea177f9face5e04294f11927f51b |
15-Apr-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Make sure the initialization of a GC root is after its definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101388 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
d7ab3f3ef255b54e638fff22ef6c6e448604f369 |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
prune includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101385 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
8cf16167a057f817c8947da8c82e904186613200 |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
prune includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101385 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
738422fa501a08e58d1d55ebebdf0ca499059d72 |
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of namespace polution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101376 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
achineVerifier.cpp
electionDAG/SelectionDAGISel.cpp
|
b35798347ea87b8b6d36155b211016a7769f01ab |
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of namespace polution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101376 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
achineVerifier.cpp
electionDAG/SelectionDAGISel.cpp
|
49e2f0a6af50aaffef3bfff2386436cda211a55b |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101371 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
3181c505348bbfb28623b5fbb8bbb166814545e7 |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101371 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
52f155ee5d607b3773c2bc19fa688758f8887e35 |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101364, as it trips the linux nightlybot on some clang C++ tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
9ee17208115482441953127615231c59a2f4d052 |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101364, as it trips the linux nightlybot on some clang C++ tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
d46fdb45387f46beeadc04472b3a66ad1da3aca1 |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
165dac08d1bb8428b32a5f39cdd3dbee2888987f |
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
CStrategy.cpp
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
f22ee1aa7f6fb51f3123055f81fdc0c21630b5eb |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
enhance the load/store narrowing optimization to handle a tokenfactor in between the load/store. This allows us to optimize test7 into: _test7: ## @test7 ## BB#0: ## %entry movl (%rdx), %eax ## kill: SIL<def> ESI<kill> movb %sil, 5(%rdi) ret instead of: _test7: ## @test7 ## BB#0: ## %entry movl 4(%esp), %ecx movl $-65281, %eax ## imm = 0xFFFFFFFFFFFF00FF andl 4(%ecx), %eax movzbl 8(%esp), %edx shll $8, %edx addl %eax, %edx movl 12(%esp), %eax movl (%eax), %eax movl %edx, 4(%ecx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e6987587d62bb4de0f57e103f677f6bfb43a09f3 |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
enhance the load/store narrowing optimization to handle a tokenfactor in between the load/store. This allows us to optimize test7 into: _test7: ## @test7 ## BB#0: ## %entry movl (%rdx), %eax ## kill: SIL<def> ESI<kill> movb %sil, 5(%rdi) ret instead of: _test7: ## @test7 ## BB#0: ## %entry movl 4(%esp), %ecx movl $-65281, %eax ## imm = 0xFFFFFFFFFFFF00FF andl 4(%ecx), %eax movzbl 8(%esp), %edx shll $8, %edx addl %eax, %edx movl 12(%esp), %eax movl (%eax), %eax movl %edx, 4(%ecx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
01f604a270eb7519eae006f3c6491bef6f9f8a8f |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
teach codegen to turn trunc(zextload) into load when possible. This doesn't occur much at all, it only seems to formed in the case when the trunc optimization kicks in due to phase ordering. In that case it is saves a few bytes on x86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6dc868581b20380802e6a011de8dd9766790cf7a |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
teach codegen to turn trunc(zextload) into load when possible. This doesn't occur much at all, it only seems to formed in the case when the trunc optimization kicks in due to phase ordering. In that case it is saves a few bytes on x86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
828c441a908fce30c16921936fcab5a9c063ea69 |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a simple dag combine to replace trivial shl+lshr with and. This happens with the store->load narrowing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
efcddc33256512a08d7182783e2262da27f27cdd |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a simple dag combine to replace trivial shl+lshr with and. This happens with the store->load narrowing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b7920f1c4e1cb2aeb06740780c1f7a23fdb8f505 |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Implement rdar://7860110 (also in target/readme.txt) narrowing a load/or/and/store sequence into a narrower store when it is safe. Daniel tells me that clang will start producing this sort of thing with bitfields, and this does trigger a few dozen times on 176.gcc produced by llvm-gcc even now. This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll into: movl %eax, 36(%rdi) instead of: movl $4294967295, %eax ## imm = 0xFFFFFFFF andq 32(%rdi), %rax shlq $32, %rcx addq %rax, %rcx movq %rcx, 32(%rdi) and each of the testcases into a single store. Each of them used to compile into craziness like this: _test4: movl $65535, %eax ## imm = 0xFFFF andl (%rdi), %eax shll $16, %esi addl %eax, %esi movl %esi, (%rdi) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101343 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2392ae7d7344674dc3d946e324342515f4771b90 |
15-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Implement rdar://7860110 (also in target/readme.txt) narrowing a load/or/and/store sequence into a narrower store when it is safe. Daniel tells me that clang will start producing this sort of thing with bitfields, and this does trigger a few dozen times on 176.gcc produced by llvm-gcc even now. This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll into: movl %eax, 36(%rdi) instead of: movl $4294967295, %eax ## imm = 0xFFFFFFFF andq 32(%rdi), %rax shlq $32, %rcx addq %rax, %rcx movq %rcx, 32(%rdi) and each of the testcases into a single store. Each of them used to compile into craziness like this: _test4: movl $65535, %eax ## imm = 0xFFFF andl (%rdi), %eax shll $16, %esi addl %eax, %esi movl %esi, (%rdi) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101343 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1eb7a9cc529c07b6dba2a2c205ef3a9b055e1b15 |
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers for LLVM IR pointers in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101342 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
achineFunction.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
ae541aad5c36cb3e4256514447d1f81e253079c7 |
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers for LLVM IR pointers in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101342 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
achineFunction.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
36c56d0353f1a9c4e878f509aff85a62e5087dd4 |
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to CodeGen's use of LLVM IR constructs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
ntrinsicLowering.cpp
achineFunction.cpp
achineModuleInfo.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
46510a73e977273ec67747eb34cbdb43f815e451 |
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to CodeGen's use of LLVM IR constructs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
ntrinsicLowering.cpp
achineFunction.cpp
achineModuleInfo.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SDNodeDbgValue.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
a0d172caced780efbecdb003f5cbb6607078b72b |
15-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More 80 violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
adf979900c84d00e1fe0872a68d2819c654b6f29 |
15-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More 80 violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
9a9a23034d8b32b9b210222243bf6f17a5eaeea5 |
15-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
22d286b218f3267d57c507678b1af0fccc3a5df0 |
15-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
d4524b516e318111677341299007bd48bd8ac44c |
15-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101317 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
f8a2e01fc7b1c08f14c08a0562e501f5043ac699 |
15-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101317 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
aed7b39ecc2701ccebff0bf01ee158064d7b6323 |
15-Apr-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to track compile unit offsets if there is only one compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101315 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d33402629e7d2758bf0b04d9c2bde74d5fc57363 |
15-Apr-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to track compile unit offsets if there is only one compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101315 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c446f6e2191a8cf0d494fb875538ac93c22d06db |
15-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101314 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
7a996b2b05c82e7a503bed5e5210f3b43f19325f |
15-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101314 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
c5a13c6844bf9a0e20e019e6b2a3c3ecd669c45a |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete unneeeded arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101276 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6465265ae1b9d2d9ffb6cfcebf4b46ad97914aa7 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete unneeeded arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101276 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
cec4f389ab60e95e328bec6bafab03f2752db9e7 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete unused arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101275 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6a732b5a669c85505a5785ee7ccb72eb9d1a4e6d |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete unused arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101275 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
68cd2d98006541f382b71db28dcf15c2a49c903d |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Factor out EH landing pad code into a separate function, and constify a bunch of stuff to support it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGISel.cpp
|
2520864773dcb73d76d297605f4bc41c0cf3fa39 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Factor out EH landing pad code into a separate function, and constify a bunch of stuff to support it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGISel.cpp
|
d822b79314cdb86991d08a6616ad272a8fb2d156 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reset the debug location even if the instruction was a terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101272 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7f6b8b8891adedce162ce23f5b540f98af202b22 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reset the debug location even if the instruction was a terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101272 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
118e5b6b2f70ed0ec6787435bf2afba56cabbbc3 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Refine #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101269 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
11609451a5e9921d02dea5f1b6c6cd362a3cd676 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Refine #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101269 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
dd90d696ea50a7192861ddeb7efc7f46691bd503 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Pull utility routines with no SelectionDAG dependence out of SelectionDAGBuilder. FunctionLoweringInfo isn't an ideal place for them to live, but it's better than SelectionDAGBuilder for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101267 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
|
fe85e764736f4d87104f3d1508c173f566c8c461 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Pull utility routines with no SelectionDAG dependence out of SelectionDAGBuilder. FunctionLoweringInfo isn't an ideal place for them to live, but it's better than SelectionDAGBuilder for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101267 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuilder.cpp
|
4e3b4439e2bf6843c945edb45559846c795fb230 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
b02b62a2719bf5cfe12cfc902ab4e85d675450a0 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
40ba3d21580f18bc87f9a784b84b88fc21964b10 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
988099700a68eb7814841d036e03d3275fc2c001 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
ad3f65b502541717f90991f3bcf10adb3e845c94 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c21a2dc8dfc7edd7722a09b61a0afdd3eaaa8637 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7291f03b52404219400f2972b9c37814dcb9f1ce |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Clear the FunctionLoweringInfo object before doing other things that don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5dc44335b19dde981e4ad69ab7a650269460ed3c |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Clear the FunctionLoweringInfo object before doing other things that don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1be5d1ea7a3eaf309cde36d8531078570a1075eb |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move this assert out of SelectionDAGISel into FunctionLoweringInfo, and drop the redundant #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
0e026729aef35523e4f8d6124a569dceb4286bbb |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move this assert out of SelectionDAGISel into FunctionLoweringInfo, and drop the redundant #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
c21e9ba3b53c716218bcfcceb95159bd7d368761 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
046fe6b6ba9851d3b8fed164493a54db3ac107e6 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
df317fed1e01f90c280562e38c1c7cc9401e9585 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for initialing the entry block livein set out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101258 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
b13033f61c897224a0be2784faa721ff294c5254 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for initialing the entry block livein set out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101258 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
8927a372950be8591f298fb9650b2059e0f0a6e8 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reorgnaize this code to be more tidy and readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c0fb65da040668df543db514f05e4be571edf700 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reorgnaize this code to be more tidy and readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2e3cbc9d2a1c43f42103f973f8965c909006d6d4 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
441516fb3def0125765532e4fe1b507cc89998e9 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2b95c891744fc912f93f1972b7e49b9085b64400 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for emitting livein copies out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101254 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
98708260f55cab997a5db77e930a2bd35f4172aa |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for emitting livein copies out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101254 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
ea01bf65af49643fd74b20beacf9bbaaec7afb0f |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink landing-pad marking code out of SelectionDAGISel::runOnMachineFunction into FunctionLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
de4c0a7da7cfa1693ad9e6e09969003b610af08a |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink landing-pad marking code out of SelectionDAGISel::runOnMachineFunction into FunctionLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
732b510ba3d3ca77cc6d958b3f17acee94aa2c62 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
It's not necessary to recompute EB here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101251 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
d0d8275cb264b17bed836ccd35c923476a236426 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
It's not necessary to recompute EB here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101251 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
91bdbdd927fe62cfacff7e2fc0fb08a8cd63e060 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Generalize this code to handle Instructions in addition to ConstantExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
32acbc1e50defdb7e27a4e8274f78988cf302c14 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Generalize this code to handle Instructions in addition to ConstantExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c6bbe1b544cf6f431bef31704c21273879b6f520 |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reorder the methods of this class to be a little more organized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
b4be71e11215c8c02065097cb9b15ed7edbab7eb |
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reorder the methods of this class to be a little more organized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.h
|
acbf666c65b5a60070bf24f9cd6a43771e90e4ee |
14-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Clear MachineInstr->MCSymbol maps at the end of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1d526c38e2d903a6c27bb7b90c8636e7b6600136 |
14-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Clear MachineInstr->MCSymbol maps at the end of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
28076aa3ad2840b6c36dc8964b44e99dc8baf0fe |
14-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fast path implicit_def check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101183 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6327537a377d2b77748270258e99b257bf1723df |
14-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fast path implicit_def check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101183 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
21171c2b4a5b83cecc90821609e6455df730cd65 |
13-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Do not include types without any definition in pubtypes list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101171 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
50d80e394d9612e15d9f84b67ed45f88a7826ea6 |
13-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Do not include types without any definition in pubtypes list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101171 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
51c27a31b7131ccd7a0533b29b16a6ecf3c251aa |
13-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid variable shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101170 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c15d9135a82525d1b1e52fe79c70e782c15e251e |
13-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid variable shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101170 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9642d0f8dac00c01024a72423d33057401878689 |
13-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Expand postra machine licm's capability a little more. If an instruction's register operands are all loop invariants, then it's safe to hoist it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101167 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
aeb2f4aa462949ce067125f2f56dc34df64b25db |
13-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Expand postra machine licm's capability a little more. If an instruction's register operands are all loop invariants, then it's safe to hoist it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101167 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
0e87d418a10f6fe7950788f2bd76da2170bfb496 |
13-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineSinking to handle easy critical edges. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101165 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
8d17160e2cf9a1645b4b06b0cd575aef6195b108 |
13-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineSinking to handle easy critical edges. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101165 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
d828d23a479d462f46cbf3bb635b5670104ffd84 |
13-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach postra machine licm to hoist more obvious invariants, e.g. instructions with no source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101154 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
5dc57ce53329143c2b533882410be80ea5d259a7 |
13-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach postra machine licm to hoist more obvious invariants, e.g. instructions with no source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101154 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
37391a533739b3f8ec0ca56f9ff08a4b8f8485af |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4183e31978146ea529a87a2fc47b96aeb6cbe000 |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1e60b69d6816cb2ab7aaa6524d1b92358200f640 |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate MachineBasicBlock::const_livein_iterator and make MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101147 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineLICM.cpp
achineVerifier.cpp
egisterScavenging.cpp
|
81bf03eb5cd68243eabb52505105aa5f4a831bf3 |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate MachineBasicBlock::const_livein_iterator and make MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101147 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineLICM.cpp
achineVerifier.cpp
egisterScavenging.cpp
|
0df1515be4f0f3c0b5e08cc72d3b343e054c078a |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Rename MachineFrameInfo variables to MFI, for consistency with the rest of CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101146 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
9e9aa44d1a33fb845268ba07b726a31f26195690 |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Rename MachineFrameInfo variables to MFI, for consistency with the rest of CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101146 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c36e945a1d8665b737b30f3b4e83b159b35dcc76 |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move MachineRegisterInfo's isLiveIn and isLiveOut out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101145 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
13e73f483ef2ba630962dad3125393292533b756 |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move MachineRegisterInfo's isLiveIn and isLiveOut out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101145 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
47b0c8788e8787afeadeccdc630ed7f219f7f08c |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete an unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101143 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
5c982949bf87ffda129fb7fe372e414e255f4630 |
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete an unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101143 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
a2a88716eead76b79421200056a3f1b8efe6daef |
13-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add llvm codegen support for -ffunction-sections and -fdata-sections, patch by Sylvere Teissier! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101106 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
43ac721e3b35341e7cf59d5982ad702ca8d27433 |
13-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add llvm codegen support for -ffunction-sections and -fdata-sections, patch by Sylvere Teissier! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101106 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
e7e0c70ff08d130edb3e3d58d0ba6b531bf463f1 |
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101043 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
8b3d6682a45e80d08abf32aa1be0491db1977456 |
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101043 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9cd371f9e8528757a602912938c8c03dda1bcfa0 |
12-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug trivial leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101034 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
678d9b7ed030dd79ed5ac749b0b21b6cb0859cd0 |
12-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug trivial leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101034 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
16e77059ad4eecf63f114e4aa2c808fad3ffb40d |
12-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable post regalloc machine licm by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101023 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
09010a30fdb58426fc06c5c97956db35dcd90979 |
12-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable post regalloc machine licm by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101023 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e0c1c1805e6a7522bcf5ac444078b8b7ff560a2c |
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove unnecessary parens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101010 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
58c2587ed8e2cd0928a959dbb213bdcc028b1213 |
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove unnecessary parens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101010 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7a9a6a77d7d9cd7c257a5fa58898470c4b66a473 |
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Tidy whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100904 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
347fa3fa26592b9792d100f3bf79b0695cf746f0 |
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Tidy whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100904 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
fd0ebd5d0558aca960e1bbbcd93b8198ad8b0fd6 |
09-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Clear InsnsBeginScopeSet and InsnsEndScopeSet at the end of function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100867 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5142471fcd9c8f4f86ad08e87cecdce1700562ba |
09-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Clear InsnsBeginScopeSet and InsnsEndScopeSet at the end of function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100867 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b192ee9607dbe6e60cf5b655428c23371153ea11 |
09-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete this obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100858 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
7d597b4428dcc120b15fcd92b33515108d54e35e |
09-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete this obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100858 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c7b9051c4c815c752d07a5c22612c599df26adeb |
09-Apr-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Add a missing dependency to this library when building with CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100852 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
7b0138ffabb3372e7e67177f26f04f847ac69efc |
09-Apr-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Add a missing dependency to this library when building with CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100852 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
|
00042cf7fc554376486336ec1334192683ed1fa4 |
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Use getNumImplicitDefs() and getNumImplicitUses(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100850 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1793ab9e70c48146a5f1592b84b2b93e38c67fa4 |
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Use getNumImplicitDefs() and getNumImplicitUses(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100850 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
40f908ea1963d86fe11ad57969fe46bcefccd764 |
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100849 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0855cadb00c598d4e78c8f1842a9c1b9bf19c667 |
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100849 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
601b38c57717a77518a10464e32d427f028b0daa |
09-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add variants of ult, ule, etc. which take a uint64_t RHS, for convenience. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e05678132345eb8a632362dbd320ee7d36226e67 |
09-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add variants of ult, ule, etc. which take a uint64_t RHS, for convenience. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
cfe06853d4488b6781a85f36ec2dfb1ecdbc056a |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
delete a forwarding function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100815 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
287df1bc0309962770b6c176f2d143795dd3cc2f |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
delete a forwarding function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100815 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6ef20139861731c45fec88b644d7316e9468a26e |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move elf section uniquing to MCContext. Along the way merge XCore's section into MCSectionELF git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100812 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
74aae4726a66733c5872588287535a984f9a94c7 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move elf section uniquing to MCContext. Along the way merge XCore's section into MCSectionELF git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100812 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
088d71c31dd9c483998972e3a75fa279a06a6e38 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the TargetLoweringObjectFileMachO::getMachoSection api and update clients to use MCContext instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100808 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
22772214de79aa1c5ca38c4fb1da137d8fb30a05 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the TargetLoweringObjectFileMachO::getMachoSection api and update clients to use MCContext instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100808 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
99b2ea9ee739b5109395cabfd6d6a7882c789d5f |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move macho section uniquing from MCParser and TLOF to MCContext where the compiler and asmparser now unique to the same sections. This fixes rdar://7835021. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100807 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
f0559e4b242e85d4b9d1dd08758814c599bdce13 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move macho section uniquing from MCParser and TLOF to MCContext where the compiler and asmparser now unique to the same sections. This fixes rdar://7835021. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100807 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
ff89ca6d52e2769220d819ddc3d655d2e0cdcc0e |
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Coalescer should not delete copy instructions whose defs are partially dead. e.g. %RDI<def,dead> = MOV64rr %RAX<kill>, %EDI<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100804 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
impleRegisterCoalescing.cpp
|
a57fabe815ccf016eead526eb3ef475f116ab155 |
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Coalescer should not delete copy instructions whose defs are partially dead. e.g. %RDI<def,dead> = MOV64rr %RAX<kill>, %EDI<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100804 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
impleRegisterCoalescing.cpp
|
fbdd3aeb585c4eedfac31235313886768ed81558 |
08-Apr-2010 |
Ted Kremenek <kremenek@apple.com> |
Fix -Wsign-compare warning (issued by clang++). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100799 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d0e88f3596fb214fd26bf91c481d87ffe499d992 |
08-Apr-2010 |
Ted Kremenek <kremenek@apple.com> |
Fix -Wsign-compare warning (issued by clang++). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100799 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f63b226c1187a5fa59d30eaf795c6be7f0a8234e |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Rename a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100797 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e37b0c6c25262b6c9ef4f1595b18e77f299b5035 |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Rename a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100797 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
fe5adeb63d07b93aa85df0fc1abd37cadd98be35 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
implicit defs get added to the end of machine instrs sometimes. Scan the whole instruction for the metadata operand instead of assuming it will be at the end of the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100792 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
d0024fec256659b45350387289e5d4520f15dc6d |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
implicit defs get added to the end of machine instrs sometimes. Scan the whole instruction for the metadata operand instead of assuming it will be at the end of the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100792 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
6f878385bdd065b547f9d4feaee948075764cc2f |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
One instruction may start (or end) multiple lexical scopes. There is no need to remember labels identifying regions marked by such instructions in each scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100781 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1c246358a062bc3537c1286c6b9314d56854a257 |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
One instruction may start (or end) multiple lexical scopes. There is no need to remember labels identifying regions marked by such instructions in each scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100781 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2206f66c03b18e56eda96cecd0e4291352e9cf47 |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6a5975f49fc632a2f288b9fb7004fd8ed26713ef |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1c3046ba6b1666c685c9e9c14de41c8b4e6be351 |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Delete out of date comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100769 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6669b81203d3ce6cfa1d505019ee6d64ae9df02c |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Delete out of date comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100769 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0d8f3b716b167352843a8b38045f9298b448e10d |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100768 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6122a4d1c0c73c1d2d5754c50c68d1dc4ae6f70f |
08-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100768 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b8f832d331b5206b235262e4395b969d68cf439c |
08-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use twines to simplify calls to report_fatal_error. For code size and readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100756 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1bd7335a17010bd4d8f86736cf73cac9f3fb80a5 |
08-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use twines to simplify calls to report_fatal_error. For code size and readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100756 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
6371648280456bf7052b8a6f4ee03cfdf2094fe6 |
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid using f64 to lower memcpy from constant string. It's cheaper to use i32 store of immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c3b0c341e731b27b550ee9dcded9c17232b296b8 |
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid using f64 to lower memcpy from constant string. It's cheaper to use i32 store of immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3a10bb0e4f485ff295665f37128a92fa8a5077f3 |
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Make post regalloc machine licm functional. It now passes all of MultiSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100742 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
4038f9c21b17378617c25f3092fe615326f8b874 |
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Make post regalloc machine licm functional. It now passes all of MultiSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100742 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
878bcb1edf2fd25ec5b30b71d66365248fe33e71 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
convert a report_fatal_error that I was able to trigger into a nice error so the user at least knows what inline asm is a problem. For example: error: inline asm not supported yet: don't know how to handle tied indirect register inputs pr8788-1.c:14:10: note: generated from here asm ("\n" : "+r" (stack->regs) ^ Instead of: fatal error: error in backend: Don't know how to handle tied indirect register inputs yet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6129c376935db12dc79f6d515a1d96632adb480c |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
convert a report_fatal_error that I was able to trigger into a nice error so the user at least knows what inline asm is a problem. For example: error: inline asm not supported yet: don't know how to handle tied indirect register inputs pr8788-1.c:14:10: note: generated from here asm ("\n" : "+r" (stack->regs) ^ Instead of: fatal error: error in backend: Don't know how to handle tied indirect register inputs yet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c09d2cffe8a20019079c372ad39ea9987b25f4da |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
minor tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
87d677c1856bfdcb91d9daeb69dc5f261c73851e |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
minor tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f089358a6614476111863ca914f7f07a1a8c69b2 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
use assertions instead of unreachable for logic errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
35a389344d21178ee280c2410401b2060b5b879c |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
use assertions instead of unreachable for logic errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1178502ccf73f08434a82444def11c8e7d310d28 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new recoverable error handling API to LLVMContext and use it in one place in inline asm handling stuff. Before we'd generate this for an invalid modifier letter: $ clang asm.c -c -o t.o fatal error: error in backend: Invalid operand found in inline asm: 'abc incl ${0:Z}' INLINEASM <es:abc incl ${0:Z}>, 10, %EAX<def>, 2147483657, %EAX, 14, %EFLAGS<earlyclobber,def,dead>, <!-1> Now we generate this: $ clang asm.c -c -o t.o error: invalid operand in inline asm: 'incl ${0:Z}' asm.c:3:12: note: generated from here __asm__ ("incl %Z0" : "+r" (X)); ^ 1 error generated. This is much better but still admittedly not great ("why" is the operand invalid??), codegen should try harder with its diagnostics :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100723 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
38686bdffdebc09aa6fe6b8b54b34ac32c753f59 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new recoverable error handling API to LLVMContext and use it in one place in inline asm handling stuff. Before we'd generate this for an invalid modifier letter: $ clang asm.c -c -o t.o fatal error: error in backend: Invalid operand found in inline asm: 'abc incl ${0:Z}' INLINEASM <es:abc incl ${0:Z}>, 10, %EAX<def>, 2147483657, %EAX, 14, %EFLAGS<earlyclobber,def,dead>, <!-1> Now we generate this: $ clang asm.c -c -o t.o error: invalid operand in inline asm: 'incl ${0:Z}' asm.c:3:12: note: generated from here __asm__ ("incl %Z0" : "+r" (X)); ^ 1 error generated. This is much better but still admittedly not great ("why" is the operand invalid??), codegen should try harder with its diagnostics :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100723 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
8316f2d3810dd37bae0f847bc3efd495432b5893 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename llvm::llvm_report_error -> llvm::report_fatal_error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achineVerifier.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
argetInstrInfoImpl.cpp
argetLoweringObjectFileImpl.cpp
|
75361b69f3f327842b9dad69fa7f28ae3b688412 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename llvm::llvm_report_error -> llvm::report_fatal_error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achineVerifier.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
argetInstrInfoImpl.cpp
argetLoweringObjectFileImpl.cpp
|
f3fa0d3e4d278e3fc0a47547047bac080efa0e1d |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some unneeded errorhandling stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100703 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
1ca6531e2e8e1b3a4f6c48888568450ecf614004 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some unneeded errorhandling stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100703 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
4c884627e5a3aa1cf57c73535a86a05c2b2fbc6a |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100700 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
00d139064e525221fdf0ff00d001ce8b584d69d6 |
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100700 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e4454320b3cfffe926a487c33fbeb454366de2f8 |
07-Apr-2010 |
Shih-wei Liao <sliao@google.com> |
libbcc Change-Id: Ieaa3ebd5a38f370752495549f8870b534eeedfc5
ndroid.mk
smPrinter/Android.mk
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/OcamlGCPrinter.cpp
ranchFolding.cpp
MakeLists.txt
alcSpillWeights.cpp
odePlacementOpt.cpp
riticalAntiDepBreaker.cpp
eadMachineInstructionElim.cpp
ntrinsicLowering.cpp
LVMTargetMachine.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineCSE.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
achineModuleInfoImpls.cpp
achineRegisterInfo.cpp
achineSink.cpp
ptimizePHIs.cpp
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
HIElimination.cpp
HIElimination.h
asses.cpp
ostRASchedulerList.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
seudoSourceValue.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
cheduleDAGInstrs.cpp
electionDAG/Android.mk
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SDDbgValue.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
jLjEHPrepare.cpp
tackProtector.cpp
ailDuplication.cpp
argetInstrInfoImpl.cpp
argetLoweringObjectFileImpl.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
irtRegRewriter.cpp
|
a7a3476e84d08173b6bead2105e07675bc643cb2 |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Remove late ARM codegen optimization pass committed by accident. It is not ready for public yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100673 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4b38debf597a22e2db02aafdaa40264d7770c1ad |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Remove late ARM codegen optimization pass committed by accident. It is not ready for public yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100673 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9cc241abf0f6d769c2b3c23424279bd6f53de181 |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Initial support for different kinds of FU reservation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100645 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
xactHazardRecognizer.h
|
96085a36dbb9cf251c81bc150e41ea9c952c99c0 |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Initial support for different kinds of FU reservation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100645 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
xactHazardRecognizer.h
|
60fb802a477298b4ed4a1b8a38bdd729b3bd1de8 |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out scoreboard into separate class. This way we might have several different score boards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100644 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
xactHazardRecognizer.h
|
1298948c5c36e6e88cbde0abe73f7f37c3a038a6 |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out scoreboard into separate class. This way we might have several different score boards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100644 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
xactHazardRecognizer.h
|
f4c97dfd87d6514e7976bafa07b55aee3e3a81b5 |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100640 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
977dfcefa1b139de56fd17e108b263e39e16504f |
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100640 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
67825e3b8bfb36b3e3b9a273b644a99dec1f227b |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix 80 col violation, patch by Alastair Lynn git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7f893c0712a080470b8c0bb8e7e711c7650eb2bd |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix 80 col violation, patch by Alastair Lynn git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
57e9bbdc49243250a494463ece6bce33d6bbc3fb |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment line that got dropped git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c0561f29a8b95106c757ffa9ad186f997dabd836 |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment line that got dropped git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
eb237b4ed4354467ff221d31ab5c408896819fbf |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix a latent bug my inline asm stuff exposed: MachineOperand::isIdenticalTo wasn't handling metadata operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100636 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
24ad3ed71fe93059d1b46ffdbfe63259762bf547 |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix a latent bug my inline asm stuff exposed: MachineOperand::isIdenticalTo wasn't handling metadata operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100636 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
62060a802b8ba875bf7ed22eee05f77c55581f56 |
07-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
96fbb3eea6ebcd2a6b75973cf11998b4cb0e6a81 |
07-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c669cb6ba3f71e51fd33cecb3467e5e59f5beb7c |
07-Apr-2010 |
Edwin Török <edwintorok@gmail.com> |
Workaround the breakage in r100616 by guarding all timers with TimePassesIsEnabled. This should allow make check to pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100618 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
9c4210794ee42542a20023cd0a800003797523e0 |
07-Apr-2010 |
Torok Edwin <edwintorok@gmail.com> |
Workaround the breakage in r100616 by guarding all timers with TimePassesIsEnabled. This should allow make check to pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100618 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
ce3c6253d9783bd8ef899570110bfd4339570fb3 |
07-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Use the "NamedGroupTimer" class to categorize DWARF emission better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100616 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
5f017e8086c4481da7f5ead2e1d66159e1cc9255 |
07-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Use the "NamedGroupTimer" class to categorize DWARF emission better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100616 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
7f11c34dec4f2401eecf636ad102d86d29c5e0be |
07-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100615 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a592e671ee00e660e31274561e216f5ade39cea4 |
07-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100615 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e4581cb680dc26bbd775265f2aba9b72b2327927 |
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comments for missed opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100610 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
5b463905be11f8c89bf3a7a777eb5d0c7be7162d |
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comments for missed opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100610 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
374e5f125ca49e5d8d364d358d33451fcf67a3da |
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100609 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
348856e56a247c9815986be51565551394f9e9c2 |
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100609 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
bafc8377097d73be2dbc1a4cf344a50ac9e69fe8 |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Have the inst emitter add the !srcloc mdnode to the machine instr. Have the asmprinter use the mdnode to scavenge a source location if present. Document this nonsense in langref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
electionDAG/InstrEmitter.cpp
|
cf9a415182aca6a432105a2a12168e1049de180a |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Have the inst emitter add the !srcloc mdnode to the machine instr. Have the asmprinter use the mdnode to scavenge a source location if present. Document this nonsense in langref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
electionDAG/InstrEmitter.cpp
|
2ad3cb174a3ad3dbf7b921ea70bc2c2f51de4624 |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove another magic number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100606 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
fee455ea6a7e209a3cac5fc8e601f8e85cfb3792 |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove another magic number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100606 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
b9a3f3d2d395ff32a4f40fe6642d5f0e38a2c0be |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Three changes: 1. Introduce some enums and accessors in the InlineAsm class that eliminate a ton of magic numbers when handling inline asm SDNode. 2. Add a new MDNodeSDNode selection dag node type that holds a MDNode (shocking!) 3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc metadata, propagating it to the instruction emitter, which drops it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
decc2671516e6c52ee2f29f7746f8d02753845ea |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Three changes: 1. Introduce some enums and accessors in the InlineAsm class that eliminate a ton of magic numbers when handling inline asm SDNode. 2. Add a new MDNodeSDNode selection dag node type that holds a MDNode (shocking!) 3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc metadata, propagating it to the instruction emitter, which drops it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
fbd947e63c59e0d8012b8358102e6f344b482c04 |
07-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Move printing of target-indepedent DEBUG_VALUE comments into AsmPrinter. Target-dependent form is still generated by FastISel and still handled in X86 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100596 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/FastISel.cpp
|
343b42e428079363ab09828734b2debfd7dbdc9e |
07-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Move printing of target-indepedent DEBUG_VALUE comments into AsmPrinter. Target-dependent form is still generated by FastISel and still handled in X86 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100596 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/FastISel.cpp
|
58ec50dd04ebbb9f8d7924f477b3b2444cfdcbc9 |
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Post regalloc LICM. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100592 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
|
d94671a25e65918557a2c03c0fc12a60a5d138bf |
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Post regalloc LICM. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100592 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
|
75c1062d0f7039ce162b056f4773d446a04157c4 |
07-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Do not emit specification DIE with DW_AT_specification attribute for member functions of a funcation local class. This trips gdb's partial scan of DIEs at load time. Fixes Radar 7833483. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5f0940002ac4f0601bf53ae9688c2f49045331e2 |
07-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Do not emit specification DIE with DW_AT_specification attribute for member functions of a funcation local class. This trips gdb's partial scan of DIEs at load time. Fixes Radar 7833483. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6fbbcc87d1aa597f2fa2c77ee3c0ae1101e778a0 |
07-Apr-2010 |
John McCall <rjmccall@apple.com> |
Fix a number of clang -Wsign-compare warnings that didn't have an obvious solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100581 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
irtRegRewriter.cpp
|
795ee9dd1e43d9e3ba87c052f721b6f7a2161827 |
07-Apr-2010 |
John McCall <rjmccall@apple.com> |
Fix a number of clang -Wsign-compare warnings that didn't have an obvious solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100581 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
irtRegRewriter.cpp
|
d706c64ce2ac8c507f021d451e2f647512b0c4ec |
07-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 100573, it's causing some testsuite problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100578 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
49d915bb9a60b1dc9d1b5313dc8849427a034dfa |
07-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 100573, it's causing some testsuite problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100578 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2fb774fa3bd93106fceaa80e792c91409a4eb4bc |
07-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Move printing of DEBUG_VALUE comments to target-independent place. There is probably a more elegant way to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100573 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0a580d30e0538a561ca39b3970c8c92f8df850e3 |
07-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Move printing of DEBUG_VALUE comments to target-independent place. There is probably a more elegant way to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100573 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
95b69e06d48f80e7e296fca634fa7c170958d02a |
06-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Allow for the possibility that a debug-value points to a SDNode that didn't have code generated for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100566 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
c4d7b14a92a9b34449eccdccce1263c4b68ad474 |
06-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Allow for the possibility that a debug-value points to a SDNode that didn't have code generated for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100566 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
0f5779e649f77b5b6f623abf024e91cfeaac172c |
06-Apr-2010 |
Stuart Hastings <stuart@apple.com> |
Reverting 100530 & 100531 due to regressions in the GDB test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
639336e0bda1373566d4cb29469f78fb4c9e95a6 |
06-Apr-2010 |
Stuart Hastings <stuart@apple.com> |
Reverting 100530 & 100531 due to regressions in the GDB test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d698457d922f61094daf06392336e3d068d43216 |
06-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. Move includes from VirtRegRewriter.h to VirtRegRewriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100532 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
irtRegRewriter.h
|
98116f99b6bd766d98a650594d355dedc593d4d4 |
06-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. Move includes from VirtRegRewriter.h to VirtRegRewriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100532 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
irtRegRewriter.h
|
009a8295d7eb3f1296c4e3fa5460ad6aae9b4006 |
06-Apr-2010 |
Stuart Hastings <stuart@apple.com> |
Revise debug info machinery to digest nested functions and classes. A certain GDB testsuite case (local.cc) has a function nested inside a class nested inside another function. GCC presents the innermost function to llvm-convert first. Heretofore, the debug info mistakenly placed the inner function at module scope. This patch walks the GCC context links and instantiates the outer class and function so the debug info is properly nested. Radar 7426545. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100530 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
983327b3516faac156d7a7ce26a80e24685221f4 |
06-Apr-2010 |
Stuart Hastings <stuart@apple.com> |
Revise debug info machinery to digest nested functions and classes. A certain GDB testsuite case (local.cc) has a function nested inside a class nested inside another function. GCC presents the innermost function to llvm-convert first. Heretofore, the debug info mistakenly placed the inner function at module scope. This patch walks the GCC context links and instantiates the outer class and function so the debug info is properly nested. Radar 7426545. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100530 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b7ba5e6f47d281d3cab5bf448ca347bbea2247c1 |
06-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Remove assert to treat memmove and memset like memcpy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
01f0e8561d8e95b1de94d3971b8ad0aa29c20951 |
06-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Remove assert to treat memmove and memset like memcpy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4cd8b2a2086cf865b7592920999e6c1bca92b1e9 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
propagate cookie management out one layer of function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100510 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
885d94143d0fc02fd5c4ddf1d2a2ee74c7934bff |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
propagate cookie management out one layer of function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100510 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
|
890972db38ba77cc983c4ccdce8f068c45945925 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
report errors through LLVMContext's inline asm handler if available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100509 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
6eb7806a5f5edf460e68f52bdd0fad25f7771873 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
report errors through LLVMContext's inline asm handler if available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100509 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
262c21b60c0f6fbb2746b73fcb351ead873aefc1 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Give MachineModuleInfo an actual Module*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100508 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
achineModuleInfo.cpp
|
421ccd9892178e741e24c96cef4304262475255d |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Give MachineModuleInfo an actual Module*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100508 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
achineModuleInfo.cpp
|
59946385a5dbcf2d6dd76ce8176808a25812bf3f |
06-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Remove unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f778b57fc58178aebeb5bd97f576c1e00f725db8 |
06-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Remove unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0cc7973e7339e7fdcac5b9228b1ecfc2c42f38e7 |
06-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious copy-n-paste bug. It's not known to cause any miscompilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
18141eed26d90b225ed4451a6b6521fb01f8eb31 |
06-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious copy-n-paste bug. It's not known to cause any miscompilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
76a8ffffa1f89e17ce3f5c207d7231a354b161e6 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Give AsmParser an option to control whether it finalizes the stream. New demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax 000000000000000b movl %eax,(%rsp) 000000000000000e movl %eax,0x04(%rsp) 0000000000000012 addq $0x08,%rsp 0000000000000016 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
79180e2ef5ff4aa3c8f64b13736e8648663f3965 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Give AsmParser an option to control whether it finalizes the stream. New demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax 000000000000000b movl %eax,(%rsp) 000000000000000e movl %eax,0x04(%rsp) 0000000000000012 addq $0x08,%rsp 0000000000000016 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
dd9d85d2fe017801e0090bf89bb3706b9ebacf2d |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add .o file writing for inline asm in llc. Here's a silly demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ LLVM ERROR: Error parsing inline asm Only problem seems to be that the parser finalizes OutStreamer at the end of the first inline asm, which isn't what we want. For example: $ cat asm.c int foo(int X) { __asm__ ("incl %0" : "+r" (X)); return X; } $ clang asm.c -S -o - -emit-llvm | llc ... subq $8, %rsp movl %edi, (%rsp) movl %edi, %eax ## InlineAsm Start incl %eax ## InlineAsm End movl %eax, (%rsp) movl %eax, 4(%rsp) addq $8, %rsp ret $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax $ don't stop at inc! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100491 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
af632c91a0090d8448dd10e48d8ce53f31be0a21 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add .o file writing for inline asm in llc. Here's a silly demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ LLVM ERROR: Error parsing inline asm Only problem seems to be that the parser finalizes OutStreamer at the end of the first inline asm, which isn't what we want. For example: $ cat asm.c int foo(int X) { __asm__ ("incl %0" : "+r" (X)); return X; } $ clang asm.c -S -o - -emit-llvm | llc ... subq $8, %rsp movl %edi, (%rsp) movl %edi, %eax ## InlineAsm Start incl %eax ## InlineAsm End movl %eax, (%rsp) movl %eax, 4(%rsp) addq $8, %rsp ret $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax $ don't stop at inc! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100491 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
989a27e04176fab71aa980768b87d86df77cd9bf |
06-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Output floating point representations in DWARF format. This is done by outputing the FP encoding directly as a hex representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100487 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
57fbba4dba5fe095e325103ff34b9c99bab382f9 |
06-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Output floating point representations in DWARF format. This is done by outputing the FP encoding directly as a hex representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100487 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7fb59c6cad5a7e3ae621e0fedcbc67fea3ea13fe |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stringref-ize the MemoryBuffer::get apis. This requires a co-committed clang patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100485 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
4c842dda3939c6b9f83ba7e8e19e43445cd9a832 |
06-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stringref-ize the MemoryBuffer::get apis. This requires a co-committed clang patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100485 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
75d54582ea85dd864fb7331ad27a988277de4f5e |
05-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7b55d3665cc1f19859a77426f65218c8083b3142 |
05-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b1074fff4cc946ff0fd10e7dccca3b73181f4e6a |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
lowering a volatile llvm.memcpy to a libc memcpy is ok. PR6779 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5c06a20814875d4b073204d5662491a4d00d7880 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
lowering a volatile llvm.memcpy to a libc memcpy is ok. PR6779 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
17ffe684ef54997788afed83c25b2de176342780 |
05-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Don't do code sinking on unreachable blocks. It's unprofitable and hazardous. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100455 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c4ae94dee8c9a07334de7ffd85c45893208cca77 |
05-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Don't do code sinking on unreachable blocks. It's unprofitable and hazardous. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100455 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
511b66984f119cd5486d815fb238d3dae5e45c90 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the now-redundant MMI pointer in SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
512063dd0f91a76b9dd904dfff72a52b4d09e89f |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the now-redundant MMI pointer in SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
2771f486c69c022df6500558ed8c7b281e6216bd |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
hopefully sate the clang self host build, which is apparently instantiating some folding set stuff that GCC isn't, requiring some types to not be incomplete. I don't know if clang is right or wrong, but unbreaking the bot is goodness. Here's the broken build: http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/1813/steps/compile.llvm.stage2/logs/stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100418 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
d2c4f19a9fd13790ee48ce182c1163476e2cd762 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
hopefully sate the clang self host build, which is apparently instantiating some folding set stuff that GCC isn't, requiring some types to not be incomplete. I don't know if clang is right or wrong, but unbreaking the bot is goodness. Here's the broken build: http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/1813/steps/compile.llvm.stage2/logs/stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100418 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
d3d234dad3a3eddf2995606a050b699e4c676df8 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some redundant MMI arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
de6e783b2490447866b592cd39855e6f4d25efff |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some redundant MMI arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
bc49100fb2399436fe15bc8892d81f79e6947003 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
unthread MMI from FastISel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
ed3a8067a60ecf2c215e77327a57904c3ebc3355 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
unthread MMI from FastISel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
2c5055517b454c37d24fbd9e736d07a92310b61c |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the MMI pointer from MachineFrameInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100415 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
a267b0076e7887f5566e635ba35790f24d4524d9 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the MMI pointer from MachineFrameInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100415 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
1168d1d30803fd4449b36efba80b827d06b17fb3 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
enhance MachineFunction to have a MMI pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100414 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionAnalysis.cpp
|
820e55e9ad3cb3b17780e84863648e431b571d25 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
enhance MachineFunction to have a MMI pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100414 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionAnalysis.cpp
|
5889281434bcb1c97866ed5ecff54f664bf9aba8 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
privatize more stuff, eliminate vtables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
|
2b1b3312e043858e89b0b1eddc2f839bef892c8d |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
privatize more stuff, eliminate vtables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
|
2eb6c429c6f9344cefa506da783e0d373f64268c |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
reprivatize now that DwarfWriter is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100409 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
|
105d69759312a9544ec55954b3fb59bdb7e224df |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
reprivatize now that DwarfWriter is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100409 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
|
bf103a9c2d667a8b829b4411fc492ab9a96384f3 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
prune #includes, MMI can never be null git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100408 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
6d7337896f1bcdfbdee90c9c33371c2a373f422a |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
prune #includes, MMI can never be null git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100408 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
855b6bb1a2a91ede6cab7de928841c4227f84101 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
prune #includes, realize the MMI can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100407 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
74e41f982100b225936d75047dccbe5f1988b1d0 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
prune #includes, realize the MMI can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100407 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a735c0991fd1c99d620af1b0093c51e406e83015 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
finally blast DwarfWriter away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DwarfWriter.cpp
|
493c9765e066896b381e8404e0c09125377bcc97 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
finally blast DwarfWriter away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DwarfWriter.cpp
|
ec9a1f48a349b292d579e56e2da011cb560069c8 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change AsmPrinter to use DwarfDebug/DwarfException directly instead of going through DwarfWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100405 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
49cd6649e1246c05896fadefe2fcbc4bc1f5d221 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change AsmPrinter to use DwarfDebug/DwarfException directly instead of going through DwarfWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100405 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
8b9430cbf64da05fcefd445f6a997260ba7fbc28 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
trim some spurious references to DwarfWriter. SDIsel really doesn't need it anymore, so don't addRequire it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ea761868b5e4c0166721daf259f86c3816b44f42 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
trim some spurious references to DwarfWriter. SDIsel really doesn't need it anymore, so don't addRequire it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2cb53307e4b148bddbe65301fee21ac4174292ed |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate DwarfDebug::shouldEmit, which is the same now as MMI::hasDebugInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100386 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
994cb126c9e67e3dc79db24c609ee48564ab98bc |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate DwarfDebug::shouldEmit, which is the same now as MMI::hasDebugInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100386 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
12bb45bc79dd2369145a28bf2fb79979b4c4999b |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix a regression on 2009-08-17-DebugInfo.m git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100385 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6342b416f3086d3a4b9972106b77a3a8bc1d0d81 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix a regression on 2009-08-17-DebugInfo.m git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100385 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3c00f8936502465d080aa1a79a3b51d0fb89820c |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
selection dag doesn't need DwarfWriter, remove some tendrils. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100382 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
ba79d72eab446e64d360e8263d77732b5e13d556 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
selection dag doesn't need DwarfWriter, remove some tendrils. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100382 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
a52b6176994e25280cf69a8b9069c1ebc5ef4fab |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fastisel doesn't need DwarfWriter, remove some tendricles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100381 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
d850ac79b57e6e0bf68ee93a94d0b3dcd9f6ca35 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fastisel doesn't need DwarfWriter, remove some tendricles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100381 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
bec073cea9e938743567789cc5deac473da04506 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
just have all targets create the DwarfWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
90429c487fe62582241ffe0d3e8acce936f2f8bc |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
just have all targets create the DwarfWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4e127676a8d067dcbd4f8acf6d4769643d0fadb9 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
nuke DwarfPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100375 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
505e86832ae7b0e1260fe7c1e7a3634ca515bc3e |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
nuke DwarfPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100375 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
f2691ededbfff885879b5a6333fd4402d6ddc83a |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
make DwarfException not inherit from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100374 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfWriter.cpp
|
84ac8b7f43514eda99b0de27c68fbcb5bfa2f399 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
make DwarfException not inherit from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100374 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfWriter.cpp
|
352c8e292c617e3ccedc31dd1c29a3020f400cd2 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change SizeOf to take AsmPrinter instead of TargetData, simplifying a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
a37d5387a54aa9424f6f8c96e5cab1dcbbcd8623 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change SizeOf to take AsmPrinter instead of TargetData, simplifying a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
bc0027bf180a255f3dcf03e992197da4919c88dd |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
1) make DIE take AsmPrinter instead of DwarfPrinter. 2) change DwarfDebug to not inherit from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100372 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
d38fee8ddc6597555904b82b6471a446cc5fe183 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
1) make DIE take AsmPrinter instead of DwarfPrinter. 2) change DwarfDebug to not inherit from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100372 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
193fec03331e41ddafa58a82d1e52f7904d06852 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Move EmitFrameMoves into AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100371 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
02b86b93dc4616571fed3473c6da9421c10f2fcc |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Move EmitFrameMoves into AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100371 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
a8b1f66657ac2e9bed8937a38cc52fc5beacaa96 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
simplify code and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100369 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
786d17a0cf49e6bf95c53eff6148cf843d0f1c1d |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
simplify code and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100369 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
c06b4740af510c449b41bf2a2f25216f1525a0af |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
now that the magic is dispelled, move EmitSectionOffset to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100368 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
6189ed10c1a6a39ad516aca2bda2c05fff35a55b |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
now that the magic is dispelled, move EmitSectionOffset to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100368 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
1f850aa77bd5df21936cf59660b16368858e6d32 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the magic AbsoluteDebugSectionOffsets MAI hook, which is really a property of the section being referenced. Add a predicate to MCSection to replace it. Yay for reduction in magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100367 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
3d2251361171b1a41bdb2ac71882e69d48617f49 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the magic AbsoluteDebugSectionOffsets MAI hook, which is really a property of the section being referenced. Add a predicate to MCSection to replace it. Yay for reduction in magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100367 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
706afc068ba2625b61677505ab4ed9b6a814aa1a |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
only emit section labels if we have debug info, fixing a few regtest failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100366 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
be15beb54ace72508cb3e597c1819132bbbe66f1 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
only emit section labels if we have debug info, fixing a few regtest failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100366 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
094932e6c481a403dbd10093f2e6fb9634455c4d |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
I was wrong, ocaml isn't referencing 'Ldata_begin', so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4ad1efec925f36cb5ab461fc3c7e40baaf70ae1a |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
I was wrong, ocaml isn't referencing 'Ldata_begin', so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c43a7e74dba5d45b39dace1136efb1ddc098a694 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add some assertions to EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100364 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
a33b2a1ee6f8d544571ec4a9be819292f6bf315c |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add some assertions to EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100364 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
733c69d93e92da8d658710372e8c65165b2239c0 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop emitting some dead L labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
11b8f30567b514e9ea816fe11bff1c806a9331b9 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop emitting some dead L labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
66143d234be38a7420c5b327567945340bb1c977 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Store an use the symbols emitted at the start of the debug sections instead of magically rematerializing them later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9c69e28553c5c344666aebce266694cf2d73e8d5 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Store an use the symbols emitted at the start of the debug sections instead of magically rematerializing them later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d91fd8c3cd59d68a5e7aa3b8027e3920e7616d0d |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the didInitial ivar, rename emitInitial to be more descriptive, change EmitSectionOffset back to taking a symbol instead of a string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100361 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
fa070b01753e2d547539dca4e9d55459c652dc9c |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the didInitial ivar, rename emitInitial to be more descriptive, change EmitSectionOffset back to taking a symbol instead of a string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100361 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
d0e5004f025a0cd3aeb5821649d371cf69794773 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
simplify EmitSectionOffset a little bit, improve comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
2e3ebedc881091fcf0c68aebb48649582689ee78 |
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
simplify EmitSectionOffset a little bit, improve comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
d8f37da98d19b7df3bed2391967e53ff8abd3765 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
The "IsSmall" argument to EmitSectionOffset is always true, constant fold it away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
83d1618b462ae42b61cfa366d090792eb10f05c6 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
The "IsSmall" argument to EmitSectionOffset is always true, constant fold it away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
771e52e32d26bb7717b33f62f73b9351b1db3cf9 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the "isEH" argument to EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100355 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
f88dce1f89ddb30b2370318284a6b307d7a44a98 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the "isEH" argument to EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100355 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
bcc67c3f75bce85abf6500c737b15919e177bbaa |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
isAbsoluteEHSectionOffsets always returns false, eliminate it and substitute false at the one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100354 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
0887fa0b8c966234025535d4adcbd5f562a3c0a5 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
isAbsoluteEHSectionOffsets always returns false, eliminate it and substitute false at the one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100354 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
297f3a7bfc757fb55fd8f7b0f8be1f56362ac950 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move some more stuff to asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100351 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
d2af7853e377bce40cbf3e0632a4608484b6aba4 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move some more stuff to asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100351 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
fe717923d00b1febb6cb091600775e1d105fed74 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100350 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
9be49131363f79ad58a5deb4daf175a7b1c0ec66 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100350 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
28e23aa64c3c2c93dfa10856ea413b2086251fdf |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move EmitEncodingByte to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100349 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
ca6190b108aeb4a2eeb6f5c6457bb17509b85d9d |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move EmitEncodingByte to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100349 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
4bfddc846a0c7c332277099062c1a7b623d2bdec |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move EmitCFAByte to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100348 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfPrinter.cpp
|
7a101f45c10082e9765ffec57a2d51f5fd0abc37 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move EmitCFAByte to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100348 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/DwarfPrinter.cpp
|
fd2a3f6533db8f06b6be8b418a34452208fa1409 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
inline EmitDifference away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100347 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
a64371828e27dcc30d38e7246dda0f35c1dfde40 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
inline EmitDifference away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100347 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
66f717044652407ed716a3bf8d413f50446c9e23 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
resolve a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100346 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
af8df264952698cfde59d99c96d4a0da9e4f5afa |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
resolve a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100346 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b93558d9b161989f71297ecd69a173af141b802a |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move gettemplabel and getdwlabel to AsmPrinter and rename them for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100345 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
c021572511f08372ae52fe8e31d3c307cab448fd |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move gettemplabel and getdwlabel to AsmPrinter and rename them for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100345 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
26be1c167a76e02cc0f37a9a81115b9ad05c0fc6 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move uleb/sleb printing into AsmPrinter from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100344 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
7e1a8f882f1baa1c0d5204373d6eb4cb7fc9f3ea |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
move uleb/sleb printing into AsmPrinter from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100344 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterDwarf.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
c143f0a7ff75e13d1878480965f68dd1aa1256cb |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
more interface cleanup make some helpers static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
17fedf216bc10c66e02694854f522cb602097005 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
more interface cleanup make some helpers static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
97c69b7c9f982bd1bd3bf1b67f82cb3778235939 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
clean up the asmprinter header and privatize some stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100342 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
3f53c8398d81065736a784469c9dd5afff85673f |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
clean up the asmprinter header and privatize some stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100342 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
a29bbb7cebddd0b111c04b2faa3bbe7ecd82ae32 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
use stringref instead of strtol to avoid errno gymnastics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100341 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
65eeaad91d78b2a677ca889eaff60f6d807c7030 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
use stringref instead of strtol to avoid errno gymnastics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100341 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinterInlineAsm.cpp
|
599df3c3c817cbf1839a29a321a955cfbd1e091a |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
split inline asm support out to its own .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100340 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/CMakeLists.txt
|
736e31d0cfd8a28c31741f39be606a11e7fc0036 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
split inline asm support out to its own .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100340 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/AsmPrinterInlineAsm.cpp
smPrinter/CMakeLists.txt
|
435a7333f07394dcaadbadb85d5db9fc6f3b000d |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
inline processDebugLoc and simplify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
285199502b08d7d2ac5f37ce5f94cb5e68cec197 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
inline processDebugLoc and simplify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
49318558ba975937d490250a6fde2d0ea40c41c5 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
minor tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100338 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dfa107e45ac6a145c03376ecc0530d8ece358238 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
minor tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100338 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
610fbcb62924fc58dd7bbe95a69d33b3a05d8e09 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
clean up the asmprinter interface a bit, rename a few "Print" methods to "Emit". Emit is something that goes to an mc streamer, Print is something that goes to a raw_ostream (for inline asm) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100337 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
300a4c5640fb1c717ba0d7108d15aec1bd7eb396 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
clean up the asmprinter interface a bit, rename a few "Print" methods to "Emit". Emit is something that goes to an mc streamer, Print is something that goes to a raw_ostream (for inline asm) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100337 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
017c7f97bb1d77c393f15ebba21c92c31631df9f |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove TargetMachine.h #include, also, TRI isn't used frequently enough to warrant caching in AsmPrinter, so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100336 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
9d1c1ada213c80135fbdda704175aae689daa6f9 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove TargetMachine.h #include, also, TRI isn't used frequently enough to warrant caching in AsmPrinter, so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100336 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
761dabbf5fc8ba997d4173523a3d766962ab68cb |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
lazily allocate the GCMetadataPrinters map and remove DenseMap from the AsmPrinter interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100331 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e00b59f954c7e27d9d34abf90bfac969fb12f19a |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
lazily allocate the GCMetadataPrinters map and remove DenseMap from the AsmPrinter interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100331 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3eac1ed5c28f6fd3b670f996e71709c6b16ab9d6 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Momentous day: remove the "O" member from AsmPrinter. Now all "asm printering" happens through MCStreamer. This also Streamerizes PIC16 debug info, which escaped my attention. This removes a leak from LLVMTargetMachine of the 'legacy' output stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100327 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
b23569aff0a6d2b231cb93cc4acd0ac060ba560f |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Momentous day: remove the "O" member from AsmPrinter. Now all "asm printering" happens through MCStreamer. This also Streamerizes PIC16 debug info, which escaped my attention. This removes a leak from LLVMTargetMachine of the 'legacy' output stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100327 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
2ef7d86653f6a913948b533c525e1e3098485ab4 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
now that all operand printing happens to specified streams, we can print function level inline asm with EmitInlineAsm instead of writing it directly to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100326 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
de0f339ec3a5d804b85043174521efec4ad14991 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
now that all operand printing happens to specified streams, we can print function level inline asm with EmitInlineAsm instead of writing it directly to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100326 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
75e113cb5a14f3e749d1c84b3f5c91706e1c47e8 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the raw_ostream from various dwarf printing things. The only thing left is LEB printing, which uses EmitRawText for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
75f50725c1d7f86ee545337b155b4feac66627f6 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the raw_ostream from various dwarf printing things. The only thing left is LEB printing, which uses EmitRawText for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
1bf2b2853b43edaa360771c2934b39391784b754 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
mcize the gc metadata printing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100324 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadataPrinter.cpp
|
7d73c7f0d618dd6661cd55834c58aa62f22b28fe |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
mcize the gc metadata printing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100324 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadataPrinter.cpp
|
39db196b431ab5eb5a4ffff141ca1cca327ed7e8 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
use EmitRawText instead of O in DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100323 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
|
0b9bdb47bd9447dbf5a9cb827be588deb8cb2759 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
use EmitRawText instead of O in DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100323 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
|
3eb5dc17a0715f7c67caca590c8349f5599ff657 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix PrintAsmOperand and PrintAsmMemoryOperand to pass down raw_ostream to print to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100313 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c75c028a15a13786eee585aa634b4faf694dd00a |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix PrintAsmOperand and PrintAsmMemoryOperand to pass down raw_ostream to print to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100313 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6608f88bf90a76f35aa28b1ace35b52bc9b96e49 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change this back too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100310 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d32c8a561734e05ff78da4435de0e85e0eed88e1 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change this back too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100310 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3f72cb89251eeb79475edeecd88651cc6552785e |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
check in what I tested. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100309 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e1783cadf77d6a8e637d0eb79e66f42228d7ec3c |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
check in what I tested. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100309 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
691f640be57ccdfcc734d6ccba03996c69c8fefe |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
MMI is always available, rename O -> OS in printInlineAsm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100308 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c1e0b76306dd1cf1809a15ff8466de30e3a800e5 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
MMI is always available, rename O -> OS in printInlineAsm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100308 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
99fbae7d5b397f285b5e6a9d4da079f79214e1b3 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix an ugly wart in the MCInstPrinter api where the raw_ostream to print an instruction to had to be specified at MCInstPrinter construction time instead of being able to pick at each call to printInstruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100307 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d374087be5360a353a4239a155b1227057145f48 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix an ugly wart in the MCInstPrinter api where the raw_ostream to print an instruction to had to be specified at MCInstPrinter construction time instead of being able to pick at each call to printInstruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100307 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4e972531cf2d719522ab38ce3b5ad1a625579d03 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change a ton of code to not implicitly use the "O" raw_ostream member of AsmPrinter. Instead, pass it in explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100306 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
35c33bd772b3cfb34fdc6b5c9171f955454d0043 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change a ton of code to not implicitly use the "O" raw_ostream member of AsmPrinter. Instead, pass it in explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100306 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
483af3c218eaedddcf8873e6af35eba739f593ab |
04-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100304 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
20adc9dc4650313f017b27d9818eb2176238113d |
04-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100304 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
6d718817f982b804ff516e43a47f38aa78d2a4a9 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
asmstreamerize the .size directive for function bodies, force clients of printOffset to pass in a stream to print to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100296 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0c08d092049c025c9ccf7143e39f39dc4e30d6b4 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
asmstreamerize the .size directive for function bodies, force clients of printOffset to pass in a stream to print to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100296 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
002afa95b6aa586b01580b73ad65a1f3c6f6dca4 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
emit the cygwin stub thing through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fd60b8b4842c04e272a5cbdd404ed88d63d6df61 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
emit the cygwin stub thing through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c468b2b89a6f687e31b43395d7077eec473f3470 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a twine form of MCStreamer::EmitRawText, and mc'ize a few more things in AsmPrinter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
58bc4dd4a91443ddd3120b0a2f1801ad4d6aae1c |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a twine form of MCStreamer::EmitRawText, and mc'ize a few more things in AsmPrinter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dce97dd5b4bdc6cbcf2298a1cdc8e0523b3d1f12 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
start moving towards emitting inline asm statements with EmitInlineAsm. However, this attempt is foiled by operands being emitted directly to "O" so I'll have to do some surgery and finish MCizing the world. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100291 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f94f8dcda71b0069f9dbde979a81a58a49194ba2 |
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
start moving towards emitting inline asm statements with EmitInlineAsm. However, this attempt is foiled by operands being emitted directly to "O" so I'll have to do some surgery and finish MCizing the world. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100291 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
11b3d38ba67b9b142ed23203ba0f2cceaa1807cd |
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a new EmitInlineAsm function to asmprinter to handle inline asm. If we have an MCAsmStreamer, we continue to emit asm textually, otherwise we (currently) emit an error to errs and ignore it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100289 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
91bead790518fcf5cb26019fb1ebf2372e8a5b3f |
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a new EmitInlineAsm function to asmprinter to handle inline asm. If we have an MCAsmStreamer, we continue to emit asm textually, otherwise we (currently) emit an error to errs and ignore it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100289 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
02935a5f010ab909c809bbe702f737f6fd13aafd |
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize comment printing around file scope inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100288 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
47b7e5dae911bc98aa76fa5d2ee506c9304f941a |
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize comment printing around file scope inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100288 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
68a217169a546c904bb1dc8ac3f1afb36a29020c |
03-Apr-2010 |
David Greene <greened@obbligato.org> |
Ok, third time's the charm. No changes from last time except the CMake source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100249 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
5c8aa950fe3484b6e115647328c196f8be64f9ed |
03-Apr-2010 |
David Greene <greened@obbligato.org> |
Ok, third time's the charm. No changes from last time except the CMake source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100249 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
09165316263d5d0509abd0b7596b4155c5dc6bf5 |
02-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Skip debug info when looking for existing EH calls at the beginning of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100230 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
7249ef04557cc6f9af7b6df93728683be3b65048 |
02-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Skip debug info when looking for existing EH calls at the beginning of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100230 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
a226fcbadb7db1393bdfea948c37878cd0ef6cd6 |
02-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix anachronism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeDbgValue.h
|
fd919200d4f678ff751f96a1d3b7e14785fb2338 |
02-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix anachronism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeDbgValue.h
|
5da5274cba288ccb160edc1dda3c614f38d8f218 |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix the llvm-x86_64-linux buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeDbgValue.h
|
42f95ca96b4dc252d334426729113d54c95f092a |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix the llvm-x86_64-linux buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeDbgValue.h
|
9ec907d62d48dc70c7e82c9696458f85c401fac1 |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove empty file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100222 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
achineFunctionPrinterPass.cpp
|
457c6c5ccbc49b97a1cc669051227fa27af8c5a9 |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove empty file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100222 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
achineFunctionPrinterPass.cpp
|
65657aea6fd982c141b764915a45d015b7057431 |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop using DebugLoc::getUnknownLoc() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100215 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineSSAUpdater.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
a4f2bb08de92ccec21cbb3d0a9518384b0173660 |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop using DebugLoc::getUnknownLoc() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100215 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineSSAUpdater.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
b9692a7da0e45bd941437ae1974ee6919aff5a34 |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100209 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineFunction.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
de4845c163a5847c82d7ce10ed0c320098bce6e0 |
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100209 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineFunction.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
52ff54e483c6882e5876d1f8081feef428a459a4 |
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Correctly lower memset / memcpy of undef. It should be a nop. PR6767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100208 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f28f8bc40eedc6304ab25dd8bed486fa08f51f70 |
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Correctly lower memset / memcpy of undef. It should be a nop. PR6767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100208 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ddc54c42305891b695fb7a03f066e5111acd7478 |
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 100204. It broke a bunch of tests and apparently changed what passes are run during codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100207 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
cf5862d8ac9562e633e6ef7cb55e67c2b7ca9c0a |
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 100204. It broke a bunch of tests and apparently changed what passes are run during codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100207 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
04e12609d98266b1716ee6ec8ec931e6f305cbe7 |
02-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100206 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
d0327f80ecb9d21fca8388efc591b86a30958889 |
02-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100206 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
e998d48e15811a6bd9b2c5874ed746e11b924702 |
02-Apr-2010 |
David Greene <greened@obbligato.org> |
Let's try this again. Re-apply 100143 including an apparent missing <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100204 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
434bd8551d71384648f2e155d76b5ddbc4d1b258 |
02-Apr-2010 |
David Greene <greened@obbligato.org> |
Let's try this again. Re-apply 100143 including an apparent missing <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100204 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
f9f760e09acb520d70f23cdbd6b2d288b9094a46 |
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Revert r100191 since it breaks objc in clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e754d3fb852abdeaf910c7331eed60f6303597c1 |
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Revert r100191 since it breaks objc in clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
703dd7c7eda9ffea68170bd9d8cdbc74322825dc |
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e33c848fa481b038d5ad0c7c898c33b2b27ec71e |
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
583bd1720b42702d7c02c197916919107f683d27 |
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted. rdar://7819990 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100170 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
db8771af286bc84267e7b5bd17eab51cd4ea552f |
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted. rdar://7819990 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100170 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
139dcd7aa428c188facd672b1c5a0e299b298390 |
02-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Teach AnalyzeBranch, RemoveBranch and the branch folder to be tolerant of debug info following the branch(es) at the end of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100168 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
93d6a7e9c21204c52d6efec6c672163e7de79660 |
02-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Teach AnalyzeBranch, RemoveBranch and the branch folder to be tolerant of debug info following the branch(es) at the end of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100168 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
83852fdbe1e1f296033b7449ab29ee3bfc4828a5 |
02-Apr-2010 |
Eric Christopher <echristo@apple.com> |
Revert r100143. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100146 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
1d8f83d0a00e912c55ec0974eba6122666cc6fa1 |
02-Apr-2010 |
Eric Christopher <echristo@apple.com> |
Revert r100143. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100146 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
e815112bc2f937c1f7e763db8bc9dc446c47cdfe |
02-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Revert r100117. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100145 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c8e77640a53823b233f3f7a5c2be12aef9ebc69e |
02-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Revert r100117. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100145 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
86a7e009b9c72cfdeb186ab7f138b855950a9f29 |
02-Apr-2010 |
David Greene <greened@obbligato.org> |
Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100143 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
8ef3acba00c9c42d450fa52c7d3faebce1e507dd |
02-Apr-2010 |
David Greene <greened@obbligato.org> |
Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100143 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineFunctionPass.cpp
achineFunctionPrinterPass.cpp
|
fa2e0b8f3b9304c6e6ee521d4cd02974b88d2a1c |
01-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Do not eagerly record known previous location. DBG_VALUE may not cause a new label due to one or other reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
24c20e2435be1ee2af5de486f7567f92cebaf8cd |
01-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Do not eagerly record known previous location. DBG_VALUE may not cause a new label due to one or other reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4a5fdcb5b8c91893fbf3cfce117ef15bd14d5b8a |
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Skip checking preferred alignment of GVs defined in other translation units all together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6cdb7e22aaa229d2b2845d7e8a5a11a30eeaac99 |
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Skip checking preferred alignment of GVs defined in other translation units all together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7fed26826a06a92975666b6a555af27261827a4a |
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Avoid using floating point stores to implement memset unless the value is zero. - Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100118 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
94107ba9ceaa199f8e5c03912511b0619c84226d |
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Avoid using floating point stores to implement memset unless the value is zero. - Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100118 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d9bfc2b3ac57f002e702f8922afca448b0e14e3e |
01-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Skip instructions until new scope is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
58c7aa61d49f155a1d36b9c14273de5a630de8e1 |
01-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Skip instructions until new scope is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6339775293e35038eef25d6194ff189d21ffce6b |
01-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Cosmetic changes. Update comment, rename a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8935d90a9095edf5643ef4a362a64df706ea97be |
01-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Cosmetic changes. Update comment, rename a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0b592c03bc7cc8c973f5fbda6c149c1b3de2bf84 |
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix sdisel memcpy, memset, memmove lowering: 1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100090 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
255f20f7f76e4ca1ac1c73294852cb6fcb18c77d |
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix sdisel memcpy, memset, memmove lowering: 1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100090 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
48e1a9cab59c9f1b155f762a68c6f68aaeddedc7 |
01-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Reapply r100056. It doesn't look like it's the one that's causing a failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100065 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
e543d161a0959a912efd20027ca98d3d0bf576ec |
01-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Reapply r100056. It doesn't look like it's the one that's causing a failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100065 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
15a729e9cc521bed831e738805313a109dee8544 |
01-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r100056. It was causing a failure on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100062 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
9e9cca424cf0374259706cbedec89507bf89bdcf |
01-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert r100056. It was causing a failure on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100062 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
d586848a72be7117fec179627c54e0dd6b34d7e8 |
01-Apr-2010 |
Stuart Hastings <stuart@apple.com> |
Reverting 100048; it broke two Frontend debug info tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100058 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f8df814869368edd3f74bc81dca202f0d2a55b66 |
01-Apr-2010 |
Stuart Hastings <stuart@apple.com> |
Reverting 100048; it broke two Frontend debug info tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100058 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d5902dde9b8adc8942ba367430900209bc539e7a |
01-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Rewrite CorrectExtraCFGEdges() to make it more understandable. * Set the "DestA" and "DestB" according to how they're understood by the method. I.e., if one or both of them should point to the "fall through" block, then point to the fall through block. * Improve the loop that removes superfluous edges to be more understandable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100056 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
bbd51cd0a108ea4d47eb6f957e1409507097dfc9 |
01-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Rewrite CorrectExtraCFGEdges() to make it more understandable. * Set the "DestA" and "DestB" according to how they're understood by the method. I.e., if one or both of them should point to the "fall through" block, then point to the fall through block. * Improve the loop that removes superfluous edges to be more understandable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100056 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
237a389a4739043ce735c30b9b1baed85ef4dc4b |
31-Mar-2010 |
Stuart Hastings <stuart@apple.com> |
Debug info can now properly represent functions inside classes inside other functions. Partial fix for Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100048 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a88cb38d0220d5b0e4394f3280e1cec5f30ef4fc |
31-Mar-2010 |
Stuart Hastings <stuart@apple.com> |
Debug info can now properly represent functions inside classes inside other functions. Partial fix for Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100048 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
648940b9c1e4633dde4aa9728124faa35e7f186e |
31-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce string trashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100038 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bbb88db993af5f30eecc3139f9bf7c703e8ad7c1 |
31-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce string trashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100038 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
138c7ff4431ac423bea28f9381a14c5239dfb920 |
31-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them are POD-like anyway, so we don't even care about calling their d'tors (DIEBlock being the exception). ~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100035 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
345ef343ccc8c4e66166ae631c127136202e067b |
31-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them are POD-like anyway, so we don't even care about calling their d'tors (DIEBlock being the exception). ~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100035 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a8c5bd2e558231b16fbd156401bea1dad7d6bdda |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
cfd3188a11dd71a6416f5b7aef29c47129f6df4e |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5df82554295322bcde46f76ceb1f326fc4983800 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99998 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1d65ba732cd0957a0badea4634c9272d93c71612 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99998 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fd37680370e1d88768b04afad59b176ca5f43c21 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
MI != 0 is checked in the assert right above this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99995 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ff741ab70975c266b3a4dd652b93cfc53bfbc8c3 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
MI != 0 is checked in the assert right above this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99995 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
202f10bae73c28a871d68f8fcb6aa6fb67ef41fa |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use the isDebugValue() predicate and pop_back_val() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99993 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
14d750d0ad97a7d7fa76c0177327cda3f32f876f |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use the isDebugValue() predicate and pop_back_val() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99993 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8143ce8cc63055804f3fb8eb7b13f2dc594c5b50 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
assert is a function-like macro, not a control flow operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ed7a77bfb2c8d527ea8ac1a947d3ed80fbfb5839 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
assert is a function-like macro, not a control flow operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a7ea0fbcb2c04cab4e52fe885559a426cb2ce770 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation, fit in 80 cols and various other cosmetic cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99989 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
4dd816309162dc499c11cdd9a2bfaa535bad814a |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation, fit in 80 cols and various other cosmetic cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99989 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
0ab86bed697bb390c97bd73a66cc4945ec75275b |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use the optimized debug info apis in sdisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
23dbf6683b5de64bd0b2f05a5a311a98480b3a72 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use the optimized debug info apis in sdisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0b44e49f000a4da6b9948bdaa923b48911d2f47a |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add new apis for getting/setting !dbg metadata on instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99982 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
870cfcf9a6189b65a8ee805b93a2c737c0183e62 |
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add new apis for getting/setting !dbg metadata on instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99982 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
76821a73c39a21f7116ef99aa60940b07aedefac |
31-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
100f090adde26005b9f1eca96871dff52825b27b |
31-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
e383a18a02da3c25c6b60ee055ddef373bf89955 |
31-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Ignore invalid metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99938 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
722f2290b800ea96670e923ee9a4aa3b9efa35e8 |
31-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Ignore invalid metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99938 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f4862b06ca84fae2bb80e4936b3b2e598419c704 |
30-Mar-2010 |
Mon P Wang <wangmp@apple.com> |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
808bab0169ab7d2e8dfdc72dd2c991cd8ff2396d |
30-Mar-2010 |
Mon P Wang <wangmp@apple.com> |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
128fdd98acae4b74400a03b6940e8209c05e7474 |
30-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allows only a single type of object to be allocated. Use it to make VNInfo destruction typesafe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99919 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
reAllocSplitting.cpp
|
991de14dd62dcbab4b31357ae22dc5b053ba50a0 |
30-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allows only a single type of object to be allocated. Use it to make VNInfo destruction typesafe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99919 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
reAllocSplitting.cpp
|
3b197832bf569e331ee057aece06ecd99b13ba2f |
30-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Rip out the 'is temporary' nonsense from the MCContext interface to create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99902 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
achineBasicBlock.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
9b97a73dedf736e14b04a3d1a153f10d25b2507b |
30-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Rip out the 'is temporary' nonsense from the MCContext interface to create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99902 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
achineBasicBlock.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
1ac55a69f0e84c14ed2d4651dcd574f14f30e751 |
30-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Funky indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
87bd1916024497ceaf3cdc050e743a532813e82b |
30-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Funky indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
98ca237866b93f0905a5262263713921dea4a265 |
30-Mar-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to fall through after processing DBG_VALUE machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99899 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7ed631157738132f88125bc374850326f9b2f8cd |
30-Mar-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to fall through after processing DBG_VALUE machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99899 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a2e02dfa83224bcf056da7b488ef7257f3a45806 |
30-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99895 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
7a8cf2822de1c69551588fc4395bdd0fec18611f |
30-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99895 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
75ae7ac964133d47df16b30d5dd23620e5f3f4a1 |
30-Mar-2010 |
Edwin Török <edwintorok@gmail.com> |
Reapply r99881 with some fixes: only call destructor in releaseMemory! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99883 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
01cb1b665da03e2b74c0724f71751e912ec8c2be |
30-Mar-2010 |
Torok Edwin <edwintorok@gmail.com> |
Reapply r99881 with some fixes: only call destructor in releaseMemory! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99883 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
b433bf9e02a22cf11395ff6a40bd45056b4ec094 |
30-Mar-2010 |
Edwin Török <edwintorok@gmail.com> |
Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99882 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
226dd2ba992b1f00491c10c59ca1889825bf92b6 |
30-Mar-2010 |
Torok Edwin <edwintorok@gmail.com> |
Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99882 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5697fa998e62ff77965b4a7878ec102ea1245da8 |
30-Mar-2010 |
Edwin Török <edwintorok@gmail.com> |
Introduce another Reset() method in BumpPtrAllocator that calls a destructor on all objects it has allocated, if they are all of the same size and alignment. Use this to destruct all VNInfos allocated in LiveIntervalAnalysis (PR6653). valnos is not reliable for this purpose, as seen in r99400 (which still leaked, and sometimes caused double frees). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99881 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2a22004f6857c57dc483ea6180f0e1f86854bd13 |
30-Mar-2010 |
Torok Edwin <edwintorok@gmail.com> |
Introduce another Reset() method in BumpPtrAllocator that calls a destructor on all objects it has allocated, if they are all of the same size and alignment. Use this to destruct all VNInfos allocated in LiveIntervalAnalysis (PR6653). valnos is not reliable for this purpose, as seen in r99400 (which still leaked, and sometimes caused double frees). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99881 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
20d2e38aa9ba1a833c58f85efbf1283e1aa7c44a |
30-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid being influenced by the presence of dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99879 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegRewriter.cpp
|
28a1e486907104b85c5787345914917d74f0cf77 |
30-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid being influenced by the presence of dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99879 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegRewriter.cpp
|
308cd0e5c481389fc33d4b25742a9d6a99cf3c68 |
30-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Re-add back in the slow way of determining of a clean-up should become a catch-all. The "dominates" way won't catch all of the selectors which must be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99850 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
201f5f039f25921b459263e4fb71e3dc4925ecf0 |
30-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Re-add back in the slow way of determining of a clean-up should become a catch-all. The "dominates" way won't catch all of the selectors which must be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99850 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
19b59f45bddaaabef125d3deec372552a8f0df39 |
30-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
A more general (and simpler!) implementation of r99671. It performs a similar transform. I.e., if a clean-up eh.selector call dominates the invoke of an _Unwind_Resume_or_Rethrow, then we convert the eh.selector into a catch-all. This patch, however, uses the DominatorTree information, and doesn't go through the whole rigmarole of starting at the eh.exception call, finding the corresponding URoR and eh.selector calls, and trying to trace through any number of instruction types to get to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99846 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
bfde644e8a99ffde095f04212d6ba77aa7b3bec7 |
30-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
A more general (and simpler!) implementation of r99671. It performs a similar transform. I.e., if a clean-up eh.selector call dominates the invoke of an _Unwind_Resume_or_Rethrow, then we convert the eh.selector into a catch-all. This patch, however, uses the DominatorTree information, and doesn't go through the whole rigmarole of starting at the eh.exception call, finding the corresponding URoR and eh.selector calls, and trying to trace through any number of instruction types to get to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99846 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
9a9a4ac55b0f70ad14dd4a4e1f9ba5208f18fb67 |
30-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Encode start location of debug value, communicated through DBG_VALUE machine instruction, in a variable's DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99845 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
aead63c0337ed24053b8bdde8918aacdc66d8231 |
30-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Encode start location of debug value, communicated through DBG_VALUE machine instruction, in a variable's DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99845 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f9d000304234675eb34c984e846251bb643bf170 |
29-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4975. Avoid referencing empty vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8e36a5c960e07555d80fb98d71c692c20f3ea6c4 |
29-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4975. Avoid referencing empty vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e392242edab8709353202295344ec92cc620c927 |
29-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pool allocate SDDbgValue nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
31441b7e95e0840e1ae144e5db6f791d6a36bc60 |
29-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pool allocate SDDbgValue nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
08f7b612ed2767db3f0ddd90159cdbd0f1ee65a0 |
29-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use RAII for ExceptionTimer too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
c3b228c97851abf5c4552512df63b4bf98fd3c5a |
29-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use RAII for ExceptionTimer too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
b49c9f875f5e7519e158246519ddbb89a97707c8 |
29-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a variety of issues were we'd start DebugTimer but not stop it by using RAII. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99832 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a909d6635135acd12175f9de86e2a0ad47501b6c |
29-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a variety of issues were we'd start DebugTimer but not stop it by using RAII. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99832 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
abc2b350dfc1e7fb434e35688d6f1a3b0ab71e96 |
29-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Refactor code to push DILocation prcessing into DwarfDebug.cpp from AsmPrinter.cpp. This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99816 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
553881bddcdeb66c0ae06bf9f62ca63b9f29b2e8 |
29-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Refactor code to push DILocation prcessing into DwarfDebug.cpp from AsmPrinter.cpp. This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99816 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
96507a3ae63d4b3252b3a7cb2c581a8972b99ccc |
28-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Revert 99772. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99778 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
de9b1efbe5650f2eef8a552a81e94a6e682e05f0 |
28-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Revert 99772. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99778 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
b9eb9ebef6db1f9e7cc885c41d257cf5b1237e97 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a statistic for the # times isel has to backtrack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bed993d8a4ede75a24a142437057b42498ce5b9f |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a statistic for the # times isel has to backtrack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
10356f0800602870e902de0ea383faf78024c0cb |
28-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99772 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
c7eae5ca4a5c9fd760ec3c38e1e46cd9fda113aa |
28-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99772 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
8b09306a76d9260af846a841f414bb10833a52fa |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
finally remove the immAllOnesV_bc/immAllZerosV_bc patterns and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
caa8870fe09f5526e611434b6bb9f7040c7dfa60 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
finally remove the immAllOnesV_bc/immAllZerosV_bc patterns and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c1900d9f5d5565be00eaa8c69bde61f6b95dc3c8 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
comply with the wishes of a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5d9a1bce83a18a4f972c5974fa9d7fa3c4de001f |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
comply with the wishes of a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e185c2a24de741374f1286111ac69d911b4f8ab0 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
now that (parallel) is gone and a variety of bugs in targets are cleaned up, we can remove an old fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99741 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b0e483e2c47c122f58cec4c83e37ceef92c36aef |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
now that (parallel) is gone and a variety of bugs in targets are cleaned up, we can remove an old fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99741 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
05a383ab4d46656b57c5b36337ca5e819350796d |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
aa4e3391c8814c6ce0bbc530ea4d5905414b2763 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
32ac9e77eb4519d019bf8a7c9c3be71dd21530c0 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't add nodes to the now-dead nodes list multiple times, this can cause a crash on crazy situations in msp430 when morph-node-to is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
856fb395e46a8d485081acbf11928047d852c636 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't add nodes to the now-dead nodes list multiple times, this can cause a crash on crazy situations in msp430 when morph-node-to is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c16022adcf2f6e76d8d0c9bf003d6ab7dbb8781b |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't add flag nodes with chain results to the NowDeadNodes list multiple times when MorphNodeTo can't be applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
19e37cbf4fa202fc7ca1d769e5ce476f83290dd5 |
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't add flag nodes with chain results to the NowDeadNodes list multiple times when MorphNodeTo can't be applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
92800f1a0d2d20c82a99a437c1096de4c2e388a4 |
27-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
improve -debug-only=isel comments for cases when we don't enter a scope due to obviously false predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a6f8693385636b18ae05e30f5017393ad1309bb2 |
27-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
improve -debug-only=isel comments for cases when we don't enter a scope due to obviously false predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7012a49c6957952e247b43516739d57daf28ad30 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Forgot the part where we handle the ".llvm.eh.catch.all.value". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99697 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
e6b293b78d8eb3eb749771d2201ace3ecd076010 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Forgot the part where we handle the ".llvm.eh.catch.all.value". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99697 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
|
6d2157b0bf5fd23d1d95b9decb87a552afa1d627 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Return if we changed anything or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99695 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
43de15f8a356293dd1b1c4dd321f90802fff5ce3 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Return if we changed anything or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99695 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
fe872e059a1136f3d4356895bfe6d4f315c9b559 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
If a selector has a call to ".llvm.eh.catch.all.value" that we haven't converted, then use the initializer, since using the name itself won't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99692 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
bfbd853958518981dc7a614a388bf93e1895d2b5 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
If a selector has a call to ".llvm.eh.catch.all.value" that we haven't converted, then use the initializer, since using the name itself won't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99692 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
58abbd9b3d35e908e579b96555f3b81c65f64216 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
If we mark clean-ups as clean-ups, then it could break when inlining through an 'invoke' instruction. You will get a situation like this: bb: %ehptr = eh.exception() %sel = eh.selector(%ehptr, @per, 0); ... bb2: invoke _Unwind_Resume_or_Rethrow(%ehptr) %normal unwind to %lpad lpad: ... The unwinder will see the %sel call as a clean-up and, if it doesn't have a catch further up the call stack, it will skip running it. But there *is* another catch up the stack -- the catch for the %lpad. However, we can't see that. This is fixed in code-gen, where we detect this situation, and convert the "clean-up" selector call into a "catch-all" selector call. This gives us the correct semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99671 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
2ad4aca8b2924065dfe51113ff197026a9c762c2 |
27-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
If we mark clean-ups as clean-ups, then it could break when inlining through an 'invoke' instruction. You will get a situation like this: bb: %ehptr = eh.exception() %sel = eh.selector(%ehptr, @per, 0); ... bb2: invoke _Unwind_Resume_or_Rethrow(%ehptr) %normal unwind to %lpad lpad: ... The unwinder will see the %sel call as a clean-up and, if it doesn't have a catch further up the call stack, it will skip running it. But there *is* another catch up the stack -- the catch for the %lpad. However, we can't see that. This is fixed in code-gen, where we detect this situation, and convert the "clean-up" selector call into a "catch-all" selector call. This gives us the correct semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99671 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
cad2210dad6c96b53b0d9a63b3caa74e7baa59aa |
26-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add few missed libcalls and correct names for others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
de0118c324a3fb8b0b5afa8e46996d9b81666bfd |
26-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add few missed libcalls and correct names for others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
aea51bd14e2af177717328b6a65e9cb026800c45 |
26-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Debug info shouldn't affect kills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99637 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
4d12d3b70fe91e80852f9867acef327dbfaf77d6 |
26-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Debug info shouldn't affect kills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99637 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
ae54e1b9db4e89e926f5e73b17d388dc1eb676fa |
26-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
LiveVariables should clear kill / dead markers first. This allows us to remove a hack in the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99597 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
electionDAG/InstrEmitter.cpp
|
d05e8055362be52fc33dcc685ba2ae5c722506b5 |
26-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
LiveVariables should clear kill / dead markers first. This allows us to remove a hack in the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99597 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
electionDAG/InstrEmitter.cpp
|
70ca1daea686d7e87e1340dd996f973b9ae23490 |
26-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Try trivial remat before the coalescer gives up on a vr / physreg coalescing for fear of tying up a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99575 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9f689486094303aff800093cf36d95023da02025 |
26-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Try trivial remat before the coalescer gives up on a vr / physreg coalescing for fear of tying up a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99575 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c0c2e93f4b00a9373e38818790802276f24855f3 |
26-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Handle DEBUG_VALUE in this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99573 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
1feeadac1baa7c8725dcd8755abfe90d8defb7df |
26-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Handle DEBUG_VALUE in this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99573 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
ccf2da5a319042969442b1633fc2f95b0aee9573 |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99544 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
460e479b1964d5a8caf85b11e4b94e530db38fcf |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99544 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b9a3008079b89fcfc2cde8c46f4db45536260166 |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a valgrind error on copy-constructor-synthesis.cpp, which is caused when the custom insertion hook deletes the instruction, then we try to set dead flags on it. Neither the code that I added nor the code that was there before was safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
7bf198fd607b356e767e0577cac81c3491c4bc90 |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a valgrind error on copy-constructor-synthesis.cpp, which is caused when the custom insertion hook deletes the instruction, then we try to set dead flags on it. Neither the code that I added nor the code that was there before was safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
9bc4e57cc092ccdb694ca9783dc36617b9dab51e |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unused option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99537 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
fd59f4cd3d099bf737a01eb75240fbf8e51cab62 |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unused option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99537 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8b1c07a24ab6f73e62313765742b5a0b6b38a207 |
25-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99507 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
2ddefecfa063b99550bd1fc9fd53efe433be54fb |
25-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99507 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
a77e51ef30db86c78c4ab0c0b377cfbc4da4892e |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Scheduler assumes SDDbgValue nodes are in source order. That's true currently. But add an assertion to verify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
4ec9bd9a6f92a10185870bae2cebce199f6acc5a |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Scheduler assumes SDDbgValue nodes are in source order. That's true currently. But add an assertion to verify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
0de5856fbeb6a3e9001d478f4c6df257154d6a87 |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Change tblgen to emit FOOISD opcode names as two bytes instead of one byte. This is important because we're running up to too many opcodes to fit in a byte and it is aggrevated by FIRST_TARGET_MEMORY_OPCODE making the numbering sparse. This just bites the bullet and bloats out the table. In practice, this increases the size of the x86 isel table from 74.5K to 76K. I think we'll cope :) This fixes rdar://7791648 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d5d5a3dcbaa4e7f394ba045e2d7d0ec3aa76f50c |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Change tblgen to emit FOOISD opcode names as two bytes instead of one byte. This is important because we're running up to too many opcodes to fit in a byte and it is aggrevated by FIRST_TARGET_MEMORY_OPCODE making the numbering sparse. This just bites the bullet and bloats out the table. In practice, this increases the size of the x86 isel table from 74.5K to 76K. I think we'll cope :) This fixes rdar://7791648 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fbd664a8030a17e7731b2d85839cca9ceefb196c |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove a fixme that doesn't make sense any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
167bda4baa9482fa72d7b320aaa8aee50a0aa520 |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove a fixme that doesn't make sense any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
ef134fd771b161666b5417dc2ed4594f7927b1eb |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Make sure SDDbgValue.Invalid is initialized to false by all the constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeDbgValue.h
|
c388ace6f9012c503630eb633e3977e0fc42bb00 |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Make sure SDDbgValue.Invalid is initialized to false by all the constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeDbgValue.h
|
cc2f056d727637ecbb355842c575d280024f0040 |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Make the NDEBUG assertion stronger and more clear what is happening. Enhance scheduling to set the DEAD flag on implicit defs more aggressively. Before, we'd set an implicit def operand to dead if it were present in the SDNode corresponding to the machineinstr but had no use. Now we do it in this case AND if the implicit def does not exist in the SDNode at all. This exposes a couple of problems: one is the FIXME, which causes a live intervals crash on CodeGen/X86/sibcall.ll. The second is that it makes machinecse and licm more aggressive (which is a good thing) but also exposes a case where licm hoists a set0 and then it doesn't get resunk. Talking to codegen folks about both these issues, but I need this patch in in the meantime. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
47cdf4abff20eb9d7d05406cc1a9be2890ed39bb |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Make the NDEBUG assertion stronger and more clear what is happening. Enhance scheduling to set the DEAD flag on implicit defs more aggressively. Before, we'd set an implicit def operand to dead if it were present in the SDNode corresponding to the machineinstr but had no use. Now we do it in this case AND if the implicit def does not exist in the SDNode at all. This exposes a couple of problems: one is the FIXME, which causes a live intervals crash on CodeGen/X86/sibcall.ll. The second is that it makes machinecse and licm more aggressive (which is a good thing) but also exposes a case where licm hoists a set0 and then it doesn't get resunk. Talking to codegen folks about both these issues, but I need this patch in in the meantime. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
4575d32812f946d69cd29c306b5e323f12fef37c |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reapply 99444/99445, which I speculatively reverted in r99453. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
3d7d07ef038696cefcaf3ce5335072964199a78d |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reapply 99444/99445, which I speculatively reverted in r99453. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
fd9760502d0fc87ac49dac834660a657f6b78370 |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Change how dbg_value sdnodes are converted into machine instructions. Their placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode ordering information to determine where to insert them. A dbg_value instruction is inserted after the instruction with the last highest source order and before the instruction with the next highest source order. It will optimize the placement by inserting right after the instruction that produces the value if they have consecutive order numbers. Here is a theoretical example that illustrates why the placement is important. tmp1 = store tmp1 -> x ... tmp2 = add ... ... call ... store tmp2 -> x Now mem2reg comes along: tmp1 = dbg_value (tmp1 -> x) ... tmp2 = add ... ... call ... dbg_value (tmp2 -> x) When the debugger examine the value of x after the add instruction but before the call, it should have the value of tmp1. Furthermore, for dbg_value's that reference constants, they should not be emitted at the beginning of the block (since they do not have "producers"). This patch also cleans up how SDISel manages DbgValue nodes. It allow a SDNode to be referenced by multiple SDDbgValue nodes. When a SDNode is deleted, it uses the information to find the SDDbgValues and invalidate them. They are not deleted until the corresponding SelectionDAG is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
bfcb3051899b7141a946d769fcf6e8a8453bc530 |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Change how dbg_value sdnodes are converted into machine instructions. Their placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode ordering information to determine where to insert them. A dbg_value instruction is inserted after the instruction with the last highest source order and before the instruction with the next highest source order. It will optimize the placement by inserting right after the instruction that produces the value if they have consecutive order numbers. Here is a theoretical example that illustrates why the placement is important. tmp1 = store tmp1 -> x ... tmp2 = add ... ... call ... store tmp2 -> x Now mem2reg comes along: tmp1 = dbg_value (tmp1 -> x) ... tmp2 = add ... ... call ... dbg_value (tmp2 -> x) When the debugger examine the value of x after the add instruction but before the call, it should have the value of tmp1. Furthermore, for dbg_value's that reference constants, they should not be emitted at the beginning of the block (since they do not have "producers"). This patch also cleans up how SDISel manages DbgValue nodes. It allow a SDNode to be referenced by multiple SDDbgValue nodes. When a SDNode is deleted, it uses the information to find the SDDbgValues and invalidate them. They are not deleted until the corresponding SelectionDAG is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
83975ff16df9495a1b2a7809d262faa3284bc301 |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid being influenced by dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99465 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
impleRegisterCoalescing.cpp
|
48f2cb926e2512a1c4c33ca5a9e757de1c12036c |
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid being influenced by dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99465 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
impleRegisterCoalescing.cpp
|
ed62517410e3e16d5c80bad448063c1bc9e6ad20 |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
revert 99444/99445. This doesn't cause the failure of 2006-07-19-stwbrx-crash.ll for me, but it's the only likely patch in the blame list of several bots. Lets see if this fixes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
d41952da109565ab11b7f435c39a0c524c75298e |
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
revert 99444/99445. This doesn't cause the failure of 2006-07-19-stwbrx-crash.ll for me, but it's the only likely patch in the blame list of several bots. Lets see if this fixes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
5d957ad9d56383c90eef0576413b0c94f4c34222 |
24-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
4020670195e96f98f949737f95dcd4916282a5e8 |
24-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
389f3b84f5a1535bb9be169ff1896c24723764c9 |
24-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
split EmitNode in half to reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
c243dea003bfe11cb4cdc0cef80997b06b96cb21 |
24-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
split EmitNode in half to reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
e485a5d1f8105b01365702ef802904c0f22c4f1f |
24-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Use SP filename directly instead of SP's context's filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99429 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9bb59a2bdc470c1b68a90a597ffa3f3bc8fbf22b |
24-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Use SP filename directly instead of SP's context's filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99429 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6f3af6e9613e7998f18f3f7e8e6f78e949a77229 |
24-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Edwin's change that is breaking MultiSource/Applications/ClamAV/clamscan. --- Reverse-merging r99400 into '.': D test/CodeGen/Generic/2010-03-24-liveintervalleak.ll U lib/CodeGen/LiveIntervalAnalysis.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99419 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d6a6b3b7563a3f54ba48d465fc03ee10bbccb7a8 |
24-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Edwin's change that is breaking MultiSource/Applications/ClamAV/clamscan. --- Reverse-merging r99400 into '.': D test/CodeGen/Generic/2010-03-24-liveintervalleak.ll U lib/CodeGen/LiveIntervalAnalysis.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99419 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
44c4da8634ded826be22f2188ef3699ac96e71e9 |
24-Mar-2010 |
Edwin Török <edwintorok@gmail.com> |
Fix memory leak in liveintervals: the destructor for VNInfos must be called, otherwise the SmallVector it contains doesn't free its memory. In most cases LiveIntervalAnalysis could get away by not calling the destructor, because VNInfos are bumpptr-allocated, and smallvectors usually don't grow. However when the SmallVector does grow it always leaks. This is the valgrind shown leak from the original testcase: ==8206== 18,304 bytes in 151 blocks are definitely lost in loss record 164 of 164 ==8206== at 0x4A079C7: operator new(unsigned long) (vg_replace_malloc.c:220) ==8206== by 0x4DB7A7E: llvm::SmallVectorBase::grow_pod(unsigned long, unsigned long) (in /home/edwin/clam/git/builds/defaul t/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4F90382: llvm::VNInfo::addKill(llvm::SlotIndex) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libcl amav.so.6.1.0) ==8206== by 0x5126B5C: llvm::LiveIntervals::handleVirtualRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::M achineInstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int, llvm::LiveInterval&) (in /home/edwin/clam/git/builds/defau lt/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x512725E: llvm::LiveIntervals::handleRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::MachineI nstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav .so.6.1.0) ==8206== by 0x51278A8: llvm::LiveIntervals::computeIntervals() (in /home/edwin/clam/git/builds/default/libclamav/.libs/libc lamav.so.6.1.0) ==8206== by 0x5127CB4: llvm::LiveIntervals::runOnMachineFunction(llvm::MachineFunction&) (in /home/edwin/clam/git/builds/de fault/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAE935: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAEB10: llvm::FunctionPassManagerImpl::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAED3D: llvm::FunctionPassManager::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclamav/.l ibs/libclamav.so.6.1.0) ==8206== by 0x4D8BE8E: llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, llvm::MutexGuard const&) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4D8CA72: llvm::JIT::getPointerToFunction(llvm::Function*) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99400 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
15417383b96f9035a00bab5c13746f59e91e35e0 |
24-Mar-2010 |
Torok Edwin <edwintorok@gmail.com> |
Fix memory leak in liveintervals: the destructor for VNInfos must be called, otherwise the SmallVector it contains doesn't free its memory. In most cases LiveIntervalAnalysis could get away by not calling the destructor, because VNInfos are bumpptr-allocated, and smallvectors usually don't grow. However when the SmallVector does grow it always leaks. This is the valgrind shown leak from the original testcase: ==8206== 18,304 bytes in 151 blocks are definitely lost in loss record 164 of 164 ==8206== at 0x4A079C7: operator new(unsigned long) (vg_replace_malloc.c:220) ==8206== by 0x4DB7A7E: llvm::SmallVectorBase::grow_pod(unsigned long, unsigned long) (in /home/edwin/clam/git/builds/defaul t/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4F90382: llvm::VNInfo::addKill(llvm::SlotIndex) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libcl amav.so.6.1.0) ==8206== by 0x5126B5C: llvm::LiveIntervals::handleVirtualRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::M achineInstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int, llvm::LiveInterval&) (in /home/edwin/clam/git/builds/defau lt/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x512725E: llvm::LiveIntervals::handleRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::MachineI nstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav .so.6.1.0) ==8206== by 0x51278A8: llvm::LiveIntervals::computeIntervals() (in /home/edwin/clam/git/builds/default/libclamav/.libs/libc lamav.so.6.1.0) ==8206== by 0x5127CB4: llvm::LiveIntervals::runOnMachineFunction(llvm::MachineFunction&) (in /home/edwin/clam/git/builds/de fault/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAE935: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAEB10: llvm::FunctionPassManagerImpl::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAED3D: llvm::FunctionPassManager::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclamav/.l ibs/libclamav.so.6.1.0) ==8206== by 0x4D8BE8E: llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, llvm::MutexGuard const&) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4D8CA72: llvm::JIT::getPointerToFunction(llvm::Function*) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99400 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d2560964a3e920821da3cbfe4c06fb6b0b73ae8e |
24-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
dbg_value may end a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99378 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
2250425d6e44558f9d333a5c7faef33744f561d6 |
24-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
dbg_value may end a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99378 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
53ea1f185f7a15b80b68e6124fa0e41eb8648d74 |
24-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Remove the ConvertActions table and associated code, which is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0f920e55fcdc5c678a389e2aa4c792be5062c4ea |
24-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Remove the ConvertActions table and associated code, which is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1296c8c5a5aa965e377f011b4b3d742b3a80f9f8 |
23-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Revert 99335. getTypeToExpandTo's iterative behavior is actually needed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
bc7a902713c4e3f13a93c383e647d2a18712f447 |
23-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Revert 99335. getTypeToExpandTo's iterative behavior is actually needed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
37d4cb15530e2548de231844437786fcd162af28 |
23-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Remove getTypeToExpandTo, since it isn't adding much value beyond just calling getTypeToTransformTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99335 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
349074896f17cdebf484f6be97248c6545ecf93b |
23-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Remove getTypeToExpandTo, since it isn't adding much value beyond just calling getTypeToTransformTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99335 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
e3bd242f787abda9e2df6aad53327b38900bcd59 |
23-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Ignore dbg_value's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99321 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f1250eeadf39ed34c852d43de6c6780d5d5176dc |
23-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Ignore dbg_value's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99321 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b24e42ee5a9aec166bc2ceaa773fe55835c7bb35 |
23-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99319 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
112e5e7eff408cb106386a0641db258048bcc836 |
23-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99319 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
f50a4230014a4c5839f5bbe97528443466cddf59 |
23-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR6673: updating the callback should not clear the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99227 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
ea16ea59011ce6d5d9baaab16c33b1457ceab0da |
23-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR6673: updating the callback should not clear the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99227 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
7ac3983d770591af6acf0e719fe45cb735568187 |
23-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Emit DW_AT_low_pc and DW_AT_high_pc attributes for TAG_compile_unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99225 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4a602caf2e973f4446f4eec366124077ce91d06d |
23-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Emit DW_AT_low_pc and DW_AT_high_pc attributes for TAG_compile_unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99225 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e76111a0ed9970f98e133d6b3e8d697c94298e26 |
22-Mar-2010 |
Devang Patel <dpatel@apple.com> |
DW_AT_stmt_list attribute attached with a compile unit encodes offset of line number information for this compile unit in debug_line section. This offset is always zero when only one compile unit is emitted in a object file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99223 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0493f95a2cc8f4faea3df1b97d613ae87c670153 |
22-Mar-2010 |
Devang Patel <dpatel@apple.com> |
DW_AT_stmt_list attribute attached with a compile unit encodes offset of line number information for this compile unit in debug_line section. This offset is always zero when only one compile unit is emitted in a object file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99223 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c69189190c46ee75fbd5d55c2827e05a41abfb27 |
22-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99214 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
a69ec09364213311f1ced39271a30f39076b207e |
22-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99214 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
2944ced3daaaa3b568c1604f69656a1c616a40d4 |
22-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix a memory leak from DIE::addSiblingOffset() by adding the DIEValue it allocates to DwarfDebug::DIEValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
638fe8dd62f0bd37a0ae7374eea280c224a84b6f |
22-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix a memory leak from DIE::addSiblingOffset() by adding the DIEValue it allocates to DwarfDebug::DIEValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
214197cf1bbbf826023d83ac8f02c8559f3cd98e |
22-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99195 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
fc91114a2e622776d003d121eebc3c1b79f418f3 |
22-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99195 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
3daefb714fe9693ba7032fb8c5137dee3ae8f1d7 |
21-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Free SavedLI even if SimpleRegisterCoalescing::JoinCopy() returns early. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99113 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6b4c12db13cf7dd570b12b6373f6b9b839f7d788 |
21-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Free SavedLI even if SimpleRegisterCoalescing::JoinCopy() returns early. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99113 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4739e8492ddee17ca9bcb8cc514216739ffa5c72 |
19-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Stop trying to merge identical jump tables. This had been inadvertently disabled for several months (since svn r88806) and no one noticed. My fix for pr6543 yesterday reenabled it, but broke the ARM port's code for using TBB/TBH. Rather than adding a target hook to disable merging for Thumb2 only, I'm just taking this out. It is not common to have identical jump tables, the code we used to merge them was O(N^2), and it only helps code size, not performance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98977 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineFunction.cpp
|
80d23705e6df49a41298fd345be6f8a8d72f4fd0 |
19-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Stop trying to merge identical jump tables. This had been inadvertently disabled for several months (since svn r88806) and no one noticed. My fix for pr6543 yesterday reenabled it, but broke the ARM port's code for using TBB/TBH. Rather than adding a target hook to disable merging for Thumb2 only, I'm just taking this out. It is not common to have identical jump tables, the code we used to merge them was O(N^2), and it only helps code size, not performance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98977 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineFunction.cpp
|
242cfb9313ebd53ae2c91c10f706c9ed8699e9a1 |
19-Mar-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed a widening bug where we were not using the correct size for the load git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
c1e5d491a0bd99a71c87f6a69bafbecd2f948c82 |
19-Mar-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed a widening bug where we were not using the correct size for the load git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
c761f639f56add3f00ac84e2379d30d648a8bb81 |
18-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Get rid of target-specific nodes for fp16 <-> fp32 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f0d500768d1a42e91c6324e6c8677cbe26df6e27 |
18-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Get rid of target-specific nodes for fp16 <-> fp32 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7616a1ef5c411f4503cc99bf0a12a863551edf95 |
18-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Define placement new wrappers for BumpPtrAllocator and RecyclingAllocator to allow client code to be simpler, and simplify several clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98847 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
|
9553188fccbf0ae9c5b6bef26d0d2bd5feff8b59 |
18-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Define placement new wrappers for BumpPtrAllocator and RecyclingAllocator to allow client code to be simpler, and simplify several clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98847 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
|
1f8f580940e6374729d9190b931175c8636d8ad2 |
18-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to always create a new jump table. The intention was to avoid merging jump tables in SelectionDAGBuilder, and to wait for the branch folding pass to merge tables. Unfortunately, the same getJumpTableIndex() method is also used to merge tables in branch folding, so as a result of this change branch tables are never merged. Worse, the branch folding code is expecting getJumpTableIndex to always return the index of an existing table, but with this change, it never does so. In at least some cases, e.g., pr6543, this creates references to non-existent tables. I've fixed the problem by adding a new createJumpTableIndex function, which will always create a new table, and I've changed getJumpTableIndex to only look at existing tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98845 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d1ec31dca534a8816d7f2fcbfdc7ed4476b471d3 |
18-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to always create a new jump table. The intention was to avoid merging jump tables in SelectionDAGBuilder, and to wait for the branch folding pass to merge tables. Unfortunately, the same getJumpTableIndex() method is also used to merge tables in branch folding, so as a result of this change branch tables are never merged. Worse, the branch folding code is expecting getJumpTableIndex to always return the index of an existing table, but with this change, it never does so. In at least some cases, e.g., pr6543, this creates references to non-existent tables. I've fixed the problem by adding a new createJumpTableIndex function, which will always create a new table, and I've changed getJumpTableIndex to only look at existing tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98845 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAGBuilder.cpp
|
35922008a8512a972ab3dfca0cf8aa00197dc1b5 |
18-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Add explicit braces to avoid ambiguous ‘else’. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98838 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
1584390e550b1430fccfd100846844f9fdf6c15b |
18-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Add explicit braces to avoid ambiguous ‘else’. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98838 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
67b64b54702d1363b1740d7743c147be04d48905 |
18-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1ac2429d1f1b89a9a9c0397ef63c4f4fa535fee8 |
18-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c66e78f345a4ab7b5223dc0dc48afe58e227d197 |
18-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Change coalescer complexity from N^2 to N logN by changing one letter." This reverts commit 98776. It broke the llvm-gcc boot strap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98784 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ec1176a206229b8aab0106715e640646d3efb692 |
18-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Change coalescer complexity from N^2 to N logN by changing one letter." This reverts commit 98776. It broke the llvm-gcc boot strap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98784 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1fa4f857d2edaaa97c35715f3adce2beba923480 |
18-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Debug info intrinsic does not intefer during tail call optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c3188ce0f1ff2d1b830702a93134905b9719f410 |
18-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Debug info intrinsic does not intefer during tail call optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1e9c3873f517c24ecbfc8496b511b9b9cf42ea7e |
18-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change coalescer complexity from N^2 to N logN by changing one letter. Remove ugly hack that aborted the coalescer before using N^2 time. This affects functions with very complicated live intervals for physical registers, i.e. functions with thousands of function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98776 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0427b2ac4521de363a99b445567c006afd8b3d6e |
18-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Change coalescer complexity from N^2 to N logN by changing one letter. Remove ugly hack that aborted the coalescer before using N^2 time. This affects functions with very complicated live intervals for physical registers, i.e. functions with thousands of function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98776 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b912cf31469e44fe2cd6252b356b7368db0cf4d8 |
17-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Fix EmitSectionOffset incorrect argument. DwarfDebug is emitting debug info so isEH is always false. This was hiding until now from compilers because of default arguments. This was hiding from dwarf debug info users because for most of the platform isAbsoluteEHSectionOffsets() is same as isAbsoluteDebugSectionOffsets(). But Chris found it while updating dwarf printer to use MC*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98743 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5b33f3148c7495a5411109454fd1bd74baa291f6 |
17-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Fix EmitSectionOffset incorrect argument. DwarfDebug is emitting debug info so isEH is always false. This was hiding until now from compilers because of default arguments. This was hiding from dwarf debug info users because for most of the platform isAbsoluteEHSectionOffsets() is same as isAbsoluteDebugSectionOffsets(). But Chris found it while updating dwarf printer to use MC*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98743 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6803e53ec9e1ed1cc4221eed1b93c672346dc26e |
17-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix GetOrCreateTemporarySymbol to require a name, clients should use CreateTempSymbol() if they don't care about the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98712 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
77e76940269b1bed36bc31ee5139b5c90fd13836 |
17-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix GetOrCreateTemporarySymbol to require a name, clients should use CreateTempSymbol() if they don't care about the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98712 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
8ef7e2159fc1cccf6308d20f5ef7872c344e2253 |
17-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Remove a check that can no longer be true, after r84803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98694 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a1bdfc3c7fcd7bf8e42c6e4805bfb694230c7a55 |
17-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Remove a check that can no longer be true, after r84803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98694 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
131e650578a8a506f4afb531bc557de1727f3098 |
16-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix liveintervals handling of dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98686 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4507f089d48c5adb454cd12b68333d5590ce05dd |
16-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix liveintervals handling of dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98686 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
535969b90b24725bd3145ffd638077a5dd5e50fd |
16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reapply r98656 unmodified, which exposed the asmprinter not handling constant unions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98680 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
93b122d3c484a8451024d6947be0f4037f86def0 |
16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reapply r98656 unmodified, which exposed the asmprinter not handling constant unions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98680 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
2aa0da2d8ec527695e826a57bdda33f1b3ea4756 |
16-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Ignore debug value instructions while analyzing BB for tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98675 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
cbe1e31732c5d4fb1277195e76b9b42c115396aa |
16-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Ignore debug value instructions while analyzing BB for tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98675 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
15b64f335b2d8566d58a5e791c12c0ca0a17fe7a |
16-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r98656, its breaking all over the place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98662 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
b85c7100c5f1ef34bace56c6978eca429df798f6 |
16-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r98656, its breaking all over the place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98662 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
777448f6491b6b82e2c39f11d353e39c24dd20e2 |
16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
improve support for uniontype and ConstantUnion, patch by Tim Northover! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98656 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
8b3b34f410f2bd05943e1c6f9b0514209731421d |
16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
improve support for uniontype and ConstantUnion, patch by Tim Northover! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98656 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAGBuilder.cpp
|
617d39e2eb1da40b9871e0e9f49a31914f3a8be2 |
16-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Use getFirstTerminator(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98604 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b0d27662ea513eb6ea08c3c5101d27fc50da7fb2 |
16-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Use getFirstTerminator(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98604 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
5c3a53f149ec5c4b40c599e7cde8136527d006c1 |
16-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
When checking if something's killed, don't rely simply on whether it's marked as "used outside of the block". If the block ends in a return, then it won't be used outside of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98599 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
8fe347a8b5f0d5dc4d3aea1fc3d3c4b21b6c686f |
16-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
When checking if something's killed, don't rely simply on whether it's marked as "used outside of the block". If the block ends in a return, then it won't be used outside of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98599 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
cc1205defee0918c2d10c66a3abfbfc19a0cec1a |
16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix the third (and last known) case of code update problems due to LLVM IR changes with addr label weirdness. In the testcase, we generate references to the two bb's when codegen'ing the first function: _test1: ## @test1 leaq Ltmp0(%rip), %rax .. leaq Ltmp1(%rip), %rax Then continue to codegen the second function where the blocks get merged. We're now smart enough to emit both labels, producing this code: _test_fun: ## @test_fun ## BB#0: ## %entry Ltmp1: ## Block address taken Ltmp0: ## BB#1: ## %ret movl $-1, %eax ret Rejoice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98595 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
|
999aee24c7b7511575146b9950bb85830fab0378 |
16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix the third (and last known) case of code update problems due to LLVM IR changes with addr label weirdness. In the testcase, we generate references to the two bb's when codegen'ing the first function: _test1: ## @test1 leaq Ltmp0(%rip), %rax .. leaq Ltmp1(%rip), %rax Then continue to codegen the second function where the blocks get merged. We're now smart enough to emit both labels, producing this code: _test_fun: ## @test_fun ## BB#0: ## %entry Ltmp1: ## Block address taken Ltmp0: ## BB#1: ## %ret movl $-1, %eax ret Rejoice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98595 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
|
12759cef26b06f95d1290e60c2bb27a7b411edb7 |
15-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Now that the default for Darwin platforms is to place the LSDA into the TEXT section, remove the target-specific code that performs this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98580 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
505ad8bed3321bc4b99af8fba4844efe2fe9e67a |
15-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Now that the default for Darwin platforms is to place the LSDA into the TEXT section, remove the target-specific code that performs this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98580 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
f6853ffef510c3c0217e7e3c98969d82b56585ed |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Implement support for the case when a reference to a addr-of-bb label is generated, but then the block is deleted. Since the value is undefined, we just emit the label right after the entry label of the function. It might matter that the label is in the same section as the function was afterall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98579 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
|
9cc0da9c29302e9463a6f31ba705c8e1b6f4cea1 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Implement support for the case when a reference to a addr-of-bb label is generated, but then the block is deleted. Since the value is undefined, we just emit the label right after the entry label of the function. It might matter that the label is in the same section as the function was afterall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98579 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
|
f58a372722e320fe18c48c19fe8677ad1ff552c7 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use Mang->getSymbol() more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98577 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
4c6741f7078f3a9f655e67bf56bd4d5d427fc6bc |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use Mang->getSymbol() more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98577 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
893a97f1da187009c5028ffd3a93f99fc728c3c0 |
15-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Create SDDbgValue for dbg_value intrinsics and remember its connections with DAG nodes. This is a work in progress. Patch by Dale Johannesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
001903485fc78a4ae5f33420b25db73a22bfdf4a |
15-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Create SDDbgValue for dbg_value intrinsics and remember its connections with DAG nodes. This is a work in progress. Patch by Dale Johannesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7770603fdc5bce161f3ead4bc8f490d716efb141 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix the case when a reference to an address taken BB is emitted in one function, then the BB is RAUW'd before the definition is emitted. There are still two cases not being handled, but this should improve us back to the situation before I touched anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98566 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
0220ba7995236accae6ac009a2700871fc17007d |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix the case when a reference to an address taken BB is emitted in one function, then the BB is RAUW'd before the definition is emitted. There are still two cases not being handled, but this should improve us back to the situation before I touched anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98566 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
7e90c68d16bf8b1efe8cdfa2f55db661bf6de5cc |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
revert r98550, it isn't necessary or sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98558 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
88698f5dbcaa34c4d4e7c1bed7992c976183040a |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
revert r98550, it isn't necessary or sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98558 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
14da02f654287314ec1235a165cd11bab1ec62b4 |
15-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Emit dwarf variable info communicated by code generator through DBG_VALUE machine instructions. This is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98556 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
electionDAG/SelectionDAGISel.cpp
|
90a48adf9cbea48f5318a5eb778056b4413e2ec0 |
15-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Emit dwarf variable info communicated by code generator through DBG_VALUE machine instructions. This is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98556 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
electionDAG/SelectionDAGISel.cpp
|
29c73ab16b0797e87316b3933aa3f9e307cf5436 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't eliminate address-taken blocks here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98550 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
fc6e69bcb2c8b9157164adfaa0c86115e7356cd0 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't eliminate address-taken blocks here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98550 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
63607d03b36007ff135dff8103b42a33e64ef80b |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
SIGN_EXTEND from the same type as the dest is valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ed7d10e1000ae88c9ec7a0db6002eb8b8543a470 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
SIGN_EXTEND from the same type as the dest is valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f53c2c785cd37ffd76f0a5db506fdef0ca9f100e |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
sink the call to VT.getSizeInBits() down into its uses, not all unary nodes necessarily have a simple result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7fb5c2dbec26b7de959269ade8906a7a1b6c7539 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
sink the call to VT.getSizeInBits() down into its uses, not all unary nodes necessarily have a simple result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
359e0b286694797598179563ff076e429a63321e |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix MCSectionELF to not leak memory, just like I did for MCSymbol. MCSectionMachO is already fine (yay for fixed size arrays?), MCSectionCOFF still leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98537 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
1f8008cf214b984954de2e986fb8cb0e5cc58606 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix MCSectionELF to not leak memory, just like I did for MCSymbol. MCSectionMachO is already fine (yay for fixed size arrays?), MCSectionCOFF still leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98537 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
54e7364e4b37a5698f1f2317bf73615b6410dbbc |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98526 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a833f6b0617228fa11f7d94bbabf87f737124a57 |
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98526 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ba137984eaac1bed6df9241e88688787f476570e |
14-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove pointless forward declaration, MSVC got confused by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98519 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadataPrinter.cpp
|
1610d430bead10168bc2c16fea5883463470481a |
14-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove pointless forward declaration, MSVC got confused by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98519 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadataPrinter.cpp
|
7e59edf0656c5211c0021bcf443ff05c5dfcd334 |
14-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Turn calls to copysignl into an FCOPYSIGN node. Handle FCOPYSIGN nodes with ppc_f128 type by having the type legalizer turn these back into a call to copysignl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
d2c817eff1d158398fb0a620fa762bf95207922f |
14-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Turn calls to copysignl into an FCOPYSIGN node. Handle FCOPYSIGN nodes with ppc_f128 type by having the type legalizer turn these back into a call to copysignl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
1899ca3358e0f0477781472c3b0f4868b9d6e42b |
14-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename SDDbgValue.h to SDNodeDbgValue.h for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SDDbgValue.h
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
a8efe28a44996978faa42a387f1a6087a7b942c7 |
14-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename SDDbgValue.h to SDNodeDbgValue.h for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SDDbgValue.h
electionDAG/SDNodeDbgValue.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
214e738aabd76b123b2d1a0529b4f709141d014c |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix ShrinkDemandedOps to not leave dead nodes around, fixing PR6607 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98512 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c4a3f23b9251b07785cca646ad27b426dfa23230 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix ShrinkDemandedOps to not leave dead nodes around, fixing PR6607 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98512 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b6e225c0ede0d38e557b4f2bf77e617dc5c1e858 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rewrite ShrinkDemandedOps to be faster and indent less, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
25e0ab9ae5507b0589be852f54693dec66796f0e |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rewrite ShrinkDemandedOps to be faster and indent less, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
628fdf4475a248a496afb3c167d49a18a3fe006c |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make -view-isel-dags print after the 'ShrinkDemandedOps' pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98509 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
552186dfd3238a43655ffda1b5adadec461c9886 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make -view-isel-dags print after the 'ShrinkDemandedOps' pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98509 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
899c5cfbecf4221a3268384e417e85c29c130594 |
14-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make default expansion for FP16 <-> FP32 nodes into libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
927411b7ce0b7852fe4f392d8cd4faaa3881f852 |
14-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make default expansion for FP16 <-> FP32 nodes into libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
819e9e696f01ab31a92f558848b0a1e7f0b2ff18 |
14-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add DAG nodes to represent FP16 <-> FP32 intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98500 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
be5b032e4b06ae001098856c2dc4ebca41528132 |
14-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add DAG nodes to represent FP16 <-> FP32 intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98500 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4489414d44a8621632e5e97253055452b2c66382 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix AsmPrinter::GetBlockAddressSymbol to always return a unique label instead of trying to form one based on the BB name (which causes collisions if the name is empty). This fixes PR6608 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98495 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
3b9d6216a41cfd43759e787db26d797e1f0ba0a8 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix AsmPrinter::GetBlockAddressSymbol to always return a unique label instead of trying to form one based on the BB name (which causes collisions if the name is empty). This fixes PR6608 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98495 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
54e56f247fa9361208901ff6009499cdffe41b05 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
get MMI out of the label uniquing business, just go to MCContext to get unique assembler temporary labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98489 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
63d7836267298f5b6cde43f0a89acbabfc109f48 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
get MMI out of the label uniquing business, just go to MCContext to get unique assembler temporary labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98489 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d5060b8782344d73a2f5a10bbeb717427efc75d0 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't use getDWLabel("label" anymore, always go through MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98485 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8d9aaba84e80d40093fa8e1fe452a5ddcb4cc7f7 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't use getDWLabel("label" anymore, always go through MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98485 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
25e3d086379011fe80085d4e866e89dbfa1e8ffa |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove now-dead code, all labels use MCSymbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
0397ada8ae1d1bc71037d8cd4a855d3ff04acbbb |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove now-dead code, all labels use MCSymbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
8d9d06a458385706f5ca92d2890dc8faae452a9c |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change SrcLineInfo to contain a label instead of a label ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
25b68c6770b7ba044ad37e0aed4f1c414f3b5209 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change SrcLineInfo to contain a label instead of a label ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6090b4245384dcca0d2188165825917384d1350d |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Now that DBG_LABEL is updated, we can finally make MachineMove contain an MCSymbol instead of a label index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98482 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
2e9919a5e5fe76f4b1e3290103c4bfd149ebba9c |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Now that DBG_LABEL is updated, we can finally make MachineMove contain an MCSymbol instead of a label index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98482 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
359731acbae700a9590257899bf54c05fee8a9cd |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the DBG_LABEL MachineInstr to always be created with an MCSymbol instead of an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98481 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6ffcccab5191ef1dcde876800c24a1f58b3b7ad8 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the DBG_LABEL MachineInstr to always be created with an MCSymbol instead of an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98481 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e71efe3e3cb30b10dc266abe9cd445f26ad8a402 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
unbreak the build, grr symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98477 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
9a38e67590fa1431bd7e950f4ce2684d9f572176 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
unbreak the build, grr symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98477 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
118964b2f1cc8f64e302833b5d501cdcd61c6bec |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Change this code to allocate temporary labels from mccontext, not from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98475 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
90f172aa80b6dc98188ca32c66a438b6f6ed91e7 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Change this code to allocate temporary labels from mccontext, not from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98475 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
0ede4555ac1c1e207285264a2ff546d46d0f8efd |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
switch GC_LABEL to use an MCSymbol operand instead of a label ID operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98474 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
|
aba9bcb9b60edbad3646b2f3088c120d06549cc7 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
switch GC_LABEL to use an MCSymbol operand instead of a label ID operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98474 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
|
717599e12b75880fa58dbdabf8671f4806104d86 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix some EH failures on NNT I introduced in r98461 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98471 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
f14645cc6474dab76b266906575ce4e4d018e9ee |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix some EH failures on NNT I introduced in r98461 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98471 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
c6169fc4776a1474166362fd2343f2296b298d75 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug I introduced in r98459, causing some NNT failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
21f9c8de53936ad5aa9e1f37cc68efa493c2ca94 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug I introduced in r98459, causing some NNT failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
8574dddd63edcb47af66df3ea309ff03a6b04549 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
7561d480953e0a2faa4af9be0a00b1180097c4bd |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
7e6559526af9f502d5f245b2fd02041a243387e8 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate InvalidateLabel and LabelIDList from MMI and replace them with a counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98462 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineModuleInfo.cpp
ailDuplication.cpp
nreachableBlockElim.cpp
|
18589de9b1b8c157dea602653042e486128dd9e4 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate InvalidateLabel and LabelIDList from MMI and replace them with a counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98462 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineModuleInfo.cpp
ailDuplication.cpp
nreachableBlockElim.cpp
|
31ae74daf3babf1733bb19cdef09eee8220d3497 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use Label->isDefined() instead of isLabelDeleted() now that we consistently use MCSymbol and only call this predicate after they should have been emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98461 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
b91306053d0aebd748bf854f05d93cd1939a1543 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use Label->isDefined() instead of isLabelDeleted() now that we consistently use MCSymbol and only call this predicate after they should have been emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98461 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
e3330170d608053806e37c4dc953f15cf47b3388 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change EH related stuff (other than EH_LABEL) to use MCSymbol instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
LFCodeEmitter.h
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1611273351d75b5cbe2a67485bb9831d5916fe26 |
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change EH related stuff (other than EH_LABEL) to use MCSymbol instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
LFCodeEmitter.h
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d13daf889c4864428fa13fdf88a50a2fa6367c34 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the now-unneeded context argument of MBB::getSymbol() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98451 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
|
1b2eb0e8a6aaf034675b17be6d853cb1c666200f |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the now-unneeded context argument of MBB::getSymbol() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98451 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
|
f4853459db476c7487bc5b4b5bd68c5c7f995600 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rearrange MCContext ownership. Before LLVMTargetMachine created it and passing off ownership to AsmPrinter. Now MachineModuleInfo creates it and owns it by value. This allows us to use MCSymbols more consistently throughout the rest of the code generator, and simplifies a bit of code. This also allows MachineFunction to keep an MCContext reference handy, and cleans up the TargetRegistry interfaces for AsmPrinters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineModuleInfo.cpp
|
11d53c129fc9c2a4510605ec0a1696f58750af52 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rearrange MCContext ownership. Before LLVMTargetMachine created it and passing off ownership to AsmPrinter. Now MachineModuleInfo creates it and owns it by value. This allows us to use MCSymbols more consistently throughout the rest of the code generator, and simplifies a bit of code. This also allows MachineFunction to keep an MCContext reference handy, and cleans up the TargetRegistry interfaces for AsmPrinters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineModuleInfo.cpp
|
40918f9a8189ca619fa64f12c744f1852f1c4223 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add support for MCSymbols as operands to MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98433 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
72aaa3c79869870bd16402ed1f37b80a5e71c800 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add support for MCSymbols as operands to MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98433 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
dd4f4f8db0b0a379b7169137e9e1123e0457ff61 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
simplify EmitFrameMoves to take BaseLabel in as a symbol instead of as a stem+idx pair, simplify the "is a new location" check to use symbol comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
5e6cbe0eff1249daaa02807f8cb4b33d43fdf985 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
simplify EmitFrameMoves to take BaseLabel in as a symbol instead of as a stem+idx pair, simplify the "is a new location" check to use symbol comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
314e3362ddb8933bbc7e48358280005bf08cea74 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
factor some labels, simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98429 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
fb65807c349b82e3f464158e89acd894cbd0b6ed |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
factor some labels, simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98429 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
dd21da85d8c49cc756fdc73397ab6728290655c0 |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
various cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98426 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
206d61e62f02f5ea5eefdd125dc48ff28f15da4a |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
various cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98426 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0f093f88ff73a4fc34658c0455a5be368d94eacc |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reimplement the string pool used for inlined function entries to not thrash std::strings and MCSymbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98415 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bc733f54c0d344d72aadf2f925a08babfeb7ea6a |
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reimplement the string pool used for inlined function entries to not thrash std::strings and MCSymbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98415 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
dd9a08f0ef4c1a8fb08a7d73f3ddb836db26c78d |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove gone method, grr symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98392 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
528a126d326e186f0efd1c864f507e795f251675 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove gone method, grr symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98392 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
90825795edd087fbf23aa439075b791b2b2be878 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline the now-trivial implementation of GetGlobalValueSymbol into some of its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98388 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
deb0cba1bad5a46bbecb75666e415c3dee9c89eb |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline the now-trivial implementation of GetGlobalValueSymbol into some of its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98388 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
2a2a67300bbc6da884a2b12d1f97c92ea7ebbd14 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
give Mangler access to TargetData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
b87c305fa77650ee581d4a8c65a0757f88002441 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
give Mangler access to TargetData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
81199d536aff3725dad0dab10a485bf749b63bda |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
finally give Mangler a getSymbol method, which returns an MCSymbol for a global instead of messing around with string buffers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
73ff564d65e9c748562c5734d1f72a2a233f0275 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
finally give Mangler a getSymbol method, which returns an MCSymbol for a global instead of messing around with string buffers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0a74342b9e610529bb7c400aece9be6483d8484d |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
0d941c15c0c88e062b548b74e0805e0ffb7427fe |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
4aeebec75cfa9bda32788bc338c82781d02dc060 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make the mangler take an MCContext instead of an MAI. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LVMTargetMachine.cpp
|
5ef31a039dbb9c36cfd78442b3554d1b6974ec4c |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make the mangler take an MCContext instead of an MAI. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LVMTargetMachine.cpp
|
6489bbbe9915d526aba2b749d601f8176b6ffff1 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove MAI argument from createAsmStreamer since it can get it from the context now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98361 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fdab14b10564283028e9bdb628d095feae7fa071 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove MAI argument from createAsmStreamer since it can get it from the context now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98361 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
3317849de1728ea522a06982d08099a86c24c006 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug emitting .secrel32 that I introduced, PR6587, patch by A.Mazur! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
20e3280f3fdd3f306edcdc8a92a3be05d184f434 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug emitting .secrel32 that I introduced, PR6587, patch by A.Mazur! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98360 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
ecca2e6a2e156bc1197e79138382f34457f67a44 |
12-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Free DbgScopes in DwarfDebug::endFunction(). Also increased the const-ness of several fields to make it easier to figure out where bugs might be creeping in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5c213dc78cc717c30908212049e35cfdb950fa24 |
12-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Free DbgScopes in DwarfDebug::endFunction(). Also increased the const-ness of several fields to make it easier to figure out where bugs might be creeping in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
21c2a825b0362e5ac2fba700dbe903425647f2b6 |
12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Revert turning copysignl into a COPYSIGN node for the moment: ppc calls copysignl with a 128 bit ppc long double, resulting in a node that the type legalizer doesn't know how to expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0ac5d2d7ffd1a8cfbecf4c3834dc557a18c7ee0a |
12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Revert turning copysignl into a COPYSIGN node for the moment: ppc calls copysignl with a 128 bit ppc long double, resulting in a node that the type legalizer doesn't know how to expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0617f31129f3223f5e307793e20fd03c0273fa84 |
12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Now that it's supported, turn copysignl into a COPYSIGN node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
bb2f0c541c1bcf05131b66e4aa036229fc5f068b |
12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Now that it's supported, turn copysignl into a COPYSIGN node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fbb152823a5f8b97ea606152cdf0507551fa7c9c |
12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Fix PR6522: implement copysign expansion for x86 long double (it seems that FreeBSD doesn't have copysignl). Done by removing a bunch of assumptions from the code. This may also help with sparc 128 bit floats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5d54b4112d7b8bcd49a07e398ebff263fac1eb9c |
12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Fix PR6522: implement copysign expansion for x86 long double (it seems that FreeBSD doesn't have copysignl). Done by removing a bunch of assumptions from the code. This may also help with sparc 128 bit floats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
219a8bed7b44ee401da3ec15109f39daa5f31fa2 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6577, a bug in sdbuilder lowering select instructions whose true value was not Val#0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b3e87b2262087cf69f7461e4bc586cdb747434f7 |
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6577, a bug in sdbuilder lowering select instructions whose true value was not Val#0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7666701e215354e50aeca18626056c7eeaad3498 |
12-Mar-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to create specification DIE for definitions at DIFile level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1b596e399bd284bc7c2f48fb2e5a852452faf3dd |
12-Mar-2010 |
Devang Patel <dpatel@apple.com> |
There is no need to create specification DIE for definitions at DIFile level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fb2a90f8d0168277b2bb749fcc1c70b006ffd4e4 |
12-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract methods from LocalRewriter::RewriteMBB bringing it down to 666 lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98295 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
56698803d94575dacee59b4515067864d5282239 |
12-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract methods from LocalRewriter::RewriteMBB bringing it down to 666 lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98295 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
fd0f12e3443dab14a052aa965ab4fddf3b9a0b80 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change MCContext to always have an MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98293 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
|
c18409aed80ba1c6c5998befd3c3c8edc865c423 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change MCContext to always have an MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98293 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
|
8364cff8d7ee2dfa26ae700865c31e66ccf0dd31 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a fixme in TargetLoweringObjectFile::getExprForDwarfReference where we used ot create an MCSymbol for ".". Now emit an assembler temporary label and reference it instead of "." textually. rdar://7739457 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98292 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
42263e2e407ab7d1d805e7b41cffd7217134d3b6 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a fixme in TargetLoweringObjectFile::getExprForDwarfReference where we used ot create an MCSymbol for ".". Now emit an assembler temporary label and reference it instead of "." textually. rdar://7739457 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98292 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
a14fdab9680e07363a2784ff0cf6604f7bdd414d |
11-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Remove getWidenVectorType, which is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98289 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a257095ebb29fd223be2fdbf86d542c5bdfe05f0 |
11-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Remove getWidenVectorType, which is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98289 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d96b9ea0e0d41556bb33e98d23fe6e057d45c2e8 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rename getSymbolForDwarf* to getExprForDwarf* since it returns an MCExpr and not an MCSymbol. Change it to take an MCStreamer, which is currently unused. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98278 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
3192d14076dbe5724ce85b9d48644bb3c081f0e5 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rename getSymbolForDwarf* to getExprForDwarf* since it returns an MCExpr and not an MCSymbol. Change it to take an MCStreamer, which is currently unused. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98278 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
argetLoweringObjectFileImpl.cpp
|
12e32e6ca75ba22c09d7dcbd4836c7604a2f58c0 |
11-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
In case of tail call size of Ins and InVals may not match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
af1871fa6dc916ef1ab5b4b30cf56aa134fcff19 |
11-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
In case of tail call size of Ins and InVals may not match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c3545716b952d0e1a1043fd21852c72418098023 |
11-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Avoid leaking CompileUnits in DwarfDebug.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98268 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d0f393d46f159f3349e219f9af6880b037822193 |
11-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Avoid leaking CompileUnits in DwarfDebug.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98268 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9f3cfe66353a3cf1accccb0fc82d4d2f62ee5fe7 |
11-Mar-2010 |
Richard Osborne <richard@xmos.com> |
Add a new jump table encoding to indicate jump tables entries are inside the function by the target at the point of use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98255 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
|
95da605e15a6f108b551ecc6772823ea53de3007 |
11-Mar-2010 |
Richard Osborne <richard@xmos.com> |
Add a new jump table encoding to indicate jump tables entries are inside the function by the target at the point of use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98255 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
|
197e06c45d80790f0aff1282f81418332e49fda3 |
11-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
The check for coalescing a virtual register to a physical register, e.g. cl = EXTRACT_SUBREG reg1024, 1, is overly conservative. It should check for overlaps of vr's live interval with the super registers of the physical register (ECX in this case) and let JoinIntervals() handle checking the coalescing feasibility against the physical register (cl in this case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98251 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
826cbac2a0cef418fd8949813761c2ed975f3df1 |
11-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
The check for coalescing a virtual register to a physical register, e.g. cl = EXTRACT_SUBREG reg1024, 1, is overly conservative. It should check for overlaps of vr's live interval with the super registers of the physical register (ECX in this case) and let JoinIntervals() handle checking the coalescing feasibility against the physical register (cl in this case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98251 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
c920384bda471d0861967e9b84db1180ac59ed13 |
11-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Remove dead include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0193c0994bddb24225e47f91c19b9e75f8aebd44 |
11-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Remove dead include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c8fe0b0fd8ba50bbcc51bac76bf1660dd35cc5f1 |
11-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix debug_value handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98224 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
e68ea060c78356253d771e039747fbc06c623646 |
11-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix debug_value handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98224 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
d155a234986a4bec204bdc755c918651a2abe5ed |
11-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Provide MCAssembler with a TargetAsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98222 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1f3e445184e5ca2aa4295c2a77f2a4e0b957fea1 |
11-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Provide MCAssembler with a TargetAsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98222 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
47827503ecf990f0f5bf1e2eed3827bd7ebda966 |
11-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
VirtRegRewriter spring cleaning. No functional change. Move methods out of line and M-x whitespace-cleanup. Promote common method arguments to member variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98207 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
2cb4202f0748ed1e1a40a85dc9cc805629262abf |
11-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
VirtRegRewriter spring cleaning. No functional change. Move methods out of line and M-x whitespace-cleanup. Promote common method arguments to member variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98207 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
d9a7d298929fc46d2093be94a3901c98dac3ecc8 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6533 by updating the br(xor) code to remember the case when it looked past a trunc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f2f64e906372a3008112420b15daeb68c3e942e3 |
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6533 by updating the br(xor) code to remember the case when it looked past a trunc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9ff9443988f5cc98d698d7a2a5623fb90954c8d9 |
11-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Cosmetic: lengthen names and improve comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98202 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SDDbgValue.h
|
e3b8533e711718ffa5366cbc8fdf7c6881b8cb02 |
11-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Cosmetic: lengthen names and improve comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98202 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SDDbgValue.h
|
ce99651283626c14f32f25d4b0dc486e14ffd41b |
10-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that indicates that an MCSymbol is external or not. (It's true if it's external.) This will be used to specify the correct information to add to non-lazy pointers. That will be explained further when this bit is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98199 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
argetLoweringObjectFileImpl.cpp
|
cebae36f57456fe6b0e13726acd1e0250654f02d |
10-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that indicates that an MCSymbol is external or not. (It's true if it's external.) This will be used to specify the correct information to add to non-lazy pointers. That will be explained further when this bit is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98199 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
argetLoweringObjectFileImpl.cpp
|
f4243fbef8bbe9ad6fe63831f32883038058f746 |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Progress towards shepherding debug info through SelectionDAG. No functional effect yet. This is still evolving and should not be viewed as final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/SDDbgValue.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
bfdf7f38523bd38ae0538861a2bfd8bdc46e5c33 |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Progress towards shepherding debug info through SelectionDAG. No functional effect yet. This is still evolving and should not be viewed as final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/SDDbgValue.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
05719e6bdef6162bcd4c74882f28ad88c6d9747a |
10-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix another bitwidth calculation to handle vector types; based on a patch by Micah Villmow for PR6572. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8f78e3c87d462e71ddcd3d4f53446b902cc5c593 |
10-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix another bitwidth calculation to handle vector types; based on a patch by Micah Villmow for PR6572. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9387f316e147fd50315acfabe479c75391eae3fa |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix another place where DEBUG_VALUE affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98181 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2cd9ffef6e74febd727f0b548c21ba3f4e5cd26f |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix another place where DEBUG_VALUE affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98181 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
0d192b74a722dfa25d5d2abf32cbd5437f9c914a |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a bug in DEBUG_VALUE handling Devang ran into. I'll get this loop right yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98155 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a2f767b1a7ed6aa4edd6dcf65b68bf3a4ed3901e |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a bug in DEBUG_VALUE handling Devang ran into. I'll get this loop right yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98155 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
60313f81e737297349305e503b5353c11f89679c |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
move three lowering hooks from MAI to TLOF and make one of them semantic instead of syntactic. This completes MCization of darwin/x86[-64]! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98145 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
argetLoweringObjectFileImpl.cpp
|
09d53fecfcc93377627b6ee7b4d92f8a6ff152e9 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
move three lowering hooks from MAI to TLOF and make one of them semantic instead of syntactic. This completes MCization of darwin/x86[-64]! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98145 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
argetLoweringObjectFileImpl.cpp
|
117b8ddbbd6ff9a2b50cba8e4bcaa246ac0ce0ff |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
This survived a bootstrap, so let's try 98104 again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98137 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c5cf227f3dac755508928b9dee8ac6a45dcb4e4f |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
This survived a bootstrap, so let's try 98104 again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98137 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d8859015a09b34c91c803827b2d04087e0c44ede |
10-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98132 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fac4f1f1815b54346a805834a8c19d573ce8856c |
10-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98132 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
58f7d86dfa16850034769ce6d27269a5da07ac10 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mcize the rest of EH emission, only one more directive missing for darwin/x86 to be completely mcized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98130 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
974c0fb4047f7d9f190f6ca5780c7a06e6c40914 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mcize the rest of EH emission, only one more directive missing for darwin/x86 to be completely mcized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98130 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
48fb0b1ef44bbff1b7557bccfd26ca7d3825625c |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add missing filename! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98125 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
49f618a1e4814a9fa3fd2855c6e2325753df477a |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add missing filename! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98125 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
72121e4e6261beba09f5d22854cfcc3332f7c5bf |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
set the temporary bit on MCSymbols correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98124 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
achineBasicBlock.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
98cdab53c302a2d6686fa428c0e896b1fb195311 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
set the temporary bit on MCSymbols correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98124 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
achineBasicBlock.cpp
achineFunction.cpp
argetLoweringObjectFileImpl.cpp
|
259d5c987a0c14f49194d859093425446bac56f7 |
10-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a couple more heuristics to neuter machine cse some more. 1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a direct predecessor. We don't want cse of cheap instruction causing other expressions to be spilled. 2. Watch out for the case where the expression doesn't itself uses a virtual register. e.g. lea of frame object. If the common expression itself is used by copies (common for passing addresses to function calls), don't perform the cse. Since these expressions do not use a register, it creates a live range but doesn't close any, we want to be very careful with increasing register pressure. Note these are heuristics so machine cse doesn't make register allocator unhappy. Once we have proper live range splitting and re-materialization support in place, these should be evaluated again. Now machine cse is almost always a win on llvm nightly tests on x86 and x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98121 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
2938a00f29dae82e47bf4939bcc8d0ff734ef582 |
10-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a couple more heuristics to neuter machine cse some more. 1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a direct predecessor. We don't want cse of cheap instruction causing other expressions to be spilled. 2. Watch out for the case where the expression doesn't itself uses a virtual register. e.g. lea of frame object. If the common expression itself is used by copies (common for passing addresses to function calls), don't perform the cse. Since these expressions do not use a register, it creates a live range but doesn't close any, we want to be very careful with increasing register pressure. Note these are heuristics so machine cse doesn't make register allocator unhappy. Once we have proper live range splitting and re-materialization support in place, these should be evaluated again. Now machine cse is almost always a win on llvm nightly tests on x86 and x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98121 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
eb159d6ec70ddea165a2e84496cc635453f3a9c4 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline away a form of IsPCRelative, eliminating the dead IsPCRel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
d85fc6e0b1750907bacf1cd7309e85e777b23a4d |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline away a form of IsPCRelative, eliminating the dead IsPCRel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
ee3b40f64dfa5ea52a407897e966829468e1d11b |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some fixme's for MCizing. EH still has a few things that need to be MCized, but the last debug info thing are LEB and cygwin specific (which the MC api doesn't support yet) and one specific form of EmitReference which I'll tackle next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
188a87da79f51b00522b9487ee352a50a01e5ea4 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some fixme's for MCizing. EH still has a few things that need to be MCized, but the last debug info thing are LEB and cygwin specific (which the MC api doesn't support yet) and one specific form of EmitReference which I'll tackle next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
5a729995478d86e9f559b53d2ee4fb9b8c26e90b |
10-Mar-2010 |
Jim Grosbach <grosbach@apple.com> |
Clear up the last (famous last words) frame index value reuse issues for Thumb1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98109 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
7c617b5e53987d786451dd668b5113f2e2b983f8 |
10-Mar-2010 |
Jim Grosbach <grosbach@apple.com> |
Clear up the last (famous last words) frame index value reuse issues for Thumb1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98109 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
7458b8e69bfcab4c7c07177ae9d37db876d4dd4c |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Speculatively revert 98104; could be what's causing crashes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98108 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7dda453410eb957cd52cff4f8fa8d5a9c09e28df |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Speculatively revert 98104; could be what's causing crashes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98108 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
e77cd0fbe65ca3511105303a483d8782d96a5629 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mcize uses of PrintRelDirective and eliminate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98107 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
90e4af7b9d479a6766924cfa375474a870fe4a0d |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mcize uses of PrintRelDirective and eliminate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98107 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
43cfc4882a0e8e15aaef6224dd771e914f15a92d |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline the bool form of PrintRelDirective away, leaving just the unsigned form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98106 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
4aeaca40539ffd6562df22765bba3cf98e2fff9d |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline the bool form of PrintRelDirective away, leaving just the unsigned form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98106 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
9ef8efd5f3606859c5674fb7b3c6e1c60320d752 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate EOL, adding all comments with the OutStreamer.AddComment method. With this, comments should end up on the same lines as the .byte directives (for example) and we now get no output with: $ llc CodeGen/X86/2009-02-12-DebugInfoVLA.ll -o - -filetype=null -asm-verbose woot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98105 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
233f52be36a6a2ec053b1580fdf89625de256513 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate EOL, adding all comments with the OutStreamer.AddComment method. With this, comments should end up on the same lines as the .byte directives (for example) and we now get no output with: $ llc CodeGen/X86/2009-02-12-DebugInfoVLA.ll -o - -filetype=null -asm-verbose woot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98105 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
375f8bab865f8721a9c634df5bd0c512debda46e |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Ever more complicated DEBUG_VALUE fixes for branch folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98104 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7f876967c0b368de48a1d0b9318b5113fddcf591 |
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Ever more complicated DEBUG_VALUE fixes for branch folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98104 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8bd2f8f499244d677beada39759eb12926bdbb44 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate a bunch of \n's that are being printed to O. Next up is to kill off "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98102 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
|
0d9d70f0130ca609a1f41e0d90b3952751c110ab |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate a bunch of \n's that are being printed to O. Next up is to kill off "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98102 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
|
c93996e75223dbc176cd78675d1956e5424468ef |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
convert the non-"ispcrel" case of EmitReference to MC, significant debug info testcases are now all going through MCStreamer, though they print a lot of extraneous newlines to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98101 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
fcdae492ea4fc66ba547da6f761c2dd96b67fc82 |
10-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
convert the non-"ispcrel" case of EmitReference to MC, significant debug info testcases are now all going through MCStreamer, though they print a lot of extraneous newlines to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98101 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
b2247c71f6be3cb12c8aaf47c45d225e2e056856 |
09-Mar-2010 |
Jim Grosbach <grosbach@apple.com> |
Change the Value argument to eliminateFrameIndex to a type-tagged value. This is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98086 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
dff4b4c5a7cc894d3b4b6c6e779ea8f47fa50630 |
09-Mar-2010 |
Jim Grosbach <grosbach@apple.com> |
Change the Value argument to eliminateFrameIndex to a type-tagged value. This is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98086 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7f2525d3f032406712531d3341385e977abde4f2 |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow more cross-rc coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98048 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
bfc999956315ec0b29b4feb3780dd985e8e3f288 |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow more cross-rc coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98048 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
597b0fc0795cad9bc222538348a4a6c6c92b5d82 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reapply r98035: Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98047 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
c608784dc8a668abbb96e7a471e6341c1fda669f |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reapply r98035: Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98047 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
4ba1da94686b3bff553f01c2a87b037cd07e43d2 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some extra checks. I'm not sure why, but this does unbreak a failure remaining on mainline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98046 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6c7dfc046326f7c52c8df782c326b703882b3796 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some extra checks. I'm not sure why, but this does unbreak a failure remaining on mainline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98046 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4b64a67cbc845b36b6352ca4bc0eb69c8b77cc5f |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98045 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
7ef1840d9e17f8064c87982a09b99279365db700 |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98045 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a0426450dafbbff6eb574d6a1cb6fbcd9dbb92dd |
09-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't do illegal cross-class coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98044 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
1552cccc76c62513a1b38dc1d6fac2c11897cebe |
09-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't do illegal cross-class coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98044 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
2b8890f8354ef742b6917695c14826cf52b23b66 |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Make the machine cse dumb coalescer (as opposed to the more awesome simple coalescer) handle sub-register classes. - Add heuristics to avoid non-profitable cse. Given the current lack of live range splitting, avoid cse when an expression has PHI use and the would be new use is in a BB where the expression wasn't already being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98043 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineCSE.cpp
|
31f94c7c22cbf59753764bc17130dca6a73c0b4e |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Make the machine cse dumb coalescer (as opposed to the more awesome simple coalescer) handle sub-register classes. - Add heuristics to avoid non-profitable cse. Given the current lack of live range splitting, avoid cse when an expression has PHI use and the would be new use is in a BB where the expression wasn't already being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98043 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineCSE.cpp
|
47c1a21487b423574a1204c13e4d7e2493aa26cf |
09-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Speculatively revert r98035. It appears to have caused a set of buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98039 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
ee6414cf04d680d2c49b867fc6085be79ed32a44 |
09-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Speculatively revert r98035. It appears to have caused a set of buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98039 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
27a54bce61f9f1578542bbecb0043145740aac4f |
09-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Attempt to make this debug output meaningful, both in the case of multibyte opcodes and in the case of multiple scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
19b3826d0f0e299447d0a1c47d4fb2899d32d31f |
09-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Attempt to make this debug output meaningful, both in the case of multibyte opcodes and in the case of multiple scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d1644025f0362ad90323c4e6c23a5d4f5c674f38 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98035 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
1e233f510c3d5d26de97d90ec6b061a6643e892c |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98035 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
855e8f504dca2e4130c223372d1429cbbe88d418 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change DbgScope to keep track of the start/end label as MCSymbol* now that the dependence on ID is removed from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98034 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b7db73348241ff51f6ac6c4b65cd3d2ff36036b3 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change DbgScope to keep track of the start/end label as MCSymbol* now that the dependence on ID is removed from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98034 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ebf83e8dae4d0d230e8db7bda1670b9633cc4fa4 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove a useless optimization: now that label replacement never happens, the start/end of a scope can never be the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98032 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5b9062cb3ad2a60f18e941ac42a2382302c46f24 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove a useless optimization: now that label replacement never happens, the start/end of a scope can never be the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98032 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5e42343a7b40d2fc6be5516fdcb033b3be025889 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
strength reduce MMI::MappedLabel to MMI::isLabelDeleted, and add a FIXME about how we are eventually going to zap this lookup table once mc world domination is complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98031 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
achineModuleInfo.cpp
|
a34ec2290fa441d312ac33a61e6ec6029259bdef |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
strength reduce MMI::MappedLabel to MMI::isLabelDeleted, and add a FIXME about how we are eventually going to zap this lookup table once mc world domination is complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98031 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
achineModuleInfo.cpp
|
11c1f42f66fc4b9dd714c1125c11c4bbf3e22f30 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize AsmPrinter::printLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98025 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
b2cc1a39f79742320ee6ba126d9eec4d6770dee7 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize AsmPrinter::printLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98025 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
7d14541501c65eba4a23db59e70dbb0ee6deebfb |
09-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable physical register coalescing when the number of live ranges for the physreg becomes ridiculously high. std::upper_bound may be log(N), but for sufficiently large live intervals, it becomes log(N)*cachemiss = a long long time. This patch improves coalescer time by 4500x for a function with 20000 function calls. The generated code is different, but not significantly worse - the allocator hints are almost as good as physreg coalescing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98023 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
35071a08470b56dff90697618682720df7d3896c |
09-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable physical register coalescing when the number of live ranges for the physreg becomes ridiculously high. std::upper_bound may be log(N), but for sufficiently large live intervals, it becomes log(N)*cachemiss = a long long time. This patch improves coalescer time by 4500x for a function with 20000 function calls. The generated code is different, but not significantly worse - the allocator hints are almost as good as physreg coalescing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98023 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
2ab0c4432295561a9cd88bf1cbde18070ff38538 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a EmitSymbolValue convenience method to MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98017 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
6cde3e6e993126df756e3be5b9ef43540b904644 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a EmitSymbolValue convenience method to MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98017 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
ead58652052b3763b92e70ef76cf90fb26322417 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make InlineInfoLabels hold MCSymbol*'s, avoiding recomputation of the labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98016 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6ed0f90dacc7c42b48019ad035fc2767adeaf04a |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make InlineInfoLabels hold MCSymbol*'s, avoiding recomputation of the labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98016 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e90630aa8ccdad105ea95e30db647cf603ed6105 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize the last use of PrintLabelName and eliminate PrintLabelName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98015 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
b9dc5f7b580951d51cb32b56b769ccda0647a7f6 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize the last use of PrintLabelName and eliminate PrintLabelName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98015 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
84c27b212bf0db9c7a775193746ea480e131dc07 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate an argument from PrintRelDirective, sinking the one special case into EmitSectionOffset. MCize the non-special case in EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98014 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
ef6b14f51c137e7386d8a2fb568c5a96defc2d36 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate an argument from PrintRelDirective, sinking the one special case into EmitSectionOffset. MCize the non-special case in EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98014 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
416bc0a3195b13cfbdba5b9c09b67cdcc4447323 |
09-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Print the correct index in the "match failed at index" message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98013 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8f03d751619b72bffebbcd2161dcdaa4578a31e0 |
09-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Print the correct index in the "match failed at index" message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98013 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ed844324de8ee9e0d6a7957ef1e8559559dec976 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove the suffix form of PrintLabelName, which was only used for 'flavor'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98012 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
b67d69df658b1b60a40ce2dfe33c1f32e20c33bb |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove the suffix form of PrintLabelName, which was only used for 'flavor'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98012 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
819669a9aec2102b8ed02fd704b7b8389a0782e8 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
now that the debug and eh emitters use a common .set counter, we can eliminate "flavor". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98011 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
c3421bb80559c3103e5e52af11a92a02848b13b7 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
now that the debug and eh emitters use a common .set counter, we can eliminate "flavor". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98011 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
d317fefecc0da2173d513760fe48e2792248be69 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
move .set generation out of DwarfPrinter into AsmPrinter and MCize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98010 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
0d50c7620d92762eaa5c9dedd07c94f5a6a19935 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
move .set generation out of DwarfPrinter into AsmPrinter and MCize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98010 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
f8de150bd306e91b4bf7e0962982239c31d13fe6 |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98009 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
5196018d9cb80a1cc81b95c6365de24f33c5f6bb |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98009 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
6df19429b0d16020cf10afa72dbedc4e8082f3ae |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Restrict machine cse to really trivial coalescing. Leave the heavy lifting to a real coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98007 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
6c3b8ac6c9dfd7687a8097586925c09a84ab3d2e |
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Restrict machine cse to really trivial coalescing. Leave the heavy lifting to a real coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98007 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
f8bfa88c4fae4773a01204ea2ba508aa3a58392d |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
simplify EmitSectionOffset to always use .set if it is available, the only thing this affects is that we produce .set in one case we didn't before, which shouldn't harm anything. Make EmitSectionOffset call EmitDifference instead of duplicating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98005 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
57578766aa33d1a22cd124316df318db3e44f34a |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
simplify EmitSectionOffset to always use .set if it is available, the only thing this affects is that we produce .set in one case we didn't before, which shouldn't harm anything. Make EmitSectionOffset call EmitDifference instead of duplicating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98005 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
2a65fd402f4630fa79c32d7f97ffea4b8c6e2d63 |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Remove a version of EmitDifference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98002 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
effa868d385d861fd1937ccac759bebe9b76596b |
09-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Remove a version of EmitDifference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98002 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
04f37895b1d991edf1dff63c3db5feef7348182f |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate a form of PrintLabelName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
dd8187a3e9509c670162b6ae8b7115723a37f01c |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate a form of PrintLabelName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97999 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
a84ac5ce50428a30a62a0f821961206bb4f32e1c |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove another form of EmitReference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97998 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
326861c4c823faedd5123f2acd5ad83f7a547e80 |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove another form of EmitReference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97998 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
7bc335544d5214706dbc9689974559fdf7767fb3 |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the non-MCSymbol versions of EmitReference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97997 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
c7249da2e9d1b89f3b49a12dc698d6a683c32402 |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the non-MCSymbol versions of EmitReference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97997 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
6d213e8da0d7222e44197ec75d3d76ec833be0df |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize EmitLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97996 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
f829eef8facab98ecb0fab5823511596b4ecb87b |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize EmitLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97996 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
703d12e3049bf879fe9f09688bc1799ddab87a75 |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
merge DIEObjectLabel and DIEDwarfLabel into DIELabel. Yes, DIE you fiendish labels, die all of you. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97995 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfPrinter.h
|
4faf59af82784dc21418d61bb3a68d3a2dc0b56e |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
merge DIEObjectLabel and DIEDwarfLabel into DIELabel. Yes, DIE you fiendish labels, die all of you. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97995 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfPrinter.h
|
be4c2fc20d67b2f98dc6f02a1234d6724ae9d993 |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
elimiante the DWLabel class, using MCSymbol instead. Start switching some stuff over to passing around MCSymbol* instead of stem+ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97993 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
b98b1bf43259052d1b06b90cc643a47bb239e2bb |
08-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
elimiante the DWLabel class, using MCSymbol instead. Start switching some stuff over to passing around MCSymbol* instead of stem+ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97993 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
7f9e0f3b7b35817655e9a9bfa428bb007a278593 |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Derive DIType from DIScope. This simplifies getContext() where for members the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97990 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
77bf295dbb0b049fdec853ced0763084c43b2438 |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Derive DIType from DIScope. This simplifies getContext() where for members the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97990 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9e592490c358725242fe663ffc6badeea1cdf3c0 |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Avoid using DIDescriptor.isNull(). This is a first step towards eliminating checks in Descriptor constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97975 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
3c91b05d2b1751b9e4e21fd958d358ec463dcd3c |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Avoid using DIDescriptor.isNull(). This is a first step towards eliminating checks in Descriptor constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97975 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
be149874dbf1f1a139afb106da91d617025964eb |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Revert r97947. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97963 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
0ef3fa6aabc80995c8a0bd829c85c89ef2d4c32d |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Revert r97947. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97963 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
523423613992fd514f7660b52002628bc8d199fb |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Avoid using DIDescriptor.isNull(). This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97947 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
d8cc5d5256e79a74188dfef5a12d43127330dad3 |
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Avoid using DIDescriptor.isNull(). This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97947 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
62ced028e5ec7247bc5ba21703845bed2742361b |
08-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Add Order to SDDbgValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97939 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDDbgValue.h
|
fab4a25d46cdd178c20e6a8029a2eed10f61f0ba |
08-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Add Order to SDDbgValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97939 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDDbgValue.h
|
b2b03b997805c3ea281ec60f01862bc7decfaffd |
08-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix dbg value handling in tail merging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97938 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
84839daa595968286acd25644820c644867f0c52 |
08-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix dbg value handling in tail merging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97938 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
df49dc7d29863a30f785c6e8ec88dcf8c8846c56 |
08-Mar-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Revert r97917, which was causing Clang Debug self-host failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97932 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1ddcf35b68a4c326c548272134611ce54b1afd25 |
08-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r97917, which was causing Clang Debug self-host failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97932 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6dbc2eece96fe5e7610818ae079ce66942ebb12e |
07-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Roll r97906 forward again, without double-deleting CompileUnit::IndexTyDie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97917 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9467f0e3bd2b0fece0d50a6d92f996b4f3952096 |
07-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Roll r97906 forward again, without double-deleting CompileUnit::IndexTyDie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97917 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d700ed3e880cdd2cd29d65bed84f8a92f77caed9 |
07-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Use Other as a sentinel instead of iAny. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97914 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
acee647b13d6e3e92cdbfe9657622a3daa2a6da1 |
07-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Use Other as a sentinel instead of iAny. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97914 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
10bb693ebf8b677e8f27b4793863ffc24dc3df51 |
07-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
_2_ gcc crashes, ah, ah, ah... (Rolling back r97906.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97909 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8c42ca937453bd216b68baff1f32b47430d5b374 |
07-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
_2_ gcc crashes, ah, ah, ah... (Rolling back r97906.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97909 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3116cb1b4c71c62300384650750c1c8017a2fedc |
07-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Avoid leaking CompileUnits and DbgScopes from DwarfDebug. Leaks found by Valgrind! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97906 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f7399bf929f401d4e1aa40f4f7a2265e2cdedc39 |
07-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Avoid leaking CompileUnits and DbgScopes from DwarfDebug. Leaks found by Valgrind! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97906 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
009f16a9f1bc686b19942df8a387588bbb85a44e |
07-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97895 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
98f15d27cda62ca2f973da0244b6b5e15f18acb7 |
07-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97895 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
812cafa610e0930d80e5fb1195bc0d5b5b335f0f |
06-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't update physical register def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97861 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
6cc1aeaad23b878fbf252efc3e45fb3a74a646eb |
06-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't update physical register def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97861 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
740089a49a70d6a5ba13dae28e43a2bfeaf1e860 |
06-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Add some new bits of debug info handling. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97855 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/SDDbgValue.h
|
06a26637daff1bb785ef0945d1ba05f6ccdfab86 |
06-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Add some new bits of debug info handling. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97855 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/SDDbgValue.h
|
185b448620f102722e5ecee117fab6e80300219f |
06-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r97778 and r97779, enabled only for unsigned i64 to f64 conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0fa9d1d9011a98212b66daf27f6a8a3d734ae818 |
06-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r97778 and r97779, enabled only for unsigned i64 to f64 conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1305dfe74b8030ccf405ac4c9011c778dc39dc0f |
05-Mar-2010 |
Charles Davis <cdavis@mines.edu> |
Don't emit global symbols into the (__TEXT,__ustring) section on Darwin. This is a workaround for <rdar://problem/7672401/> (which I filed). This let's us build Wine on Darwin, and it gets the Qt build there a little bit further (so Doug says). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97845 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
314fef6127a18db9f8c39f0081566f49c70a15f0 |
05-Mar-2010 |
Charles Davis <cdavis@mines.edu> |
Don't emit global symbols into the (__TEXT,__ustring) section on Darwin. This is a workaround for <rdar://problem/7672401/> (which I filed). This let's us build Wine on Darwin, and it gets the Qt build there a little bit further (so Doug says). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97845 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6207e5dfc3b6eee5be5703142b928e432c646d53 |
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Better handling of dead super registers in LiveVariables. We used to do this: CALL ... %RAX<imp-def> ... [not using %RAX] %EAX = ..., %RAX<imp-use, kill> RET %EAX<imp-use,kill> Now we do this: CALL ... %RAX<imp-def, dead> ... [not using %RAX] %EAX = ... RET %EAX<imp-use,kill> By not artificially keeping %RAX alive, we lower register pressure a bit. The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously 55, anybody can see that. Sheesh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97838 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
53e000bac319a25f7c13ec8b7b413418fba5ef20 |
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Better handling of dead super registers in LiveVariables. We used to do this: CALL ... %RAX<imp-def> ... [not using %RAX] %EAX = ..., %RAX<imp-use, kill> RET %EAX<imp-use,kill> Now we do this: CALL ... %RAX<imp-def, dead> ... [not using %RAX] %EAX = ... RET %EAX<imp-use,kill> By not artificially keeping %RAX alive, we lower register pressure a bit. The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously 55, anybody can see that. Sheesh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97838 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
4f8f6b3f37759474a0bc139d586cc2e6adc37793 |
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
We don't really care about correct register liveness information after the post-ra scheduler has run. Disable the verifier checks that late in the game. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97837 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a76e816844debe822c23932ef6a71c127d073063 |
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
We don't really care about correct register liveness information after the post-ra scheduler has run. Disable the verifier checks that late in the game. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97837 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4f8e6669676759f830877d3f777ad967663a97e8 |
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating bad PHI instructions when BR is being const-folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
580bba2b0dd2173c899699a87e109bfd1482c001 |
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating bad PHI instructions when BR is being const-folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f2ae2a4e14e17e359e3060a2615cb7eae4ab9880 |
05-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR6497, a bug where we'd fold a load into an addc node which has a flag. That flag in turn was used by an already-selected adde which turned into an ADC32ri8 which used a selected load which was chained to the load we folded. This flag use caused us to form a cycle. Fix this by not ignoring chains in IsLegalToFold even in cases where the isel thinks it can. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
18fdabadca110671b436de52fe7bd492ad49e656 |
05-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR6497, a bug where we'd fold a load into an addc node which has a flag. That flag in turn was used by an already-selected adde which turned into an ADC32ri8 which used a selected load which was chained to the load we folded. This flag use caused us to form a cycle. Fix this by not ignoring chains in IsLegalToFold even in cases where the isel thinks it can. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3f799de278213e4c890af7a2662ac1fb6e205899 |
05-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline a small function with one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9bbcd5ee5b9a34f82d7d0570256ff4b4f53fabe9 |
05-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline a small function with one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2af1f30658e4bf432ed89e351bfd16d4e43786a2 |
05-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Revert r97778 and r97779. They're somehow breaking llvm-gcc builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b6b343d77acb5c290f7093e741fbce484d11cedc |
05-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Revert r97778 and r97779. They're somehow breaking llvm-gcc builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4497854a94c9d2f53e6e8005c60ab072059a3d9c |
05-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix these constants to be more portable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
808ab341b4572815a74235ef00ccb446d334b957 |
05-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix these constants to be more portable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
625f5cd301d073267ab2a78cf59fbf5085231c8d |
05-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Rewrite i64-to-f64 conversion using an algorithm which handles rounding correctly. This implementation is a generalization of the x86_64 code in compiler-rt. This fixes rdar://7683708. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cfa7ca19974a463b47f16a61bfecf7f532dca07d |
05-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Rewrite i64-to-f64 conversion using an algorithm which handles rounding correctly. This implementation is a generalization of the x86_64 code in compiler-rt. This fixes rdar://7683708. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
999c188203b1a2013ab6682b7d9fc0fb400ac16c |
05-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix some more places where dbg_value affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97765 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
riticalAntiDepBreaker.cpp
achineSink.cpp
ostRASchedulerList.cpp
|
b0812f114b83a32c4b90a4b553c7177c557558b5 |
05-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix some more places where dbg_value affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97765 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
riticalAntiDepBreaker.cpp
achineSink.cpp
ostRASchedulerList.cpp
|
07e383ce90b3462f6ada1db29adcac32fd2b78e0 |
04-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix memcheck-found leaks: one false positive from using new[], and one true positive where pointers would be leaked on llvm_shutdown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97759 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
e8cfa63e4ec3eb5dde44c8f30dee136b20f8195d |
04-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix memcheck-found leaks: one false positive from using new[], and one true positive where pointers would be leaked on llvm_shutdown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97759 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
cd27762f1de3539ab857852666a8ad7efe79aed8 |
04-Mar-2010 |
Jim Grosbach <grosbach@apple.com> |
For SJLJ exception handling, make sure that all calls that are not marked as nounwind are marked with a -1 call-site value. This is necessary to, for example, correctly process exceptions thrown from within an "unexpected" execption handler (see SingleSource/Regression/C++/EH/expection_spec_test.cpp). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97757 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
b58a59b3c1563ab5bd7225748e32933bf6d76c03 |
04-Mar-2010 |
Jim Grosbach <grosbach@apple.com> |
For SJLJ exception handling, make sure that all calls that are not marked as nounwind are marked with a -1 call-site value. This is necessary to, for example, correctly process exceptions thrown from within an "unexpected" execption handler (see SingleSource/Regression/C++/EH/expection_spec_test.cpp). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97757 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
5e4415d10159d96f00103cf510855f833508f3d2 |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Run machine licm before machine cse to avoid messing up licm opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97752 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c46e293e946d109319d382b4547b4f47806d567a |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Run machine licm before machine cse to avoid messing up licm opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97752 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
5daca473d881155a2d66ba067d55d21f84a7bf11 |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid cse load instructions unless they are known to be invariant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97747 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
a5f32cb3d3cab0463c407cfd2c4153d5dea4498d |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid cse load instructions unless they are known to be invariant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97747 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
b75a7b3f65a514955589404b304510f9d1663c7c |
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a statistic for # times fastisel fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97738 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c19ae9d91d30bc008e0be5f5d4727f333199f64c |
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a statistic for # times fastisel fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97738 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dbd638803fb4bd508c7aaf2447157b60e6105c0c |
04-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix a typo Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ba72b0c4e17795fd61e18d022a6d86a680be00c5 |
04-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix a typo Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a342f90c3157d12a13eff85ae5211164906e98bf |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename -machine-cse to -enable-machine-cse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97713 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9763f709e229ff39d9f00a1086c07dfa0398b485 |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename -machine-cse to -enable-machine-cse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97713 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fdc05a7be971ace165e45ac7af498fd300fa547f |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Look ahead a bit to determine if a physical register def that is not marked dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97706 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
b3958e80324884e3d1c1e198a50f212bae0c3b77 |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Look ahead a bit to determine if a physical register def that is not marked dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97706 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
609472bddef8b70aa4deb784e54e0775b1d4aa21 |
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the new isel matcher to emit ComplexPattern matches as the very last thing before node emission. This should dramatically reduce the number of times we do 'MatchAddress' on X86, speeding up compile time. This also improves comments in the tables and shrinks the table a bit, now down to 80506 bytes for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
57bf8a483edf97589c3e6085721e72fc187677a8 |
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the new isel matcher to emit ComplexPattern matches as the very last thing before node emission. This should dramatically reduce the number of times we do 'MatchAddress' on X86, speeding up compile time. This also improves comments in the tables and shrinks the table a bit, now down to 80506 bytes for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2bafa4b0441e0174c80af34004ef3ceca92aa664 |
04-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix more code to work properly with vector operands. Based on a patch my Micah Villmow for PR6465. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6900a39d28132d86529724ba4dc8302edf1a9b53 |
04-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix more code to work properly with vector operands. Based on a patch my Micah Villmow for PR6465. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
369679ef2fd29be0b8878f2045670522f38fa051 |
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline CannotYetSelectIntrinsic into CannotYetSelect and simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2c4afd1d8e3cd7cdf47a163deaf345a747541367 |
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline CannotYetSelectIntrinsic into CannotYetSelect and simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f69f9754688bce361248d923de709d8077e81ffa |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a logic error. An instruction that has a live physical register def cannot be CSE'ed, but it *can* be used to replace a common subexpression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97688 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
67bda7215b4bc1b3cc9dd80ef5785ac6dd26fb8c |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a logic error. An instruction that has a live physical register def cannot be CSE'ed, but it *can* be used to replace a common subexpression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97688 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
17e800108e9f55fb2b0230e658b3fc0310cd24ee |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove PHINodeTraits and use MachineInstrExpressionTrait instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97687 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
a92dced4a186c03f06a1e9156ca00d997ef0a972 |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove PHINodeTraits and use MachineInstrExpressionTrait instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97687 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
a967def511718c391d4d93d24efa202f318fcf6e |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move MachineInstrExpressionTrait::getHashValue() out of line so it can skip over only virtual register defs. This matches what isEqual() is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97680 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
67eaa08f2b71aa8aec8cdf4c7d970db4cad58ada |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move MachineInstrExpressionTrait::getHashValue() out of line so it can skip over only virtual register defs. This matches what isEqual() is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97680 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
920613ea2ca17d200ac23b882e11c58851e9c1bc |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply r97667 but with a little bit of thought put into the patch. This implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97678 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
05bdcbb1ae48d1d1209173d137d11c35f46abff3 |
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply r97667 but with a little bit of thought put into the patch. This implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97678 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
bf0b0681b58d156a5c58364b4d32ed8ef940d72e |
03-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Revert 97667. It broke a bunch of tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97673 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
319dfa3fb38a0769806b155dbe8fc0af7f8bdb1e |
03-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Revert 97667. It broke a bunch of tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97673 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
4a568a55f36865f84ef51f200891a7962b1cfc52 |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix funky indentation and add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97670 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
34cdf6edf55d22832dee34fe6a39f1e10691ab51 |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix funky indentation and add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97670 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
38f625ff4050111d8ac873d821e470a985aabad5 |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move DenseMapInfo for MachineInstr* to MachineInstr.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97667 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
a054ae02fda1886f36b4b51cba8ac8000ed8be8a |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move DenseMapInfo for MachineInstr* to MachineInstr.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97667 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
4f6bea00e74ce718c1e61a4b29b08a8d35c201ce |
03-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug in SelectionDAG's ReplaceAllUsesWith in the case where CSE and recursive RAUW calls delete a node from the use list, invalidating the use list iterator. There's currently no known way to reproduce this in an unmodified LLVM, however there's no fundamental reason why a SelectionDAG couldn't be formed which would trigger this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a72d2a210c61aa60f5e03bfc3cd697f809fee3e5 |
03-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug in SelectionDAG's ReplaceAllUsesWith in the case where CSE and recursive RAUW calls delete a node from the use list, invalidating the use list iterator. There's currently no known way to reproduce this in an unmodified LLVM, however there's no fundamental reason why a SelectionDAG couldn't be formed which would trigger this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
86a144c9543b17fb15eeaf17e16686a5c863461c |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Machine CSE work in progress. It's doing some CSE now. But implicit def of physical registers are getting in the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97664 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
16b48b8a05d6881b575846fe42fad9a0c75b8a53 |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Machine CSE work in progress. It's doing some CSE now. But implicit def of physical registers are getting in the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97664 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
38b5bbc353899affb812ea4ebb6ccb134278d826 |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add MachineRegisterInfo::hasOneUse and hasOneNonDBGUse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97663 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
woAddressInstructionPass.cpp
|
1423c70b8f1b1a757c640fac9a17cb015012e8e9 |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add MachineRegisterInfo::hasOneUse and hasOneNonDBGUse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97663 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
woAddressInstructionPass.cpp
|
c652eca76ebc6032871d555f9f7a67d2fc14e4a2 |
03-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert... --- Reverse-merging r97592 into '.': U lib/CodeGen/TargetLoweringObjectFileImpl.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97657 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
fec8657351346966e48f9248079e85602dc1f85d |
03-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Revert... --- Reverse-merging r97592 into '.': U lib/CodeGen/TargetLoweringObjectFileImpl.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97657 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
9851e78217bb61e1626440fb09204bee37e22728 |
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some of the more obscure predicate types to the Scope accelerator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97652 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
da828e3c8c869c0a62fefbd4c14811ca6fb4913d |
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some of the more obscure predicate types to the Scope accelerator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97652 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7f6953355214dbc1055049dd4496d5bb455718b6 |
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
speed up scope node processing: if the first element of a scope entry we're about to process is obviously going to fail, don't bother pushing a scope only to have it immediately be popped. This avoids a lot of scope stack traffic in common cases. Unfortunately, this requires duplicating some of the predicate dispatch. To avoid duplicating the actual logic I pulled each predicate out to its own static function which gets used in both places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97651 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f1b7c7d476a2f30f035c527cfe8e14c6c6255f07 |
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
speed up scope node processing: if the first element of a scope entry we're about to process is obviously going to fail, don't bother pushing a scope only to have it immediately be popped. This avoids a lot of scope stack traffic in common cases. Unfortunately, this requires duplicating some of the predicate dispatch. To avoid duplicating the actual logic I pulled each predicate out to its own static function which gets used in both places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97651 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c4188acb9c90d663f755aff45548df07006bceb2 |
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new SwitchTypeMatcher node (which is analogous to SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97645 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cfe2eab7446dedc471592fe702fefef783383171 |
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new SwitchTypeMatcher node (which is analogous to SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97645 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ef1588e0f11b3167641471b1e8017a37becbc54d |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Work in progress. Finding some cse now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97635 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
6ba9554988f2efe13c6556c6149aea4846cf415d |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Work in progress. Finding some cse now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97635 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
75c9f34b795e875808c0279a2e67ed31b6678a36 |
03-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Use APInt instead of zext value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
32f9eb2bc3ddaf17e790f086056829e4ad91ab66 |
03-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Use APInt instead of zext value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
11fd549ebe3895b606a394ba8a0c239424b806cf |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality. - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97628 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
argetInstrInfoImpl.cpp
|
506049f29f4f202a8e45feb916cc0264440a7f6d |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality. - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97628 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
argetInstrInfoImpl.cpp
|
f47ee4db9e22e0e672ff0ab664447854c2d52b1c |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add an option to enable machine cse (it's not doing anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97627 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d89347cb49178da65a1c72cde5d54e79007d57ae |
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add an option to enable machine cse (it's not doing anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97627 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
72f81c05606ff41d5d7af4eea76d57d90bb29f43 |
03-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
This test case: long test(long x) { return (x & 123124) | 3; } Currently compiles to: _test: orl $3, %edi movq %rdi, %rax andq $123127, %rax ret This is because instruction and DAG combiners canonicalize (or (and x, C), D) -> (and (or, D), (C | D)) However, this is only profitable if (C & D) != 0. It gets in the way of the 3-addressification because the input bits are known to be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7d9f2b93a356aa89186522bd61c5c565718ff555 |
03-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
This test case: long test(long x) { return (x & 123124) | 3; } Currently compiles to: _test: orl $3, %edi movq %rdi, %rax andq $123127, %rax ret This is because instruction and DAG combiners canonicalize (or (and x, C), D) -> (and (or, D), (C | D)) However, this is only profitable if (C & D) != 0. It gets in the way of the 3-addressification because the input bits are known to be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
017965026f37cd0b619b3f580f544566fe560950 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix some issues in WalkChainUsers dealing with CopyToReg/CopyFromReg/INLINEASM. These are annoying because they have the same opcode before an after isel. Fix this by setting their NodeID to -1 to indicate that they are selected, just like what automatically happens when selecting things that end up being machine nodes. With that done, give IsLegalToFold a new flag that causes it to ignore chains. This lets the HandleMergeInputChains routine be the one place that validates chains after a match is successful, enabling the new hotness in chain processing. This smarter chain processing eliminates the need for "PreprocessRMW" in the X86 and MSP430 backends and enables MSP to start matching it's multiple mem operand instructions more aggressively. I currently #if out the dead code in the X86 backend and MSP backend, I'll remove it for real in a follow-on patch. The testcase changes are: test/CodeGen/X86/sse3.ll: we generate better code test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was miscompiling this before, we now generate correct code Convert it to filecheck while I'm at it. test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem folding to make anton happy. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d1b738298359846b9cccaa0931e6ec1fc59a6d87 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix some issues in WalkChainUsers dealing with CopyToReg/CopyFromReg/INLINEASM. These are annoying because they have the same opcode before an after isel. Fix this by setting their NodeID to -1 to indicate that they are selected, just like what automatically happens when selecting things that end up being machine nodes. With that done, give IsLegalToFold a new flag that causes it to ignore chains. This lets the HandleMergeInputChains routine be the one place that validates chains after a match is successful, enabling the new hotness in chain processing. This smarter chain processing eliminates the need for "PreprocessRMW" in the X86 and MSP430 backends and enables MSP to start matching it's multiple mem operand instructions more aggressively. I currently #if out the dead code in the X86 backend and MSP backend, I'll remove it for real in a follow-on patch. The testcase changes are: test/CodeGen/X86/sse3.ll: we generate better code test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was miscompiling this before, we now generate correct code Convert it to filecheck while I'm at it. test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem folding to make anton happy. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d3198e39175d5d317e4f0fdfc5019fb5fe847bc5 |
02-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Okay. One last attempt: Place the LSDA into the TEXT section on Mach-O. This saves space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97592 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
d556155afde4fe05f0701a35caf072c3b3409a90 |
02-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Okay. One last attempt: Place the LSDA into the TEXT section on Mach-O. This saves space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97592 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
0df32098702460a923c0654fc78394c7dc9c6d62 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
run HandleMergeInputChains even if we only have one input chain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
00592ec857b4c3f31b46412e2738924238c59983 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
run HandleMergeInputChains even if we only have one input chain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6ef8bb4ed5d6f3027ffe1d50df2b389302d60f3a |
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Swap parameters of isSafeToMove and isSafeToReMat for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97578 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
achineInstr.cpp
achineSink.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
ac1abde05b7e6956c01deb6557539bee8fea30f4 |
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Swap parameters of isSafeToMove and isSafeToReMat for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97578 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
achineInstr.cpp
achineSink.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
bdc2d1d127af1cf26a909648d8038f225160a6f6 |
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97577 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
c5bbba1e499d46f52364e76ea95d4a37adced676 |
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97577 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
36cd9f87e832aa08fba5d7298ff1be4940bb97ea |
02-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Fix grammar. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97572 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1eac3e7d1e5d0bce098f15d87a2c8741eba73662 |
02-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Fix grammar. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97572 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
385f39fc2a100a8411544ff4b0fe9c9d1cc7d6e3 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix the xfail I added a couple of patches back. The issue was that we weren't properly handling the case when interior nodes of a matched pattern become dead after updating chain and flag uses. Now we handle this explicitly in UpdateChainsAndFlags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
82dd3d38d9b3bd49f19b8230f39d33e8ee6d4055 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix the xfail I added a couple of patches back. The issue was that we weren't properly handling the case when interior nodes of a matched pattern become dead after updating chain and flag uses. Now we handle this explicitly in UpdateChainsAndFlags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ad7c0f5649d9cee42bd54e02b817316dddb8db80 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
I was confused about this, it turns out that MorphNodeTo *does* delete ex-operands that become dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
61c97f693216670cda554d287cd871fdea1b36f9 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
I was confused about this, it turns out that MorphNodeTo *does* delete ex-operands that become dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ad0310618a87ee72b74b75b1960603169e9f087d |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
factor node morphing out to its own helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3ff1e4db7896a8ccec74800d52a926118d025260 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
factor node morphing out to its own helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6411e3e62ea9dfe23f5fa24b9d6a84da7ec70a98 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Sink InstructionSelect() out of each target into SDISel, and rename it DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader. Sink some other stuff out of DAGISelHeader into SDISel. Eliminate the various 'Indent' stuff from various targets, which dates to when isel was recursive. 17 files changed, 114 insertions(+), 430 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7c306da505e2d7f64e160890b274a47fa0740962 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Sink InstructionSelect() out of each target into SDISel, and rename it DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader. Sink some other stuff out of DAGISelHeader into SDISel. Eliminate the various 'Indent' stuff from various targets, which dates to when isel was recursive. 17 files changed, 114 insertions(+), 430 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
70b967f60ef497a35bba54053e95a014d4cb6498 |
02-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Add file to CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97545 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
7b2c9e6a30530b6c4496f3a511f9d821ecb83b69 |
02-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Add file to CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97545 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
2730339da956c0f56161c125741918c245caae16 |
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton of a machine level cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97543 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
c6fe333688519c5a28d1e0f30ecdaa2ad8f1d410 |
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton of a machine level cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97543 91177308-0d34-0410-b5e6-96231b3b80d8
achineCSE.cpp
|
4fd9d3136226bf472a0c3a22799f91be39a331a3 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Use the right induction variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97541 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6183fbd7267a7de857e32a2106cfb46a219728f1 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Use the right induction variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97541 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d9245c391fe16261902c9840e26a3d82a26f50f6 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Rewrite chain handling validation and input TokenFactor handling stuff now that we don't care about emulating the old broken behavior of the old isel. This eliminates the 'CheckChainCompatible' check (along with IsChainCompatible) which did an incorrect and inefficient scan *up* the chain nodes which happened as the pattern was being formed and does the validation at the end in HandleMergeInputChains when it forms a structural pattern. This scans "down" the graph, which means that it is quickly bounded by nodes already selected. This also handles token factors that get "trapped" in the dag. Removing the CheckChainCompatible nodes also shrinks the generated tables by about 6K for X86 (down to 83K). There are two pieces remaining before I can nuke PreprocessRMW: 1. I xfailed a test because we're now producing worse code in a case that has nothing to do with the change: it turns out that our use of MorphNodeTo will leave dead nodes in the graph which (depending on how the graph is walked) end up causing bogus uses of chains and blocking matches. This is really bad for other reasons, so I'll fix this in a follow-up patch. 2. CheckFoldableChainNode needs to be improved to handle the TF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97539 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c6d7ad3c7d83e9af29bf3ba3bf3280e72a952f98 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Rewrite chain handling validation and input TokenFactor handling stuff now that we don't care about emulating the old broken behavior of the old isel. This eliminates the 'CheckChainCompatible' check (along with IsChainCompatible) which did an incorrect and inefficient scan *up* the chain nodes which happened as the pattern was being formed and does the validation at the end in HandleMergeInputChains when it forms a structural pattern. This scans "down" the graph, which means that it is quickly bounded by nodes already selected. This also handles token factors that get "trapped" in the dag. Removing the CheckChainCompatible nodes also shrinks the generated tables by about 6K for X86 (down to 83K). There are two pieces remaining before I can nuke PreprocessRMW: 1. I xfailed a test because we're now producing worse code in a case that has nothing to do with the change: it turns out that our use of MorphNodeTo will leave dead nodes in the graph which (depending on how the graph is walked) end up causing bogus uses of chains and blocking matches. This is really bad for other reasons, so I'll fix this in a follow-up patch. 2. CheckFoldableChainNode needs to be improved to handle the TF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97539 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
978e526b88f014cbbeb11afe1a27c76806e9ac9b |
02-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix several places to handle vector operands properly. Based on a patch by Micah Villmow for PR6438. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
5b870aff81da0c07413f0241087bb3722954b83d |
02-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix several places to handle vector operands properly. Based on a patch by Micah Villmow for PR6438. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
1ca34452bef99e9607f302b2abb54693b7114076 |
02-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove dead parameter passing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
46ada19645c981a0b7932487d163f7582074a4d9 |
02-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove dead parameter passing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0ab194f68a5a8da0c37c1aa726cf2f89c0c2b7f0 |
02-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Constructors and operators for anonymous aggregates does not names. Do not force empty AT_name attribute in such cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6b506cbce0ad7ad217a58cd1d6740e23c36f67ec |
02-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Constructors and operators for anonymous aggregates does not names. Do not force empty AT_name attribute in such cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
eac59b0c6ce69beed03154b5d3f51a311b6dd9c1 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
319ef940303146dfb885794d21c98da1d5e84048 |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
25f10c41e764fd73b3c03841e20c75b1169fbb7b |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
refactor some code out of OPC_EmitMergeInputChains into a new helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97525 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6b30792d2d7d142b8192241e6232aee004f745fb |
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
refactor some code out of OPC_EmitMergeInputChains into a new helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97525 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b5b32a356894c7a60a508d836149caa19c6f5b16 |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove all but one version of SelectionDAG::MorphNodeTo (the most general) the others are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
df51247725143acb781c224faffd848cc7cf95d8 |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove all but one version of SelectionDAG::MorphNodeTo (the most general) the others are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
06ba7392aec78d44372333135be0e398ddb160fa |
01-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use methods to determine if a LiveInterval is spillable. Don't accidentally produce unspillable intervals for deeply nested loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97496 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e5d90416ee1a4f45eba80789a7a3cbc3d497a4cd |
01-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use methods to determine if a LiveInterval is spillable. Don't accidentally produce unspillable intervals for deeply nested loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97496 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2418741aba10d6137858dbf7a7773c21f02ba640 |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Accelerate isel dispatch for tables that start with a top-level OPC_SwitchOpcode to use a table lookup instead of having to go through the interpreter for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7390eebd49b786f3293d24f76fedb02fe183468c |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Accelerate isel dispatch for tables that start with a top-level OPC_SwitchOpcode to use a table lookup instead of having to go through the interpreter for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f4aab034434769a98250611400b01a9f75cff607 |
01-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix optimization of ISD::TRUNCATE on vector operands. Based on a patch by Micah Villmow for PR6335. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
042919c0c5f87f937e1a01ca548811af2f297e83 |
01-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix optimization of ISD::TRUNCATE on vector operands. Based on a patch by Micah Villmow for PR6335. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a9578c4edc53ecd83f32022c0e12ab748ae2d3cd |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
some trivial microoptimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
7d892d6e6d451e9a0d0f9db839a943a256126c05 |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
some trivial microoptimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
220b968d46e3b86b47362794ddd81eda30b7e78e |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the CheckMultiOpcodeMatcher code and have each ComplexPattern at the root be generated multiple times, once for each opcode they are part of. This encourages factoring because the opcode checks get treated just like everything else in the matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fa342faef9d1c89de356ed83a6c6529ed3e87610 |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the CheckMultiOpcodeMatcher code and have each ComplexPattern at the root be generated multiple times, once for each opcode they are part of. This encourages factoring because the opcode checks get treated just like everything else in the matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2e9e684955d5da919a9a0daffe5ee19f3760d08e |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a new OPC_SwitchOpcode which is semantically equivalent to a scope where every child starts with a CheckOpcode, but executes more efficiently. Enhance DAGISelMatcherOpt to form it. This also fixes a bug in CheckOpcode: apparently the SDNodeInfo objects are not pointer comparable, we have to compare the enum name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eb66921adb943ea841e72c8eee4777607c48b70e |
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a new OPC_SwitchOpcode which is semantically equivalent to a scope where every child starts with a CheckOpcode, but executes more efficiently. Enhance DAGISelMatcherOpt to form it. This also fixes a bug in CheckOpcode: apparently the SDNodeInfo objects are not pointer comparable, we have to compare the enum name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
21181d1e6a08e95d701d593b5c500ce9afef7634 |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate GetInt1/2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
14df8dc680d40173f34d693f9dc451f8a30c907b |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate GetInt1/2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
65ff433eb3c69e3cd5e124f74aa1eca662b70759 |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
hoist the new isel interpreter out of DAGISelHeader.h (which gets #included into the middle of each target's DAGISel class) into a .cpp file where it is only compiled once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2a49d57d2d9dd19125a9ba302e883f6ba6c38b83 |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
hoist the new isel interpreter out of DAGISelHeader.h (which gets #included into the middle of each target's DAGISel class) into a .cpp file where it is only compiled once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7a58f525f4b84038aebb05a7ebe98960d836dbba |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
enhance the new isel to handle the 'node already exists' case of MorphNodeTo directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
21221e357c6aa9ade3966ee86dab7d44c25220d0 |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
enhance the new isel to handle the 'node already exists' case of MorphNodeTo directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ae73795036ed372fd47ecf4b3ed6e334342910d3 |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
simplify this code, return only ever has zero or one operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
25d5837889622584b53b6ffebcfa9ebf14f09d7b |
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
simplify this code, return only ever has zero or one operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0930cfb240884081833d646a258052be9bba978c |
28-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Don't try to replace physical registers when doing CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97360 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6ac33b4533889f132ba10c812ae574d779c827b9 |
28-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Don't try to replace physical registers when doing CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97360 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
fa7441049ea3232093295ef91217a8ec64adc227 |
28-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Add a flag to addPassesToEmit* to disable the Verifier pass run after LSR, so that clients can opt in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97357 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8772f5041ce8e98695655a72a54b952583630617 |
28-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Add a flag to addPassesToEmit* to disable the Verifier pass run after LSR, so that clients can opt in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97357 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
84313ac28fa9693a5cd553d9f6744a36cac1f962 |
28-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Don't unconditionally suppress hoisting of instructions with implicit defs or uses. The regular def and use checking below covers them, and can be more precise. It's safe to hoist an instruction with a dead implicit def if the register isn't live into the loop header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97352 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a363a9b71afcf326d376445f6f3cae0c36e6e9d9 |
28-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Don't unconditionally suppress hoisting of instructions with implicit defs or uses. The regular def and use checking below covers them, and can be more precise. It's safe to hoist an instruction with a dead implicit def if the register isn't live into the loop header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97352 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
cb611273cb26cdf5fefcdbbbaa862e87c8295c34 |
27-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 97040 with fix. This survives a ppc self-host llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
2c755ba12a79e0bb2899c0bde00b2f7ea2c975a0 |
27-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 97040 with fix. This survives a ppc self-host llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
d273e99db7f6b381d7032a7e5420a9a2e8da9342 |
27-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
The TType is always absptr on Mach-O...at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97295 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
4933a373a7abb2f6442beb71c964eb0e97b590dc |
27-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
The TType is always absptr on Mach-O...at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97295 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6478712f778316f7b171e3d9f18c500e14cd843a |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
A much cleaner (and less code!) way of inserting the correct amount of padding for alignment into the LSDA. If the TType base offset is emitted, then put the padding there. Otherwise, put it in the call site table length. There will be no conflict between the two sites when placing the padding in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97277 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1869ac8b716da4fdbaaf3e5484238f36881fc14b |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
A much cleaner (and less code!) way of inserting the correct amount of padding for alignment into the LSDA. If the TType base offset is emitted, then put the padding there. Otherwise, put it in the call site table length. There will be no conflict between the two sites when placing the padding in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97277 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
3a3c48eff9f8cad2dab101c2df306cf9b724a99a |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97269 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
6507eca124883c90cc300c1ff344f79a8b4181a5 |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97269 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
98172eed77c6cbbdefea7ebe0efe13df8c3591a4 |
26-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the right floating point load/store instructions in PPCInstrInfo::foldMemoryOperandImpl(). The PowerPC floating point registers can represent both f32 and f64 via the two register classes F4RC and F8RC. F8RC is considered a subclass of F4RC to allow cross-class coalescing. This coalescing only affects whether registers are spilled as f32 or f64. Spill slots must be accessed with load/store instructions corresponding to the class of the spilled register. PPCInstrInfo::foldMemoryOperandImpl was looking at the instruction opcode which is wrong. X86 has similar floating point register classes, but doesn't try to fold memory operands, so there is no problem there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97262 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
243296690ec78fc918762bd73896b09e26537f47 |
26-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the right floating point load/store instructions in PPCInstrInfo::foldMemoryOperandImpl(). The PowerPC floating point registers can represent both f32 and f64 via the two register classes F4RC and F8RC. F8RC is considered a subclass of F4RC to allow cross-class coalescing. This coalescing only affects whether registers are spilled as f32 or f64. Spill slots must be accessed with load/store instructions corresponding to the class of the spilled register. PPCInstrInfo::foldMemoryOperandImpl was looking at the instruction opcode which is wrong. X86 has similar floating point register classes, but doesn't try to fold memory operands, so there is no problem there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97262 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
30b10f6e7cae3bba728671dde1cc66c5bb3a4b34 |
26-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97261 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
66df66c5fb4ef0aedd8fcae152f58e9baa0bb017 |
26-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97261 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
10712669099c41e0c6f5a4d04be6d7af19cc1f6d |
26-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Move dbg_value generation to target-independent FastISel, as X86 is currently the only FastISel target. Per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
45df7616528e3d101c5b2938bd4d865321205d33 |
26-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Move dbg_value generation to target-independent FastISel, as X86 is currently the only FastISel target. Per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
95565945de6dac729bf8bf374d2c46edd64810c6 |
26-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Remove unused "NoPRE" parameter in GVN and createGVNPass(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97235 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
60df9077ebe2a38723beadedd88e349f9aa214cb |
26-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Remove unused "NoPRE" parameter in GVN and createGVNPass(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97235 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
cf756463841be7ef1e22c340f1134ea046ce006e |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97200 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
0b1d2f30124285cc853a12deb0f45a72add26d04 |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97200 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5d247e1c3eb86a1af0ba33bb296bc0c898e52b8d |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Add another (and hopefully the last) exception case, where once we recalculate the alignment requirement, if it no longer makes the TType base offset overflow into extra bytes, then we need to pad to those bytes ourselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
bb4283ec1349087566e53f57ca09f9ed3bd5a7fd |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Add another (and hopefully the last) exception case, where once we recalculate the alignment requirement, if it no longer makes the TType base offset overflow into extra bytes, then we need to pad to those bytes ourselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
69bc7383a9f23982786ab08c393c702f6b56d5be |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
And should use the correct variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97193 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
fdb2be8b09f06c1124c990b959ee2dcc1008fab4 |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
And should use the correct variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97193 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
f03e5e946d880a174fdad63bd5658f27e926eb98 |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Got assertion check backwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97192 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a88864542503fdecbb2ed3adea53545a14991dde |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Got assertion check backwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97192 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
b2053dfe9b3c1701e0a918b5bc762fa0cb7b51d4 |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Catch a corner case where adding the padding to the "TType base offset" field will eliminate the need for padding in the "Call site table length". E.g., if we have this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0x7f ## @TType base offset .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length with padding of 1. We want to emit the padding like this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0xff ## @TType base offset .space 1,0 ## Padding .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length and not with padding on the "Call site table length" entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97183 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
86f0d33f85c19af294916eacd175f6b0cd81142f |
26-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Catch a corner case where adding the padding to the "TType base offset" field will eliminate the need for padding in the "Call site table length". E.g., if we have this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0x7f ## @TType base offset .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length with padding of 1. We want to emit the padding like this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0xff ## @TType base offset .space 1,0 ## Padding .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length and not with padding on the "Call site table length" entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97183 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
3be02b851918489d8fb8154678d476c806ade67a |
25-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Make comment more meaningful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97169 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
f7e90ae2057adcf6fa4b023110611084f28fd6c1 |
25-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Make comment more meaningful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97169 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1257158b2bd13e489275b940ae1e2909e27b51c7 |
25-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix ExpandVectorBuildThroughStack for the case where the operands are themselves vectors. Based on a patch by Micah Villmow for PR6338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9949dd612c8100f7ea7e6daaa56e465f106dd0bd |
25-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix ExpandVectorBuildThroughStack for the case where the operands are themselves vectors. Based on a patch by Micah Villmow for PR6338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2576a8eb5cb9a2d80fafe064d9cac6f6b32607f8 |
25-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Revert r97064. Duncan pointed out that bitcasts are defined in terms of store and load, which means bitcasting between scalar integer and vector has endian-specific results, which undermines this whole approach. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
aa9d854b334cab2f29ca6d95413a0946b8a38429 |
25-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Revert r97064. Duncan pointed out that bitcasts are defined in terms of store and load, which means bitcasting between scalar integer and vector has endian-specific results, which undermines this whole approach. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
e1973f26cbd79854dd38f18f2df838fb7927302a |
25-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
MC'ize padding when padding the ULEB128 value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97087 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
f0bd4cc1b605d52bbf03aa38e5c806bcb6f334f5 |
25-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
MC'ize padding when padding the ULEB128 value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97087 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
a7888eaec3b317e17b637d76408fed9abd8ced95 |
25-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
LLVM puts padding bytes in the __gcc_except_tab section after the GCC_except_table label but before the Lexception, which the FDE references. This causes problems as the FDE does not point to the start of an LSDA chunk. Use an unnormalized uleb128 for the call-site table length that includes the padding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
3dc9b4872b28016b38ce31fa4356e17c96420579 |
25-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
LLVM puts padding bytes in the __gcc_except_tab section after the GCC_except_table label but before the Lexception, which the FDE references. This causes problems as the FDE does not point to the start of an LSDA chunk. Use an unnormalized uleb128 for the call-site table length that includes the padding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
ae64c5492ad209f288bd57c98e3519c9d2e35cba |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
clean up various VT manipulations, patch by Micah Villmow! PR6337 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5cf0b6e4a94ab3baa991795051f63db139097ed3 |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
clean up various VT manipulations, patch by Micah Villmow! PR6337 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4bc2134f965d55e32cd9caf7296f2f86b852bd36 |
24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Make getTypeSizeInBits work correctly for array types; it should return the number of value bits, not the number of bits of allocation for in-memory storage. Make getTypeStoreSize and getTypeAllocSize work consistently for arrays and vectors. Fix several places in CodeGen which compute offsets into in-memory vectors to use TargetData information. This fixes PR1784. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
c382bc3c0f476bf94303d9892af4e2cee173bfe5 |
24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Make getTypeSizeInBits work correctly for array types; it should return the number of value bits, not the number of bits of allocation for in-memory storage. Make getTypeStoreSize and getTypeAllocSize work consistently for arrays and vectors. Fix several places in CodeGen which compute offsets into in-memory vectors to use TargetData information. This fixes PR1784. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
7de873559115ed9c149f09b3bc8b96cb19e7a480 |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
convert cycle checker to smallptrset, add comments and make it more elegant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
46ca5efdd5b748ba8aa62168f7753cb46b683bc5 |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
convert cycle checker to smallptrset, add comments and make it more elegant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9e2aad9d672e7151a94413e5007b0c588ea77162 |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
revert david's patch which does not even build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a1461ccfa0f19b2a81afb401c1d772f751edf7ae |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
revert david's patch which does not even build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7f3a69fb451686b06bb99976b239af68580e5435 |
24-Feb-2010 |
David Greene <greened@obbligato.org> |
Use a SmallPtrSet as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97056 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2f9b6851982608e8aa20ca99398daf949d0f707b |
24-Feb-2010 |
David Greene <greened@obbligato.org> |
Use a SmallPtrSet as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97056 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a77358b755e6629917d2a12ed97065a6952b397e |
24-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Speculatively revert r97011, "Re-apply 96540 and 96556 with fixes.", again in the hopes of fixing PPC bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
cfe30effbb952ae5b49a01de8329e3a2c14bad75 |
24-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Speculatively revert r97011, "Re-apply 96540 and 96556 with fixes.", again in the hopes of fixing PPC bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
e8cc39fad0c152a1b03f52b3cc821b3ce418e89c |
24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
When forming SSE min and max nodes for UGE and ULE comparisons, it's necessary to swap the operands to handle NaN and negative zero properly. Also, reintroduce logic for checking for NaN conditions when forming SSE min and max instructions, fixed to take into consideration NaNs and negative zeros. This allows forming min and max instructions in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e832693acbfc713bcaf44720efa8149e93a38027 |
24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
When forming SSE min and max nodes for UGE and ULE comparisons, it's necessary to swap the operands to handle NaN and negative zero properly. Also, reintroduce logic for checking for NaN conditions when forming SSE min and max instructions, fixed to take into consideration NaNs and negative zeros. This allows forming min and max instructions in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
deb48434e382de441595b0ac39cd585cab092080 |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Change the scheduler from adding nodes in allnodes order to adding them in a determinstic order (bottom up from the root) based on the structure of the graph itself. This updates tests for some random changes, interesting bits: CodeGen/Blackfin/promote-logic.ll no longer crashes. I have no idea why, but that's good right? CodeGen/X86/2009-07-16-LoadFoldingBug.ll also fails, but now compiles to have one fewer constant pool entry, making the expected load that was being folded disappear. Since it is an unreduced mass of gnast, I just removed it. This fixes PR6370 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
736a6ea3a2a5322db0e09d97651a1acc07502e41 |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Change the scheduler from adding nodes in allnodes order to adding them in a determinstic order (bottom up from the root) based on the structure of the graph itself. This updates tests for some random changes, interesting bits: CodeGen/Blackfin/promote-logic.ll no longer crashes. I have no idea why, but that's good right? CodeGen/X86/2009-07-16-LoadFoldingBug.ll also fails, but now compiles to have one fewer constant pool entry, making the expected load that was being folded disappear. Since it is an unreduced mass of gnast, I just removed it. This fixes PR6370 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
5a7626432cc08fabeaa6f00af467e37dcfad543e |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add node #'s to debug dumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
91ff7f75f55a626eb41761f3ded9f3d13002980c |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add node #'s to debug dumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
65d174147dd73e78cd0070c9a2113f3acdc3e924 |
24-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 96540 and 96556 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
97e6b8390b405f9e7dd994f111a5950fca2962d2 |
24-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 96540 and 96556 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
def44715c1558a6bbf1e555b7ab0390c7e2ca26c |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make selectnodeto set the nodeid to -1. This makes it more akin to creating a new node then replacing uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5857e0add8ab25825628d1ef19cec027e605dcd5 |
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make selectnodeto set the nodeid to -1. This makes it more akin to creating a new node then replacing uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
87ae511380520df80baa23398dcdc92de0758274 |
23-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to handle sub-registers when moving imp-defs to a rematted instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96995 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
450986db9607b1444cb50740fa4c102f20f92f6b |
23-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to handle sub-registers when moving imp-defs to a rematted instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96995 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4bfc2ff97460982aba13452245616e8d791048f0 |
23-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of phi join registers explicitly in LiveVariables. Previously, LiveIntervalAnalysis would infer phi joins by looking for multiply defined registers. That doesn't work if the phi join is implicitly defined in all but one of the predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96994 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
|
dcfe5f30b5e262971f601a65bebcc0367fef56c5 |
23-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of phi join registers explicitly in LiveVariables. Previously, LiveIntervalAnalysis would infer phi joins by looking for multiply defined registers. That doesn't work if the phi join is implicitly defined in all but one of the predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96994 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
|
be96dbf5a8f6742931bcc58d9edc556a6e322ccd |
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug in findNonImmUse (used by IsLegalToFold) where nodes with no id's would cause early exit allowing IsLegalToFold to return true instead of false, producing a cyclic dag. This was striking the new isel because it isn't using SelectNodeTo yet, which theoretically is just an optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96972 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
da244a091dcde022ea4938793d81ee957903ed70 |
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug in findNonImmUse (used by IsLegalToFold) where nodes with no id's would cause early exit allowing IsLegalToFold to return true instead of false, producing a cyclic dag. This was striking the new isel because it isn't using SelectNodeTo yet, which theoretically is just an optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96972 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
91d5e06c189787ac18cdf66148503d0d4198730f |
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Print node ID's in dumps and views if set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4548e02bd6336983a21afdf5f6a3ea333ce2daca |
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Print node ID's in dumps and views if set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a6e2dadb90050b1f474ddda629590d2a662ab8ef |
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
use OutStreamer.EmitCodeAlignment for alignment in the text segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96967 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2cce3712fafb2e72e144414377cd48f5ab95a5ae |
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
use OutStreamer.EmitCodeAlignment for alignment in the text segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96967 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
923912cedf4cb6a97dc2bdde78b3bfdc9e0c2212 |
23-Feb-2010 |
David Greene <greened@obbligato.org> |
Speed up cycle checking significantly by caching results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96956 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e3d97c744772c075e11f372548cc8d848d555ee9 |
23-Feb-2010 |
David Greene <greened@obbligato.org> |
Speed up cycle checking significantly by caching results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96956 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
04852f2fa78133ee168123e1e58aa9a2ecea46cf |
23-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dead code elimination git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96837 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
f895dbeb29b63f775e341f53ab92609c8da25392 |
23-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dead code elimination git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96837 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
1ec98d37dba535b039287f750e7ec12363982f9f |
23-Feb-2010 |
Jim Grosbach <grosbach@apple.com> |
Updated version of r96634 (which was reverted due to failing 176.gcc and 126.gcc nightly tests. These failures uncovered latent bugs that machine DCE could remove one half of a stack adjust down/up pair, causing PEI to assert. This update fixes that, and the tests now pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96822 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4642ad3af1cf508ac320b9afd25b065f08b36574 |
23-Feb-2010 |
Jim Grosbach <grosbach@apple.com> |
Updated version of r96634 (which was reverted due to failing 176.gcc and 126.gcc nightly tests. These failures uncovered latent bugs that machine DCE could remove one half of a stack adjust down/up pair, causing PEI to assert. This update fixes that, and the tests now pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96822 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
661aabbef97a9f691ae468efa5496e0a6553e684 |
22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix various doxygen warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
|
fb76fe09297ee292129e44d723127f2408602a3d |
22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix various doxygen warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
|
df708fc4cc64bd61e4db81be32bd726c6a1ec4bc |
21-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
It turned out that we failed to emit proper symbol stubs on non-x86/darwin for ages (we emitted a reference to a stub, but no stub was emitted). The code inside x86-32/macho target objfile lowering should actually be the generic one - move it there. This (I really, really hope) should fix EH issues on ppc/darwin and arm/darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96755 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
293d592bf9cff6c3679998dde32f3cfd3cd53bc4 |
21-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
It turned out that we failed to emit proper symbol stubs on non-x86/darwin for ages (we emitted a reference to a stub, but no stub was emitted). The code inside x86-32/macho target objfile lowering should actually be the generic one - move it there. This (I really, really hope) should fix EH issues on ppc/darwin and arm/darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96755 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
53e7a839f94b9e9ea0999a28b75a1e7a2c6bd460 |
21-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable assertion to detect cyclic valno references. This changes the stack overflow in PR6363 to an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96744 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b1ce7b132497e0c05d2201f75d43d0f803ba7f88 |
21-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable assertion to detect cyclic valno references. This changes the stack overflow in PR6363 to an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96744 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4a6943c195de8df683174628024411cb1eddfde1 |
19-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert 96634. It causes assertion failures for 126.gcc and 176.gcc in the armv6 nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96691 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
1a2e8686f8137a1a2329952ffd1e21969ea1658c |
19-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert 96634. It causes assertion failures for 126.gcc and 176.gcc in the armv6 nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96691 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
de5c9579952a2906097828d2517a3182cafb23ee |
19-Feb-2010 |
Charles Davis <cdavis@mines.edu> |
Add support for the 'alignstack' attribute to the x86 backend. Fixes PR5254. Also, FileCheck'ize a test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96686 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
5dfa26795da9c521babd598ef911e6d95bd20d37 |
19-Feb-2010 |
Charles Davis <cdavis@mines.edu> |
Add support for the 'alignstack' attribute to the x86 backend. Fixes PR5254. Also, FileCheck'ize a test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96686 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
7455116392f9aeb5c78dc3a4c7ce5c833a3f3b4b |
19-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Anton's most recent EH patch (r96637), since it breaks a lot of ARM and Thumb tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96680 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
6b89aa57e6506f073579398bd74845db9463b9f1 |
19-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Anton's most recent EH patch (r96637), since it breaks a lot of ARM and Thumb tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96680 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
a5fbee007bda63f348079de2966c3d56b5fe65f7 |
19-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Revert commits 96556 and 96640, because commit 96556 breaks the dragonegg self-host build. I reverted 96640 in order to revert 96556 (96640 goes on top of 96556), but it also looks like with both of them applied the breakage happens even earlier. The symptom of the 96556 miscompile is the following crash: llvm[3]: Compiling AlphaISelLowering.cpp for Release build cc1plus: /home/duncan/tmp/tmp/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:4982: void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode*, llvm::SDNode*, llvm::SelectionDAG::DAGUpdateListener*): Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) == To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"' failed. Stack dump: 0. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_ZN4llvm19AlphaTargetLowering14LowerOperationENS_7SDValueERNS_12SelectionDAGE' g++: Internal error: Aborted (program cc1plus) This occurs when building LLVM using LLVM built by LLVM (via dragonegg). Probably LLVM has miscompiled itself, though it may have miscompiled GCC and/or dragonegg itself: at this point of the self-host build, all of GCC, LLVM and dragonegg were built using LLVM. Unfortunately this kind of thing is extremely hard to debug, and while I did rummage around a bit I didn't find any smoking guns, aka obviously miscompiled code. Found by bisection. r96556 | evancheng | 2010-02-18 03:13:50 +0100 (Thu, 18 Feb 2010) | 5 lines Some dag combiner goodness: Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" r96640 | evancheng | 2010-02-19 01:34:39 +0100 (Fri, 19 Feb 2010) | 16 lines Transform (xor (setcc), (setcc)) == / != 1 to (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
3eba667081cb63761861e4543715c90f8fc47b18 |
19-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Revert commits 96556 and 96640, because commit 96556 breaks the dragonegg self-host build. I reverted 96640 in order to revert 96556 (96640 goes on top of 96556), but it also looks like with both of them applied the breakage happens even earlier. The symptom of the 96556 miscompile is the following crash: llvm[3]: Compiling AlphaISelLowering.cpp for Release build cc1plus: /home/duncan/tmp/tmp/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:4982: void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode*, llvm::SDNode*, llvm::SelectionDAG::DAGUpdateListener*): Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) == To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"' failed. Stack dump: 0. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_ZN4llvm19AlphaTargetLowering14LowerOperationENS_7SDValueERNS_12SelectionDAGE' g++: Internal error: Aborted (program cc1plus) This occurs when building LLVM using LLVM built by LLVM (via dragonegg). Probably LLVM has miscompiled itself, though it may have miscompiled GCC and/or dragonegg itself: at this point of the self-host build, all of GCC, LLVM and dragonegg were built using LLVM. Unfortunately this kind of thing is extremely hard to debug, and while I did rummage around a bit I didn't find any smoking guns, aka obviously miscompiled code. Found by bisection. r96556 | evancheng | 2010-02-18 03:13:50 +0100 (Thu, 18 Feb 2010) | 5 lines Some dag combiner goodness: Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" r96640 | evancheng | 2010-02-19 01:34:39 +0100 (Fri, 19 Feb 2010) | 16 lines Transform (xor (setcc), (setcc)) == / != 1 to (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
7ef91d5d2ed4129318c2e297cac5601bbc8c0c75 |
19-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Transform (xor (setcc), (setcc)) == / != 1 to (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
97a35fc3a744c905e1aeed8542fae366c7940f95 |
19-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Transform (xor (setcc), (setcc)) == / != 1 to (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6597f3c14987050cda9d87e00a970934898fee3a |
19-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use the same encoding for EH stuff uniformly on all MachO targets. This hopefulyl should unbreak EH on PPC/Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96637 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
f0e7c87e56df43b012667762e2fb3e1b9edb766d |
19-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use the same encoding for EH stuff uniformly on all MachO targets. This hopefulyl should unbreak EH on PPC/Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96637 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
60f445031000f4a264412387932fce0de1000f00 |
19-Feb-2010 |
Jim Grosbach <grosbach@apple.com> |
Radar 7636153. In the presence of large call frames, it's not sufficient for ARM to just check if a function has a FP to determine if it's safe to simplify the stack adjustment pseudo ops prior to eliminating frame indices. Allow targets to override the default behavior and does so for ARM and Thumb2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96634 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
cf43e60544041c127bb875fe4cf0d0ae96cd6c78 |
19-Feb-2010 |
Jim Grosbach <grosbach@apple.com> |
Radar 7636153. In the presence of large call frames, it's not sufficient for ARM to just check if a function has a FP to determine if it's safe to simplify the stack adjustment pseudo ops prior to eliminating frame indices. Allow targets to override the default behavior and does so for ARM and Thumb2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96634 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
f58b8c903ad67f0ad4d28043b74f13850a494f8a |
18-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Always normalize spill weights, also for intervals created by spilling. Moderate the weight given to very small intervals. The spill weight given to new intervals created when spilling was not normalized in the same way as the original spill weights calculated by CalcSpillWeights. That meant that restored registers would tend to hang around because they had a much higher spill weight that unspilled registers. This improves the runtime of a few tests by up to 10%, and there are no significant regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96613 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveIntervalAnalysis.cpp
|
352d352c023ed411d9e4357ea01f3ec468ff87dc |
18-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Always normalize spill weights, also for intervals created by spilling. Moderate the weight given to very small intervals. The spill weight given to new intervals created when spilling was not normalized in the same way as the original spill weights calculated by CalcSpillWeights. That meant that restored registers would tend to hang around because they had a much higher spill weight that unspilled registers. This improves the runtime of a few tests by up to 10%, and there are no significant regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96613 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveIntervalAnalysis.cpp
|
cfb570d1b4526af2eb636064e2655b99ac9f4f22 |
18-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Make CodePlacementOpt detect special EH control flow by checking whether AnalyzeBranch disagrees with the CFG directly, rather than looking for EH_LABEL instructions. EH_LABEL instructions aren't always at the end of the block, due to FP_REG_KILL and other things. This fixes an infinite loop compiling MultiSource/Benchmarks/Bullet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96611 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
49d7f8d341a7b4137c674ce0f08f5b18e8195f4a |
18-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Make CodePlacementOpt detect special EH control flow by checking whether AnalyzeBranch disagrees with the CFG directly, rather than looking for EH_LABEL instructions. EH_LABEL instructions aren't always at the end of the block, due to FP_REG_KILL and other things. This fixes an infinite loop compiling MultiSource/Benchmarks/Bullet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96611 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
8240009254585bde6c3b1d89f000b5192f352698 |
18-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the way these options are printed. Requested by Russell Wallace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96580 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
irtRegRewriter.cpp
|
18619b2aeba5468512d6684c4fd96d0ad280e01d |
18-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the way these options are printed. Requested by Russell Wallace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96580 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
irtRegRewriter.cpp
|
1bd541d35acf4e345305a8b3d981f3f50cde0c64 |
18-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Remove terminating dot in description. Inconsistency pointed out by Russell Wallace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96579 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
1aecd15bd1b54f33bfd928e082a3798f0edf33aa |
18-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Remove terminating dot in description. Inconsistency pointed out by Russell Wallace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96579 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
33a29e431f2f235aaae4f2d53fbfaca1c445a5a5 |
18-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Some dag combiner goodness: Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96556 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
89bb7b56407bf81a5d5fdcdac7106d94bb30dd65 |
18-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Some dag combiner goodness: Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96556 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
05a001f8364754dc202260edd890d4846857525f |
17-Feb-2010 |
David Greene <greened@obbligato.org> |
Make the non-temporal bit "significant" in MemSDNodes so they aren't CSE'd or otherwise combined with temporal MemSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96505 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1157f791c967668f0838bb6edb66103c760f1a5b |
17-Feb-2010 |
David Greene <greened@obbligato.org> |
Make the non-temporal bit "significant" in MemSDNodes so they aren't CSE'd or otherwise combined with temporal MemSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96505 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b37d7ccd41ea807661a576480c143537dbc58018 |
17-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dead code elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96496 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
1bf1691ed3bf4cb16ea221f062f1bb978fc8ea9d |
17-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Dead code elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96496 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
04740c8fce9aeabcbdbb2763696648b53945cb77 |
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move isOnlyReachableByFallthrough out of MachineBasicBlock into AsmPrinter, and add a sparc implementation that knows about delay slots. Patch by Nathan Keynes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
|
0a3f39985b3827a02a7ce1ca5e310b68820fd26d |
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move isOnlyReachableByFallthrough out of MachineBasicBlock into AsmPrinter, and add a sparc implementation that knows about delay slots. Patch by Nathan Keynes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96492 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
|
d7fb4b22530b0bc5da92d73750f6036f6d8a1a43 |
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
sink special case "cannotyetselect" for intrinsics out of the tblgen splatted code into the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
409ac586e83525a760692cf0affb01f1c9efa594 |
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
sink special case "cannotyetselect" for intrinsics out of the tblgen splatted code into the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a5e66024017daacce6f409d60d94a8a1b9e0c35d |
17-Feb-2010 |
Lang Hames <lhames@gmail.com> |
Removed an early out which was causing the PBQP allocator to not compute live-in sets or run the rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96450 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
a6b80dd031a122a80683414db4f3858b85d89e49 |
17-Feb-2010 |
Lang Hames <lhames@gmail.com> |
Removed an early out which was causing the PBQP allocator to not compute live-in sets or run the rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96450 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
067e6d9f234becde5a72eff6f8bc64bfeb557ea5 |
17-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Before setting scope end marker, pay attention to scope begin marker and existing scope end marker, if any. Scope must begin before it ends and nested inlined scope do not truncate surrounding scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96445 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
22fb4b2a5708c2987a04a823df98b6f9fda60d0c |
17-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Before setting scope end marker, pay attention to scope begin marker and existing scope end marker, if any. Scope must begin before it ends and nested inlined scope do not truncate surrounding scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96445 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
10343d91c52ddbfd7572032a95724f0c1ba10c7b |
16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
1df9859c40492511b8aa4321eb76496005d3b75b |
16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
35740e3d4acada6a7b9ecfd61d604abcadbb07a1 |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Handle DBG_VALUE mixed with labels when doing PHI elimination. Before a DBG_VALUE could affect codegen. The solution here is imperfect and not final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96318 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.h
|
6e303cb9fa5fdf93a09b8b6017658f3c72a21292 |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Handle DBG_VALUE mixed with labels when doing PHI elimination. Before a DBG_VALUE could affect codegen. The solution here is imperfect and not final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96318 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.h
|
55057296377b0c031432574b3cdee00ada7dda6b |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Reapply 96294; now that I've gotten around to looking at older buildbot messages, I see the failure predates this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96307 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
f463d9554b5bfa735e896ceb06f5fea42d33955b |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Reapply 96294; now that I've gotten around to looking at older buildbot messages, I see the failure predates this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96307 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a073f75cf9f04e915df11f6a0fc748c8ca8e2b3b |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Something broke. Hard to believe it was this patch but it's harder to believe it's the other candidate, so reverting. Temporarily I hope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96303 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
2e2b4382426f3c918bf8f6d5a417884058b4375e |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Something broke. Hard to believe it was this patch but it's harder to believe it's the other candidate, so reverting. Temporarily I hope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96303 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
7e80b27fc4d48723bf82d91dda904e88e4d66908 |
16-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak. Patch by Nicolas Geoffray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f76de0011ff062d8fd6ba81382a7c7c36c9151c2 |
16-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak. Patch by Nicolas Geoffray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1b22395812efed8c62c943f234be78fdd52b8982 |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
More handling of DBG_VALUE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96294 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a95f9ed2b8348e91250a22c1aadf20637bcfcb3e |
16-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
More handling of DBG_VALUE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96294 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
0dd39a88d18baef39c6c0f28d6f8f5d4385f6809 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add missed entry to cmake build list file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96292 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
04c60d9535f0824f16bf6b48b820349db7241d90 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add missed entry to cmake build list file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96292 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
756ae49d30932ed7d89dabcef350e5dae3020238 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use ttype encoding consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
0b2173069688cae0321b05714f16a8886834cfe6 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use ttype encoding consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
84d365c9f4cc0ea5e33f84c90732f69779bbcda6 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move TLOF implementations to libCodegen to resolve layering violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96288 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
362dd0bef5437f85586c046bc53287b6fbe9c099 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move TLOF implementations to libCodegen to resolve layering violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96288 91177308-0d34-0410-b5e6-96231b3b80d8
argetLoweringObjectFileImpl.cpp
|
bf2ffccd8775a82a9589ba522861a1140d4a0aad |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
It turns out that we emitted completely wrong common EH frame since the early beginning! The "z" CIE augmentation mark indicates that there is an extra word containing the size of augmentation section. However, even for frames w/o any augmentation data we emitted size uleb! (this is the case of "unwinding through C code"). Thus frame moves information was emitterd completely wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96287 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ac8a3d0b5b464e4dd7c45ba111e6da1aeed39bc5 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
It turns out that we emitted completely wrong common EH frame since the early beginning! The "z" CIE augmentation mark indicates that there is an extra word containing the size of augmentation section. However, even for frames w/o any augmentation data we emitted size uleb! (this is the case of "unwinding through C code"). Thus frame moves information was emitterd completely wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96287 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d779bcb96ab72939243f1fdd85a2daae863a82c4 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
achineModuleInfoImpls.cpp
|
9184b25fa543a900463215c11635c2c014ddb623 |
15-Feb-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
achineModuleInfoImpls.cpp
|
fcda7188895dcf339e281d59a234ac0b06370758 |
15-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6300. A virtual register can be used before it is defined in the same MBB if the MBB is part of a loop. Teach the implicit-def pass about this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96279 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
8eea48a43da9e861841abe869c5f3215c1f42d27 |
15-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6300. A virtual register can be used before it is defined in the same MBB if the MBB is part of a loop. Teach the implicit-def pass about this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96279 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
f80681ead6c31677f300779fe356c77e34678396 |
15-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Split SelectionDAGISel::IsLegalAndProfitableToFold to IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use. This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
014bf215c3457bb34fee348265e8f63a70b4d503 |
15-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Split SelectionDAGISel::IsLegalAndProfitableToFold to IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use. This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7c5a506c74431cbdb99e5147fe5a0dadd395cf06 |
15-Feb-2010 |
David Greene <greened@obbligato.org> |
Add non-temporal flags and remove an assumption of default arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
1e559443a17d1b335f697551c6263ba60d5dd827 |
15-Feb-2010 |
David Greene <greened@obbligato.org> |
Add non-temporal flags and remove an assumption of default arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
5e4774db6de9a5be1a1d8e9610ef8293358b6b01 |
15-Feb-2010 |
David Greene <greened@obbligato.org> |
Add non-temporal flags to MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96226 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ba2b297ca53cd685ba397177e9d2d8c239da971e |
15-Feb-2010 |
David Greene <greened@obbligato.org> |
Add non-temporal flags to MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96226 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e92dee17fa016e12fa9fad042f3d19bf9322908b |
15-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the names of type predicates: rather than having isFloatTy and isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
tackProtector.cpp
|
b0bc6c361da9009e8414efde317d9bbff755f6c0 |
15-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the names of type predicates: rather than having isFloatTy and isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuilder.cpp
tackProtector.cpp
|
e7dda277a77b3b8d9e8a7b30f0fe5d623ecd2cc6 |
15-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Ignore DBG_VALUE in a couple more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96207 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
3da6e09de53d1f50ceed308de855cdce1a54cb81 |
15-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Ignore DBG_VALUE in a couple more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96207 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
412646479ff2453f68c098ef99867b894682e5cb |
13-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6283. When coalescing with a physreg, remember to add imp-def and imp-kill when dealing with sub-registers. Also fix a related bug in VirtRegRewriter where substitutePhysReg may reallocate the operand list on an instruction and invalidate the reg_iterator. This can happen when a register is mentioned twice on the same instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96072 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
d135f14f614ff0272b4653877abe09a2914a0227 |
13-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR6283. When coalescing with a physreg, remember to add imp-def and imp-kill when dealing with sub-registers. Also fix a related bug in VirtRegRewriter where substitutePhysReg may reallocate the operand list on an instruction and invalidate the reg_iterator. This can happen when a register is mentioned twice on the same instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96072 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
7f8ae1bc1fd9ef029bc354361a41d1e2667367bb |
13-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach MachineFrameInfo to track maximum alignment while stack objects are being created. This ensures it's updated at all time. It means targets which perform dynamic stack alignment would know whether it is required and whether frame pointer register cannot be made available register allocation. This is a fix for rdar://7625239. Sorry, I can't create a reasonably sized test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96069 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7545f49a5edfe19612d03e683d8b955c03018056 |
13-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach MachineFrameInfo to track maximum alignment while stack objects are being created. This ensures it's updated at all time. It means targets which perform dynamic stack alignment would know whether it is required and whether frame pointer register cannot be made available register allocation. This is a fix for rdar://7625239. Sorry, I can't create a reasonably sized test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96069 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3ba1ff076374c46e2d41f56d4d9551def0ea6e84 |
13-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Besides removing phi cycles that reduce to a single value, also remove dead phi cycles. Adjust a few tests to keep dead instructions from being optimized away. This (together with my previous change for phi cycles) fixes Apple radar 7627077. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96057 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizePHIs.cpp
|
bf9b221c006a99d6f117c1048412859d5637bcde |
13-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Besides removing phi cycles that reduce to a single value, also remove dead phi cycles. Adjust a few tests to keep dead instructions from being optimized away. This (together with my previous change for phi cycles) fixes Apple radar 7627077. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96057 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizePHIs.cpp
|
003217591d6c8a906438f16cf368da6c343e285d |
13-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
give MCCodeEmitters access to the current MCContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96038 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
86020e46289643de2f8c7603b550ffc8b6aff376 |
13-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
give MCCodeEmitters access to the current MCContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96038 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a8427f8952c642f1ebdc14f95e64113d83f24488 |
12-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Rewrite handling of DBG_VALUE; previous algorithm didn't handle X = Y<dead> = use X DBG_VALUE(X) I was hoping to avoid this approach as it's slower, but I don't think it can be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95996 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
2d1ec73d94941805de9f4392dbec052ce399ed58 |
12-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Rewrite handling of DBG_VALUE; previous algorithm didn't handle X = Y<dead> = use X DBG_VALUE(X) I was hoping to avoid this approach as it's slower, but I don't think it can be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95996 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
d7df9e124368e5e48122aef8154f39b0346226f5 |
12-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the new LoopStrengthReduction code, with compile time and bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95975 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
572645cf84060c0fc25cb91d38cb9079918b3a88 |
12-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the new LoopStrengthReduction code, with compile time and bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95975 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4a08b90bc70e6a988fd3988fb7f11718ffe00808 |
12-Feb-2010 |
Lang Hames <lhames@gmail.com> |
* Updated the cost matrix normalization proceedure to better handle infinite costs. * Enabled R1/R2 application for nodes with infinite spill costs in the Briggs heuristic (made safe by the changes to the normalization proceedure). * Removed a redundant header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95973 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
|
5cef638855c9f2bb23a9c181cc47ddace8551f50 |
12-Feb-2010 |
Lang Hames <lhames@gmail.com> |
* Updated the cost matrix normalization proceedure to better handle infinite costs. * Enabled R1/R2 application for nodes with infinite spill costs in the Briggs heuristic (made safe by the changes to the normalization proceedure). * Removed a redundant header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95973 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
|
90b0d5cdd86d7436a92aac43e69b68be8c749dc9 |
12-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a new pass on machine instructions to optimize away PHI cycles that reduce down to a single value. InstCombine already does this transformation but DAG legalization may introduce new opportunities. This has turned out to be important for ARM where 64-bit values are split up during type legalization: InstCombine is not able to remove the PHI cycles on the 64-bit values but the separate 32-bit values can be optimized. I measured the compile time impact of this (running llc on 176.gcc) and it was not significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95951 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LVMTargetMachine.cpp
ptimizePHIs.cpp
|
fe61fb1e1082c81653ed78efd6d471592a2e57ad |
12-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a new pass on machine instructions to optimize away PHI cycles that reduce down to a single value. InstCombine already does this transformation but DAG legalization may introduce new opportunities. This has turned out to be important for ARM where 64-bit values are split up during type legalization: InstCombine is not able to remove the PHI cycles on the 64-bit values but the separate 32-bit values can be optimized. I measured the compile time impact of this (running llc on 176.gcc) and it was not significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95951 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LVMTargetMachine.cpp
ptimizePHIs.cpp
|
dec66800d0c57b2bc6e93cb5ed5e119238519bf4 |
12-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply coalescer fix for better cross-class coalescing. This time with fixed test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95938 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4a540f0593f32d928534817b59c4a528e2197e0c |
12-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply coalescer fix for better cross-class coalescing. This time with fixed test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95938 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ebdcf95e6a8836fe0d137d2ac69f9f781734f738 |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert functional change. This broke a bunch of tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95921 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9637dd50f46bde79091c86c062b58bf406ac2a25 |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert functional change. This broke a bunch of tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95921 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
bd72f44221082ea9f0a4f8c79a09225b4cf599a7 |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
It is always good to do a cross-class join when the large register has a tiny interval. Also avoid division by zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95917 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a875fd0fdbf5fd111e97fa909e13ad48936856d1 |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
It is always good to do a cross-class join when the large register has a tiny interval. Also avoid division by zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95917 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
cd160d31418a6b7861fe2d645d77759e4bcaa2d6 |
11-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Allow for more than one DBG_VALUE targeting the same dead instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95890 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
39c7a198ea0e10ec258c7df6bba25d4bcaf0792c |
11-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Allow for more than one DBG_VALUE targeting the same dead instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95890 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
74e639f162fb56cb2c87d0db7fd836c34a959a3f |
11-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Don't allow DBG_VALUE to affect codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95889 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3bfef03eb6eb6b1b8fe85ba1029ef709aaafe8af |
11-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Don't allow DBG_VALUE to affect codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95889 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b867128dfeb2cdd5016516489e38bd35710f4e2f |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use array_pod_sort instead of std::sort for improved code size. Use SmallVector instead of std::vector for better speed when indirectbr has few successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b5b90eddcd5e0a3199a7d5064b9d7551cc1dff9c |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use array_pod_sort instead of std::sort for improved code size. Use SmallVector instead of std::vector for better speed when indirectbr has few successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0523d683c6ae5a3d686bc63ca1457985d692b3b5 |
11-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Use .empty() instead of .size(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95871 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
e9d10a6c398246fac376804143e868d6c20b6947 |
11-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Use .empty() instead of .size(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95871 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d9696785905a1d2aed7ac6c587aefd5e726c250d |
11-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix to get it to compile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95840 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
ca51d051385d5286d1b56b67f7d41468bf1b96dd |
11-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Fix to get it to compile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95840 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
0559f91a9b0a6f81457ac73755bab2da0b724586 |
11-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Don't print out a default newline when emitting the section offset. There are almost always comments afterwards that need printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95839 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfPrinter.cpp
|
4cb4895e41435deb1b92a195de420d04e00c7234 |
11-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Don't print out a default newline when emitting the section offset. There are almost always comments afterwards that need printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95839 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DwarfPrinter.cpp
|
217b0a9b15146f981fab0cfafb651a50235cf8c0 |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reuse operand location when updating PHI instructions. Calling RemoveOperand is very expensive on huge PHI instructions. This makes early tail duplication run twice as fast on the Firefox JavaScript interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95832 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
09eeac9f5f8c21621f82f9b6598eb7e34593357e |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reuse operand location when updating PHI instructions. Calling RemoveOperand is very expensive on huge PHI instructions. This makes early tail duplication run twice as fast on the Firefox JavaScript interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95832 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
a2d21bdb882e18a753d36e22304bd88000e820b2 |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove duplicate successors from indirectbr instructions before building the machine CFG. This makes early tail duplication run 60 times faster when compiling the Firefox JavaScript interpreter, see PR6186. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
598b24c6d1d6eecb558051d79d8b801542663e09 |
11-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove duplicate successors from indirectbr instructions before building the machine CFG. This makes early tail duplication run 60 times faster when compiling the Firefox JavaScript interpreter, see PR6186. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
15e34200c767d0edbd2256d4eae312c30a08b1b8 |
11-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
The previous fix of widening divides that trap was too fragile as it depends on custom lowering and requires that certain types exist in ValueTypes.h. Modified widening to check if an op can trap and if so, the widening algorithm will apply only the op on the defined elements. It is safer to do this in widening because the optimizer can't guarantee removing unused ops in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95823 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
f7ea6c3ee89e605c8d0bb7cdb0ade79706c750e8 |
11-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
The previous fix of widening divides that trap was too fragile as it depends on custom lowering and requires that certain types exist in ValueTypes.h. Modified widening to check if an op can trap and if so, the widening algorithm will apply only the op on the defined elements. It is safer to do this in widening because the optimizer can't guarantee removing unused ops in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95823 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
a80bab71ccd52a1900117339b9d24b2549a4730e |
11-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Ignore debug info one more place during coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95819 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
99efcf299fb522297dee43066f9c19df00813dcb |
11-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Ignore debug info one more place during coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95819 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
dc687cb3565e6f40a3a2d38b55b89fab3b44f7e1 |
10-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Delete dead PHI machine instructions. These can be created due to type legalization even when the IR-level optimizer has removed dead phis, such as when the high half of an i64 value is unused on a 32-bit target. I had to adjust a few test cases that had dead phis. This is a partial fix for Radar 7627077. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95816 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
5e2b05a71e81b28712b77419f68657462494e103 |
10-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Delete dead PHI machine instructions. These can be created due to type legalization even when the IR-level optimizer has removed dead phis, such as when the high half of an i64 value is unused on a 32-bit target. I had to adjust a few test cases that had dead phis. This is a partial fix for Radar 7627077. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95816 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
9f2ec003a549daadb083dc66098fef1e850e3b20 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Skip debug info in a couple of places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95814 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b8ff934e94637462901ebd1c849aeaf71350dacc |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Skip debug info in a couple of places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95814 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
7c99a19b753c91264b5ce38b1752fbeb80b6dce6 |
10-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Use an index instead of pointers into the vector. If the vector resizes, then the pointer values could be invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95813 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
0a9abcbffed2ccef44138f997c070ba9159b1443 |
10-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Use an index instead of pointers into the vector. If the vector resizes, then the pointer values could be invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95813 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
9abc0488e982bf5cc2295ea9675ce66eda6999fb |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
When I rewrote this loop per Chris' preference I changed its behavior. Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95811 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e21765d1c86dedbb5537ba6cf5e0cf156d7283ea |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
When I rewrote this loop per Chris' preference I changed its behavior. Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95811 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
dc9a0664253bca3cd3dbfaa16d4972a63a7d89eb |
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix several comments which had previously been "the the" where a different word was intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95795 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
f3b11aa6a72e0c31066a60c2e888e7a5eb5f2399 |
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix several comments which had previously been "the the" where a different word was intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95795 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
e264f62ca09a8f65c87a46d562a4d0f9ec5d457e |
10-Feb-2010 |
Shih-wei Liao <sliao@google.com> |
Check in LLVM r95781.
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
smPrinter/AsmPrinter.cpp
smPrinter/CMakeLists.txt
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
smPrinter/Makefile
smPrinter/OcamlGCPrinter.cpp
ranchFolding.cpp
ranchFolding.h
MakeLists.txt
alcSpillWeights.cpp
odePlacementOpt.cpp
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
xactHazardRecognizer.cpp
xactHazardRecognizer.h
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
fConversion.cpp
ntrinsicLowering.cpp
LVMTargetMachine.cpp
atencyPriorityQueue.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineDominators.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineInstr.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineModuleInfoImpls.cpp
achinePassRegistry.cpp
achineRegisterInfo.cpp
achineSSAUpdater.cpp
achineSink.cpp
achineVerifier.cpp
akefile
bjectCodeEmitter.cpp
camlGC.cpp
ptimizeExts.cpp
BQP/Graph.h
BQP/HeuristicBase.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/Math.h
BQP/Solution.h
HIElimination.cpp
HIElimination.h
asses.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
rologEpilogInserter.h
seudoSourceValue.cpp
EADME.txt
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
egisterCoalescer.cpp
egisterScavenging.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
cheduleDAGPrinter.cpp
electionDAG/CMakeLists.txt
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/Makefile
electionDAG/SDNodeOrdering.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
hrinkWrapping.cpp
impleHazardRecognizer.h
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
jLjEHPrepare.cpp
lotIndexes.cpp
piller.cpp
piller.h
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
irtRegMap.h
irtRegRewriter.cpp
irtRegRewriter.h
|
df1a7ffe7f19756ba874b3c07615d93ece611a1d |
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix "the the" and similar typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
odePlacementOpt.cpp
xactHazardRecognizer.cpp
achineFunction.cpp
achineInstr.cpp
BQP/HeuristicSolver.h
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
trongPHIElimination.cpp
irtRegMap.cpp
|
f451cb870efcf9e0302d25ed05f4cac6bb494e42 |
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix "the the" and similar typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
odePlacementOpt.cpp
xactHazardRecognizer.cpp
achineFunction.cpp
achineInstr.cpp
BQP/HeuristicSolver.h
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
trongPHIElimination.cpp
irtRegMap.cpp
|
238a8d4c3d6868ba4d75158fb7320ef716b1f496 |
10-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Now that ShrinkDemandedOps() is separated out from DAG combine. It sometimes leave some obvious nops which dag combine used to clean up afterwards e.g. (trunk (ext n)) -> n. Look for them and squash them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
046632f272b22a653c204c0ef56eb4076368d4bb |
10-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Now that ShrinkDemandedOps() is separated out from DAG combine. It sometimes leave some obvious nops which dag combine used to clean up afterwards e.g. (trunk (ext n)) -> n. Look for them and squash them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
83efe12ce124419eba2ff9dc354fa248d672d7df |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Rewrite loop to suit Chris' preference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95749 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1d0aeabe3fce2ce6610e988b36582b47a7684f74 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Rewrite loop to suit Chris' preference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95749 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f2f451d4eb04db04bc45999bfc8bd0dd6a27dfde |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95748 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
irtRegRewriter.cpp
|
45282aedb9c5a33d20565502c6c8fc871fa84cbe |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95748 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
irtRegRewriter.cpp
|
bdd099ecaa89228d499d4c153237e81f037208b9 |
10-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove duplicated #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95747 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
1e5cc222e85fdfdec34e977977c9ca0dea83aa04 |
10-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove duplicated #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95747 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
784555218036dd9945a7f060ad5660e838bb4978 |
10-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Emit an error for illegal inline asm constraint (which uses illegal type) rather than asserting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95746 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
electionDAG/SelectionDAGBuilder.cpp
|
8112b5322ef60c2dc3cbf0c05671de76df31cf02 |
10-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Emit an error for illegal inline asm constraint (which uses illegal type) rather than asserting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95746 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
electionDAG/SelectionDAGBuilder.cpp
|
18ab47ac9b067010d6c09896509561d7991a0290 |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix missing #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95745 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
achineSSAUpdater.cpp
irtRegRewriter.cpp
|
3143e90ca89b808e98ad7354a9e7dd6bf42fef00 |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix missing #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95745 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
achineSSAUpdater.cpp
irtRegRewriter.cpp
|
fc5727dc3a284e11b729779a0ae20d5b3e12847f |
10-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comments a even more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95740 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d3a47a3ef3ea429f82b05cce9ecd7bc6d28badf0 |
10-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comments a even more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95740 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5f2aa4db21cbf761d74af477d11f496eaa01f48a |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Skip DBG_VALUE many places in live intervals and register coalescing. This fixes many crashes and places where debug info affects codegen (when dbg.value is lowered to machine instructions, which it isn't yet in TOT). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95739 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
bd63520161629385ff5a0b037eccc770d8d15289 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Skip DBG_VALUE many places in live intervals and register coalescing. This fixes many crashes and places where debug info affects codegen (when dbg.value is lowered to machine instructions, which it isn't yet in TOT). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95739 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
18ae887e125ccf13369a335d27675dda2f282fa6 |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Move verbose asm instruction comments to using MCStreamer. The major win of this is that the code is simpler and they print on the same line as the instruction again: movl %eax, 96(%esp) ## 4-byte Spill movl 96(%esp), %eax ## 4-byte Reload cmpl 92(%esp), %eax ## 4-byte Folded Reload jl LBB7_86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95738 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
47529c9ac6d4731e9f5a1b2d3c64769b1b2d5f1d |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Move verbose asm instruction comments to using MCStreamer. The major win of this is that the code is simpler and they print on the same line as the instruction again: movl %eax, 96(%esp) ## 4-byte Spill movl 96(%esp), %eax ## 4-byte Reload cmpl 92(%esp), %eax ## 4-byte Folded Reload jl LBB7_86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95738 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
30299f06097ea3e9a42b5c53712731bdf3e4c1b2 |
10-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comments a bit more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
35c187bcfda326edcddf0c71ab593786cf88f577 |
10-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comments a bit more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
04ec358aaeb196b8de2bc41e7dd09e31d82a64e9 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
more comment updates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95736 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
3b1906f48d0b541e5be0bc1918c94a454e908bc0 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
more comment updates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95736 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
db9d33ba6ce91d8365153ac92c96046a68afa871 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Add isDebug argument to ChangeToRegister; this prevents the field from being used uninitialized later in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95735 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9653f9ec970147a12216d787078eab2f8b9c122a |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Add isDebug argument to ChangeToRegister; this prevents the field from being used uninitialized later in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95735 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
726d397a8cc48a5cb5d2f8a0fe10f7f17f7d4afc |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
print all the newlines at the end of instructions with OutStreamer.AddBlankLine instead of textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95734 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8e089a9e4d6b7aa2b3968c38644f926f60a7c670 |
10-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
print all the newlines at the end of instructions with OutStreamer.AddBlankLine instead of textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95734 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e186ea09c2ee992bfec603ae61052c37043607a0 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Fix comments to reflect renaming elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95730 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
egAllocLocal.cpp
electionDAG/FastISel.cpp
|
10fedd21d3d5e9527b13e38addd7002da2c1dc61 |
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Fix comments to reflect renaming elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95730 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
egAllocLocal.cpp
electionDAG/FastISel.cpp
|
4e45d4038f73a9f9b011973cccc141f3188480b8 |
10-Feb-2010 |
David Greene <greened@obbligato.org> |
Only dump output in debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
39143700a41cc450252bf2e0b000ce1dd723eb0c |
10-Feb-2010 |
David Greene <greened@obbligato.org> |
Only dump output in debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cfa17985ae5be02135e39f36181195bcbfd3bd07 |
09-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comments in the LSDA somewhat. They can be improved much more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95707 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1f8075d7d232dd0c7b0caa81ed3ce426a13f5a66 |
09-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Improve comments in the LSDA somewhat. They can be improved much more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95707 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
4052b296030e3523b9a4a8d1e4a9af9091a8d7e8 |
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
alcSpillWeights.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
CStrategy.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
achineSSAUpdater.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeExts.cpp
HIElimination.cpp
HIElimination.h
reAllocSplitting.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegRewriter.cpp
|
518bb53485df640d7b7e3f6b0544099020c42aa7 |
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
alcSpillWeights.cpp
odePlacementOpt.cpp
eadMachineInstructionElim.cpp
CStrategy.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
achineSSAUpdater.cpp
achineSink.cpp
achineVerifier.cpp
ptimizeExts.cpp
HIElimination.cpp
HIElimination.h
reAllocSplitting.cpp
rocessImplicitDefs.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
ailDuplication.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegRewriter.cpp
|
fa00947513b6cba185e3870221e0b09bd242c180 |
09-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to update live-in lists when coalescing physregs. Patch by M Wahab! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95668 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
00350dbd718e993166da92f1388f57963716efeb |
09-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remember to update live-in lists when coalescing physregs. Patch by M Wahab! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95668 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
fe5c38072a6c6bd89361670523e57838140a2e2c |
09-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Skip DEBUG_VALUE in some places where it was affecting codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95647 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveVariables.cpp
woAddressInstructionPass.cpp
|
d94998f52574eacef148bd856de701af2c594b03 |
09-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Skip DEBUG_VALUE in some places where it was affecting codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95647 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveVariables.cpp
woAddressInstructionPass.cpp
|
a0a98586f7ea4cb607c149cb309859d3973dff7d |
09-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Add declaration attribute to a variable DIE, if there is a separate DIE for the definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8581e0147cd7622ecec96a47310fc1a211b77908 |
09-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Add declaration attribute to a variable DIE, if there is a separate DIE for the definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
36edd2c95fdb2f77e1c886fb9f959d60b02f7cfa |
09-Feb-2010 |
Lang Hames <lhames@gmail.com> |
Fixed a bug in the PBQP allocator's findCoalesces method. Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95636 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
0b23dc0cc8fb2967dc08574910536cc074863bcb |
09-Feb-2010 |
Lang Hames <lhames@gmail.com> |
Fixed a bug in the PBQP allocator's findCoalesces method. Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95636 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
039aed6edab16ad196c80d97ee972506972f078e |
09-Feb-2010 |
Lang Hames <lhames@gmail.com> |
Added copy sensible construction & assignment to PBQP graphs and fixed a memory access bug in the heuristic solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95633 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Graph.h
BQP/HeuristicSolver.h
|
ddea94a8193a9bdbcd2d7655c3be7b189f7e30ac |
09-Feb-2010 |
Lang Hames <lhames@gmail.com> |
Added copy sensible construction & assignment to PBQP graphs and fixed a memory access bug in the heuristic solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95633 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Graph.h
BQP/HeuristicSolver.h
|
69003fc57deb3d06a59092e8edc69a886f34e817 |
09-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Implement AsmPrinter support for several more operators which have direct MCExpr equivalents. Don't use MCExpr::Shr because it isn't consistent between targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5938a3e681ab7612f5921c5ccaca5d2e0851c60f |
09-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Implement AsmPrinter support for several more operators which have direct MCExpr equivalents. Don't use MCExpr::Shr because it isn't consistent between targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3274882ec8b5fe6f17f88674433a77b7a892ada7 |
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
now that @GOTOFF is no longer represented as a suffix on a MCSymbol, we can remove the 'suffix' argument of GetBlockAddressSymbol. Do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95601 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
951755445821b92c3dc38f32b5c36e9875fa4318 |
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
now that @GOTOFF is no longer represented as a suffix on a MCSymbol, we can remove the 'suffix' argument of GetBlockAddressSymbol. Do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95601 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
933f193cf388024c0a385808683aec98d6dbe780 |
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
ConstantFoldConstantExpression can theoretically return the original expression; don't go into an infinite loop if it does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95591 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
54e72eca0c5d012546fcc6d1fdac7ee56c90686c |
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
ConstantFoldConstantExpression can theoretically return the original expression; don't go into an infinite loop if it does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95591 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8e0ed34112d7ff6a6211d0b0168d34ce0be747dc |
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
When CodeGen'ing unoptimized code, there may be unfolded constant expressions in global initializers. Instead of aborting, attempt to fold them on the spot. If folding succeeds, emit the folded expression instead. This fixes PR6255. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95583 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
618f17702d09795279717827eeb06632d6ef49e4 |
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
When CodeGen'ing unoptimized code, there may be unfolded constant expressions in global initializers. Instead of aborting, attempt to fold them on the spot. If folding succeeds, emit the folded expression instead. This fixes PR6255. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95583 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9cfc4c0346214456c6e77f4e1a6f6546ef44d337 |
08-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Apply the 95471 fix to SelectionDAGBuilder as well; we can get in here if FastISel gives up in a block. (Actually the two copies of this need to be unified. Later.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8ac38f2a616d303423e66023d2d2a6ff96c5040a |
08-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Apply the 95471 fix to SelectionDAGBuilder as well; we can get in here if FastISel gives up in a block. (Actually the two copies of this need to be unified. Later.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4bfece3213313d8e89a2c1b539e2248dfdd8c157 |
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
In guaranteed tailcall mode, don't decline the tailcall optimization for blocks ending in "unreachable". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c2e93b255e120f066ad8c16b0593b05f7e9f3d19 |
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
In guaranteed tailcall mode, don't decline the tailcall optimization for blocks ending in "unreachable". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3ef960d295493fb1b9e5076ea07b83ef8a232a5e |
07-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Give DwarfPrinter a protected (but not virtual) destructor. Cppcheck warns about this base class not having a virtual destructor, but since this class has no virtual methods and neither it or the types derived from it has a destructor, a protected trivial destructor will do (and shuts cppcheck up) the trick without the cost of introducing a vtable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95526 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.h
|
3dc32ed569ab8f94e8036f5aae9d683c34bd31f3 |
07-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Give DwarfPrinter a protected (but not virtual) destructor. Cppcheck warns about this base class not having a virtual destructor, but since this class has no virtual methods and neither it or the types derived from it has a destructor, a protected trivial destructor will do (and shuts cppcheck up) the trick without the cost of introducing a vtable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95526 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.h
|
254de0edb72f9c9e5b16d7b6331593d11157ce3c |
06-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Run codegen dce pass for all targets at all optimization levels. Previously it's only run for x86 with fastisel. I've found it being very effective in eliminating some obvious dead code as result of formal parameter lowering especially when tail call optimization eliminated the need for some of the loads from fixed frame objects. It also shrinks a number of the tests. A couple of tests no longer make sense and are now eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95493 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
LVMTargetMachine.cpp
iveIntervalAnalysis.cpp
|
00a99a35840451a291eb61a192a750908a4073ae |
06-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Run codegen dce pass for all targets at all optimization levels. Previously it's only run for x86 with fastisel. I've found it being very effective in eliminating some obvious dead code as result of formal parameter lowering especially when tail call optimization eliminated the need for some of the loads from fixed frame objects. It also shrinks a number of the tests. A couple of tests no longer make sense and are now eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95493 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
LVMTargetMachine.cpp
iveIntervalAnalysis.cpp
|
f7cd4ca5d5cdf33d900e181a06b64e41ee3960dc |
06-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix an uninitialized value. Radar 7609421. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95488 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
5d48c6d2cb7fb73c8bb042fbc4e8662347df70bc |
06-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix an uninitialized value. Radar 7609421. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95488 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
1a68ec1d4aae7947e5f0462c82077f93333cca9f |
06-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
After Victor's latest commits I am seeing null addresses in dbg.declare; ignore this for the moment to prevent things from breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
dc9185657593b5c1db86cb95a04a68fc09194993 |
06-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
After Victor's latest commits I am seeing null addresses in dbg.declare; ignore this for the moment to prevent things from breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c5dc725a7b5176771a55ea1b5ceb5666ae084e88 |
06-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Set DW_AT_artificial only if argument is marked as artificial. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95461 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b4645643de240e5b3461b03a9c6950fefe1538ac |
06-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Set DW_AT_artificial only if argument is marked as artificial. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95461 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
530a81e793a4016c15d6bafb80b918ea4fb28dde |
06-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Do not generate specification DIE for nested functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95452 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6cda22eae404e25944dc29c59e9fc239e8c1891c |
06-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Do not generate specification DIE for nested functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95452 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8558d763f21b4a35b2aeccf5de6dcb809d66ff19 |
05-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
When the scheduler unfold a load folding instruction it move some of the predecessors to the unfolded load. It decides what gets moved to the load by checking whether the new load is using the predecessor as an operand. The check neglects the cases whether the predecessor is a flagged scheduling unit. rdar://7604000 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
5ba8bf6d28ad350114a4b02f01d70ebe08612cfe |
05-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
When the scheduler unfold a load folding instruction it move some of the predecessors to the unfolded load. It decides what gets moved to the load by checking whether the new load is using the predecessor as an operand. The check neglects the cases whether the predecessor is a flagged scheduling unit. rdar://7604000 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
380d4a269e3932f9ad4d99c9f1300361eecb766d |
05-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
An empty global constant (one of size 0) may have a section immediately following it. However, the EmitGlobalConstant method wasn't emitting a body for the constant. The assembler doesn't like that. Before, we were generating this: .zerofill __DATA, __common, __cmd, 1, 3 This fix puts us back to that semantic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95336 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
744f579b63987854ac1b3f2f9c8d2659c5b5ee40 |
05-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
An empty global constant (one of size 0) may have a section immediately following it. However, the EmitGlobalConstant method wasn't emitting a body for the constant. The assembler doesn't like that. Before, we were generating this: .zerofill __DATA, __common, __cmd, 1, 3 This fix puts us back to that semantic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95336 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
217685b229a3b5d8bb1416126b1b64ab15e963bd |
04-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95322 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6fdce6590261476964cb921a959ed83353e8b096 |
04-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95322 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
32db0b8104a828cc965b84b7d379f89158e342e4 |
04-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix small bug in handling instructions with more than one implicitly defined operand. ProcessImplicitDefs would only mark one operand per instruction with <undef>. This fixed PR6086. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95319 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
e4d2d96cc8663b9a6040532cea2f2e72688bd895 |
04-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix small bug in handling instructions with more than one implicitly defined operand. ProcessImplicitDefs would only mark one operand per instruction with <undef>. This fixed PR6086. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95319 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
9a7226ffee3f2bcbf895b61c992fd52aad703048 |
04-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's too risky to eliminate sext / zext of call results for tail call optimization even if the caller / callee attributes completely match. The callee may have been bitcast'ed (or otherwise lied about what it's doing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95282 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
446bc10085482aba8cde79d22e10c1fe90ac54b9 |
04-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
It's too risky to eliminate sext / zext of call results for tail call optimization even if the caller / callee attributes completely match. The callee may have been bitcast'ed (or otherwise lied about what it's doing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95282 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
84aba948550c797f65a251c01500703858dd5140 |
03-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Emit appropriate expression to find virtual base offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95242 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c1dc8fff79eecc154eb6a62d652c5209d71c031b |
03-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Emit appropriate expression to find virtual base offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95242 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bf7d00abd2602d7eee2c086882ad7b716253e61d |
03-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Provide interface to identifiy artificial methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95240 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4e0d19dfd9ab77f9974cb07320dfe4f7f5ffd7b9 |
03-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Provide interface to identifiy artificial methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95240 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7765306eef752f506f6d2720de53dc14197b3cfc |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make MachineModuleInfoMachO hold non-const MCSymbol*'s instead of const ones. non-const ones aren't very useful, because you can't even, say, emit them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95205 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
|
d269a6e460a71a6c5c361a26c56c91fdb9486f45 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make MachineModuleInfoMachO hold non-const MCSymbol*'s instead of const ones. non-const ones aren't very useful, because you can't even, say, emit them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95205 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
|
93ed96f75fa6d5f07748c2608d66cd7fb28012b9 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
change addPassesToEmitFile to return true on failure instead of its input, add -filetype=null for performance testing and remove -filetype=dynlib, which isn't planned to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95202 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
5669e3009761dff20b67e18a382c334041887928 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
change addPassesToEmitFile to return true on failure instead of its input, add -filetype=null for performance testing and remove -filetype=dynlib, which isn't planned to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95202 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c41310c1debf41b0fe1569982719fe571866888d |
03-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 94937 and move the noreturn check to codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
febc81680c80a53f15f85b1812cba07fc179b9fd |
03-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 94937 and move the noreturn check to codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
411c05288da7bed30b35be92bcf6cca5466364db |
03-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow all types of callee's to be tail called. But avoid automatic tailcall if the callee is a result of bitcast to avoid losing necessary zext / sext etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
86809ccdaddf48a87ed772bc01464812caaf4baf |
03-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow all types of callee's to be tail called. But avoid automatic tailcall if the callee is a result of bitcast to avoid losing necessary zext / sext etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
32b33f15eb5592331cc893043be273c64b42cf76 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
don't emit \n's at the start of X86AsmPrinter::runOnMachineFunction, .o files don't like that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95187 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d26a80f666fb925956a4f19143265f5150756df0 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
don't emit \n's at the start of X86AsmPrinter::runOnMachineFunction, .o files don't like that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95187 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dc091da21df4460d274807b0357f41c103f1b904 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
privatize a bunch of methods and move \n printing into them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95186 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f64159c8402ef17d14b5f7555378b2c321a4a5ab |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
privatize a bunch of methods and move \n printing into them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95186 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
da4d84a794114b7aefe5fc1caa33753d5b8d4143 |
03-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Reapply 95050 with a tweak to check the register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95183 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
9a6636b2cdb2be054850d69619504058f7c8ed91 |
03-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Reapply 95050 with a tweak to check the register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95183 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
0c920438c1f21ee6d9befa4aac8b884b8cafbc9c |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
rejigger the world so that EmitInstruction prints the \n at the end of the instruction instead of expecting the caller to do it. This currently causes the asm-verbose instruction comments to be on the next line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95178 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d1ff72b8a797304f146e4293db8c814231ea8cb3 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
rejigger the world so that EmitInstruction prints the \n at the end of the instruction instead of expecting the caller to do it. This currently causes the asm-verbose instruction comments to be on the next line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95178 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ff259dbe71427fbe989d2f886f08c00e369df771 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
sink handling of target-independent machine instrs (other than DEBUG_VALUE :( ) into the target indep AsmPrinter.cpp file. This allows elimination of the NO_ASM_WRITER_BOILERPLATE hack among other things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95177 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0d883e3f8484491d010b8f8b7a1aecc58cb5fa8e |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
sink handling of target-independent machine instrs (other than DEBUG_VALUE :( ) into the target indep AsmPrinter.cpp file. This allows elimination of the NO_ASM_WRITER_BOILERPLATE hack among other things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95177 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4b8234c54c1f72a649687997b26f9d252529cf64 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
pass an instprinter into the AsmPrinter if it is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95168 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6c8d6ec2a7906733401aae121a5e1eacf477c0f5 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
pass an instprinter into the AsmPrinter if it is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95168 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d6889ceb21f6478604547c55963539a7ecc8449f |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make any use of the "O" stream in asmprinter print to stderr if in filetype=obj mode. This is a hack, and will live until dwarf emission and other random stuff that is not yet going through MCStreamer is upgraded. It only impacts filetype=obj mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95166 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
be2e76bbb358ba58aecc05c94fb98cf5c2981bd2 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make any use of the "O" stream in asmprinter print to stderr if in filetype=obj mode. This is a hack, and will live until dwarf emission and other random stuff that is not yet going through MCStreamer is upgraded. It only impacts filetype=obj mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95166 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
20bb6c0b391cad84d81120cf11330c998a97371d |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Hook up -filetype=obj through the MachO streamer. Here's a demo: $ cat t.ll @g = global i32 42 $ llc t.ll -o t.o -filetype=obj $ nm t.o 00000000 D _g There is still a ton of work left. Instructions are not being encoded yet apparently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95162 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ac7798e9062f9bc371709ed445e1b3153b581e9a |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Hook up -filetype=obj through the MachO streamer. Here's a demo: $ cat t.ll @g = global i32 42 $ llc t.ll -o t.o -filetype=obj $ nm t.o 00000000 D _g There is still a ton of work left. Instructions are not being encoded yet apparently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95162 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ff116f99c64e1ca085c9d1387f7bd6eb8e4dbd67 |
03-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 95130. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
022d9e1cef7586a80a96446ae8691a37def9bbf4 |
03-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 95130. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
56e867721dfa32bebff919775d054fbd27d6e53d |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
use OwningPtr and factor code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95156 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6cafdcc9afb294b62962f94f03cc48d6b18712d0 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
use OwningPtr and factor code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95156 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8d2970ba91fc2161bf5fc3d073a59cd4f3dc45a6 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
refactor code so that LLVMTargetMachine creates the asmstreamer and mccontext instead of having AsmPrinter do it. This allows other types of MCStreamer's to be passed in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95155 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
56591ab218639d8a6e4c756ca37adaf20215c3b6 |
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
refactor code so that LLVMTargetMachine creates the asmstreamer and mccontext instead of having AsmPrinter do it. This allows other types of MCStreamer's to be passed in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95155 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
ed8f0c61baa769f1a5bd1767fe715d7323e1aca1 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
simplify getVerboseAsm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95153 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e16ad1a9833c89965c921f137cfb6c424ff3e9c2 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
simplify getVerboseAsm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95153 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
28761cf9ba65a2c97ebb02aa10c4a5485d255358 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move handling of asm-verbose out of AsmPrinter.cpp into LLVMTargetMachine.cpp with the rest of the command line options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95152 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
1f21990284906b1d3ed244d99808c6dade04d295 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move handling of asm-verbose out of AsmPrinter.cpp into LLVMTargetMachine.cpp with the rest of the command line options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95152 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
e58833b5e2fe3eb343ca5863d33ccee2c85b249d |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead #include, stupid symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95150 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
2e438c3a70dcd445f99f562e57715296e3cacc08 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead #include, stupid symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95150 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
ea38206ed77d355aac2f0bfa2e3f27ef7aa83c2e |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch of stuff around the edges of the ELF writer. Now the only use of the ELF writer is the JIT, which won't be easy to fix in the short term. :( :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95148 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
|
3813d8adf3788dd01a4cb9db01c122cd5e6a13b9 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch of stuff around the edges of the ELF writer. Now the only use of the ELF writer is the JIT, which won't be easy to fix in the short term. :( :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95148 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
|
ca6c93430e98e3fb0eaf40aa543ea1dc45cf35d7 |
02-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pass callsite return type to TargetLowering::LowerCall and use that to check sibcall eligibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
942619695f4bd77934c09a1cae0fb39ae59edac3 |
02-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pass callsite return type to TargetLowering::LowerCall and use that to check sibcall eligibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
53f24980e669cfa1585636897172a9c2013b850e |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate FileModel::Model, just use CodeGenFileType. The client of the code generator shouldn't care what object format a target uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95124 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
211edae4843f5c2ee9c376e88e4cf0ecc8745f03 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate FileModel::Model, just use CodeGenFileType. The client of the code generator shouldn't care what object format a target uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95124 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
72f6852e64650946e0c8f6896dccba3eeb81bb1c |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate all forms of addPassesToEmitMachineCode except the one used by the JIT. Remove all forms of addPassesToEmitFileFinish except the one used by the static code generator. Inline the remaining version of addPassesToEmitFileFinish into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95109 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
b5c5160a554cb0debeb7913287d9c099a753a59e |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate all forms of addPassesToEmitMachineCode except the one used by the JIT. Remove all forms of addPassesToEmitFileFinish except the one used by the static code generator. Inline the remaining version of addPassesToEmitFileFinish into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95109 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2106e99cde730bc2e97944691676eb877ba5e75d |
02-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Test revert 95050; there's a good chance it's causing buildbot failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95103 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
62a04136d5e2f4153c02fb0b78be9b48e14423da |
02-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Test revert 95050; there's a good chance it's causing buildbot failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95103 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e671159f4ba37abebfe2ebe7f08cf6fb97aff27b |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Inline addAssemblyEmitter into its one real caller and delete the -print-emitted-asm option. The JIT shouldn't have to pull in the asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95100 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
0823d2a654cb3a075016f6efd21359ed4f5aca21 |
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Inline addAssemblyEmitter into its one real caller and delete the -print-emitted-asm option. The JIT shouldn't have to pull in the asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95100 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
40b6cdaef9ac376bce891e90375868450f84158d |
02-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Apparently gdb is not amused by empty lines in pubtypes section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95064 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e3d6d220bddbbd7d48b0610edf43e080a0b7467c |
02-Feb-2010 |
Devang Patel <dpatel@apple.com> |
Apparently gdb is not amused by empty lines in pubtypes section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95064 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0ceb489312cd308d27e0c3bfee93c0695fc0e2f5 |
02-Feb-2010 |
Devang Patel <dpatel@apple.com> |
NULL terminate name in pubtypes sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95062 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
31acb89c6545847435518f42825102aa30af9fd4 |
02-Feb-2010 |
Devang Patel <dpatel@apple.com> |
NULL terminate name in pubtypes sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95062 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
811db4ebfb2af70fe281acfa1d8074311230d2d7 |
02-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Make local RA smarter about reusing input register of a copy as output. Needed for (functional) correctness in inline asm, and should be generally beneficial. 7361612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95050 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
5ce0ee9c099deb18d432c665d74634b0373071c7 |
02-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Make local RA smarter about reusing input register of a copy as output. Needed for (functional) correctness in inline asm, and should be generally beneficial. 7361612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95050 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
278a15fc85c395cb765b66d012961417ed4b0003 |
02-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95041 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
87641fa6dc4de104dd4d5ef7fee49035331c4a8c |
02-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95041 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
4b58ffd04419208c23abac071cb7c4334c132372 |
02-Feb-2010 |
Nate Begeman <natebegeman@mac.com> |
Kill the Mach-O writer, and temporarily make filetype=obj an error. The MCStreamer based assemblers will take over for this functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95033 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achOWriter.cpp
achOWriter.h
|
39bdc78e6fcc2a152c6143952c23fba5db983227 |
02-Feb-2010 |
Nate Begeman <natebegeman@mac.com> |
Kill the Mach-O writer, and temporarily make filetype=obj an error. The MCStreamer based assemblers will take over for this functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95033 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achOWriter.cpp
achOWriter.h
|
98e9782ff492262ecec571cd33f32478547a06f4 |
01-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
Improve EXTRACT_VECTOR_ELT patch based on comments from Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
87c46d8a0e9d85d39bfd93a4e6307a871075add6 |
01-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
Improve EXTRACT_VECTOR_ELT patch based on comments from Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
6c9f1bc1ea2a0476659c4547d5c0b175258f1ebc |
01-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate a bunch of pointless LLVMContext arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b29d596072d2ba32a0bb59241baf7a1c0ff5ed94 |
01-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate a bunch of pointless LLVMContext arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7b92d04e46c4997309eb4ec2ab30423d118d259e |
01-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
fix PR 6157. Testcase pending. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
904c2fadbf44c47b418860f928f435a58da08bb6 |
01-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
fix PR 6157. Testcase pending. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3a04886c19b3f2bf53a6f8c6c4955118f3408fd3 |
01-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the result type is the same as the element type of the vector. EXTRACT_VECTOR_ELT can be used to extended the width of an integer type. This fixes a bug for Generic/vector-casts.ll on a ppc750. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
c6654ec498698919ae8388c53fe91d0366ac24c7 |
01-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the result type is the same as the element type of the vector. EXTRACT_VECTOR_ELT can be used to extended the width of an integer type. This fixes a bug for Generic/vector-casts.ll on a ppc750. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
423dfa0a5bf34218f526c272ddeb244d7be0d8e3 |
30-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Emit declaration DIE for the class static variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1ee0cb9a558f2bb739db19426a5aab936e16bacd |
30-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Emit declaration DIE for the class static variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3940d849787209a8e43682d61bf40fde9919a314 |
30-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a case where debug_value could affect codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94866 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ca1346122f07e56ab84a3ffaab02bd5a7d85c7af |
30-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a case where debug_value could affect codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94866 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
dc73c37d2da6bd3f3bbd7abcbdb682fae79893a2 |
29-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Add size and location info in DW_TAG_class_type descriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8cbb6123acbb57480cbf7bc714724106db50e2e5 |
29-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Add size and location info in DW_TAG_class_type descriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
574e2b262fa8c930144a709a97c84583b5281a3e |
29-Jan-2010 |
Duncan Sands <baldrick@free.fr> |
Change the SREM case to match the logic in the IR version ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94805 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5c2873a74bffaf608e268761b30439e158369413 |
29-Jan-2010 |
Duncan Sands <baldrick@free.fr> |
Change the SREM case to match the logic in the IR version ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94805 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
87589f79a98529ea2d65c1fcd572d37c38ae93a1 |
28-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Assign the ordering of SDNodes in a much less intrusive fashion. After the "visit*" method is called, take the newly created nodes, walk them in a DFS fashion, and if they don't have an ordering set, then give it one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
4533cac557cdcc13e7c990942758ec8338d9172a |
28-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Assign the ordering of SDNodes in a much less intrusive fashion. After the "visit*" method is called, take the newly created nodes, walk them in a DFS fashion, and if they don't have an ordering set, then give it one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
feb65e4ef7e539b86993b9840554725ae5a3853a |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add target hooks for emitting random gunk before and after the function body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94732 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
edfe776ac29d9fd48ae8967f6742400aad65e39c |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add target hooks for emitting random gunk before and after the function body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94732 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1db5d985d6cc883ad90073f979c483aa7c1b8955 |
28-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Update of 94055 to track the IR level call site information via an intrinsic. This allows code gen and the exception table writer to cooperate to make sure landing pads are associated with the correct invoke locations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
ca752c9020a1b1cf151142bd9e0cbca9af12d807 |
28-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Update of 94055 to track the IR level call site information via an intrinsic. This allows code gen and the exception table writer to cooperate to make sure landing pads are associated with the correct invoke locations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
1d40b3738f819d8cfb67b6b71d83642036388cd0 |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Give AsmPrinter the most common expected implementation of runOnMachineFunction, and switch PPC to use EmitFunctionBody. The two ppc asmprinters now don't heave to define runOnMachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94722 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d49fe1b6bc4615684c2ec71140a21e9c4cd69ce3 |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Give AsmPrinter the most common expected implementation of runOnMachineFunction, and switch PPC to use EmitFunctionBody. The two ppc asmprinters now don't heave to define runOnMachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94722 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5ab55984e1099748b6b3976f7bc08cf80b6a1550 |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit a 0 byte instead of a noop if a function is empty on darwin. "0" is nice and target independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94718 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
10e7c60c0444a766c256f6c7c922e43963590a5c |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit a 0 byte instead of a noop if a function is empty on darwin. "0" is nice and target independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94718 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d7dede2bdd47620b6f8ac8e3f72d454bac8c1005 |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Remove the argument from EmitJumpTableInfo, because it doesn't need it. Move the X86 implementation of function body emission up to AsmPrinter::EmitFunctionBody, which works by calling the virtual EmitInstruction method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94716 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
14c38ec2afeaf25c53a50c2c65116aca8c889401 |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Remove the argument from EmitJumpTableInfo, because it doesn't need it. Move the X86 implementation of function body emission up to AsmPrinter::EmitFunctionBody, which works by calling the virtual EmitInstruction method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94716 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8559cf724e8fb6a74ee227709b3a634edb2f46b4 |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Drop the argument to AsmPrinter::EmitConstantPool and make it virtual. Overload it in the ARM backend to do nothing, since is does insane constant pool emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94708 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a2406190ca28dc5901dfe747849c8eda9c29d7ee |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Drop the argument to AsmPrinter::EmitConstantPool and make it virtual. Overload it in the ARM backend to do nothing, since is does insane constant pool emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94708 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3298855a94df43a408b6804f74f8675dfc26fad8 |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename printVisibility to EmitVisibility and make it private, constify EmitLinkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
be9dfcef82c58063708e039bea3cf972ba41581b |
28-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename printVisibility to EmitVisibility and make it private, constify EmitLinkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e2ce4d925dc2016025a39193f7555555158e1b28 |
27-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
If the only use of something is a DEBUG_VALUE, don't let that stop it from being deleted, and change the DEBUG_VALUE value to undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94694 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
9514fcbae518cfe3e4e4ea1fcc279babbdc38095 |
27-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
If the only use of something is a DEBUG_VALUE, don't let that stop it from being deleted, and change the DEBUG_VALUE value to undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94694 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
9f4185e3a1ab4cc49e93d38afcfa29d6777d38cc |
27-Jan-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Silence GCC warnings with asserts turned off. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94673 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
BQP/Heuristics/Briggs.h
|
de4c08008a10aba59171c56086d96c760990a4cb |
27-Jan-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Silence GCC warnings with asserts turned off. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94673 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
BQP/Heuristics/Briggs.h
|
aec7a8a5b4f952b767fe0d301404e078425bde0d |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new AsmPrinter::EmitFunctionEntryLabel virtual function, which allows targets to override function entry label emission. Use it to convert linux/ppc to use EmitFunctionHeader(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94667 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2cf7251d39f28888af06b6f941eabd1d10995382 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new AsmPrinter::EmitFunctionEntryLabel virtual function, which allows targets to override function entry label emission. Use it to convert linux/ppc to use EmitFunctionHeader(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94667 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6b6ed5994d4c2be6e2087a969b35f55226d82608 |
27-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate target hook IsEligibleForTailCallOptimization. Target independent isel should always pass along the "tail call" property. Change target hook LowerCall's parameter "isTailCall" into a refernce. If the target decides it's impossible to honor the tail call request, it should set isTailCall to false to make target independent isel happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94626 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0c439eb2c8397996cbccaf2798e598052d9982c8 |
27-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate target hook IsEligibleForTailCallOptimization. Target independent isel should always pass along the "tail call" property. Change target hook LowerCall's parameter "isTailCall" into a refernce. If the target decides it's impossible to honor the tail call request, it should set isTailCall to false to make target independent isel happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94626 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
bfbae45ecc789bc663f9fea39f60ffe34d5eff6c |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize label emission for functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94624 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9bc20ab519d47146a9716d7cff2a892da78774a6 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize label emission for functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94624 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fa366055bfbd194d76964c1151c5352698430957 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
use EmitLinkage for functions as well as globals. One output change is that we now use ".linkonce discard" for global variables instead of ".linkonce samesize". These should be the same, just less strict. If anyone is interested in mcizing MCSection for COFF targets, this should be easy to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
111a3193b5e25f8765221f2e94fba888155fe4eb |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
use EmitLinkage for functions as well as globals. One output change is that we now use ".linkonce discard" for global variables instead of ".linkonce samesize". These should be the same, just less strict. If anyone is interested in mcizing MCSection for COFF targets, this should be easy to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94623 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3971bfd52ea146220a4983045e5ca0d765fdb1ac |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
pull linkage emission code out to a new EmitLinkage function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a3e8883d710c435d640d65e52f0c6dcce21cad5b |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
pull linkage emission code out to a new EmitLinkage function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7d7e511a8353733c220bf28514a61f02d571e645 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rearrange some directives, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b406a8141d704bca7a8eade3a0c46d7ec73affc8 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rearrange some directives, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5f287bd4daecba7bed5ace5937d512ee74225ce3 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove a noop function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94616 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5c8697488ad6d860c448b6e7bed80dec8c90b585 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove a noop function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94616 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e598067034348042de2048941af8e53a6ece2768 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
now that enough stuff is constified, move function header printing logic up from X86 into the common code. The other targets will hopefully start using this soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94614 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b11caedd6f36afc6518cf0ea9bbff6500fd77334 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
now that enough stuff is constified, move function header printing logic up from X86 into the common code. The other targets will hopefully start using this soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94614 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
69a76970a3bd6ba4aa79551cd662ca82ec550be8 |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
constify a bunch of dwarf stuff now that the registerinfo method is constified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94613 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
eec791afb127ed634ed5d1cdd2e6c47b3b70174c |
27-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
constify a bunch of dwarf stuff now that the registerinfo method is constified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94613 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
f69d87ca0cc23a4459e074edb2e4c1b20a5c7a93 |
27-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow some automatic tailcall optimization without changing ABI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
11e679324b693125a98d865fe3e9fc9b2a9e5d22 |
27-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow some automatic tailcall optimization without changing ABI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ca41903f6813a6e28b136d7f4e30080305bbbe6e |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit jump table an alias ".set" directives through MCStreamer as assignments. .set x, a-b is the same as: x = a-b git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94596 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
|
c618c8aff46a8ec4d209d041404e780a0caaf77d |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit jump table an alias ".set" directives through MCStreamer as assignments. .set x, a-b is the same as: x = a-b git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94596 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
|
ae89d3b83bf8b2c3cf0be362ab872c162bad23ec |
26-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Use AssertingVH, just to be paranoid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94593 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3139fcf9edd046ba0b939dec72cd121e899d27d0 |
26-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Use AssertingVH, just to be paranoid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94593 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5ae5240a9283d548c574e07c2ac5b1a1c3f16dce |
26-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Emit DW_AT_containing_type attribute for a class if containing type is known. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94587 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b554499871716fe647e226e52741b7fa69f7b7ba |
26-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Emit DW_AT_containing_type attribute for a class if containing type is known. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94587 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5e969572f5b9e519eb01837cd84f129e46b6b892 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Eliminate SetDirective, and replace it with HasSetDirective. Default HasSetDirective to true, since most targets have it. The targets that claim to not have it probably do, or it is spelled differently. These include Blackfin, Mips, Alpha, and PIC16. All of these except pic16 are normal ELF targets, so they almost certainly have it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94585 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
|
cee63322eaccc2f1067bdf5eab506e440f867da1 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Eliminate SetDirective, and replace it with HasSetDirective. Default HasSetDirective to true, since most targets have it. The targets that claim to not have it probably do, or it is spelled differently. These include Blackfin, Mips, Alpha, and PIC16. All of these except pic16 are normal ELF targets, so they almost certainly have it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94585 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfPrinter.cpp
|
1fd0182a85e201f0b92773d9edaae8869fa190df |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate MCAsmInfo::NeedsSet: we now just use .set on any platform that has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94581 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
6a315c358ca35625ffd50fdc74556acb26ec7396 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate MCAsmInfo::NeedsSet: we now just use .set on any platform that has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94581 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
af70642ef1bba99e7e3ff099d21722a1934c28f9 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the TargetLowering::UsesGlobalOffsetTable bool, which is subsumed by TargetLowering::getJumpTableEncoding(). Change uses of it to be more specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94529 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/TargetLowering.cpp
|
f1214cbf3c2d151d3a2353d82143da186313a42a |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the TargetLowering::UsesGlobalOffsetTable bool, which is subsumed by TargetLowering::getJumpTableEncoding(). Change uses of it to be more specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94529 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/TargetLowering.cpp
|
c077d72f6bfa3c7dde7117bcf1debde3985e123e |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Now that printPICJumpTableSetLabel is not overloaded, inline it into its only caller, allowing us to simplify it and hoist bits out of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94528 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3b131d7cc4dc4bbb329c136705b37dc255995fbd |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Now that printPICJumpTableSetLabel is not overloaded, inline it into its only caller, allowing us to simplify it and hoist bits out of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94528 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
541d8904203676afa54e8763baaf6e8963a9dc3a |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Move getJTISymbol from MachineJumpTableInfo to MachineFunction, which is more convenient, and change getPICJumpTableRelocBaseExpr to take a MachineFunction to match. Next, move the X86 code that create a PICBase symbol to X86TargetLowering::getPICBaseSymbol from X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific library. This eliminates a 'gross hack', and allows us to implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now calls it. This in turn allows us to eliminate the X86AsmPrinter::printPICJumpTableSetLabel method, which was the only overload of printPICJumpTableSetLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94526 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
electionDAG/TargetLowering.cpp
|
589c6f620e8dcf3d59af1ae0e15372c934647c82 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Move getJTISymbol from MachineJumpTableInfo to MachineFunction, which is more convenient, and change getPICJumpTableRelocBaseExpr to take a MachineFunction to match. Next, move the X86 code that create a PICBase symbol to X86TargetLowering::getPICBaseSymbol from X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific library. This eliminates a 'gross hack', and allows us to implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now calls it. This in turn allows us to eliminate the X86AsmPrinter::printPICJumpTableSetLabel method, which was the only overload of printPICJumpTableSetLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94526 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
electionDAG/TargetLowering.cpp
|
978b977ac6a900c6645201b9bd346bdfd5687274 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new MachineJumpTableInfo::getJTISymbol method, use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94523 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
electionDAG/TargetLowering.cpp
|
beeb93e6ba48af2661eabc4872d8b159fb43e5db |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new MachineJumpTableInfo::getJTISymbol method, use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94523 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
electionDAG/TargetLowering.cpp
|
9f5b9c18ef28e8b61bf04bba0470933d25c05830 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
stub out a new target hook, need some refactoring before I can implement it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
13e97a29d9dfa5602f93a8c546f112c5d029e8f7 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
stub out a new target hook, need some refactoring before I can implement it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b494ccd48b787ec631650d25b118a01398f85859 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
simplify asmprinter: only emit .set directives when entries have EK_LabelDifference32 kind and the target has .set support. Simplify X86AsmPrinter::printPICJumpTableSetLabel to make use of recent helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e35df92eca194365f984f9d24a74e4ddd6669c40 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
simplify asmprinter: only emit .set directives when entries have EK_LabelDifference32 kind and the target has .set support. Simplify X86AsmPrinter::printPICJumpTableSetLabel to make use of recent helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3d680c04d25a32fd8b58b96a93081b4a10450845 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename printPICJumpTableEntry -> EmitJumpTableEntry, make it private and non-virtual. It handles the non-pic case too, so just use it, simplifying EmitJumpTableInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94517 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6bf1def1598f9c7a699ce4874e7d2575212b4232 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename printPICJumpTableEntry -> EmitJumpTableEntry, make it private and non-virtual. It handles the non-pic case too, so just use it, simplifying EmitJumpTableInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94517 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
84d5ca9524a5d23f88083d0663ee99dca739df21 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new MachineBasicBlock::getSymbol method, replacing the AsmPrinter::GetMBBSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
|
f71cb015c1386ff8adc9ef0aa03fc0f0fc4a6e3e |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new MachineBasicBlock::getSymbol method, replacing the AsmPrinter::GetMBBSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
|
408dcd3ebe187e2c098928caf9c4ce8928a30ba0 |
26-Jan-2010 |
Lang Hames <lhames@gmail.com> |
New PBQP solver. * Fixed a reduction bug which occasionally led to infinite-cost (invalid) register allocation solutions despite the existence finite-cost solutions. * Significantly reduced memory usage (>50% reduction). * Simplified a lot of the solver code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94514 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/Graph.h
BQP/GraphBase.h
BQP/HeuristicBase.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/Math.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
egAllocPBQP.cpp
|
030c4bfbc9885444b8a5ad0b5f1e50045a351d17 |
26-Jan-2010 |
Lang Hames <lhames@gmail.com> |
New PBQP solver. * Fixed a reduction bug which occasionally led to infinite-cost (invalid) register allocation solutions despite the existence finite-cost solutions. * Significantly reduced memory usage (>50% reduction). * Simplified a lot of the solver code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94514 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/Graph.h
BQP/GraphBase.h
BQP/HeuristicBase.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/Math.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
egAllocPBQP.cpp
|
01462baa9f30942d0e9c7fb3ceee167782d66c08 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make MachineFunction keep track of its ID and make MachineFunctionAnalysis dole them out, instead of having AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction method set the 'AsmPrinter::MF' variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94509 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
|
b84822fb7b64977c16e97b870891da1d6c9736fe |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make MachineFunction keep track of its ID and make MachineFunctionAnalysis dole them out, instead of having AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction method set the 'AsmPrinter::MF' variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94509 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
|
8ef60fc03000f1c082e6d3a2670a30677fedef58 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Add support for target-specific 32-bit custom-lowered jump table entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
|
85fe07866a3b240d9facef3b2f2ea81a0a8db018 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Add support for target-specific 32-bit custom-lowered jump table entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
|
06b01dd91b1a25b54e21a7ee643c80a1a0e7354a |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
switch jump table entry emission to be based on EntryKind instead of magic variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94500 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ff537cec2e7ee34d6879de0c8a39a3c65f6ab003 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
switch jump table entry emission to be based on EntryKind instead of magic variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94500 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
506f6f00593b8b872bbc4341f552b40266554d73 |
26-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Implement cond ? -1 : 0 with sbb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8c7ecaf524ec3040a9c1c7be5f37e574eb1d0207 |
26-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Implement cond ? -1 : 0 with sbb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4a99cf04ecc8f28bc9c9ad11e0eb4ffbca2c00ff |
26-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Generate DEBUG_VALUE comments on x86. The (limited) dbg.declare's we currently generate go through both register allocators without perturbing the results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5ed17ae92a9239c2ff7d3ba494bf96651598ee7a |
26-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Generate DEBUG_VALUE comments on x86. The (limited) dbg.declare's we currently generate go through both register allocators without perturbing the results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1d196bc4e7da96ffa86fa5f42f411ac81f211e3e |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Rearrange handling of jump tables. Highlights: 1. MachineJumpTableInfo is now created lazily for a function the first time it actually makes a jump table instead of for every function. 2. The encoding of jump table entries is now described by the MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the TLI::getJumpTableEncoding() hook, instead of by lots of code scattered throughout the compiler that "knows" that jump table entries are always 32-bits in pic mode (for example). 3. The size and alignment of jump table entries is now calculated based on their kind, instead of at machinefunction creation time. Future work includes using the EntryKind in more places in the compiler, eliminating other logic that "knows" the layout of jump tables in various situations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
achineFunction.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
071c62fad0b25ad4131e7f984173a796c1e63f61 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Rearrange handling of jump tables. Highlights: 1. MachineJumpTableInfo is now created lazily for a function the first time it actually makes a jump table instead of for every function. 2. The encoding of jump table entries is now described by the MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the TLI::getJumpTableEncoding() hook, instead of by lots of code scattered throughout the compiler that "knows" that jump table entries are always 32-bits in pic mode (for example). 3. The size and alignment of jump table entries is now calculated based on their kind, instead of at machinefunction creation time. Future work includes using the EntryKind in more places in the compiler, eliminating other logic that "knows" the layout of jump tables in various situations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
achineFunction.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/TargetLowering.cpp
|
b10c7e2e10bb899f1f48cd33195c68b31ecc2db0 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
prep work to support a future where getJumpTableInfo will return a null pointer for functions with no jump tables. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94469 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
b1e803985d3378538ae9cff7eed4102c002d1e22 |
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
prep work to support a future where getJumpTableInfo will return a null pointer for functions with no jump tables. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94469 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
1f8c8922b2629e1033fee97d8daf779e497d561d |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate redundant argument to EmitJumpTableInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94464 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
44e87255e9b7a9d8ecb558690db1181882c08045 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate redundant argument to EmitJumpTableInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94464 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3dac341cc4f36feb2da4f1faade5721bb61f679a |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize gprel32 emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94452 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
718fb59801320b8cb22363d115b5fc5ec40dc1f5 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize gprel32 emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94452 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7eba67276623720f3b8b0e576fa2b0d6653bbbbf |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize the non-gprel cases of AsmPrinter::printPICJumpTableEntry git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1aca2492526c0a1aa464f2993084f9b30b53c009 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize the non-gprel cases of AsmPrinter::printPICJumpTableEntry git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94450 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
da1416d002c86c51b9a454289b2a9212f78b7af3 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
handle the _set_ symbol with an MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94449 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
798d1256595dcc0f5d4423572f856d239f7de0e6 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
handle the _set_ symbol with an MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94449 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
48b139f38b3823e6781da75eaae3c14b3d803456 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename MAI::PICJumpTableDirective to MAI::GPRel32Directive to make it clear what it is, instead of how it is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94448 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
78f485afb723121eedf4b6907ae6eb53da8af03c |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename MAI::PICJumpTableDirective to MAI::GPRel32Directive to make it clear what it is, instead of how it is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94448 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1eff8298e66d276fae0ab8bd8a79b29da8d929dc |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
pull the non-pic jump table case out of printPICJumpTableEntry and MCize the non-pic case. Now printPICJumpTableEntry really is just about printing PIC entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94446 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a86106ed88582b913ac2394a5a4ad1868b299da4 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
pull the non-pic jump table case out of printPICJumpTableEntry and MCize the non-pic case. Now printPICJumpTableEntry really is just about printing PIC entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94446 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
29814c4ecbee79b025c92fb295e39bcf62877ebe |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove JumpTableDirective, it is always null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94445 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cba386ccac87c2446579ef235d2b4dc7951c0941 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove JumpTableDirective, it is always null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94445 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ccda1400e725df3834ab6b552c0e00e956687ebd |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
sink an arm specific method out of asmprinter into the ARMAsmPrinter and rename it to avoid shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bfcb09688c7db15a9f9415d717a5a31c499a2208 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
sink an arm specific method out of asmprinter into the ARMAsmPrinter and rename it to avoid shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
59be4eabff2c209e35841e2fea9596f0c35c4c72 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize .file and .file. This also fixes an issue where the normal form of .file would fail if the filename had a weird character in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94437 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
a6594fc7156c0afbe6fd5a6aab9b099aaf950c53 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize .file and .file. This also fixes an issue where the normal form of .file would fail if the filename had a weird character in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94437 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
9f8ef90c755b6b2b00fb3d07eb196a7fb9374949 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit ELF .type directives through MCStreamer instead of doing it textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94436 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a800f7c464ef9a376057a555129f36d1f8488c3b |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit ELF .type directives through MCStreamer instead of doing it textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94436 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
53ee5d89754b820e34a431d6491b24e281eb86bb |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94417 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1947f242d40227d36440a2702a0a612c8077d72e |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94417 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e13c8ac5306fa2d2069f0defa932adf6aa3355bb |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit the .size directive for global variables on ELF through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94416 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
99328add833807f12a4950c7de29fb2a5df04703 |
25-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit the .size directive for global variables on ELF through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94416 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e9a40677cd1fd95ed7e9b75a1df19449f432ad9e |
24-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
electionDAG/Makefile
|
43b5f9312d56be400af031f7487a99b75b7b0f97 |
24-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94378 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
electionDAG/Makefile
|
2d2f100dfbb791da4e71e76dea0b9f041ff5b3d0 |
24-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix some issues where we weren't emitting enough newlines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94370 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
3586e5eccf13d7129a44032a0dd553628cef3450 |
24-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix some issues where we weren't emitting enough newlines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94370 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
91e06b40b2f8aa76d8e928dc6bdad7255bc070a8 |
24-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
when emitting DIEs, emit the comment on the same line as the directive. This fixes FrontendObjC/2009-11-30-Objc-ID.m git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94369 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a801362e84e08ccaf6f4f22f22e61fe3732c3754 |
24-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
when emitting DIEs, emit the comment on the same line as the directive. This fixes FrontendObjC/2009-11-30-Objc-ID.m git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94369 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
84889a98056cdb015a20ae9c01c08d768e49edae |
24-Jan-2010 |
Mon P Wang <wangmp@apple.com> |
It seems better to scalarize vectors of size 1 instead of widening them. Add support to widen SETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
6fb474bd3c3e291973ae8e087787090cf2be73f8 |
24-Jan-2010 |
Mon P Wang <wangmp@apple.com> |
It seems better to scalarize vectors of size 1 instead of widening them. Add support to widen SETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
a8ff0dddb04db54c7c54d3f84babe100e577fc49 |
24-Jan-2010 |
Mon P Wang <wangmp@apple.com> |
Improved widening loads by adding support for wider loads if the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94338 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
eb38ebf15c326a5bb45ca9da6329cdf19ad6df95 |
24-Jan-2010 |
Mon P Wang <wangmp@apple.com> |
Improved widening loads by adding support for wider loads if the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94338 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
0df2cd581b55fd36b2fd0c93711812fd4773fa05 |
23-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove the '-disable-scheduling' flag and replace it with the 'source' option of the '-pre-RA-sched' flag. It actually makes more sense to do it this way. Also, keep track of the SDNode ordering by default. Eventually, we would like to make this ordering a way to break a "tie" in the scheduler. However, doing that now breaks the "CodeGen/X86/abi-isel.ll" test for 32-bit Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
187361b056823df4ff292561fe47468dad956872 |
23-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove the '-disable-scheduling' flag and replace it with the 'source' option of the '-pre-RA-sched' flag. It actually makes more sense to do it this way. Also, keep track of the SDNode ordering by default. Eventually, we would like to make this ordering a way to break a "tie" in the scheduler. However, doing that now breaks the "CodeGen/X86/abi-isel.ll" test for 32-bit Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
d70deeb19ecfe335eb475df22a1411e9e6927a44 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize lcomm, simplify .comm, extend both to support 64-bit sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94299 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9eb158d5b4cd4f6fc80912e2dd77bdf13c3ca0e7 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize lcomm, simplify .comm, extend both to support 64-bit sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94299 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2dc6ddd2a55ae263fe497b39fa1e4608e46d254d |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
resolve a fixme: the "nonexecutable stack directive" is actually a .section. Switch to it with SwitchSection. However, I think that this directive should be safe on any ELF target. If so, we should hoist it up out of the X86 and SystemZ targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f9f93e4388962b678fd59b7af5212d4cc0d38be2 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
resolve a fixme: the "nonexecutable stack directive" is actually a .section. Switch to it with SwitchSection. However, I think that this directive should be safe on any ELF target. If so, we should hoist it up out of the X86 and SystemZ targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
100d4240b793a0a8b471702d4a62859190d1f288 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove a dead call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94297 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
74670b26fc62dce36a9d1d78caa1d481cec5b2eb |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove a dead call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94297 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
10bcc6b7ebaba7df8c1d432cb37feb625ad1b7cc |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize visibility directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
152a29bfa6fa505182658d046bc75626e10d67c3 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize visibility directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
2d7c8149c012f5f600b61339a9ba590c850693ef |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move the various directive enums out of the MCStreamer class into a new MCDirectives.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
a5ad93a10a5435f21090b09edb6b3a7e44967648 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move the various directive enums out of the MCStreamer class into a new MCDirectives.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
54bfda730f4b2436460fc39e7c1633a489bad2a2 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Change constantexpr global variable initializers to convert the constants to MCExpr then emit them through MCStreamer with EmitValue. I think all global variable initializers are now going through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94293 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
52492ac0d03aa86b07ad889b69b0ba38ffec8011 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Change constantexpr global variable initializers to convert the constants to MCExpr then emit them through MCStreamer with EmitValue. I think all global variable initializers are now going through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94293 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d7b6c9c54d0cd4a1b92679f85f89fdd90782125a |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize .no_dead_strip and .reference for static ctors/dtors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
3a9be0ee36fe2143f514d28315f3dc1bda132b2e |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize .no_dead_strip and .reference for static ctors/dtors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
77e356cf12d1a71fe2cb710aba986c6aafd13d37 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize jump table and constant pool entry labels, .local on elf, and some .weak directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94284 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3924868a957d5a6d468b61741cbb7db77324d1f6 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcize jump table and constant pool entry labels, .local on elf, and some .weak directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94284 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a68112c1520ced329a0121fa1e1ae3f89eec86c3 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit .ascii and .asciz through MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94282 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
05f845314a67f9c30a67e55ce1e3168ff6732ce8 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit .ascii and .asciz through MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94282 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cc564640451a9fb7c8732b93be3e3555c314a7b6 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove one form of EmitString, just use EmitBytes instead. We must be careful to add a \0 at the end though, because EmitString didn't do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94277 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
4cf202ba066a1310d8968c8d069787254934e59b |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove one form of EmitString, just use EmitBytes instead. We must be careful to add a \0 at the end though, because EmitString didn't do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94277 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
1fa30cb463eabc1fb0a7f8e5597c546ed699bf30 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
teach MCAsmStreamer::EmitBytes to use .ascii and .asciz git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94259 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
12e555c36ce11c39ce15cd0b27bf7b02a068beb2 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
teach MCAsmStreamer::EmitBytes to use .ascii and .asciz git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94259 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
8884788be78ac43ed8600ba8203b1f72ae20f7fe |
23-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable pre-regalloc scheduling load clustering by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
42dae2d5ba0c22bed65e80ac56a7c304de911c33 |
23-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable pre-regalloc scheduling load clustering by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
05ae1d2f245811f66bf0e86c0d5bffc4829f0dbc |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move "EOL" from asmprinter to dwarfprinter. It should eventually be completely eliminated, but today is not that day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94253 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
faca5497a26672669934abbcf23894ce93408c10 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move "EOL" from asmprinter to dwarfprinter. It should eventually be completely eliminated, but today is not that day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94253 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
eba1e35f5023abe984843910b74b21df222f3610 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove uses of EOL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94252 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
f537ce17522df35b9879e1d178ab963c41dab825 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove uses of EOL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94252 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
ab4cf9537706a9b7439e62453dc27cf18f7dfc25 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new EmitCFAByte method and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94251 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
245834dde5f735cd50395b2875a0f50b0ac0eaff |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new EmitCFAByte method and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94251 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
bcc79433dfc42587a6fa303c239f13bfaa4db0c2 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move uleb printing from asmprinter to dwarfprinter, mcize, cleanup and eliminate a bunch more uses of "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
894d75aa013143c92890d0205791d0d70a453114 |
23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move uleb printing from asmprinter to dwarfprinter, mcize, cleanup and eliminate a bunch more uses of "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
20f334ff0d71246a4d03b22dff4ee11ae86c5329 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move sleb printing out of asmprinter into dwarf printer, make clients handle the comment better, MCize the non-.sleb case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94244 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
bb9078a6b26f38594cde6fd0dcd17eca25ef0319 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move sleb printing out of asmprinter into dwarf printer, make clients handle the comment better, MCize the non-.sleb case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94244 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
0a0ea051700e1f6287df39c16ebfffb6c3782eac |
22-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Remove MetadataBase class because it is not adding significant value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94243 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bc5201f8371f9041e79efcca3b158335da5c2604 |
22-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Remove MetadataBase class because it is not adding significant value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94243 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
eed81588e2deec1d238ac2ae3ef942429eedf170 |
22-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Ignore DEBUG_VALUE when building live intervals; this makes the code work transparently the same whether they're there or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94240 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
lotIndexes.cpp
|
1caedd056dbc3eda1537ad8251323bd985819b80 |
22-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Ignore DEBUG_VALUE when building live intervals; this makes the code work transparently the same whether they're there or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94240 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
lotIndexes.cpp
|
d705acfef8b35c01f90ea573ecb2489fea293d35 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new DwarfPrinter::EmitEncodingByte method which handles pretty printing encoding comments and eliminates redundancy on the client side. We now get pretty dwarf like this again: .byte 255 ## @LPStart Encoding = omit .byte 0 ## @TType Encoding = absptr .byte 0x28 ## @TType base offset .byte 3 ## Call site Encoding = udata4 .byte 0x1a ## Call site table size ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94239 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
f61ed8eb32aa1cfcb440742e6fbaa7c785647131 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new DwarfPrinter::EmitEncodingByte method which handles pretty printing encoding comments and eliminates redundancy on the client side. We now get pretty dwarf like this again: .byte 255 ## @LPStart Encoding = omit .byte 0 ## @TType Encoding = absptr .byte 0x28 ## @TType base offset .byte 3 ## Call site Encoding = udata4 .byte 0x1a ## Call site table size ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94239 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
b21f1043a2ad037bc91bc31bbd20a55cd6a2f3ff |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename the dwarf class to DwarfPrinter. This matches the filename and much more accurately describes what it is all about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
066c9acca354e88c19ce740a7ff0e5910362aa7b |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename the dwarf class to DwarfPrinter. This matches the filename and much more accurately describes what it is all about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
57939f6e42de096263c4b743e585200e1cfe7971 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94232 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.h
|
3c65335f0696ea8876809d5bcddb97fa518b449a |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94232 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.h
|
ad65348ad547f41c654d8df74fd6a678c3b42a74 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
inline away the trivial AsmPrinter::EOL() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94230 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/OcamlGCPrinter.cpp
|
0ad9c911f5b7737ae199d703279984138553de9d |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
inline away the trivial AsmPrinter::EOL() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94230 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/OcamlGCPrinter.cpp
|
052348ee1a841a7ba39d49ccb39b66903908f7e3 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
inline AsmPrinter::PrintHex into its two trivial callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94228 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0595324ed825a6adfca77f7369b9846957d135ee |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
inline AsmPrinter::PrintHex into its two trivial callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94228 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5abc72c816042371354988f091b465b5e24d75fb |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
change this to be a static function instead of a method on asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94227 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
523a508576ee2c31ba58de1ca2fb7ffeebcc4a0b |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
change this to be a static function instead of a method on asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94227 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f60947496d768319a1efdab2d71c1aae06a8c2c0 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make the loop comment printer print out a much better structured output. An example: .align 4, 0x90 LBB1_5: ## %while.cond3 ## Parent Loop BB1_1 Depth=1 ## => This Loop Header: Depth=2 ## Child Loop BB1_8 Depth 3 ## Child Loop BB1_6 Depth 3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94225 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
88ad3de7138a259d017933aea56f129d1ea335da |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make the loop comment printer print out a much better structured output. An example: .align 4, 0x90 LBB1_5: ## %while.cond3 ## Parent Loop BB1_1 Depth=1 ## => This Loop Header: Depth=2 ## Child Loop BB1_8 Depth 3 ## Child Loop BB1_6 Depth 3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94225 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f1fc9678c548a6b97655cd99f91543c8a2d84e3d |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
For blocks that are not loop headers, just print their loop depth and header BB. For loop headers, print Inner loop along with the other stuff so it doesn't take an extra line. We now get stuff like this: LBB1_4: ## %land.end ## in Loop: Header=BB1_1 Depth=1 notb %al testb $1, %al jne LBB1_8 and: LBB1_6: ## %while.cond7 ## Inner Loop Header: Depth=3 ## Inside Loop BB1_5 Depth 2 ## Inside Loop BB1_1 Depth 1 which still isn't great for loop headers, but is much less verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94221 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
965df54254b9e73949fc5649b51c3ca1bed4b4a6 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
For blocks that are not loop headers, just print their loop depth and header BB. For loop headers, print Inner loop along with the other stuff so it doesn't take an extra line. We now get stuff like this: LBB1_4: ## %land.end ## in Loop: Header=BB1_1 Depth=1 notb %al testb $1, %al jne LBB1_8 and: LBB1_6: ## %while.cond7 ## Inner Loop Header: Depth=3 ## Inside Loop BB1_5 Depth 2 ## Inside Loop BB1_1 Depth 1 which still isn't great for loop headers, but is much less verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94221 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
82be51ce3b12d83e8f2d7b5a7c5a4b75beaf715d |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reenable the label loop comments and switch them to use the formatted comment emission stuff. I'm going to rewrite this though because the current output doesn't make sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d8d0aee26a5a759085bfa9114302e507c8685599 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reenable the label loop comments and switch them to use the formatted comment emission stuff. I'm going to rewrite this though because the current output doesn't make sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c006e1cc781b854bf6a8ebda79c222dc745753bb |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Convert some more random-comment-printing stuff to use AddComment and GetCommentOS. Add a blank line between globals (even in non-verbose mode) to make the assembly more readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0fd90fd8d1c2143a763dee509c66a5b3c74088b1 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Convert some more random-comment-printing stuff to use AddComment and GetCommentOS. Add a blank line between globals (even in non-verbose mode) to make the assembly more readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
49d7439115aed95bf267717de28c675bd65b1c35 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new MCAsmStreamer::GetCommentOS method to simplify stuff that doesn't want to use twines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94199 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d79d9dce47d505369662ae5111dba24f9ccdef68 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a new MCAsmStreamer::GetCommentOS method to simplify stuff that doesn't want to use twines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94199 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
021da8e2bf8ac5d8b658bcce524c0327ed259142 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename addComment -> AddComment for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d32c7cfa248f685e6e3064c0958dc2f0c31a4df6 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename addComment -> AddComment for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1f08b046f9de970153fed1cba7c2c509eab2442e |
22-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Revert r94066, which was the patch which added a Verifier pass after LoopStrengthReduce, as it's causing too much trouble (even with the old LoopStrengthReduce code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94172 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
12bdbf1ca80a1c7a18020f8fd4482180afcfe6f4 |
22-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Revert r94066, which was the patch which added a Verifier pass after LoopStrengthReduce, as it's causing too much trouble (even with the old LoopStrengthReduce code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94172 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
7cb3b78ef523efcdc1ef8413b2d936cadf718068 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Add the ability for MCStreamer to emit comments on the same line as directives. Switch over the asm-verbose comment for double values to use it. We now get: _x: .long 343597384 ## double 1.231200e+02 .long 1079953326 For example, note that the comment is on the same line as the .long. Woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94166 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
86e2211d0a496f470ea1d320161c8dc43593c5c6 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Add the ability for MCStreamer to emit comments on the same line as directives. Switch over the asm-verbose comment for double values to use it. We now get: _x: .long 343597384 ## double 1.231200e+02 .long 1079953326 For example, note that the comment is on the same line as the .long. Woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94166 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1ab24611a6a82c7d9d70204f51fed10f026b40bc |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
pass "-fasm-verbose" into createAsmStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
07404415ab97883b80d0dd87f1c5308e4eccbfd4 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
pass "-fasm-verbose" into createAsmStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5c804558fe5a69a7534b8a3bb7420ec1a483a1c8 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Stop building RTTI information for *most* llvm libraries. Notable missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94164 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
electionDAG/Makefile
|
e73a31f667ad2fe03e25c97ac45b58c30d7f07c3 |
22-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Stop building RTTI information for *most* llvm libraries. Notable missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94164 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
electionDAG/Makefile
|
ee574550fadaa4471c2b6179d20bc2808a1560d4 |
22-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach pre-regalloc scheduler to schedule loads from nearby addresses. It may improve cache locality. This is controlled by -cluster-loads for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
c589e03865bb31da70e0037d5c32fdaaa5f79f24 |
22-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach pre-regalloc scheduler to schedule loads from nearby addresses. It may improve cache locality. This is controlled by -cluster-loads for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
4507456b1f57372fef5019f846fe5aaab5382f34 |
21-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Trim unneeded includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGFast.cpp
|
80ffc965f513bed2252316af8530c14c36c2e295 |
21-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Trim unneeded includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGFast.cpp
|
f056e023189e48d0337c7198d9fed32a9285a434 |
21-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
back this out for now. Growing Function is not good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
f38a33cd0aafff87a8f48debccb09971d2b82dd9 |
21-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
back this out for now. Growing Function is not good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
998977a1ed18ec9739484e2e031697d07d945d1d |
21-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Run the verifier after LSR, to help catch use-before-def errors before they reach codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94066 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fca37064789620d80580bc19281ef30141e25dc1 |
21-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Run the verifier after LSR, to help catch use-before-def errors before they reach codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94066 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
469967b02bdd853dc6f1fc8e04df869d945c8f17 |
21-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Make sure that landing pad entries in the EH call site table are in the proper order for SjLj style exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
d0a0c382ea51d36dc7e5938291763da73b4262dc |
21-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Make sure that landing pad entries in the EH call site table are in the proper order for SjLj style exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
jLjEHPrepare.cpp
|
923c91b35f1b9f2df7904384a1121a4cf4bde26d |
21-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
SjLj EH introduces can introduce an additional edge to a landing pad and pad normalization needs to take this into account. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94046 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
8d77cc8c5f47f2dbab867441251f5df796b78a6e |
21-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
SjLj EH introduces can introduce an additional edge to a landing pad and pad normalization needs to take this into account. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94046 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
e0dcaa8dc9715e0253dcdb1fa9d7f1ed49b84275 |
20-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
make findDebugLoc a class method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94032 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
73e884bb3e971b1e794ba2501df15138f73b8b1a |
20-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
make findDebugLoc a class method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94032 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
c25757ceb6bbbd77d28eb1e07e8d7f557ced33fa |
20-Jan-2010 |
David Greene <greened@obbligato.org> |
When XDEBUG is enabled, check for SelectionDAG cycles at some key points. This will help us find future problems like the one described in PR6019. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cf495bc2e505e52ad018da55bed11c7b8bc97db5 |
20-Jan-2010 |
David Greene <greened@obbligato.org> |
When XDEBUG is enabled, check for SelectionDAG cycles at some key points. This will help us find future problems like the one described in PR6019. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4fb5a139995d84f045935934fa7f3d2a415f6586 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
don't send null pointers through the constantexpr codepath unneededly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94010 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b0bedd6ebbbf0b9791291f37da5666dd456cf5b1 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
don't send null pointers through the constantexpr codepath unneededly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94010 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d35446747f94cead6fc7484e01e0ed0a55a5af2a |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate some uses of AsmPrinter::EmitIntXXX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93996 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfException.cpp
|
bcb83e5b6c8e074e73986cb641801ecbedd6e4ed |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate some uses of AsmPrinter::EmitIntXXX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93996 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfException.cpp
|
939a31427d4d23ad68c2919bb8002e15a9fe5a2f |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
inline and radically simplify printDataDirective. It will eventually go completely away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93994 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ea3cb40fab5dc84caa0c6c6bcb650261b4b6e724 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
inline and radically simplify printDataDirective. It will eventually go completely away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93994 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8bae10512c413d643f199bbef96d72ce53f36978 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit basic block labels with mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93993 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
213168ba469703a186d060281e587d828878aa75 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit basic block labels with mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93993 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e795ca57c47876555cecacb9454dc0a21e284536 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit integer and fp zeros as (e.g.) .byte 0 instead of .space 1, for tidiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
043c4e5c1d012c8131c7f2fa27a4def32740c42f |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
emit integer and fp zeros as (e.g.) .byte 0 instead of .space 1, for tidiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f2fc2764fa7e0db258b290b79d8eb379ba6f097c |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
signficant cleanups to EmitGlobalConstant (including streamerization of int initializers), change some methods to be static functions, use raw_ostream::write_hex instead of a smallstring dance with APValue::toStringUnsigned(S, 16). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2dd245c469f4d842f2b7af80582fb4769a914b23 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
signficant cleanups to EmitGlobalConstant (including streamerization of int initializers), change some methods to be static functions, use raw_ostream::write_hex instead of a smallstring dance with APValue::toStringUnsigned(S, 16). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
41fd4b147ff4623ac3bce7999f7d730c656a5e23 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
switch ConstantFP emission to use MCStreamer, significantly simplifying the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93988 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9ceff94447235a2e369d9adfdf57368f57dd3f18 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
switch ConstantFP emission to use MCStreamer, significantly simplifying the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93988 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a39bf4e9046a0689b4036a0b7c5325aff68e2794 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make mcasmstreamer handle expanding 8 byte integer constants to 4-byte constants if .quad isn't supported. Switch a bunch of methods used by the dwarf writer to use OutStreamer.EmitIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93987 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5eaa54e210256a939f15e918303197916c992aee |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make mcasmstreamer handle expanding 8 byte integer constants to 4-byte constants if .quad isn't supported. Switch a bunch of methods used by the dwarf writer to use OutStreamer.EmitIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93987 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
92c78e8e9a83b4971a4173cde5a0c28f571bd485 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
give createAsmStreamer an 'isLittleEndian' argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93986 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1658202529cf371e7e5f1a46d9ef80def5b3c3e0 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
give createAsmStreamer an 'isLittleEndian' argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93986 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fd311dffa36fe6e48734ba28e6439dcb5b22f7fb |
20-Jan-2010 |
Devang Patel <dpatel@apple.com> |
If a instruction belongs to another function (and not current function) as per debug info attached with the instruction then ignore the dangling lexical scope of this instruction. Such scopes are unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93967 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
42aafd7e578707ca20dec456e8996849984272bb |
20-Jan-2010 |
Devang Patel <dpatel@apple.com> |
If a instruction belongs to another function (and not current function) as per debug info attached with the instruction then ignore the dangling lexical scope of this instruction. Such scopes are unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93967 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a05f25bba28c58ad154d1198e0eb9d9199bbef31 |
20-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some asserts to check SelectionDAG problems earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
221925eccace7433cb3b3c42875645c499db91a2 |
20-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some asserts to check SelectionDAG problems earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4eb69a01c74db721f23bbcdc2156fa5b97dc9618 |
20-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Move findDebugLoc somewhere more central. Fix more cases where debug declarations affect debug line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93953 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
918f0f0beab7401172b0b17aeb04e8d757e97a10 |
20-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Move findDebugLoc somewhere more central. Fix more cases where debug declarations affect debug line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93953 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
9cb488e82728bba1cf27fb171e82de245f70d302 |
20-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fold (add x, shl(0 - y, n)) -> sub(x, shl(y, n)), to simplify some code that SCEVExpander can produce when running on behalf of LSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cd9e155755dab1913238ffc0374111a39d500adf |
20-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fold (add x, shl(0 - y, n)) -> sub(x, shl(y, n)), to simplify some code that SCEVExpander can produce when running on behalf of LSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4e789288818a1573f38ae5e20b5713635a90491a |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
simplify the rest of fp constant printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93929 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
09ce674ce81cfa0de096f19833ae7bc7549d851a |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
simplify the rest of fp constant printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93929 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
84382d206ce887957fd1d14d84551971b2f0777f |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
simplify the code for printing x86 long double, don't do work for -fverbose-asm unless it's on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93926 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
72b5ebc6be0fcfa36583367bc20afadb2c24d985 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
simplify the code for printing x86 long double, don't do work for -fverbose-asm unless it's on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93926 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b2ddf24fe2203666bb04d74a54984f1be07124a5 |
19-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Identify predicate and optional-def operands when printing machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93925 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b1bb4afbc7d801f9875be135c428b6f05511db5d |
19-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Identify predicate and optional-def operands when printing machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93925 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
030176ba3b80ebb99c871df436a67a9311e0accc |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate AsmPrinter::EmitZeros: just use MCStreamer directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93918 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6449abfbc86310edbbe0b5ffb3fad5c14301307f |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate AsmPrinter::EmitZeros: just use MCStreamer directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93918 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7498f8bf8fabc59d9eb21d56626a1db067a60df0 |
19-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMake list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93905 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
dcff928b593ed443bab4713164bdaf2bd596259e |
19-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMake list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93905 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
b43b732b65703d4c76f04e44e7f370f7092be71a |
19-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some new debugging APIs to print out "raw" SelectionDAGs to make understanding CannotYTetSelect and other errors easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ce6715faa37b2e44edcf400084aa808ae30d7085 |
19-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some new debugging APIs to print out "raw" SelectionDAGs to make understanding CannotYTetSelect and other errors easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a71dc60dc2bb5a154d9195dfe2d3126f7c7967d5 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Generalize mcasmstreamer data emission APIs to take an address space identifier. There is no way to work around it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93896 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
aaec205b87637cd0d59d4f11630db603686eb73d |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Generalize mcasmstreamer data emission APIs to take an address space identifier. There is no way to work around it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93896 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bf17f5ba82f6443badf10e83fb539b82a2e6e29a |
19-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not extend extension results beyond the use of a PHI instruction at the start of a use block. A PHI use is expected to kill its source values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93895 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
590d16be6f335da07c66f3c92693d0e8a2f40069 |
19-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Do not extend extension results beyond the use of a PHI instruction at the start of a use block. A PHI use is expected to kill its source values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93895 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
e72333d0b5224b235c1607238dd37a9bb774c3fd |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
refactor code to be static functions instead of methods on AsmPrinter. This fixes some bugs handling address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93891 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
91093ecf0fed6f007e08f1a4531cdb6f438672a2 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
refactor code to be static functions instead of methods on AsmPrinter. This fixes some bugs handling address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93891 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3b29636c60b7e1513f1ced8b220123868d24b748 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize AsmPrinter::EmitZeros, at least when emitting to the default address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93890 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8a6d7ac88f8b0f37c8c1f134efb39a0725394719 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamerize AsmPrinter::EmitZeros, at least when emitting to the default address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93890 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d551a916083e26fa64aa2bf7b50d13669ff7c004 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove MAI::ZeroDirectiveSuffix, which is only used by MASM, which we don't support anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93886 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f03ffd13f8f31fb8ead74b94eb2ef71b80ac7739 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove MAI::ZeroDirectiveSuffix, which is only used by MASM, which we don't support anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93886 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e9b2eed90ebc564917e62f79a5da0a72c394aadf |
19-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
For aligned load/store instructions, it's only required to know whether a function can support dynamic stack realignment. That's a much easier question to answer at instruction selection stage than whether the function actually will have dynamic alignment prologue. This allows the removal of the stack alignment heuristic pass, and improves code quality for cases where the heuristic would result in dynamic alignment code being generated when it was not strictly necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93885 91177308-0d34-0410-b5e6-96231b3b80d8
axStackAlignment.cpp
|
e45ab8a0a90e4f3a59d8c38038ae3e495ee1fef3 |
19-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
For aligned load/store instructions, it's only required to know whether a function can support dynamic stack realignment. That's a much easier question to answer at instruction selection stage than whether the function actually will have dynamic alignment prologue. This allows the removal of the stack alignment heuristic pass, and improves code quality for cases where the heuristic would result in dynamic alignment code being generated when it was not strictly necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93885 91177308-0d34-0410-b5e6-96231b3b80d8
axStackAlignment.cpp
|
8c2d16dbc82838785aea7d55929aaed0ba1ab760 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamer'ize the rest of EmitGlobalVariable that is used on darwin. The next big piece to get global variables streamerized is EmitGlobalConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4c8c668b57f74e2849ba198c3abfc97899e8072b |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mcstreamer'ize the rest of EmitGlobalVariable that is used on darwin. The next big piece to get global variables streamerized is EmitGlobalConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f26c7790feb3890ff9c5927997432825043788ca |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
stop using the .lcomm pseudoop on darwin, instead, directly use the .zerofill directive. Streamerize its generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93868 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
814819f6ea7fb0638fe73920299fda0da941a59e |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
stop using the .lcomm pseudoop on darwin, instead, directly use the .zerofill directive. Streamerize its generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93868 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7d707f90692c75f1de63d0a8a1bc4c9d1c8fddad |
19-Jan-2010 |
Devang Patel <dpatel@apple.com> |
MDNodes are not expected to disappear or replaced by another MDNode, so there is no need to pay the cost of WeakVH and ValueMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93865 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
622b02601bafdf40d103d67951fae88f409c4641 |
19-Jan-2010 |
Devang Patel <dpatel@apple.com> |
MDNodes are not expected to disappear or replaced by another MDNode, so there is no need to pay the cost of WeakVH and ValueMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93865 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c2103b1cdf55bc0e8015bbb2e3647e8a44b6738b |
19-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Avoid including DebugInfo.h in AsmPrinter.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93864 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
|
c99fd879c0f4bbc56c29d508fec7935e6cbd7ed0 |
19-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Avoid including DebugInfo.h in AsmPrinter.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93864 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
|
ecf1cdc01d70f346dca485c104c7e60a937b420b |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize some stuff, don't comment out .lcomm directive in -fverbose-asm mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93860 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4ed5438f4882c9fe779b1a8ff546877889b222df |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
mc'ize some stuff, don't comment out .lcomm directive in -fverbose-asm mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93860 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fdcdb2cdced3b09de74e67b11f9c9558ee33e512 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
factor this code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93859 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9744d611d7c7c1fb51c50c4e94901e4e9a905116 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
factor this code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93859 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
410c9471b999ac45a0234be088da718f5626f76b |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Now that we have everything nicely factored (e.g. asmprinter is not doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93858 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
74bfe21b50c14c15f55ce3bd5857d65b588fae3c |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Now that we have everything nicely factored (e.g. asmprinter is not doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93858 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d960947255c0e5d28eab6d76a02222133af1f1f6 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
hoist handling of external globals and special globals up to common code. This makes a similar code dead in all the other targets, I'll clean it up in a bit. This also moves handling of lcomm up before acquisition of a section, since lcomm never needs a section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93851 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
48d64ba9d846229339b2431b298620cb8a01ffc5 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
hoist handling of external globals and special globals up to common code. This makes a similar code dead in all the other targets, I'll clean it up in a bit. This also moves handling of lcomm up before acquisition of a section, since lcomm never needs a section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93851 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2f2fe05fa39eac3b0067ccadd5dd8c985d5a09fe |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move production of .reference directives for static ctor/dtor list on darwin into common code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93849 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
71eae713153e564ec743c5c4162ff258c255de78 |
19-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move production of .reference directives for static ctor/dtor list on darwin into common code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93849 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
387e9c184c93de5dbd0afbb450f9cbfb3cbd56f0 |
19-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Revert accident check-in from r93165. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93832 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f54b85237c666e6c473392b0e85aa9724cd0df79 |
19-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Revert accident check-in from r93165. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93832 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
0e073cd755d2582295de65b49ca2a7ead8ad48bf |
19-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 93811 per request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f082d7abe1cbba4608b3d79c2e9d16be0f42d1bc |
19-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 93811 per request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
892c2d9df22f22c6d1e7b6f3d0109344050c1f80 |
19-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Enable code to emit dbg.declare as DEBUG_VALUE comments (fast isel, X86). This doesn't seem to break any functionality, but will introduce cases where -g affects the generated code. I'll be fixing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93811 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1b346b7f8fe5913c253106e49cb4c848fac953d5 |
19-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Enable code to emit dbg.declare as DEBUG_VALUE comments (fast isel, X86). This doesn't seem to break any functionality, but will introduce cases where -g affects the generated code. I'll be fixing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93811 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
029251769c9afbbb1bd066c0ec37347aedf59013 |
18-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Canonicalize -1 - x to ~x. Instcombine does this but apparently there are situations where this pattern will escape the optimizer and / or created by isel. Here is a case that's seen in JavaScriptCore: %t1 = sub i32 0, %a %t2 = add i32 %t1, -1 The dag combiner pattern: ((c1-A)+c2) -> (c1+c2)-A will fold it to -1 - %a. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1ad0e8b5769f25ca442f3d77bf374d03469010bc |
18-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Canonicalize -1 - x to ~x. Instcombine does this but apparently there are situations where this pattern will escape the optimizer and / or created by isel. Here is a case that's seen in JavaScriptCore: %t1 = sub i32 0, %a %t2 = add i32 %t1, -1 The dag combiner pattern: ((c1-A)+c2) -> (c1+c2)-A will fold it to -1 - %a. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6442f658e78ec2aecb6aaf7938d6ccadb7f5b140 |
18-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
- Add a comment to the callback indicating that it's *extremely* not a good idea, but unfortunately necessary. - Default to using 4-bytes for the LSDA pointer encoding to agree with the encoded value in the CIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93753 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a8c18890da312e810c687b78658dcd4c989b9776 |
18-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
- Add a comment to the callback indicating that it's *extremely* not a good idea, but unfortunately necessary. - Default to using 4-bytes for the LSDA pointer encoding to agree with the encoded value in the CIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93753 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1e9a11b57bff0f237a15b2b67eafd71a1e220aa4 |
18-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove the MAI argument to MCExpr::print and switch overthing to use << when printing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93699 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
8cb9a3b13f3226b7e741768b69d26ecd6b5231f1 |
18-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove the MAI argument to MCExpr::print and switch overthing to use << when printing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93699 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ce40984980d8cc39e903382478c111d967aed337 |
17-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
now that MCSymbol::print doesn't use it's MAI argument, we can remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93695 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
10b318bcb39218d2ed525e4862c854bc8d1baf63 |
17-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
now that MCSymbol::print doesn't use it's MAI argument, we can remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93695 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
|
63ab9bb55ac6e3793357529b7221b8f2afe61baa |
17-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
now that mangler is in libtarget, it can use MCAsmInfo instead of clients having to pass various fields from it in. Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93686 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
c0dba723d119adc8c7b49c6d0e97d10eac4428fc |
17-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
now that mangler is in libtarget, it can use MCAsmInfo instead of clients having to pass various fields from it in. Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93686 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
0ad2db92a5361a16e1f34704a67429e0c76a0b4d |
17-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Switch some functions to take Twines, eliminate uses of StringExtras.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93680 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
1efd4fd56b3bc21b85ab921c6f77807afc02ecb5 |
17-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Switch some functions to take Twines, eliminate uses of StringExtras.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93680 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
ad16a245544a3387d089e151667c7fab62356d50 |
17-Jan-2010 |
Nate Begeman <natebegeman@mac.com> |
Add a note for the macho streamer and remove a used of the mangler from the soon to be defunct machowriter pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93670 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
6f24a0a603d7edba4995153092ff841703df6824 |
17-Jan-2010 |
Nate Begeman <natebegeman@mac.com> |
Add a note for the macho streamer and remove a used of the mangler from the soon to be defunct machowriter pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93670 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
395885b0c037e6fdce3690c092e22ff1613ae728 |
17-Jan-2010 |
Kenneth Uildriks <kennethuil@gmail.com> |
When checking for sret-demotion, it needs to use legal types. When using the return value of an sret-demoted call, it needs to use possibly illegal types that match the declared Type of the callee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
93ae407ec3d300805d42a6e2f81ab8c4538eb494 |
17-Jan-2010 |
Kenneth Uildriks <kennethuil@gmail.com> |
When checking for sret-demotion, it needs to use legal types. When using the return value of an sret-demoted call, it needs to use possibly illegal types that match the declared Type of the callee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
31a54741b82809a2c136239af45bea276d4b85df |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move the mangler into libtarget from vmcore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93664 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
LFWriter.cpp
achOWriter.cpp
|
45111d160cf0910030eeb6a949c69273502e5ad5 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
move the mangler into libtarget from vmcore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93664 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
LFWriter.cpp
achOWriter.cpp
|
5214518439740b4feb63e0be500cbc4711becfa5 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reapply the mangler gutting patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93656 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
c94c825a4098f2a86589d31b318bbb8836a5df44 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reapply the mangler gutting patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93656 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
a418ffbdd0c70adde1e1e92732b76bd8f05213c0 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93654 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6dfdad9c0623212d1506c24e20d6a94deeb73980 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93654 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2823525038515be92811775241b2c99af9d258ed |
16-Jan-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 93648. Mangler::getMangledName is used from lto Mangler::setUseQuotes is used in the AsmPrinter Mangler::setSymbolsCanStartWithDigit is used in the AsmPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93652 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
0f0c97810c0d35882fdd2160553b0be94332e3fa |
16-Jan-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 93648. Mangler::getMangledName is used from lto Mangler::setUseQuotes is used in the AsmPrinter Mangler::setSymbolsCanStartWithDigit is used in the AsmPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93652 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
608b270506bcf9b1d24f839a9e39683b707bec13 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Mangler::getMangledName is now dead, remove it and all the other stuff in Mangler that is now transitively dead. woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93648 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
848d0f37d2ef3c8418380d5f7f3dd083a132fe48 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Mangler::getMangledName is now dead, remove it and all the other stuff in Mangler that is now transitively dead. woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93648 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
41e330fb461d9e5e70a6b93f47fa83a5004b161f |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Change DIEObjectLabel to take an MCSymbol instead of std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93647 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
858431d0bc81ddab11363cc0eb2889dbfdc8362b |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Change DIEObjectLabel to take an MCSymbol instead of std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93647 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
a6f2a103c7713d0184ef7a6c6b1933db3547b3e2 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase, and add an explicit ForcePrivate argument. Switch FunctionEHFrameInfo to be MCSymbol based instead of string based. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
7a2ba94d03b43f41b54872dacd7b2250dde4c7bd |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase, and add an explicit ForcePrivate argument. Switch FunctionEHFrameInfo to be MCSymbol based instead of string based. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
cbfe406db836132504737fb1722ece75ec142319 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate uses of getMangledName from AsmPrinter.cpp, last up is dwarf emission which is going to be more invasive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93645 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
08ce3b473d06e0f7806df3d44b7b36ac40c58803 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate uses of getMangledName from AsmPrinter.cpp, last up is dwarf emission which is going to be more invasive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93645 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7a1656537780563eb56f6b7f327e705e14194dd2 |
16-Jan-2010 |
Devang Patel <dpatel@apple.com> |
No need to use WeakVH here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a27f6e4e202b335f38e3f37e052e9eca817e89fe |
16-Jan-2010 |
Devang Patel <dpatel@apple.com> |
No need to use WeakVH here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
042945f696010411918fb35b82cf4016da80ae18 |
16-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Replace DebugLocTuple with DILocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93630 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
achineFunction.cpp
achineInstr.cpp
|
6b61f5816e22ac7f7e009aaf3e11ccce7cfeb085 |
16-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Replace DebugLocTuple with DILocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93630 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
achineFunction.cpp
achineInstr.cpp
|
47177f7ee693f15ba76c6765cdeedde05280942b |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove a couple of actively incorrect uses of getMangledName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93627 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
0b3735e65af1cc3ff7fb76e2b30e2ffb2604f400 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove a couple of actively incorrect uses of getMangledName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93627 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
e46f64b5ed522333155e37518515a7f656ac4e0c |
16-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Retrying r91337: The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine, but we need it to actually be 4-bytes in the FDE for some platforms. Allow individual platforms to decide for themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93616 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d58e9cb42d7f5cf83c9b982df7e2c822b2e285e9 |
16-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Retrying r91337: The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine, but we need it to actually be 4-bytes in the FDE for some platforms. Allow individual platforms to decide for themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93616 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1ff319475a82afe0cea68471ccf96b6f59d879ec |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix inverted conditional git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93614 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
10595490ccf25b4960936638fac7a673eaf82e68 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix inverted conditional git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93614 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ac5a6ad0b05dd5c76fd2f2d05c285d25ef4d4717 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
CurrentFnName is now dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93612 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
412c3a5bc9e70fe8579551216786e70d323a3dd5 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
CurrentFnName is now dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93612 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c0c8d7dc3e4b35987631d6a17ca259c614d16f93 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove the string form of printVisibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93609 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5c40e694dcd679bf26b962189c1d12b32fff07cd |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove the string form of printVisibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93609 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7ea854b6e40e9c9a5177d2f985026bb45eb6905d |
16-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Treat indirect branches specially only during pre-regalloc tail duplication, not during the later post-alloc tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93600 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
cb44b28f4d96c059d30c1a77d3b7e406d362d94e |
16-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Treat indirect branches specially only during pre-regalloc tail duplication, not during the later post-alloc tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93600 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
a9ef6bc5c56ddaad6977f0f7bd5b51087bcef5c9 |
16-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Run the pre-register allocation tail duplication pass by default. Remove the -pre-regalloc-taildup command-line option, and add a new -disable-early-taildup option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93597 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
516ab96de3eb0c80ac9c4867cc2076ef4749625e |
16-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Run the pre-register allocation tail duplication pass by default. Remove the -pre-regalloc-taildup command-line option, and add a new -disable-early-taildup option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93597 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8d656d944275350f1baf0740bdd143e90e172dbb |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
supplement CurrentFnName with CurrentFnSym, which will eventually replace it. Upgrade Alpha, Blackfin, and part of CellSPU to not use mangler anymore. CellSPU needs more invasive surgery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d1947ed2f824d2e9f4923fb6efc2aec4a6e3e96d |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
supplement CurrentFnName with CurrentFnSym, which will eventually replace it. Upgrade Alpha, Blackfin, and part of CellSPU to not use mangler anymore. CellSPU needs more invasive surgery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
67cce68221c693cd2c80cf2a16b626b6abfc67e6 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a version of AsmPrinter::printVisibility that takes an MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93587 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
53d4d78d9a2c26a67ac8f6e81cc149702103fc2c |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a version of AsmPrinter::printVisibility that takes an MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93587 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f7871d1b5018aae518bed4cd979130d2cf06ad02 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add another helper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d588b97cc9acf778282ab10efa4f298cead1215a |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add another helper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2eb781d9dee5c87fd2efac8dac12ae47c4526544 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a AsmPrinter::GetGlobalValueSymbol and GetExternalSymbolSymbol helper method, use it to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93575 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6b04edee11c2bb35a48b1c42f867b4ba8cdfff97 |
16-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add a AsmPrinter::GetGlobalValueSymbol and GetExternalSymbolSymbol helper method, use it to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93575 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d45d042da9417316e8b42a299375f0bb7f0e9726 |
15-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93571 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
11f30b013149a2a4cb0b41288488079a24730fe1 |
15-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93571 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
2ae0a44449000e88d1fe99fe9ccfe027a2313224 |
15-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Add FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93562 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
167207a99b34dfc939489ca648a009b4aed13dfd |
15-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Add FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93562 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e3992c87cf09101a0998be97ea63c2385ed528d1 |
15-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't make changes to the MBB in MachineBasicBlock::canFallThrough(). This fixes the regression for -pre-regalloc-taildup in MultiSource/Applications/lambda-0.1.3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93541 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
33cc8d6b55ca5e1275d0984860f5d4f36f84f356 |
15-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't make changes to the MBB in MachineBasicBlock::canFallThrough(). This fixes the regression for -pre-regalloc-taildup in MultiSource/Applications/lambda-0.1.3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93541 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
d1cd6acfd850eef54127c88d56f7766990c2da6e |
15-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify logic. Any functional change is unintended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93540 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
057d53993c8f5ae3b5d8b5357c8c1ec6cc6d63ee |
15-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify logic. Any functional change is unintended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93540 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
2fecfc64c6973de9c1653841108ca7dd99f65780 |
15-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some debug routines to SelectionDAG to dump full DAGs. print/dumpWithDepth allows one to dump a DAG up to N levels deep. dump/printWithFullDepth prints the whole DAG, subject to a depth limit on 100 in the default case (to prevent infinite recursion). Have CannotYetSelect to a dumpWithFullDepth so it is clearer exactly what the non-matching DAG looks like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ac931c011fae9392b5d68e763ec64ee25181c267 |
15-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some debug routines to SelectionDAG to dump full DAGs. print/dumpWithDepth allows one to dump a DAG up to N levels deep. dump/printWithFullDepth prints the whole DAG, subject to a depth limit on 100 in the default case (to prevent infinite recursion). Have CannotYetSelect to a dumpWithFullDepth so it is clearer exactly what the non-matching DAG looks like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
d22820bc0989a6df50b40f65cde66d4218151074 |
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3a32865d58f015e7058444eab7085195c34da95a |
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5694b479aaa0214543571f21b51098015514f1b4 |
15-Jan-2010 |
Nate Begeman <natebegeman@mac.com> |
Hook up llc's -filetype=obj to use MCStreamer if an MCCodeEmitter is available. Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer Further refactoring to completely remove MachOWriter and drive the object file writer with the AsmPrinter MCInst/MCSection logic is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93527 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
3fe980b127a61608bd6d44c0939ba716ca21625c |
15-Jan-2010 |
Nate Begeman <natebegeman@mac.com> |
Hook up llc's -filetype=obj to use MCStreamer if an MCCodeEmitter is available. Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer Further refactoring to completely remove MachOWriter and drive the object file writer with the AsmPrinter MCInst/MCSection logic is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93527 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
797ddec380dfcd01f74055185b31d8d3ce33186f |
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be auto-upgraded git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93515 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5f03238d629c32bb0bab78d112a42293838558e9 |
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be auto-upgraded git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93515 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
387170cbbf6508d34cc4edd5e89a3b64bafa0104 |
15-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change pre-regalloc tail duplication to only duplicate indirect branch blocks. The pre-regalloc pass caused some regressions in both compile time and performance of the generated code, and it did not improve performance, except for indirect branches. I also moved the check for single-block loops to speed up the common case when running the taildup pass before reg allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93505 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
bfdcf3bd49f50050fe98523f882b2241d2752fb4 |
15-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Change pre-regalloc tail duplication to only duplicate indirect branch blocks. The pre-regalloc pass caused some regressions in both compile time and performance of the generated code, and it did not improve performance, except for indirect branches. I also moved the check for single-block loops to speed up the common case when running the taildup pass before reg allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93505 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
a2e6f234901138c6fe3fa53b1b0cfa6f9c595e03 |
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
283ba2fbb4a40d5f7615aba070f2f7ec161d19ac |
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
dcc0dce792fd568b1858323786e8c88357145c5b |
15-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Do not use AT_specification die for static variables. It confuses gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93494 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c9b16cc10887d270aa2a43a5a8c78e0ed3177dea |
15-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Do not use AT_specification die for static variables. It confuses gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93494 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c5d373ab6892c9210e618ae6e5394cd4f301978d |
15-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
fix 80-column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f4549b02a7d9907d06e7fb8afefd129452d1f7c5 |
15-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
fix 80-column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
10039378078d5ff74227f25ef747784fa0a84202 |
15-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Fix 80 column violations and clean up whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93484 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
03825f8401f703ba59ae9ef20d9d4f4303b3d041 |
15-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Fix 80 column violations and clean up whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93484 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
69aae43ba76de8dedfac93405953e63a3ca4c500 |
15-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Do not emit multiple AT_container_type attributes. We need to find a better way to emit this info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93481 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f8b72ca6c80d7fb242d23d9b2aebb1937e6fff60 |
15-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Do not emit multiple AT_container_type attributes. We need to find a better way to emit this info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93481 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c90c30b900c680852cab24b883ba0edefe50cbde |
14-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cf0b76649be4eea33aba783d4154ea338b7cbbc2 |
14-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
26cb241d6ab201327d479741c7bf8300b5184263 |
14-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Add comment explaining the necessity of r93456 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93459 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
86e69fa901ea0e04bc24ae3d8f757bccc84c10e6 |
14-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Add comment explaining the necessity of r93456 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93459 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
663cf2c35b96b853c0a04ff6abf3222b974a3b4e |
14-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Dwarf EH prepare needs to be run after SjLj prepare. Otherwise, catch info can get misplaced when a selector ends up more than one block removed from the parent invoke(s). This could happen when a landing pad is shared by multiple invokes and is also a target of a normal edge from elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93456 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9f82da7cbfe0c9f1b2c4bc7d7a9a9b5d35bea488 |
14-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Dwarf EH prepare needs to be run after SjLj prepare. Otherwise, catch info can get misplaced when a selector ends up more than one block removed from the parent invoke(s). This could happen when a landing pad is shared by multiple invokes and is also a target of a normal edge from elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93456 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4e57a87a7823a9734e67aeba2ce067db7e972ab4 |
14-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fix a codegen abort seen in 483.xalancbmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ff00a555171cac0a77c0434fd85ff5a0ae672ade |
14-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fix a codegen abort seen in 483.xalancbmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2308d17eb3701702b9fc659e1793940c10b5797d |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Commit some changes I had managed to lose last night while refactoring the code. Avoid change use of PHI instructions because it's not legal to insert any instructions before them. This fixes PR6027. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93335 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
eb18812f755b634f3e7554c1912aeb2d7476cb53 |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Commit some changes I had managed to lose last night while refactoring the code. Avoid change use of PHI instructions because it's not legal to insert any instructions before them. This fixes PR6027. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93335 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
074e5ee642f72bfa5fa53aaebbfa286f76d93156 |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable extension optimization pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93313 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
81d22d87de93f501f90f55b6bbc63f5dd286797a |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable extension optimization pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93313 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
23554ba8ea748a9d3dd2e946031b4af989b79adf |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comment; refactor; avoid pulling in DT if it's not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93306 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
d89d5180d12107a2cdffa179c213370db2e088d5 |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add comment; refactor; avoid pulling in DT if it's not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93306 91177308-0d34-0410-b5e6-96231b3b80d8
ptimizeExts.cpp
|
6be13f3b6c5b06131458583bc8cb8a0182f04ceb |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove uses of deprecated functions, this generates slightly different BlockAddress labels, but nothing semantically important. Add a FIXME that BlockAddress codegen is broken if the LLVM BB has an empty name (e.g. strip was run). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93303 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2f8cc26be403262703ba00658d45e5adf7bdb514 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
remove uses of deprecated functions, this generates slightly different BlockAddress labels, but nothing semantically important. Add a FIXME that BlockAddress codegen is broken if the LLVM BB has an empty name (e.g. strip was run). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93303 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cdf8e795ef30ce14c2ad838f5383701403206664 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
use the new form of getNameWithPrefix, not makeNameProper. Among other things, this would do very weird things if the basic block name had (e.g.) a space in it on darwin: makeNameProper would add quotes, then the mcsymbol would escape the quotes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dfbcb8c38bb1637289801f37bb22cb7065891611 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
use the new form of getNameWithPrefix, not makeNameProper. Among other things, this would do very weird things if the basic block name had (e.g.) a space in it on darwin: makeNameProper would add quotes, then the mcsymbol would escape the quotes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93302 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a38b287aec4e06a2aded8bc7809f0f949955ade5 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
change Mangler::makeNameProper to return its result in a SmallVector instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4813035b726e7f0a3fd17bec437185fc72a50988 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
change Mangler::makeNameProper to return its result in a SmallVector instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5034031d0da530709726bb3163204ece7f871679 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix assert in AsmPrinter::EmitGlobalConstantLargeInt to match reality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93293 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
38c2b0a99c6a3f5cdf6ef5a46e4a6826b30acbfb |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix assert in AsmPrinter::EmitGlobalConstantLargeInt to match reality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93293 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
98910866249b2098d80c887ce555e195463fb5e0 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reduce nesting and code duplication in AsmPrinter::EmitGlobalConstantLargeInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93292 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5979dfff8ea73c9d728d3a586efba6581be3e672 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reduce nesting and code duplication in AsmPrinter::EmitGlobalConstantLargeInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93292 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9d767d8db074bcb08e0dcd2c27515226b841ca4d |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation and add a fast-path to EmitGlobalConstant for 8-byte integers on 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93291 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3cc3a00570e8263369346cf2eef9a72488326952 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation and add a fast-path to EmitGlobalConstant for 8-byte integers on 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93291 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
458c8774022dad22ea34ba9d250f7ebef8450038 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation and use early exits in AsmPrinter::EmitConstantValueOnly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fe0e7ed6b077360dbcc6d9f0bc0a4dfeb77c8e9b |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation and use early exits in AsmPrinter::EmitConstantValueOnly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
79960dc1e4822a9e4f4368dcdfda53cbee42a5bc |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Disable opt-ext pass to unbreak the build for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93286 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
262a96edb436543227b9b5e49f95a082e1c73b5f |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Disable opt-ext pass to unbreak the build for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93286 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e4e2d73a8e058f08c6fdf88ed250cda22975638e |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove debug option I accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93285 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d9e385f411abc1ec41130d8010a9de4a93dd1042 |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove debug option I accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93285 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
07ad56a9deda44a5b17587632af6b8ced10b854c |
13-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93283 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
ce3ad1565ac3ff6cc04832ec17ecdc1baa705f9d |
13-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93283 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
eb485c91b7d901c50ae68334c91e222f1f8cfc3f |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a quick pass to optimize sign / zero extension instructions. For targets where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93278 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizeExts.cpp
|
7da9ecf9677b751d81515f95168ae3cb2df54160 |
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a quick pass to optimize sign / zero extension instructions. For targets where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93278 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ptimizeExts.cpp
|
698aa7a176eaf8e39cad144e91094249c4615622 |
13-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Further progration of metadata operands. The dumper doesn't really do what I want yet, but at least it doesn't crash now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93272 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5f72a5ebc84a1935878b5b2d3166a505c520cdfc |
13-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Further progration of metadata operands. The dumper doesn't really do what I want yet, but at least it doesn't crash now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93272 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
c244ae65b53cfbd544b960c4ed1c344f729ea728 |
12-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93261 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
86af65552172c9149996600bc3f55bed6f949c8a |
12-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93261 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
62f23d34678c30606705a432f268fadf85aa162b |
12-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Update a partially obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
21c14e3649b3e2a70ac36ebb148f17648f10a2a9 |
12-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Update a partially obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c90588049c6c7577366bdc59364f89cc631a1e6d |
12-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5c9cf19d1e7d044e786f03331bc3f004966a69d2 |
12-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1f50af772b65865868f332792dd3150aeaba8660 |
11-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid adding PHI arguments for a predecessor that has gone away when a BRCOND was constant folded. This fixes PR5980. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93184 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dd437ba15e00d1a137e0c6e3ca1ff213ed6a2aa0 |
11-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid adding PHI arguments for a predecessor that has gone away when a BRCOND was constant folded. This fixes PR5980. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93184 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
313485a4c25a8eb93e035b3d457c2a0d2069258c |
11-Jan-2010 |
Mon P Wang <wangmp@apple.com> |
Disable transformation of select of two loads to a select of address and then a load if the loads are not in the default address space because the transformation discards src value info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fe240b1066badd7a56d9a99637cdc7cd25f8305c |
11-Jan-2010 |
Mon P Wang <wangmp@apple.com> |
Disable transformation of select of two loads to a select of address and then a load if the loads are not in the default address space because the transformation discards src value info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b7074b01d29d5a727e8b496664148e3a4e96c7e3 |
11-Jan-2010 |
Devang Patel <dpatel@apple.com> |
s/NextValueNo/NextMDValueNo while processing metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
23598502efa6a0c2daaa6c6efc519867c8445e8f |
11-Jan-2010 |
Devang Patel <dpatel@apple.com> |
s/NextValueNo/NextMDValueNo while processing metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7196cb17f2a16ed5c57325c7eddef90b25ad306b |
09-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Revert an earlier change to SIGN_EXTEND_INREG for vectors. The VTSDNode really does need to be a vector type, because TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type, and it needs to be able to distinguish between vectors and scalars. Also, fix some more issues with legalization of vector casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93043 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
d1996360399ad6dbe75ee185b661b16c83146373 |
09-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Revert an earlier change to SIGN_EXTEND_INREG for vectors. The VTSDNode really does need to be a vector type, because TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type, and it needs to be able to distinguish between vectors and scalars. Also, fix some more issues with legalization of vector casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93043 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
61a04a4863bec3aafeaac93f24cdb99fc9c78fe0 |
09-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Dan pointed out checking whether a node is dead by comparing its opcode to ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93031 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
54e146b935123d3d325e8eb30c2e1f2eca3377ac |
09-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Dan pointed out checking whether a node is dead by comparing its opcode to ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93031 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cadeefe319b2b8b79baa3201754f647b5c08f6c1 |
08-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
ReplaceAllUsesOfValueWith may delete other nodes that the one being replaced. Do not delete dead nodes again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6f279e0bda35a35740cc8c5479d579890bc1d3f7 |
08-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
ReplaceAllUsesOfValueWith may delete other nodes that the one being replaced. Do not delete dead nodes again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
73f59c1f111309e9de59444020bcd0993b054699 |
07-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Fix rdar://7517201, a regression introduced by r92849. When folding a and(any_ext(load)) both the any_ext and the load have to have only a single use. This removes the anyext-uses.ll testcase which started failing because it is unreduced and unclear what it is testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92950 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bd1fccfad59f24267b6fa8b898711d63a3574c7d |
07-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Fix rdar://7517201, a regression introduced by r92849. When folding a and(any_ext(load)) both the any_ext and the load have to have only a single use. This removes the anyext-uses.ll testcase which started failing because it is unreduced and unclear what it is testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92950 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4dbb99a59e8afbbf26ca2e2046694317d174e805 |
07-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
factor this code better and reduce nesting at the same time, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ef7634ca48c7ed33a88bd80207f3457c07ad85f2 |
07-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
factor this code better and reduce nesting at the same time, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
746ff38b996b0a2c8233f4679a543d8cf7dfc8c8 |
07-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
APInt'fy TargetLowering::SimplifySetCC to fix PR5963. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
347a9cb5070be6473a5f881dd29997b46081d23b |
07-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
APInt'fy TargetLowering::SimplifySetCC to fix PR5963. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e9f7c8f9ad7534f95342b0e0595b596fa02e6b78 |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No intended functionality/performance change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92938 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
2e0de6f771337c654728a7855a3f47a3458545b3 |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No intended functionality/performance change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92938 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
631e3e3f6a0b8b6c9a50787d6bd0a09bcfc590bd |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Kill dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3d594fd2992fa31aa74f974edaeddc4178206380 |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Kill dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
650c0fa1be13732cb617e9bc15ed4818b2d94a6b |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92919 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
e7078aed24d81c0b4bacb41385ea0237d1c0caf0 |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92919 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
947f3a6e79834ed0e7a5310c43eb0ca64fd24b8c |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use pop_back_val instead of back()+pop_back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92918 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7b1e2a50a51793428a792a15d2777a4c48e0db49 |
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use pop_back_val instead of back()+pop_back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92918 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fb68188d0ec8cbda044958d42e8c455de3e29f17 |
07-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow double defs after tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92874 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
541e9ae3ad39f6ebca7649ce0c640ff2c64bfb84 |
07-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow double defs after tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92874 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
d13c6ce32c2de48b62b925999174028150222ce7 |
07-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add Target hook to duplicate machine instructions. Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92873 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
argetInstrInfoImpl.cpp
|
30ac0467ced4627a9b84d8a1d3ca5e8706ddad63 |
07-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add Target hook to duplicate machine instructions. Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92873 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
argetInstrInfoImpl.cpp
|
a81a67f127633eaeb207c9c7ce010044b38224ca |
06-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Anti-dependency breaking needs to be careful regarding instructions with multiple register definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92864 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
80c2b0d9efc951b23f90a3cf12b9853177994961 |
06-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Anti-dependency breaking needs to be careful regarding instructions with multiple register definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92864 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
d917041c2164560446871f451b25580dbe137838 |
06-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
54eb4c2991796c3014e831fc07e4a6c0a3df10f0 |
06-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
095dac2acc996c523aa6ec5b44e0c1e0099286e1 |
06-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach dag combine to fold the following transformation more aggressively: (OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
d40d03e1bd1d51857fc2f9f9230e334c3a32b249 |
06-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach dag combine to fold the following transformation more aggressively: (OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
bfa08987939a656af8e1436fcc7a8eebb57cfcd1 |
06-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92837 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
2973b57093b017f2e3b5f5edd0be9d4ea180f0e9 |
06-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92837 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
|
98e6e6d1f930b224338d5faf411dc43621a09fa1 |
06-Jan-2010 |
Lang Hames <lhames@gmail.com> |
Fixed malformed -*- lines in PBQP headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92830 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/GraphBase.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
|
421c0733fdb1780ad6fd23eefba78004528dacd2 |
06-Jan-2010 |
Lang Hames <lhames@gmail.com> |
Fixed malformed -*- lines in PBQP headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92830 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/GraphBase.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
|
00cca85b6ae19c712a2567aac0732ed4c1fec122 |
06-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add <imp-def> and <imp-kill> operands when replacing virtual sub-register defs and kills. An instruction like this: %reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0 Must be replaced with this when substituting physical registers: %S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92812 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
irtRegRewriter.cpp
|
8efadf94b568c08de3ff8ce35fd904a935387406 |
06-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add <imp-def> and <imp-kill> operands when replacing virtual sub-register defs and kills. An instruction like this: %reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0 Must be replaced with this when substituting physical registers: %S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92812 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
irtRegRewriter.cpp
|
036a1980b77b60c8af9c5ce84c7ede5dadf3e96c |
06-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
The previous code could potentially cause a cycle. Allow ordering w.r.t. a 0 order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3f09487404bc46297dc6fd91ca3ac478c3a7fa34 |
06-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
The previous code could potentially cause a cycle. Allow ordering w.r.t. a 0 order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
882f79a3e629020bcd5b5059bf6df67764aaaa67 |
06-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Only check the ordering if there is an ordering for each nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
cfeea4b92aa5be102e58efea947ca40a95b0c999 |
06-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Only check the ordering if there is an ordering for each nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
1da5cacca96a3488451cb9627ec3407d861db35a |
06-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Add a semi-primitive form of scheduling via the "SDNode ordering" to the bottom-up scheduler. We prefer the lower order number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
247fb4ebd363323b6642ce2bb08e53db705ca094 |
06-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Add a semi-primitive form of scheduling via the "SDNode ordering" to the bottom-up scheduler. We prefer the lower order number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f5b856e21b2b84bb43646bd047010472b348c0f6 |
05-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Don't assign the shift the same type as the variable being shifted. This could result in illegal types for the SHL operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9f7c5c0dca1e63bca39eb6511e8847b02030cb1f |
05-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Don't assign the shift the same type as the variable being shifted. This could result in illegal types for the SHL operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f45e5d183036079f51ff374e8e1ecb06978b286e |
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen uses several kinds of opcode values which are not declared within that enum. This fixes PR5946. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7c3ecb6838ef7a2ca306c0f3cd68022f0855ae71 |
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen uses several kinds of opcode values which are not declared within that enum. This fixes PR5946. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e1b383f0ef527eb1cd75e59155290969c12c53ef |
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Restore dump() methods to Loop and MachineLoop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92772 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
dda30cd4af1c5f88fc00fd40b673f8e27c61379d |
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Restore dump() methods to Loop and MachineLoop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92772 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
f0e83d2fd7d71ba3f18fffdb36cf9b70dc1f8490 |
05-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move remaining stuff to the isInteger predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92771 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
8c65f6e71c1d46d823b9a884819992a9255edd54 |
05-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move remaining stuff to the isInteger predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92771 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
06294811f8729846df53fd1a0d7576d1e460c046 |
05-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove livein checks from machine code verifier. A phi operand that is implicitly defined in a predecessor becomes an undefined register after phi elimination. This causes a lot of false positives when the verifier is checking if live-in registers are live-out from all predecessors. Removing the verifier checks seems like a better solution than insisting on IMPLICIT_DEF instructions in predecessor blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92769 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b31defe94caac68561344f78696be3a048413ec9 |
05-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove livein checks from machine code verifier. A phi operand that is implicitly defined in a predecessor becomes an undefined register after phi elimination. This causes a lot of false positives when the verifier is checking if live-in registers are live-out from all predecessors. Removing the verifier checks seems like a better solution than insisting on IMPLICIT_DEF instructions in predecessor blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92769 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
3b620bfd58cf1e1d84563eb6208418858e903a42 |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
If a scope has only one instruction then first instruction is also the last instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ee890edd69044b820d3ba3a3c45ad43288565eac |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
If a scope has only one instruction then first instruction is also the last instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f2052d5e0eb5028a06f41d2cebb8e22b6876ebc0 |
05-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92726 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
f012705c7e4ca8cf90b6b734ce1d5355daca5ba5 |
05-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92726 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
4efb3b2015b855a403ad0963000fe2b125059e6a |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Delete renaming use of dead dbg intrinsics. Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92672 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
614d2ad0afaaee874684c3945afda659d587b7e6 |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Delete renaming use of dead dbg intrinsics. Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92672 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
141e1c4e936d3b5249b30ac8d581ee3c6202d56f |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Use StringRef.startswith(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92671 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
351ca3328452abed9de58723fbcbe42e7a08903e |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Use StringRef.startswith(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92671 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a0e147ae0b909678c1d4562b7896637ed4542016 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1a053236f165ac60ee88edca370a732d278aa2c1 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6ace2dc9caccb852fcc2cc360fe2e9a4a16e41a4 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92596 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
dea8fbcae580f28b3cc52120800e1a7e34b95c9f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92596 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
3dbc2a7b3cd533fb799cd61b319978ff290d6915 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92595 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
4424817a0d8b6c547c920ec9e6b75ae6c897f17a |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92595 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
2ae85ade82c5023e2769fcf2ade5678f55b55f81 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92594 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
e1b2129471e994cfb7d34cc5134eb99dd1ae39f2 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92594 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
e50d4d1dd61c1c58efc90ccfa5450a44172bf536 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92593 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c19a9cdfac813360bcedd374df6fcd0a3dc12252 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92593 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
e1741cd24fedad7edf3c7be2a3b32f90d01a629b |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92592 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
32edbd74541a94a67716fe1d529bf87b9a7960fb |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92592 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
58eb862cfd887fa92b4fe7a98aa31ada337b544c |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92591 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
65de504ad226a0b2adc6c675115863a8e583ac1f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92591 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
14e0f7d22300cee665edf887c3a5569bf5d788c3 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92590 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
0ee5218cb2abafb2db8d3667e7119b47626cdd94 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92590 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
ba718ae48be33977c240a9bdd599d2d38b5c1462 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92589 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
87b0efc86dcc1dac30fcd6b4d1c51110f707a28c |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92589 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
5274c8cb6eb6d043b2ba084f38292319d0d34fd3 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92588 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
4175f58d6d4d7666d1dba4467fed4704aa0342cd |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92588 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f3a0604edbda319a8a23387b78d78ec0ffb7644f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92587 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
0080b1accc8de37247835476dba40b72dcb69229 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92587 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
997816499cbf966a1b574b1d34c2c13de4b91b12 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92586 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
309315420669ff5bde9b0ae1213171a88216fad7 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92586 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
13d6387c58215ea4f507be3d0c328ddc605bd1b1 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92585 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
4b134d1661214427834bf89ef1183f458919837e |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92585 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
8e421a9bc01393c4801ccd9db199a2139e87db8d |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92584 91177308-0d34-0410-b5e6-96231b3b80d8
hrinkWrapping.cpp
|
0d5c06e0b66d31f1488b4f0791d9a135d22cb422 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92584 91177308-0d34-0410-b5e6-96231b3b80d8
hrinkWrapping.cpp
|
5544fcf0fd5339c29314a09bfd2e8100983d3528 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92583 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
37277762c2a066a4e6e2552c5829ff2948386f4f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92583 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
2eda50a5ca9653234c45971187959c4337d6f6b9 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92582 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
00dec1bbf9ad44af7b5b7ae669cae78b79a09c56 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92582 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
fffdb84d03d0e1912cefa513d2e6295a70229916 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
84fa8229bbd3813505b7e8d6555fb2e522104e30 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
2b40464eef49685fbe83d4267656c246c466a693 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
33db62ce23790b5db57dad66e77a1a06cccfb06e |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
1332f4c84eeb009f35d5987342593f9ac9cabe2d |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
bb22223d5b4eb27d238bcc1b67b033975c43db7b |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
377b0d9f96ff88cfbf07b81aa65dce1bc4ae16c8 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f10902981c775828bfdd807c88704c965c47ede1 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7adcad670c1e89e9167488cba092bb7b794c0086 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
4b69d9909dfdef1ea54a56e6f0e0640031635a9d |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5dc5458c3b0bccd7e914a02f56c5310842d3f270 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e492ae13edd83b120d665c0503cf4de2925b5e56 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
88a0d487622b323fe6a332235406c1c225d68171 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92575 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
993aacedfdc3f156f667b4efa280ee79eab3b898 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92575 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d4d6f27ce5b0d80c6506f8ea8b903dd3b7ed3c3d |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
ad61b129ee283f6399ecf6fa5f64f82760e9a56a |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
07e35180efbd5448db29837423bcd02954e9761a |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
f0dee89b0224199c8a8799b26867767f20997363 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
b67509c0d508f21ab06fe141c30dd76861f3423f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92572 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
9abe0bbd9089c98ae4ad7bae589ea0ebb51bb3f5 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92572 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
2e75f53a6068120c5868b2012cdb4933024bae5d |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
ec2d7fe92473bab113747833d22e73ce35d8e16b |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
953082637ec85149bcbaa6db75ab98936a4e34c2 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
7419b1806a1c3abdc23b62de76fae737b763fb33 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
d44636d9ca283f76b764d33f9f926e35051fd4c0 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
55d146e0f9ed00d4e3934bcc00c4179a88f83353 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
27ac1087e59d89f46961c015d450b1df92bd654c |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
d765353da89988e949fd4c021d8860f36ab7c392 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
edaa30ae2b795b1e73fc9b0eff464d0d1103d195 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92567 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
7530efb49e5b26912933dd1dc62ff0d06a06bf9f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92567 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
70df7dadecc84c32b3bc34f09d09da1840b3de12 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92566 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
f78829794284afc7c243d9ad0591ae3a87172340 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92566 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
fdf73e346f7bd14afbe0172d30fd5d90fb6bce2e |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92565 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
eb00b18338e9fa509357e04c514c45896e51651c |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92565 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5f082a7df38fa6d7b53c0d7baeca8d74f097d659 |
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Change SelectCode's argument from SDValue to SDNode *, to make it more clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eeb3a00b84b7767d236ec8cf0619b9217fc247b9 |
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Change SelectCode's argument from SDValue to SDNode *, to make it more clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
47883d2163e347600365f47ca1cac9748cb728fa |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92563 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
4c3235595fe7f43bb4e43eefdee308fb961b9300 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92563 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
c688eb17b601d4820bd645ce7d189b3e20af0fab |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92548 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
6bb93ef3bed24aaedfc281fe12b575be53ca5480 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92548 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
b0e37bd5e8a242115a46b305dd399f9f6bedd27d |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92547 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
65a41eb59e37b9e2b8d3ecff56c8fc44ddc9de58 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92547 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
8f4f491593cc2b4da4afaa006bd0ffcae94b2d1f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92545 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3b325334102144ec39910563eabebde434504564 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92545 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
869dddf2690a41b067c854054f3694bce6d96844 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92544 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
dc55481841d5ac060c279a61c944f192ad9bb23e |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92544 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
06f43c08a76efbbc20d92b61d377fe18e59f378c |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92542 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
dbdbbd9a67af4ba3dd9bc808ac42a0a5ddf0f0c3 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92542 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
781a082d55f86073cd8200e85308494cfcb3b16f |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92539 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
7d30d62c9e1b87b63ffb7b1a50de84c2ae769576 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92539 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
33e8afe365ffe59a424e9a4da2d7637444dfed39 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92535 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
6d206f8fc90e0e4222fd4f9e93f0ce40197560f3 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92535 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
eccea760a9563d79a5d6924bc6e5c26340507bbc |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Fix debug_inlined section entries for routines whose names are changed through __asm() extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ba1d8264e65b37146dbc26c71c748b5c7020ae88 |
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Fix debug_inlined section entries for routines whose names are changed through __asm() extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
28806ab10cbc1f96a0dfb63b239f579a7eba496d |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92532 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
1d44df6afe6f9e722a8c7be4a0fbcd9163d9a379 |
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92532 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
48bc1dd95b872cf9a0757700aef983ee690aca48 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92529 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8a34229dcf484739119857988772572ef0cad9f2 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92529 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
23c2392eed45ae0e90168d24abf2fd109ad94b34 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92528 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
5242154b558f0783830938f18153e0a7964fb4fa |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92528 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
98ab2e6a3e648b1810993be180ba737517728a32 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92524 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2800eb1d30aea4177d6ea42adddd70e01ede8699 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92524 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ad7787098259eeb59cf9efbf796df7cd00c69b79 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92520 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
083b7ffb4dafaec9431e9b620a36b72966efdc25 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92520 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
621d098c544d215404d039227d951c113292739b |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92518 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
cc54c7caa4edae31b3091fa33342e74699789362 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92518 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
dfa2866fc88756178b5c2144c9e9890761b48c51 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92516 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
|
aba28d1273f7332a6a8c335e99dd5a68af748d4f |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92516 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
|
5fb66146d72f02c4dc2b597824d92846127740a6 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92515 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
73242dd692c0226073c367c2fe573287a3d63fc1 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92515 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
5a7d25d7dab282dfc0a9ac2d7c8eda3a7e5deab2 |
04-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Use a pointer type rather than MVT::Other for the ExternalSymbol node used in an inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92512 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f2d7fb3eac30e2c018bad0c8db7f89130da9c89f |
04-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Use a pointer type rather than MVT::Other for the ExternalSymbol node used in an inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92512 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
98e77307cc1ea2ef5f0469ea81059eb9170d463b |
04-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Fix begin and end markers for nested scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
344130e8ab2e706f1392aff27bd8d679d979b65b |
04-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Fix begin and end markers for nested scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
e328bfe75393402d9bfb9fcefeb1122c6b474da8 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92502 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
6e120a1c7049bb424b37626db61b71bedc6e62a0 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92502 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
b585fdbff6dbc3a58b4a83cff198d271705cbae0 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92498 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
5957c9b8aa1d0585e55ce485da363031da583966 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92498 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
92268e54a1b47aa82966073960cbf5a1d7046330 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92496 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
26045e25bf06a5b6476bd6f2d52a5d49da3c40d2 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92496 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
e446eec49091d277b2fe9c4b74f78b5159f59248 |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92490 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
89d6a2426256b56780c7934ddad24e6ecc4f690a |
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92490 91177308-0d34-0410-b5e6-96231b3b80d8
riticalAntiDepBreaker.cpp
|
991876a06d263c5fd22c99648c77a810bc0dea06 |
03-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR5930, allowing the asmprinter to emit difference between two labels as a truncate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92455 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d0592d3be68e60a77c0bb98ad4861648e16e467c |
03-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR5930, allowing the asmprinter to emit difference between two labels as a truncate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92455 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
257964986869fc5dc01c473f96f590f070f3f1e6 |
02-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Teach codegen to handle: (X != null) | (Y != null) --> (X|Y) != 0 (X == null) & (Y == null) --> (X|Y) == 0 so that instcombine can stop doing this for pointers. This is part of PR3351, which is a case where instcombine doing this for pointers (inserting ptrtoint) is pessimizing code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
133ce871df8bc161928970216ff9b195b1fa3a14 |
02-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Teach codegen to handle: (X != null) | (Y != null) --> (X|Y) != 0 (X == null) & (Y == null) --> (X|Y) == 0 so that instcombine can stop doing this for pointers. This is part of PR3351, which is a case where instcombine doing this for pointers (inserting ptrtoint) is pessimizing code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c57dcd5e708420c240dbd5423443c7fb8a59ccbd |
02-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
53334ca5acc43500bb2744ed1a44e16442e92d0d |
02-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.h
|
2cd8f1641e082a41c508c0f3a0fb8fb29d452728 |
01-Jan-2010 |
Mikhail Glushenkov <foldr@codedgers.com> |
Fix a warning on gcc 4.4. SelectionDAGBuilder.cpp:4294: warning: suggest explicit braces to avoid ambiguous ‘else’ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
bfdfea86a1489b7249e52f67fe91a0bf028148a9 |
01-Jan-2010 |
Mikhail Glushenkov <foldr@codedgers.com> |
Fix a warning on gcc 4.4. SelectionDAGBuilder.cpp:4294: warning: suggest explicit braces to avoid ambiguous ‘else’ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
77a6244975d208df2a06bb37232aa7d7c0f8e557 |
01-Jan-2010 |
Mikhail Glushenkov <foldr@codedgers.com> |
Trailing whitespace, 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b3c0199f6aff85f918bac8748b4b9178f029a7bf |
01-Jan-2010 |
Mikhail Glushenkov <foldr@codedgers.com> |
Trailing whitespace, 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
53aa27c8f9e088dd1f4eaab6188dedc0791f6622 |
01-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Teach codegen to lower llvm.powi to an efficient (but not optimal) multiply sequence when the power is a constant integer. Before, our codegen for std::pow(.., int) always turned into a libcall, which was really inefficient. This should also make many gfortran programs happier I'd imagine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
f031e8ad011e9ad95d7c965936da07e3a9c42add |
01-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Teach codegen to lower llvm.powi to an efficient (but not optimal) multiply sequence when the power is a constant integer. Before, our codegen for std::pow(.., int) always turned into a libcall, which was really inefficient. This should also make many gfortran programs happier I'd imagine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
6d8d8157e6b3996d6c6ebe50909c8bfaabf40a31 |
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of unneeded functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
bf0ca2b477e761e2c81f6c36d6c7bec055933b15 |
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of unneeded functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
|
a0d451f0c3b152920c0bc50ab6c5fb6b9eef89b4 |
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Final step in the metadata API restructuring: move the getMDKindID/getMDKindNames methods to LLVMContext (and add convenience methods to Module), eliminating MetadataContext. Move the state that it maintains out to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
081134741b40b342fb2f85722c9cea5d412489a8 |
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Final step in the metadata API restructuring: move the getMDKindID/getMDKindNames methods to LLVMContext (and add convenience methods to Module), eliminating MetadataContext. Move the state that it maintains out to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dcf0657604692cafafdd6ff729087344271c2ace |
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
This is a major cleanup of the instruction metadata interfaces that I asked Devang to do back on Sep 27. Instead of going through the MetadataContext class with methods like getMD() and getMDs(), just ask the instruction directly for its metadata with getMetadata() and getAllMetadata(). This includes a variety of other fixes and improvements: previously all Value*'s were bloated because the HasMetadata bit was thrown into value, adding a 9th bit to a byte. Now this is properly sunk down to the Instruction class (the only place where it makes sense) and it will be folded away somewhere soon. This also fixes some confusion in getMDs and its clients about whether the returned list is indexed by the MDID or densely packed. This is now returned sorted and densely packed and the comments make this clear. This introduces a number of fixme's which I'll follow up on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
3990b121cf4a0b280ed3e54cf13870cbf4259e78 |
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
This is a major cleanup of the instruction metadata interfaces that I asked Devang to do back on Sep 27. Instead of going through the MetadataContext class with methods like getMD() and getMDs(), just ask the instruction directly for its metadata with getMetadata() and getAllMetadata(). This includes a variety of other fixes and improvements: previously all Value*'s were bloated because the HasMetadata bit was thrown into value, adding a 9th bit to a byte. Now this is properly sunk down to the Instruction class (the only place where it makes sense) and it will be folded away somewhere soon. This also fixes some confusion in getMDs and its clients about whether the returned list is indexed by the MDID or densely packed. This is now returned sorted and densely packed and the comments make this clear. This introduces a number of fixme's which I'll follow up on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
9741b1d2ca9e6fca4cb6ffa33022eb35c446cd8e |
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
rename getMDKind -> getMDKindID, make it autoinsert if an MD Kind doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
0eb419800ae51d6e0e00a656ede0627483755361 |
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
rename getMDKind -> getMDKindID, make it autoinsert if an MD Kind doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
03fe75db6e07224d304aacdd621371c2a41ca701 |
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
snip one more #include from Metadata.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92214 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5e9cd434234a36089daeee915f1dc02b96947fba |
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
snip one more #include from Metadata.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92214 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
13bf2e51b9a66af667ad20f4286b2dbaea3d46cc |
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
move these out of their own timer groups into the 'uncategorized' groups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92206 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
0b86a6f049e4d839bd770241571628d10c980887 |
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
move these out of their own timer groups into the 'uncategorized' groups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92206 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
1061961da58b9e10f2d5677d620a50c64fe2cf19 |
28-Dec-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to specify the return type of libcalls that are generated for floating point comparisons, rather than hard-coding them as i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/TargetLowering.cpp
|
8f17a36d3107bdc4ffed53ce782c1724ef6460e7 |
28-Dec-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to specify the return type of libcalls that are generated for floating point comparisons, rather than hard-coding them as i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/TargetLowering.cpp
|
5204deeef9752b2b7b6b127de709c810341c3f62 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9882007003b12466df717cdf66824120ede405be |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4feaae46274e91f5614de5901216a1129eb0f8fb |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
551aa9979651885ec315cf5b6d32d53dfcdc1720 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
d949baceb4758e5d3dbb753fe3f0b8fda72c4e57 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d831181f89e913bb17233b5c753e1683e56f5e05 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3f40b3d2d9bd57e791c2a762734e9f171e5a93f1 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92187 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
a98add69bd53fcaf896e5632e5b4557d09c748df |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92187 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
53ba77c4965127df0cd5de618be703588f22c988 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
86888887872737f614a66e3e25b896248c29c6c2 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
edae1686b11006fc57eafccac7a2e30e7ed26635 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92179 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
3983fbc112748c39790a9d212bf386d6842dc019 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92179 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
18bdaa57e25cf10bc088cb82c7cb4f7412346086 |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92178 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
b17f15b25f101b96981c1e03f1a9295fa764606b |
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92178 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
17c68ea17602f5dc37c8d0b6b0ace367a539f9a8 |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92159 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
164558e59c2a321bf670e31a7bdde0d38d79bb67 |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92159 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ceebbcd5d8d0528abe14965dc9d4a9cb14f4b49c |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store from copy-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92158 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ad2cf9dd63d15a8bcd7d34a379a1e983fd8c66f7 |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store from copy-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92158 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a05064ed33e5bb5e4e1d098dad7dc6bc915bbe1a |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92157 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
ebc0c8cc6dc5716c554775fe0514fd3e4a4d3db9 |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92157 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
64067e8a4daa7ced79978edfeb6c8ed38329efe9 |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1a6726f79569bccd4eb0112d9448651ba62b1635 |
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7f42f87c5eca549b951c85212c511df9b91d9e15 |
24-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
handle equality memcmp of 8 bytes on x86-64 with two unaligned loads and a compare. On other targets we end up with a call to memcmp because we don't want 16 individual byte loads. We should be able to use movups as well, but we're failing to select the generated icmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
04b091a7822c60512285ee66b058f98399bf1cf9 |
24-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
handle equality memcmp of 8 bytes on x86-64 with two unaligned loads and a compare. On other targets we end up with a call to memcmp because we don't want 16 individual byte loads. We should be able to use movups as well, but we're failing to select the generated icmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
cf9b1dccf5126177dd1aead00daf2de215a1ac95 |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92099 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
7ed6dd61ac904f6a50318f557ac0f389a4dbf6a9 |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92099 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
|
b600ec7a01408cc8fd4341d25f75ffed5a9686c2 |
24-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
move an optimization for memcmp out of simplifylibcalls and into SDISel. This optimization was causing simplifylibcalls to introduce type-unsafe nastiness. This is the first step, I'll be expanding the memcmp optimizations shortly, covering things that we really really wouldn't want simplifylibcalls to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
8047d9a6be9c6261c4d3f286786be856d619ed0f |
24-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
move an optimization for memcmp out of simplifylibcalls and into SDISel. This optimization was causing simplifylibcalls to introduce type-unsafe nastiness. This is the first step, I'll be expanding the memcmp optimizations shortly, covering things that we really really wouldn't want simplifylibcalls to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
d1071c265f21f31df9c1222d55689bf33699bded |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92097 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
465e2b950d61c870fb3120c80191973e8282a3ef |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92097 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
dbc061394e0838c243fef2d5e37f9b4d70a48cc5 |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f83adbc4c112439d54c7f91eb9524443e729a43e |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2c45c1e371c8e69a8e1f626eee64326701651e28 |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92094 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
0c8b6e6bc540e793c4401580d06f4e5a478d3b6f |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92094 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
|
c78cb49837a21905c652d4701fe48f1e56dbcda8 |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92093 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
5393b2523419af71971be2286f34d3c8e2501898 |
24-Dec-2009 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92093 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
b28ebcf8a5701004b772a6be27ab098e29acab95 |
23-Dec-2009 |
Nuno Lopes <nunoplopes@sapo.pt> |
move a few more symbols to .rodata git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ec9d8b00470b2ddabef4e1b58b4f60d69995d8ce |
23-Dec-2009 |
Nuno Lopes <nunoplopes@sapo.pt> |
move a few more symbols to .rodata git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
abdde47c8044f868bd415b69c54ea722830fcddb |
23-Dec-2009 |
Dale Johannesen <dalej@apple.com> |
Use more sensible type for flags in asms. PR 5570. Patch by Sylve`re Teissier (sorry, ASCII only). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
9949933d6eb406bc74f7df7a0180a11c050a236f |
23-Dec-2009 |
Dale Johannesen <dalej@apple.com> |
Use more sensible type for flags in asms. PR 5570. Patch by Sylve`re Teissier (sorry, ASCII only). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGISel.cpp
|
94ff09ba5fca224ef3467e96eb30b91ddc100f7e |
23-Dec-2009 |
Eric Christopher <echristo@apple.com> |
Update objectsize intrinsic and associated dependencies. Fix lowering code and update testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91979 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d060b2576ab10d463e339186bcc61860500cbce0 |
23-Dec-2009 |
Eric Christopher <echristo@apple.com> |
Update objectsize intrinsic and associated dependencies. Fix lowering code and update testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91979 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
73864c49f649d78d9d59fba71e99181cd0aa1687 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove superfluous SDNode ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
0d58013c3ff43f077dc5662e6715bb4dd2cb2bc3 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove superfluous SDNode ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
eae0bc06342d18eb54766946f83d4404398bdfd5 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove node ordering from inline asm nodes. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fc67bbe7bc2e0aa09832c232a5fbb1be796deb4c |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove node ordering from inline asm nodes. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8a45dc832b7b6af0c1985781b400e1207aa6ed32 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove node ordering from VA nodes. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c1d3c944ab4410b6dc0e3718cef08d166665b68f |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove node ordering from VA nodes. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
fed365211d2a91d829f2cf3dba77b510a06adf95 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r91949 r91942 and r91936. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91953 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
775db97a50fb56fece6fbd68e1a6f86418e8063a |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r91949 r91942 and r91936. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91953 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5d15bd195e84093744f6e2430251b1e2ff1a3766 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Finish up node ordering in ExpandNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
122d06de7482dcb39e7dbcbfe302e39cc55627e5 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Finish up node ordering in ExpandNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
03c4770ae7f37bc09cbb75f77a00eb3056f55337 |
23-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add coalescer asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91945 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4b6677f1c6331046561a4c26ef1df62136f89c12 |
23-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add coalescer asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91945 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9c32618579c2579ca4a7f483cceef43a53ff1cbf |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Assign ordering to nodes created in ExpandNode. Only roughly 1/2 of the function is finished. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91942 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3dbcb55b40e3916d538fb6e21ba1662dc82c8fa6 |
23-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Assign ordering to nodes created in ExpandNode. Only roughly 1/2 of the function is finished. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91942 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d210c4a75a6da94bfb5154d87ed4e3a97755636d |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAP was using "Tmp1" in the first getNode call instead of Node->getOperand(0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91936 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
167bea71a4bd19329a218f5e1bd8facfd90a0cf9 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAP was using "Tmp1" in the first getNode call instead of Node->getOperand(0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91936 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
d0b4a1bd4c235aca68a4b3e076f05adb5e18daf0 |
22-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove minimal CFG sanity checks from verifier. These checks would often trigger on unreachable statements inserted by bugpoint, leading it astray. It would be nice if we could distinguish unreachable blocks from errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91923 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
18ea3a1551214f1ff3f123f2d67443d5f19baea5 |
22-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove minimal CFG sanity checks from verifier. These checks would often trigger on unreachable statements inserted by bugpoint, leading it astray. It would be nice if we could distinguish unreachable blocks from errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91923 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ac6f607b0b7369833e01eb0dc77ba4256efa4dad |
22-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow explicit %reg0 operands beyond what the .td file describes. ARM uses these to indicate predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91922 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5711564b091c39188775aee2768ad36a9b9a99b2 |
22-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow explicit %reg0 operands beyond what the .td file describes. ARM uses these to indicate predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91922 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
c1904271abb2fa89e453a1933623f1faaa5bd67f |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Allow 0 as an order number. Don't assign an order to formal arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeOrdering.h
electionDAG/SelectionDAGBuilder.cpp
|
3ea58b6d7a6357018f4f78396b457f86198a7afa |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Allow 0 as an order number. Don't assign an order to formal arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeOrdering.h
electionDAG/SelectionDAGBuilder.cpp
|
9ba2a903c7fd3e01bf7ec1aa6e2c45c12908982e |
22-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Report an error for bad inline assembly, where the value passed for an "indirect" operand is not a pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91913 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e261b0c90b25b7ce7a68953e7adecf370c87256e |
22-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Report an error for bad inline assembly, where the value passed for an "indirect" operand is not a pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91913 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
aa18176a76f0e31db7af3973c7ca6072f1c15318 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add more plumbing. This time in the LowerArguments and "get" functions which return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
3ea3c2461932d96d3defa0a9aa93ffaf631bb19d |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add more plumbing. This time in the LowerArguments and "get" functions which return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
6168feb2057980c8dbf709b2029c34c3a3389972 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add SDNode ordering to inlined asm and VA functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
651ad13d3c0a232de84d8efe02b11f272b3dee3e |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add SDNode ordering to inlined asm and VA functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
8ee5e5211b17cf9268f7ba0a182afebfdda05b2f |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Adding more assignment of ordering to SDNodes. This time in the "call" and generic copy functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
ec72e32fb032cdf367f47ed3a953c3aa2fa93197 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Adding more assignment of ordering to SDNodes. This time in the "call" and generic copy functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e9869d33ebd51b368e91a633f31a280c07a5fa3c |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add ordering of SDNodes to LowerCallTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e80ae836f24604dc309d0fc7a2842d8704f3e5d1 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add ordering of SDNodes to LowerCallTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
18eda83684adfce0295bf34d4673aef48bb1fcbf |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Now add ordering to SDNodes created by the massive intrinsic lowering function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
d0283fa69f81a48ec98643ae155706bd201b897e |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Now add ordering to SDNodes created by the massive intrinsic lowering function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
1b811d556804786c3abfe51bbc93fefd1a265e0a |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
To make things interesting, I added MORE code to set the ordering of SDNodes. This time in the load/store and limited-precision code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
856ff41079560697605058ea11d709047a2b00de |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
To make things interesting, I added MORE code to set the ordering of SDNodes. This time in the load/store and limited-precision code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
c560a2c7243d444b50609d862a0f0c6aca22a923 |
22-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint. This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91859 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
piller.cpp
|
74ab5eeffbd70f2387338e3ee8195be9f73e6dd8 |
22-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint. This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91859 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
lotIndexes.cpp
piller.cpp
|
1a56f951ebaf80bdd9ff5a71fbd551d254135be5 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add more plumbing to assign ordering to SDNodes. Have the "getValue" method assign the ordering when called. Combine some of the ordering assignments to keep things simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91857 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
87710f04e551655c0c98fb7c0bfd9ec58224a804 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add more plumbing to assign ordering to SDNodes. Have the "getValue" method assign the ordering when called. Combine some of the ordering assignments to keep things simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91857 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
bb3929eb9298e1a224601d907406a679406ae0b2 |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
More ordering plumbing. This time for GEP. I need to remember to assign orderings to values returned by getValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
e1a9042041b97d223a65179fb26eb03a4fbe723b |
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
More ordering plumbing. This time for GEP. I need to remember to assign orderings to values returned by getValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
71dac16402a187d9e3dbb52e2ae1fe5cbf559723 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Another incremental check-in for assigning ordering to SDNodes. This time for shuffle and insert vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b85b6e888225acac6fd6cf4ef005657fe4ee7096 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Another incremental check-in for assigning ordering to SDNodes. This time for shuffle and insert vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
470c75ee68c407f2840b485413d3c380ca9e3a67 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Assign ordering to more instructions. Incremental check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91846 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
49fcff8a5ded8a0101891ce2ad10cfae54b42c95 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Assign ordering to more instructions. Incremental check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91846 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
db23bbba3bc9eb25d9470c03382478701e38bdd6 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add a bit more plumbing assigning an order to SDNodes. - Modify the "dump" method to emit the order of an SDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
0777e927214c61c5d681e5b7dd5d00665c81133a |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add a bit more plumbing assigning an order to SDNodes. - Modify the "dump" method to emit the order of an SDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
a9ac9ed4db099399deb500d7c4a79fc1554f9c28 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
First wave of plumbing for assigning an ordering to SDNodes. This takes care of a lot of the branching instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
3b7a41ce9053b75b7726c0bd56d698e307495de9 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
First wave of plumbing for assigning an ordering to SDNodes. This takes care of a lot of the branching instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
cb2504ff73c3e9e2aaa1008ba3b83a31c51d819d |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Place SDNodeOrdering.h in the directory it's used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeOrdering.h
electionDAG/SelectionDAG.cpp
|
e36025ec18a3fcadd121ded6792d82c66498c614 |
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Place SDNodeOrdering.h in the directory it's used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SDNodeOrdering.h
electionDAG/SelectionDAG.cpp
|
7669c97ba622ae8752f620bc1b47e385cb264b7a |
21-Dec-2009 |
Eric Christopher <echristo@apple.com> |
Fix setting and default setting of code model for jit. Do this by allowing backends to override routines that will default the JIT and Static code generation to an appropriate code model for the architecture. Should fix PR 5773. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91824 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f4f43cb5011611d44219ffb1caa988f5adf305bf |
21-Dec-2009 |
Eric Christopher <echristo@apple.com> |
Fix setting and default setting of code model for jit. Do this by allowing backends to override routines that will default the JIT and Static code generation to an appropriate code model for the architecture. Should fix PR 5773. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91824 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8cb4138c0eca1101911d01679a35a9013a73fd78 |
19-Dec-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Fix a bunch of little errors that Clang complains about when its being pedantic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91764 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LF.h
BQP/GraphBase.h
BQP/HeuristicSolver.h
egAllocLinearScan.cpp
impleRegisterCoalescing.h
|
cabdd7425d30f7eb659ecb0cc5efbc4052dd78a8 |
19-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix a bunch of little errors that Clang complains about when its being pedantic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91764 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LF.h
BQP/GraphBase.h
BQP/HeuristicSolver.h
egAllocLinearScan.cpp
impleRegisterCoalescing.h
|
957d2c3e976da9f11eb43bf54f852012227d30d3 |
19-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use 4-arg getVTList) variant instead of generic one, when possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cc62c3c9282d927c6af1a0f4b5d73dbac53ea977 |
19-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use 4-arg getVTList) variant instead of generic one, when possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
339b153899f19a616db8b73b6813e82bfd917f44 |
19-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Changes from review: - Move DisableScheduling flag into TargetOption.h - Move SDNodeOrdering into its own header file. Give it a minimal interface that doesn't conflate construction with storage. - Move assigning the ordering into the SelectionDAGBuilder. This isn't used yet, so there should be no functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
b4e6a5df5dada0cd919cc6e2717eb3118db9cc45 |
19-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Changes from review: - Move DisableScheduling flag into TargetOption.h - Move SDNodeOrdering into its own header file. Give it a minimal interface that doesn't conflate construction with storage. - Move assigning the ordering into the SelectionDAGBuilder. This isn't used yet, so there should be no functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
|
675aba0501045ffd2a6dc21168892f338fb787ea |
18-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Increase opportunities to optimize (brcond (srl (and c1), c2)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9ab2b98ba586b366ad49ea141d83b9821f91d8f3 |
18-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Increase opportunities to optimize (brcond (srl (and c1), c2)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e8df7dd15480646d4fdf56105d23d17eaffaabb0 |
18-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Add Loop contains utility methods for testing whether a loop contains another loop, or an instruction. The loop form is substantially more efficient on large loops than the typical code it replaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91654 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
92329c7fbe572892c17aa2d2542a10e3ea16132f |
18-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Add Loop contains utility methods for testing whether a loop contains another loop, or an instruction. The loop form is substantially more efficient on large loops than the typical code it replaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91654 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
4a463881df0d3cb915f252f12958eeda9256445d |
18-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Handle ARM inline asm "w" constraints with 64-bit ("d") registers. The change in SelectionDAGBuilder is needed to allow using bitcasts to convert between f64 (the default type for ARM "d" registers) and 64-bit Neon vector types. Radar 7457110. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
5afffaed5c0095930020947322633f0d0b02ffed |
18-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Handle ARM inline asm "w" constraints with 64-bit ("d") registers. The change in SelectionDAGBuilder is needed to allow using bitcasts to convert between f64 (the default type for ARM "d" registers) and 64-bit Neon vector types. Radar 7457110. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
b73f8ebe8e9869f265fb0cea16d91b837174987f |
18-Dec-2009 |
John McCall <rjmccall@apple.com> |
Sundry dependent-name fixes flagged by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91636 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
|
a6923131032be5e47b5e1155e69b23aa4c5e65ac |
18-Dec-2009 |
John McCall <rjmccall@apple.com> |
Sundry dependent-name fixes flagged by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91636 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
|
8eca275c0f09f24fc6a0305fcec4b15afdc054d7 |
18-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91635 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
6532ff889cdd671a715ea27cd7fe0e71e4418a91 |
18-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91635 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
901d4f36908bed8f2f461d2d2ed75696ed50ceee |
18-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Turn off critical edge splitting for landing pads. The introduction of a non-landing pad basic block as the successor to a block that ends in an unconditional jump will cause block folding to remove the added block as a successor. Thus eventually removing it AND the landing pad entirely. Critical edge splitting is an optimization, so we can safely turn it off when dealing with landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91634 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
trongPHIElimination.cpp
|
3de8249078354d25b37b40e0f10b4f88226d3dd4 |
18-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Turn off critical edge splitting for landing pads. The introduction of a non-landing pad basic block as the successor to a block that ends in an unconditional jump will cause block folding to remove the added block as a successor. Thus eventually removing it AND the landing pad entirely. Critical edge splitting is an optimization, so we can safely turn it off when dealing with landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91634 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
trongPHIElimination.cpp
|
177caff1efcac9750f5ac50f77e9c459cb825621 |
17-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert 91337. It's causing testcase failures. $ svn merge -c -91337 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91337 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91618 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
aeb79aea8f4761f1c46731ac6bd58cbccdcfa097 |
17-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert 91337. It's causing testcase failures. $ svn merge -c -91337 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91337 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91618 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
4e92f37dccefd7c215fb38cd830d0b0592852f61 |
17-Dec-2009 |
Ken Dyck <ken.dyck@onsemi.com> |
Introduce EVT::getHalfSizedIntegerVT() for use in ExpandUnalignedStore() in LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple type by one, getHalfSizedIntegerVT() searches for the smallest simple integer type that is at least half the size of the type it is called on. This approach has the advantage that it will continue working if a new value type (such as i24) is added to MVT. Also, in preparation for new value types, remove the assertions that non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and truncstore operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bceddbdc919fc2ca7bc8c3911586ba93367686f0 |
17-Dec-2009 |
Ken Dyck <ken.dyck@onsemi.com> |
Introduce EVT::getHalfSizedIntegerVT() for use in ExpandUnalignedStore() in LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple type by one, getHalfSizedIntegerVT() searches for the smallest simple integer type that is at least half the size of the type it is called on. This approach has the advantage that it will continue working if a new value type (such as i24) is added to MVT. Also, in preparation for new value types, remove the assertions that non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and truncstore operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dadc294ca345e4b7555d13c13cebe0f8ef1accd7 |
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91604 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2013e2c6bdc2ea5d9f9ddc5f3388c9349fb7e467 |
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91604 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
38e52386fcf379c1a97c557bf81c345fd1233a04 |
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently introduced a non-deterministic behavior in the optimizer somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91598 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
04149f7ffd033773adfe85e4acf3f560e29bd47d |
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently introduced a non-deterministic behavior in the optimizer somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91598 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
3c06eac1ead1ee19d5da7f6244fc1eba2ca17240 |
17-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment grammaro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
266d945fff195c65e46b1226eb7ee95a632b5e58 |
17-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment grammaro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7d8baee6a05ca3383f39a5745c3c93aeb09aa749 |
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert this dag combine change: Fold (zext (and x, cst)) -> (and (zext x), cst) DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4c2b001f1359d10807c89ff0480e8799a1adbe96 |
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert this dag combine change: Fold (zext (and x, cst)) -> (and (zext x), cst) DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b3fc6a97363135cc1bf0f825a2424b1faf53eb26 |
16-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Reapply r91392, it was only unmasking the bug, and since TOT is still broken having it reverted does no good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
819309efec6f11ba752bd7cbfe186495745f020b |
16-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Reapply r91392, it was only unmasking the bug, and since TOT is still broken having it reverted does no good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
ef786f2f846f89ff2675dd29e74c517d24db0d24 |
16-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Add @earlyclobber TableGen constraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91554 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
06801722a43c697eff0acee905de6b50257ce19b |
16-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Add @earlyclobber TableGen constraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91554 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
87450c87ff52d57481df9e6263f9a1b68cc8005a |
16-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reuse lowered phi nodes. Tail duplication produces lots of identical phi nodes in different basic blocks. Teach PHIElimination to reuse the join registers when lowering a phi node that is identical to an already lowered node. This saves virtual registers, and more importantly it avoids creating copies the the coalescer doesn't know how to eliminate. Teach LiveIntervalAnalysis about the phi joins with multiple uses. This patch significantly reduces code size produced by -pre-regalloc-taildup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91549 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
HIElimination.h
|
74215fc29fa748e006c0309671555d5873bac56a |
16-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reuse lowered phi nodes. Tail duplication produces lots of identical phi nodes in different basic blocks. Teach PHIElimination to reuse the join registers when lowering a phi node that is identical to an already lowered node. This saves virtual registers, and more importantly it avoids creating copies the the coalescer doesn't know how to eliminate. Teach LiveIntervalAnalysis about the phi joins with multiple uses. This patch significantly reduces code size produced by -pre-regalloc-taildup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91549 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
HIElimination.h
|
e95e6c2b9690abed80c74de593f537d230318a98 |
16-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Initial work on disabling the scheduler. This is a work in progress, and this", this broke llvm-gcc bootstrap for release builds on x86_64-apple-darwin10. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
222518d0bb2786a14cf3adf6030c55213d5399f8 |
16-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Initial work on disabling the scheduler. This is a work in progress, and this", this broke llvm-gcc bootstrap for release builds on x86_64-apple-darwin10. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
5d25f9bbd3a3106239e6b957c233b598d36576fe |
16-Dec-2009 |
Dale Johannesen <dalej@apple.com> |
Do better with physical reg operands (typically, from inline asm) in local register allocator. If a reg-reg copy has a phys reg input and a virt reg output, and this is the last use of the phys reg, assign the phys reg to the virt reg. If a reg-reg copy has a phys reg output and we need to reload its spilled input, reload it directly into the phys reg than passing it through another reg. Following 76208, there is sometimes no dependency between the def of a phys reg and its use; this creates a window where that phys reg can be used for spilling (this is true in linear scan also). This is bad and needs to be fixed a better way, although 76208 works too well in practice to be reverted. However, there should normally be no spilling within inline asm blocks. The patch here goes a long way towards making this actually be true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91485 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
fc49bd244741fd7923768509759fbfb7198edbec |
16-Dec-2009 |
Dale Johannesen <dalej@apple.com> |
Do better with physical reg operands (typically, from inline asm) in local register allocator. If a reg-reg copy has a phys reg input and a virt reg output, and this is the last use of the phys reg, assign the phys reg to the virt reg. If a reg-reg copy has a phys reg output and we need to reload its spilled input, reload it directly into the phys reg than passing it through another reg. Following 76208, there is sometimes no dependency between the def of a phys reg and its use; this creates a window where that phys reg can be used for spilling (this is true in linear scan also). This is bad and needs to be fixed a better way, although 76208 works too well in practice to be reverted. However, there should normally be no spilling within inline asm blocks. The patch here goes a long way towards making this actually be true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91485 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
86dd20e4ab83c6d96b5a526bc95fc0ee6170e4ec |
16-Dec-2009 |
John McCall <rjmccall@apple.com> |
Explicit template instantiations must happen in the template's immediately enclosing namespace. Caught by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91480 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLoopInfo.cpp
|
f32616e0bd5995e5e8053d4fc2b0a1da22fa68f6 |
16-Dec-2009 |
John McCall <rjmccall@apple.com> |
Explicit template instantiations must happen in the template's immediately enclosing namespace. Caught by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91480 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLoopInfo.cpp
|
bf525e4cf50311df9aa8ed97d0eaf81a49fa6c3d |
16-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Helpful comment added. Some code cleanup. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91479 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
c70d3311513802e01d634d69e550f96a7a96d04a |
16-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Helpful comment added. Some code cleanup. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91479 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
7cb7f462c39ffc68a5fe873078c2bb545c44f086 |
16-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Initialize uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91477 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
fe586b3e3800b397256ca9ee6a2811fc6ce7dce9 |
16-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Initialize uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91477 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
9d8b6523d77b512dc276857e3e58e1b226856445 |
16-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Initialize uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91475 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
408e9d166a66c8891637975921de2980c1940c3f |
16-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Initialize uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91475 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8287d66aee7d877aaa80a3fb40cc90580e669493 |
15-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Add support to emit debug info for C++ namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6404e4e7958aa71ff210008b0e5d1cef8d138ff2 |
15-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Add support to emit debug info for C++ namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
169f3a233e90dcdd01e42829b396c823d016fe30 |
15-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Remove isPod() from DenseMapInfo, splitting it out to its own isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.h
|
4bbf4ee1491637c247e195e19e3e4a8ee5ad72fa |
15-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Remove isPod() from DenseMapInfo, splitting it out to its own isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.h
|
d629d80a80bfd6094563000bc82ed37b42acfffa |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make 91378 more conservative. 1. Only perform (zext (shl (zext x), y)) -> (shl (zext x), y) when y is a constant. This makes sure it remove at least one zest. 2. If the shift is a left shift, make sure the original shift cannot shift out bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9818c043d2ef1be70780de92bb42edd53d1da62a |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make 91378 more conservative. 1. Only perform (zext (shl (zext x), y)) -> (shl (zext x), y) when y is a constant. This makes sure it remove at least one zest. 2. If the shift is a left shift, make sure the original shift cannot shift out bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e8aa0b417ca5d0fc33b6079aa11b81cf86667956 |
15-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Initial work on disabling the scheduler. This is a work in progress, and this stuff isn't used just yet. We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2' flags. The hypothesis is that the people who use these flags know what they are doing, and have hand-optimized the C code to reduce latencies and other conflicts. The idea behind our scheme to turn off scheduling is to create a map "on the side" during DAG generation. It will order the nodes by how they appeared in the code. This map is then used during scheduling to get the ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91392 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
614407a9d21d10ee4f6c45295852c72ad86cb029 |
15-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Initial work on disabling the scheduler. This is a work in progress, and this stuff isn't used just yet. We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2' flags. The hypothesis is that the people who use these flags know what they are doing, and have hand-optimized the C code to reduce latencies and other conflicts. The idea behind our scheme to turn off scheduling is to create a map "on the side" during DAG generation. It will order the nodes by how they appeared in the code. This map is then used during scheduling to get the ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91392 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuilder.cpp
|
3f0f8885c7079d20930ca0336bb879adde51aaaf |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Tail duplication should zap a copy it inserted for SSA update if the copy is the only use of its source. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91390 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
3466f13f38b2f3e652cca82bd5da8527e72e195d |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Tail duplication should zap a copy it inserted for SSA update if the copy is the only use of its source. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91390 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
5b6187226b44f590ce7f614b128480b9c2d823ef |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fold (zext (and x, cst)) -> (and (zext x), cst). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8acb3100de9cfc02048b7ab23490134ed735b051 |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fold (zext (and x, cst)) -> (and (zext x), cst). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ff63ae679cf08e69db6770e7965e4f3d04637b9 |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Propagate zest through logical shift. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
99b653c36f0141f6b9515d688960ac8c2cb857ff |
15-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Propagate zest through logical shift. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
87426f8cd21507e13f0256a6727a0c27f60705c3 |
15-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert these. They may have been causing 483_xalancbmk to fail: $ svn merge -c -91161 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91161 into '.': U lib/CodeGen/BranchFolding.cpp U lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91113 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91113 into '.': G lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91101 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91101 into '.': U include/llvm/CodeGen/MachineBasicBlock.h G lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91092 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91092 into '.': G include/llvm/CodeGen/MachineBasicBlock.h G lib/CodeGen/MachineBasicBlock.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91376 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
43cf6c3939176e8d87719516f0b2e4c6c346f340 |
15-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert these. They may have been causing 483_xalancbmk to fail: $ svn merge -c -91161 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91161 into '.': U lib/CodeGen/BranchFolding.cpp U lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91113 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91113 into '.': G lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91101 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91101 into '.': U include/llvm/CodeGen/MachineBasicBlock.h G lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91092 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91092 into '.': G include/llvm/CodeGen/MachineBasicBlock.h G lib/CodeGen/MachineBasicBlock.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91376 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
c6cfdd3f717bfa1b43351c354e39c066dbd167cd |
15-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix integer cast code to handle vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91362 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
2e141d744ee1354f49a99d9da49dbd9570e4269d |
15-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix integer cast code to handle vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91362 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
a34782d2b71b5fd6b3b32fa4943de1fc89d47115 |
15-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix this to properly clear the FastISel debug location. Thanks to Bill for spotting this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
688fb80334e1ad7b259a051411bb72e18abea9e7 |
15-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix this to properly clear the FastISel debug location. Thanks to Bill for spotting this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
32b48e95922e730032f188c313cdd2e50c63cbc9 |
14-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine, but we need it to actually be 4-bytes in the FDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91337 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
f8084fb1e1da226d73f69c8b30179951ca7d80a9 |
14-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine, but we need it to actually be 4-bytes in the FDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91337 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
814a12c5353afed59395f62dc082aca10b93c3dd |
14-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Use DW_AT_specification to point to DIE describing function declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91278 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
ffe966c15b165bc3b0c2198dc2675057f3285ce1 |
14-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Use DW_AT_specification to point to DIE describing function declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91278 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
76d8399d2044c4af7ef6b723f2905e4ad6cbbbf3 |
14-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Added CalcSpillWeights to CMakeLists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91275 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
94a4a5eec60b256289315105b225defdcb8f70d6 |
14-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Added CalcSpillWeights to CMakeLists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91275 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
8233240e96cc3df533f37641d17df9ae2d15af12 |
14-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Whitespace changes, comment clarification. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91274 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
85de1e5bade2f3755e47ed6fd43c92fcf99ff08b |
14-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Whitespace changes, comment clarification. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91274 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
4f49e0f7a619ff4a98eae831896636e8fa9051a4 |
14-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Moved spill weight calculation out of SimpleRegisterCoalescing and into its own pass: CalculateSpillWeights. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91273 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
a937f220e14826266a8f05b58a541aad669c8912 |
14-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Moved spill weight calculation out of SimpleRegisterCoalescing and into its own pass: CalculateSpillWeights. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91273 91177308-0d34-0410-b5e6-96231b3b80d8
alcSpillWeights.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
7c29ae320a827facfbcc32b91d6d98c6b06e44ea |
13-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix weird typo which leads to unallocated memory access for nodes with 4 results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
60283f9bc9da85e032006db5e2ccc364cef89267 |
13-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix weird typo which leads to unallocated memory access for nodes with 4 results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
552423de4ce3985cee3e44d2b34afc81aef5b5b4 |
12-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Delete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is never a vector type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a0474a83bfa75757866c9ce361ddb8462a585882 |
12-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Delete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is never a vector type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3dd8cadf857bd134ef24aebb48aa22278cedaff1 |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't try to move a MBB into the fall-through position if it's a landing pad or branches only to a landing pad. Without this check, the compiler would go into an infinite loop because the branch to a landing pad is an "abnormal" edge which wasn't being taken into account. This is the meat of that fix: if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) { The other stuff is simplification of the "branches to a landing pad" code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91161 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
c42a0b75a41144be86d40872b57850ab578969ea |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't try to move a MBB into the fall-through position if it's a landing pad or branches only to a landing pad. Without this check, the compiler would go into an infinite loop because the branch to a landing pad is an "abnormal" edge which wasn't being taken into account. This is the meat of that fix: if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) { The other stuff is simplification of the "branches to a landing pad" code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91161 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
b9f2c6bf74e416fb21026ef9c779c6c4cdbce9d4 |
11-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Construct CompileUnits lazily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91159 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
d037d7a497caa4d66008723de72fb554ca0ae630 |
11-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Construct CompileUnits lazily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91159 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9d501bd6024424a0d85836f2e61a5fcd3f717d23 |
11-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91158 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
87862e77bbf90cf1b68c9eea1f3641ad81435e38 |
11-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91158 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
2c4c4dc0dc9c48f7ec593798916cab05c68ec44b |
11-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix the result type of SELECT nodes lowered from Select instructions with aggregate return values. This fixes PR5754. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
a4f9cc4e55fa12ddff95c2e9d0091077797f0b22 |
11-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix the result type of SELECT nodes lowered from Select instructions with aggregate return values. This fixes PR5754. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuilder.cpp
|
7767af5f34dccb5d093cd46004f2f2687095019c |
11-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Honour setHasCalls() set from isel. This is used in some weird cases like general dynamic TLS model. This fixes PR5723 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91144 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
817a46454aa22b80069157a2b02717b7edfd9cbb |
11-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Honour setHasCalls() set from isel. This is used in some weird cases like general dynamic TLS model. This fixes PR5723 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91144 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
624ebdda54ecb7db70ffb105148e68dd34940f8e |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert part of r91101 which was causing an infinite loop in the self-hosting build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91113 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
a288b2f43a6b1a87fcd9b10c5fd46f3c65c478a0 |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert part of r91101 which was causing an infinite loop in the self-hosting build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91113 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
f486334d5c3e5d686f35f5fb9594842a76596496 |
11-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Coalesce insert_subreg undef, x first to avoid phase ordering issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91103 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
ac94863a1c090f2221ff2e21b7ee5480bd1db594 |
11-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Coalesce insert_subreg undef, x first to avoid phase ordering issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91103 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
4d2fd87d90f53f74faab9b231809bad929ffdf28 |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Address comments on last patch: - Loosen the restrictions when checking of it branches to a landing pad. - Make the loop more efficient by checking the '.insert' return value. - Do cheaper checks first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91101 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
64bdde2093f461f10c095d08d53dc57c6612ce69 |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Address comments on last patch: - Loosen the restrictions when checking of it branches to a landing pad. - Make the loop more efficient by checking the '.insert' return value. - Do cheaper checks first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91101 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
573d1d59306f14c74a519b77e1d677e9a6df3a65 |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
A machine basic block may end in an unconditional branch, however it may have more than one successor. Normally, these extra successors are dead. However, some of them may branch to exception handling landing pads. If we remove those successors, then the landing pads could go away if all predecessors to it are removed. Before, it was checking if the direct successor was the landing pad. But it could be the result of jumping through multiple basic blocks to get to it. If we were to only check for the existence of an EH_LABEL in the basic block and not remove successors if it's in there, then it could stop actually dead basic blocks from being removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91092 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
4bde1ab82d4a520dca59db1fd212d77ac667b3a8 |
11-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
A machine basic block may end in an unconditional branch, however it may have more than one successor. Normally, these extra successors are dead. However, some of them may branch to exception handling landing pads. If we remove those successors, then the landing pads could go away if all predecessors to it are removed. Before, it was checking if the direct successor was the landing pad. But it could be the result of jumping through multiple basic blocks to get to it. If we were to only check for the existence of an EH_LABEL in the basic block and not remove successors if it's in there, then it could stop actually dead basic blocks from being removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91092 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
6d47963bc2b99fc828e706072d94b4faab5c6703 |
11-Dec-2009 |
Devang Patel <dpatel@apple.com> |
If VariableDIe is not created (may be because global was optimzed away) then do not try to use the variable die. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91077 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
edb4563ceae52e67f0b5cb2f084e3e8da6eba7d3 |
11-Dec-2009 |
Devang Patel <dpatel@apple.com> |
If VariableDIe is not created (may be because global was optimzed away) then do not try to use the variable die. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91077 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fda100228c44e2ce87a2059d879c3da7f6cf043d |
10-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to coalesce a move where src and dst registers have different subregister indices. e.g.: %reg16404:1<def> = MOV8rr %reg16412:2<kill> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91061 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6fd78ec8a216f659ce7c0c9912bb81e29595fed9 |
10-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to coalesce a move where src and dst registers have different subregister indices. e.g.: %reg16404:1<def> = MOV8rr %reg16412:2<kill> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91061 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1a8f9a8322f0de194328f3ab2cbf941504015f5f |
10-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Refactor code that finds context for a given die. Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c366f83d89d93be557f136f1560d696b4acb6a46 |
10-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Refactor code that finds context for a given die. Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
7f139c19245027f4f367bf09db322e16ceca76f5 |
10-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91051 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
16ced733f370b64831e40128c9871709311b728d |
10-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91051 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a0f793a956a6aeff1386647a714c627102bfdc88 |
10-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also attempt trivial coalescing for live intervals that end in a copy. The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch is more conservative than r90502, and does not break 483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled by default, and can be enabled with the -trivial-coalesce-ends option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91049 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
cf97036675340bc889cfe04295cda63afe9496e2 |
10-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also attempt trivial coalescing for live intervals that end in a copy. The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch is more conservative than r90502, and does not break 483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled by default, and can be enabled with the -trivial-coalesce-ends option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91049 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
fe0be137457e5a2fe51000ed2844f888e9e19b64 |
09-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Reapply r90858, a cleanup patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90979 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
8a24114b169376901a0b9e804a5aa7eb4416a985 |
09-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Reapply r90858, a cleanup patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90979 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
9b4ae24a6d11afa1453e2cfce2c702316ad7e093 |
09-Dec-2009 |
David Goodwin <david_goodwin@apple.com> |
<rdar://problem/7453528>. Track only physical registers that are valid for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90970 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
ostRASchedulerList.cpp
|
990d2857654cb80e46d207533834be3047494830 |
09-Dec-2009 |
David Goodwin <david_goodwin@apple.com> |
<rdar://problem/7453528>. Track only physical registers that are valid for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90970 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.cpp
ostRASchedulerList.cpp
|
75730ab628f309e281beab31cb081b7487579f6e |
09-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Added a new "splitting" spiller. When a call is placed to spill an interval this spiller will first try to break the interval up into its component values. Single value intervals and intervals which have already been split (or are the result of previous splits) are spilled by the default spiller. Splitting intervals as described above may improve the performance of generated code in some circumstances. This work is experimental however, and it still miscompiles many benchmarks. It's not recommended for general use yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90951 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
|
6194569d22003fddaf1a33acdbb84d5efe76e7d7 |
09-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Added a new "splitting" spiller. When a call is placed to spill an interval this spiller will first try to break the interval up into its component values. Single value intervals and intervals which have already been split (or are the result of previous splits) are spilled by the default spiller. Splitting intervals as described above may improve the performance of generated code in some circumstances. This work is experimental however, and it still miscompiles many benchmarks. It's not recommended for general use yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90951 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
piller.cpp
piller.h
|
76ebe86e74ce108a129259fb52663edb0483da9d |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7bd6478cd6a1264f884b46f3694af3a68a6fab0a |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1a029cbee8f0bb7d1798aa474bdc46f017ba1871 |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
64fa4a9584113f63eccc1a650e7e0cc4ddbab3f6 |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
a711e2664a880bc4b941d2690371cf811167bf95 |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Infer alignment for non-fixed stack object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
de2ace1758286f8442a13532d9cd7d3c4cce47ef |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Infer alignment for non-fixed stack object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d3caa135e4a12b56cf586dc4d2a3d89d821b2f46 |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90918 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7ced2e0b304e76ab746c7d9a54ad8d4930445a38 |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90918 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
684647dabc65cd039ddd73daf25112d1b6a98072 |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor InferAlignment out of DAGCombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
f2dc5c785dea1816cbc064b58b4b6ea23c4fd7d4 |
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor InferAlignment out of DAGCombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
de2d3688d9711628c15ee2b8410fa3e936ca698c |
09-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Revert 90858 90875 and 90805 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90898 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0000fadb00cf971cd8ffb4ebe500777a84daf8f5 |
09-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Revert 90858 90875 and 90805 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90898 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
7b294d7538f15995e446a6a2dd17965813133cc0 |
08-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Cleanup. There is no need to supply ModuleCU to addType() as a parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90858 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a3a60c6c49e457d825bddd1d300230c9d82cc17e |
08-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Cleanup. There is no need to supply ModuleCU to addType() as a parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90858 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
23a55d34fc5a37cc60122ac3db057177f91e2528 |
08-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Do not try to push dead variable's debug info into namespace info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90857 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
018b66038c73bebc81f8a26b0462b85e7ccedba7 |
08-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Do not try to push dead variable's debug info into namespace info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90857 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9688c52873170b7096ec6f7e13ddea8cb13ca6d8 |
08-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for duplicated PHI instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90816 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
3a41ddb1b98ba6f8ea8b2b65e9d9d0e53d3d4419 |
08-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for duplicated PHI instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90816 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
cb900da68f1eef3242a89e4f3f2078bbccb093b3 |
08-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to 90488. Turn a check into an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90815 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d8f079c25e8bcaf4d10bfa9c3f6a38cd5ac84329 |
08-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to 90488. Turn a check into an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90815 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
641f820036ddf1823bf6b175f4bab0034749b537 |
07-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Add support to emit debug info for c++ style namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90805 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
4063f6bcc775bb0429dea2276694c4cdc2d4dca1 |
07-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Add support to emit debug info for c++ style namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90805 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
03cbedef57d2f8bba7823df2f17ffc29e089ba43 |
07-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Delete code accidentally left behind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90804 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
80564f761aafad4b5630d04dce6eb65499d5a01e |
07-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Delete code accidentally left behind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90804 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
c02f3dca734ac6709bf51d5768ed7b3f97b4a9e7 |
07-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Pre-regalloc tale duplication. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90759 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
ailDuplication.cpp
|
75eb53584367098a5625028e22f1ff8e169d0efd |
07-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Pre-regalloc tale duplication. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90759 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
ailDuplication.cpp
|
18552eb96f80811caa9f48141219ebeb2eadc5b3 |
07-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
If BB is empty, insert PHI before end() instead of front(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90744 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
7e572eb37f1ddb4c9c165354f48692d4cd66affa |
07-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
If BB is empty, insert PHI before end() instead of front(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90744 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
c15c59e7601f48d83728faa47d5bf676ad084383 |
07-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Truncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from i32 to platform's largest native type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90741 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
1c3436a67afcfaee5f972836ff1ffff2985adce1 |
07-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Truncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from i32 to platform's largest native type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90741 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
a182b3f8ba53a7b042461fd206a0807697ae6e85 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove old DBG_LABEL code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90669 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
87bad707ed0fa98a986dc4621648f96da607e81b |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove old DBG_LABEL code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90669 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
955748e8b311172018ee5ab478e84b1f663d6547 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove the unused DisableLegalizeTypes option and related code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90668 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
714efc63d4319b771d89a95aa7a42d400f03d8c9 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove the unused DisableLegalizeTypes option and related code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90668 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
27cae32667e68db30ebfdee6fa4727696895967f |
05-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90653 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
dc492e037034e7671e3fb9ab3e041186cdc97508 |
05-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90653 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
1792bc68d2991042dceaa55f508a1c6c6a43b58a |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't print a space before the : between the file name and line number. And separate the directory and file name with a '/'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90641 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b3b9821cdeb58a568080c8d49b4f9432b1135905 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't print a space before the : between the file name and line number. And separate the directory and file name with a '/'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90641 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cfca6e367887ec0820cf5c664eec4c0714166980 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Print newlines after printing labels for debug info, so that the output isn't cluttered with things like "Llabel47:Llabel48: movq (%rsi), %xmm3" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
eecb9919a41dc11e805370d66cb2e43d8ef2649e |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Print newlines after printing labels for debug info, so that the output isn't cluttered with things like "Llabel47:Llabel48: movq (%rsi), %xmm3" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
c5b50fbff2c7d0f0e5f225da1c2f3f58299b35da |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't blindly set the debug location for PHI node copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90637 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
381ca5572e3c37824e1c5be0fa02f7b5bdd4a1ce |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't blindly set the debug location for PHI node copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90637 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
581cdf90ade3d318dedde0c645d478ffede09e0d |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Make TargetSelectInstruction protected and called from FastISel.cpp instead of SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
6e3ff375474c4fd78feb0b8463eb273a23cb4404 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Make TargetSelectInstruction protected and called from FastISel.cpp instead of SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
01696988ff3c98744cce105372803d4ed903f988 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor of MachineBasicBlock::canFallThrough(), which is target-independent and more thorough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90634 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineVerifier.cpp
|
864e2efce2cb5d02e376933933d96074723fe77c |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor of MachineBasicBlock::canFallThrough(), which is target-independent and more thorough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90634 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineVerifier.cpp
|
bc18967dc5cbda59461d704cc1543b4fbd57f592 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code: don't call AnalyzeBranch before doing simpler checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90633 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
735985fbbe3a1752b02163af0ec3ab6e6a7f0948 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code: don't call AnalyzeBranch before doing simpler checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90633 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
1ca1ac3967582cd4c02a12054b927adc1e111e52 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
The debug information for an LLVM Instruction applies to that Instruction and that Instruction only. Implement this by setting the "current debug position" back to Unknown after processing each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
07f111e7b746747cade8371eeaf8c613058cb3a0 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
The debug information for an LLVM Instruction applies to that Instruction and that Instruction only. Implement this by setting the "current debug position" back to Unknown after processing each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4698bab134cd68e41ae098168d9fd78e64b69904 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix this code to use DIScope instead of DICompileUnit, as in r90181. Don't print "SrcLine"; just print the filename and line number, which is obvious enough and more informative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3b9bc04eda3401618b4fa2318f41b4207d72dece |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix this code to use DIScope instead of DICompileUnit, as in r90181. Don't print "SrcLine"; just print the filename and line number, which is obvious enough and more informative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90631 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ef92a646d90a7dc618598e7b836638f96238f245 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't print the debug directory; it's often long and uninteresting. Omit the column number if it is not known. Handle the case of a missing filename better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90630 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4b808b014b0cd25261f93e1885ffdbd0247d8634 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't print the debug directory; it's often long and uninteresting. Omit the column number if it is not known. Handle the case of a missing filename better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90630 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e26680ba1f829b15338f0f128855432c5bfd7210 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Print a space between the comment character and the text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fcafe44f564f61016dd2f9367d93c91dfda74c96 |
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Print a space between the comment character and the text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d3df6974d831cc29b86026ce3ee3467eb489ea7f |
05-Dec-2009 |
Devang Patel <dpatel@apple.com> |
In TAG_subrange_type, uppder bound is zero indexed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90617 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d55224c25e674c552df5b73958cfce3bc39e960f |
05-Dec-2009 |
Devang Patel <dpatel@apple.com> |
In TAG_subrange_type, uppder bound is zero indexed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90617 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
11a046f10f723cac2c598dd0a626383c43aecba2 |
04-Dec-2009 |
David Greene <greened@obbligato.org> |
Use new interfaces to print spill size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90611 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f7ea2a534ba4151e091e270c5b908167ab4bba4d |
04-Dec-2009 |
David Greene <greened@obbligato.org> |
Use new interfaces to print spill size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90611 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
99298f61d3a280ade30c73faee24fd72e0cdc228 |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Handle recursive PHI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90575 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
11572babb12d169965c63c47aab9c9fad354e5df |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Handle recursive PHI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90575 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
371fcef75743c634263720bcd3a61a1615b90163 |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a pre-regalloc tail duplication pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90567 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ailDuplication.cpp
|
79fc6f44b64f47b8a7d5e298c9f3c596b89fa88d |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a pre-regalloc tail duplication pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90567 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ailDuplication.cpp
|
6941493d76d1aaaffb2d5d505eef249f9145d07b |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't try to be cute with undef optimization here. Let ProcessImplicitDefs handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90566 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
9d0f8bba17201cb26f5d642340eed66dedaec695 |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't try to be cute with undef optimization here. Let ProcessImplicitDefs handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90566 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
c4c88cfd8ee8bff54a68d0642d671ea778782e6d |
04-Dec-2009 |
Duncan Sands <baldrick@free.fr> |
Add note about a subtle bug in this code. Does not effect the main architectures that LLVM targets, because they don't use this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
36236b76a45be2a50315d1926c49bd3c63786b49 |
04-Dec-2009 |
Duncan Sands <baldrick@free.fr> |
Add note about a subtle bug in this code. Does not effect the main architectures that LLVM targets, because they don't use this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
88d11c3a214da464deb05eb17922d633e5af77a1 |
04-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also attempt trivial coalescing for live intervals that end in a copy. The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch takes care of a few more cases that r90163 missed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90502 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
6b74e505be1016223e090a6c806f7caa3165a146 |
04-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also attempt trivial coalescing for live intervals that end in a copy. The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch takes care of a few more cases that r90163 missed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90502 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
723be602ecdfde30a50c3afe1780575fdf8f0f56 |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
- If the reaching definition is an undef and the use is a PHI, add the implicit_def to the end of the source block. - When reaching value is replaced with another, update the cache as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90501 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
2e65c29ac64e7b36603d1a1de3d01cdfd2e61e23 |
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
- If the reaching definition is an undef and the use is a PHI, add the implicit_def to the end of the source block. - When reaching value is replaced with another, update the cache as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90501 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
4285ddbfd5fd218038058a6fdb2366ae3247a99d |
04-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Insert composite type DIE into the map before processing type fields. This allows fields to find their context DIE from the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90498 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b3235d22e94c21ef00539d83db4d6d65bada48f5 |
04-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Insert composite type DIE into the map before processing type fields. This allows fields to find their context DIE from the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90498 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
21d9a013924f79957deaa9dac748d722cc40b40a |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Handle undef values properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90489 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
01306cad01978823716944cd7517446755a6c72d |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Handle undef values properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90489 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
886ea36230307f67689a2f318adf47ec80dd8be4 |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for PHI instruction with no source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90488 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9aed9396a672f50541dc77a4662bb882a0fb1080 |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for PHI instruction with no source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90488 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b956e74994c0d0e41f2862e79d96ec699de782de |
03-Dec-2009 |
Duncan Sands <baldrick@free.fr> |
Fix ExpandShiftWithUnknownAmountBit, which was completely bogus. Pointed out by Javier Martinez (who also provided a patch). Since this logic is not used on (for example) x86, I guess nobody noticed. Tested by generating SHL, SRL, SRA on various choices of i64 for all possible shift amounts, and comparing with gcc. Since I did this on x86-32, I had to force the use of ExpandShiftWithUnknownAmountBit. What I'm saying here is that I don't have a testcase I can add to the repository. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
9993b88f06fd54c0be31d35f0970ada70a4c0439 |
03-Dec-2009 |
Duncan Sands <baldrick@free.fr> |
Fix ExpandShiftWithUnknownAmountBit, which was completely bogus. Pointed out by Javier Martinez (who also provided a patch). Since this logic is not used on (for example) x86, I guess nobody noticed. Tested by generating SHL, SRL, SRA on various choices of i64 for all possible shift amounts, and comparing with gcc. Since I did this on x86-32, I had to force the use of ExpandShiftWithUnknownAmountBit. What I'm saying here is that I don't have a testcase I can add to the repository. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
d0afa909ad8d1b108b4ad6925ca6b3a5de2817e2 |
03-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up some loop logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90481 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f4811a96941433fc3828869d76dfeba5ec5decd3 |
03-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up some loop logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90481 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
188c85dc4247e23ddaa63e055972253de3901fdb |
03-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Add support to emit debug info for virtual functions and virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90474 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
5d11eb0ed54116b7f33507999617661fb2ae99df |
03-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Add support to emit debug info for virtual functions and virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90474 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e83c9b214205978873745b7368df84cf9f117996 |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach tail duplication to update SSA form. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90432 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
111e7629cc84dad39d6b546871cdec3740b22781 |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach tail duplication to update SSA form. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90432 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
ea5d5940df6894c2efc4c6ac76700922df97d8b2 |
03-Dec-2009 |
Nate Begeman <natebegeman@mac.com> |
Don't pull vector sext through both hands of a logical operation, since doing so prevents the fusion of vector sext and setcc into vsetcc. Add a testcase for the above transformation. Fix a bogus use of APInt noticed while tracking this down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
93e0ed31c54cea6bf3f1f20244bd56a4770b2780 |
03-Dec-2009 |
Nate Begeman <natebegeman@mac.com> |
Don't pull vector sext through both hands of a logical operation, since doing so prevents the fusion of vector sext and setcc into vsetcc. Add a testcase for the above transformation. Fix a bogus use of APInt noticed while tracking this down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1ac6732b47ec36df1b6d990a62d21da02fddee2b |
03-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't call getValueType() on a null SDValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9f0d4e631d73659e8a94495b9a6d5ecbb6ad68a1 |
03-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't call getValueType() on a null SDValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
615cc8769c570cab6cb910255c0fab10256cf272 |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fill out codegen SSA updater. It's not yet tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90395 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineSSAUpdater.cpp
|
229694f0ee630ceabe96a8bd48952f6740f928b2 |
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fill out codegen SSA updater. It's not yet tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90395 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineSSAUpdater.cpp
|
26f2fb73faa4634ef52b931f6581f127c79bc2f2 |
03-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't hang on to pointers or references after vector::push_back. The MO reference to a MachineOperand can be invalidated by MachineInstr::addOperand. Don't even use it for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90381 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
15d75d9f11f877bf3716257013b563e67341b0ed |
03-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't hang on to pointers or references after vector::push_back. The MO reference to a MachineOperand can be invalidated by MachineInstr::addOperand. Don't even use it for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90381 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
c1df879dbd07bb4d63e7cc6358ed73263c631c12 |
03-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Emit method definition DIE at module level (even for methods with inlined functino body at soure level) so that the debugger can invoke it. This fixes many test failures in gdb test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90375 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1d5cc1db597a1a0f760b6d600819e4aef5aea26c |
03-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Emit method definition DIE at module level (even for methods with inlined functino body at soure level) so that the debugger can invoke it. This fixes many test failures in gdb test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90375 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
b44b429549bc4c4f950d56d4f6fa0ba486856cc6 |
03-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
improve portability to avoid conflicting with std::next in c++'0x. Patch by Howard Hinnant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90365 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
odePlacementOpt.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineLoopInfo.cpp
HIElimination.cpp
reAllocSplitting.cpp
rologEpilogInserter.cpp
egisterScavenging.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
piller.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
7896c9f436a4eda5ec15e882a7505ba482a2fcd0 |
03-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
improve portability to avoid conflicting with std::next in c++'0x. Patch by Howard Hinnant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90365 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
odePlacementOpt.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineLoopInfo.cpp
HIElimination.cpp
reAllocSplitting.cpp
rologEpilogInserter.cpp
egisterScavenging.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
piller.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
33221d9fcccbb6f41d5664fd0b89c9e6f71a0875 |
02-Dec-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Fix CMake makefiles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90354 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
e731fa2957604b0a5d3964d927130ec58e457abe |
02-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix CMake makefiles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90354 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
023a88ee8ad038b8e7686187cee877299cdefbca |
02-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Skeleton for MachineInstr level SSA updater. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90353 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
651ea5376c57c061ebe183375974e7333d2e0ec3 |
02-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Skeleton for MachineInstr level SSA updater. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90353 91177308-0d34-0410-b5e6-96231b3b80d8
achineSSAUpdater.cpp
|
dee452ff502feea9a09247af651d25107748bc0e |
02-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Add MaxStackAlignment.cpp to CMake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90337 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
b51d3f9c8dc0ed308f3b8743ea2efdf3a3a2c93d |
02-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Add MaxStackAlignment.cpp to CMake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90337 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
4d20ee6d9a35d9498ad170c55ba714b346237a55 |
02-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Factor the stack alignment calculations out into a target independent pass. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90336 91177308-0d34-0410-b5e6-96231b3b80d8
axStackAlignment.cpp
|
e27d205d5d4d53cceabcd6325533fbdf9c0cee42 |
02-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Factor the stack alignment calculations out into a target independent pass. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90336 91177308-0d34-0410-b5e6-96231b3b80d8
axStackAlignment.cpp
|
5eb5f091ab381b612c271a1683e6e0870394d0c4 |
02-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Don't count PHI instructions toward the limit for tail duplicating a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90326 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
f1e01dcc94fde6b1e184dc799df7145aed34a18b |
02-Dec-2009 |
Bob Wilson <bob.wilson@apple.com> |
Don't count PHI instructions toward the limit for tail duplicating a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90326 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
df0f215750690b1c58f76b72f751d5a5c4da46d8 |
02-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Clarify that DIEString does not keep a copy of the string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90318 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
69f57b1f41c818c5a89c40fd9a4bdca6a76ea934 |
02-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Clarify that DIEString does not keep a copy of the string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90318 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
|
920ffac27e66522138cddf6aac63f4965c8103dd |
02-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Reuse existing subprogram DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90281 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7d0750a10fac5c00f00b465d8633d00fe76d9a2c |
02-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Reuse existing subprogram DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90281 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
578f3231d6c9ba6d6bd8c683033748cf4d68b623 |
01-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5391: support early clobber physical register def tied with a use (ewwww) - A valno should be set HasRedefByEC if there is an early clobber def in the middle of its live ranges. It should not be set if the def of the valno is defined by an early clobber. - If a physical register def is tied to an use and it's an early clobber, it just means the HasRedefByEC is set since it's still one continuous live range. - Add a couple of missing checks for HasRedefByEC in the coalescer. In general, it should not coalesce a vr with a physical register if the physical register has a early clobber def somewhere. This is overly conservative but that's the price for using such a nasty inline asm "feature". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90269 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
9836a26da3acc15deec878cd6ba21a6b5f2e753b |
01-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5391: support early clobber physical register def tied with a use (ewwww) - A valno should be set HasRedefByEC if there is an early clobber def in the middle of its live ranges. It should not be set if the def of the valno is defined by an early clobber. - If a physical register def is tied to an use and it's an early clobber, it just means the HasRedefByEC is set since it's still one continuous live range. - Add a couple of missing checks for HasRedefByEC in the coalescer. In general, it should not coalesce a vr with a physical register if the physical register has a early clobber def somewhere. This is overly conservative but that's the price for using such a nasty inline asm "feature". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90269 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
69be7878c045ac40c9c847fe8d04f44e51663c04 |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Add edge source labels to SelectionDAG graphs, now that the graph printing framework omits differentiated edge sources in the case where the labels are empty strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
5b69fe767ca0786ecb50e703f2da8ea09de5da7c |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Add edge source labels to SelectionDAG graphs, now that the graph printing framework omits differentiated edge sources in the case where the labels are empty strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
8cb3747a8bb51ba03b38cf87e606e2bb33032d6e |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
0baf2a302fe6e130756bf8b3da831547f0b87190 |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
0bf95848e06bdfa04ec8a28cc22730ae139b9786 |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Trim an unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
241c59578676845143ea32ee6a2e59f5f196b39f |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Trim an unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
67533ab25e3fd9b66779dee173f5cb3cfb93cb99 |
01-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Clear function specific containers while processing end of a function, even if DW_TAG_subprogram for current function is not found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90247 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c09ddc1c792b35a20b2aeaa708fd00a76638805c |
01-Dec-2009 |
Devang Patel <dpatel@apple.com> |
Clear function specific containers while processing end of a function, even if DW_TAG_subprogram for current function is not found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90247 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9a929cf5ff12aac2838d89389e1a90fceb731437 |
01-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move PHIElimination::isLiveOut method to LiveVariables. We want LiveVariables clients to use methods rather than accessing the getVarInfo data structure directly. That way it will be possible to change the LiveVariables representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90240 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
8f72235a77e7ac262471936ea0ad2a3467d18871 |
01-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move PHIElimination::isLiveOut method to LiveVariables. We want LiveVariables clients to use methods rather than accessing the getVarInfo data structure directly. That way it will be possible to change the LiveVariables representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90240 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
c79abe2ba9e6bd0909b9a00eddb54a8d500ec11c |
01-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use CFG connectedness as a secondary sort key when deciding the order of copy coalescing. This means that well connected blocks are copy coalesced before the less connected blocks. Connected blocks are more difficult to coalesce because intervals are more complicated, so handling them first gives a greater chance of success. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90194 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
579d6d9fe33179f47dec4fb68e82da074a586372 |
01-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use CFG connectedness as a secondary sort key when deciding the order of copy coalescing. This means that well connected blocks are copy coalesced before the less connected blocks. Connected blocks are more difficult to coalesce because intervals are more complicated, so handling them first gives a greater chance of success. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90194 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
af20e7cfb5d44c7a0caad3a152978fcca1f4b438 |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Devang pointed out that this code should use DIScope instead of DICompileUnit. This code now prints debug filenames successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90181 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
261a7d983d38edd2f1ee6ff2cd0c12a2c2a8b044 |
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Devang pointed out that this code should use DIScope instead of DICompileUnit. This code now prints debug filenames successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90181 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1e99614c66e92b4f6c26531b8c84e0f42a35c902 |
01-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5614: parts of a physical register def may be killed the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90180 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
a4025df42d2393da7041cd11e48a3d44b0ae2bb1 |
01-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5614: parts of a physical register def may be killed the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90180 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
76b806763b89ea64337bd967614662a72f237191 |
01-Dec-2009 |
Devang Patel <dpatel@apple.com> |
If pointer type has a name then do not ignore the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
deea564e53fd1a582f2621ffb07de606f8464881 |
01-Dec-2009 |
Devang Patel <dpatel@apple.com> |
If pointer type has a name then do not ignore the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c6e14f94aae2689841a94bc7aa059a8771e53867 |
30-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
New virtual registers created for spill intervals should inherit allocation hints from the original register. This helps us avoid silly copies when rematting values that are copied to a physical register: leaq _.str44(%rip), %rcx movq %rcx, %rsi call _strcmp becomes: leaq _.str44(%rip), %rsi call _strcmp The coalescer will not touch the movq because that would tie down the physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90163 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ce7a663140e6e67cf5ef7091e076e8541300c15a |
30-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
New virtual registers created for spill intervals should inherit allocation hints from the original register. This helps us avoid silly copies when rematting values that are copied to a physical register: leaq _.str44(%rip), %rcx movq %rcx, %rsi call _strcmp becomes: leaq _.str44(%rip), %rsi call _strcmp The coalescer will not touch the movq because that would tie down the physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90163 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3d0daa24dde6984c75c7fe1933653429169418f4 |
30-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Reprioritize tests for tail duplication to be aggressive about indirect branches even when optimizing for code size. Unless we find evidence to the contrary in the future, the special treatment for indirect branches does not have a significant effect on code size, and performance still matters with -Os. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90147 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
3858225afc2a7f1027dce34dc72de5686b636c2d |
30-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Reprioritize tests for tail duplication to be aggressive about indirect branches even when optimizing for code size. Unless we find evidence to the contrary in the future, the special treatment for indirect branches does not have a significant effect on code size, and performance still matters with -Os. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90147 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
90868102bf6144cae08570ddcb96099d9d63c06d |
30-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Remove isProfitableToDuplicateIndirectBranch target hook. It is profitable for all the processors where I have tried it, and even when it might not help performance, the cost is quite low. The opportunities for duplicating indirect branches are limited by other factors so code size does not change much due to tail duplicating indirect branches aggressively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90144 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
15217e63bce6c161b355b63d6496c7c327d15817 |
30-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Remove isProfitableToDuplicateIndirectBranch target hook. It is profitable for all the processors where I have tried it, and even when it might not help performance, the cost is quite low. The opportunities for duplicating indirect branches are limited by other factors so code size does not change much due to tail duplicating indirect branches aggressively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90144 91177308-0d34-0410-b5e6-96231b3b80d8
ailDuplication.cpp
|
bf4ea99c2887e55d18206e093bccdc43636c9b1b |
30-Nov-2009 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Fix last DOTGraphTraits problems in CompilationGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
ab01069fcdb1fed655cf0ca851400a104e4b46d1 |
30-Nov-2009 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Fix last DOTGraphTraits problems in CompilationGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
810b18c4cc8b022f79f0dd886cc9092a3e4f6d2c |
30-Nov-2009 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Remove ShortNames from getNodeLabel in DOTGraphTraits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90134 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
56f4ef3232850e29c4635d0923910acce8887bd0 |
30-Nov-2009 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Remove ShortNames from getNodeLabel in DOTGraphTraits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90134 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
e2c3aec2cf16ee6ea233d3ec13a83e71e21523b9 |
30-Nov-2009 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Instantiate DefaultDOTGraphTraits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90133 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
a10d598602308549d87d2c5d9848f5a72fda2b43 |
30-Nov-2009 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Instantiate DefaultDOTGraphTraits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90133 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
c707f3ff7cdb427155b7ca707a3efd2c8b34bcd1 |
30-Nov-2009 |
Mon P Wang <wangmp@apple.com> |
Added support to allow clients to custom widen. For X86, custom widen vectors for divide/remainder since these operations can trap by unroll them and adding undefs for the resulting vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90108 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
cd6e725f21852e2f8cdf5fd0e65eb42c224776f8 |
30-Nov-2009 |
Mon P Wang <wangmp@apple.com> |
Added support to allow clients to custom widen. For X86, custom widen vectors for divide/remainder since these operations can trap by unroll them and adding undefs for the resulting vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90108 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
2204a60625dec63703edbdebe4cf5f90460db2e5 |
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Rename new TailDuplicationPass to avoid name conflict with the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89968 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ailDuplication.cpp
|
2d521e51acd5f1a0100cbbe4c611a35c978c2456 |
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Rename new TailDuplicationPass to avoid name conflict with the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89968 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ailDuplication.cpp
|
1b563ac33aadc7fa11ddc7e28b7e2e067436fa00 |
26-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
When all defs of a vr are implicit_def, delete all of the defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89905 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
40ea0e22b2380236c137e5a4b17d2eae38286a5e |
26-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
When all defs of a vr are implicit_def, delete all of the defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89905 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
810ced7daebe78a8d84b94fac07e320a02cecb71 |
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Split tail duplication into a separate pass. This is needed to avoid running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89904 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
MakeLists.txt
LVMTargetMachine.cpp
achineBasicBlock.cpp
ailDuplication.cpp
|
15acadde5f87703da5f36721a19c09a7e3f97f53 |
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Split tail duplication into a separate pass. This is needed to avoid running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89904 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
MakeLists.txt
LVMTargetMachine.cpp
achineBasicBlock.cpp
ailDuplication.cpp
|
ae719525ee29c8611887e5fe0153b81d1f0b56b7 |
25-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
ProcessImplicitDefs should watch out for invalidated iterator and extra implicit operands on copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89880 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
e7c9195706ce17b5016f74005ecab5523519deea |
25-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
ProcessImplicitDefs should watch out for invalidated iterator and extra implicit operands on copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89880 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
62b818848c2415d32c82957322cba81948b7f409 |
25-Nov-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Avoid some possibly unsafe uses of StringRef::data(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1c3451fc99feb68dc401049568788547a0b7844d |
25-Nov-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Avoid some possibly unsafe uses of StringRef::data(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7f75bbe16505f364edb9e7bc96ed6e44694e8723 |
25-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Use StringRef (again) in DebugInfo interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89866 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
65dbc909f5377947026a41f29420bb8112bdf611 |
25-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Use StringRef (again) in DebugInfo interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89866 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
68722a84a011e2e2a8be3b3c6a09a2bbb477d390 |
25-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor target hook for tail duplication as requested by Chris. Make tail duplication of indirect branches much more aggressive (for targets that indicate that it is profitable), based on further experience with this transformation. I compiled 3 large applications with and without this more aggressive tail duplication and measured minimal changes in code size. ("size" on Darwin seems to round the text size up to the nearest page boundary, so I can only say that any code size increase was less than one 4k page.) Radar 7421267. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89814 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f8c4cfb7cc330234112e1378dac6424d9956add0 |
25-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor target hook for tail duplication as requested by Chris. Make tail duplication of indirect branches much more aggressive (for targets that indicate that it is profitable), based on further experience with this transformation. I compiled 3 large applications with and without this more aggressive tail duplication and measured minimal changes in code size. ("size" on Darwin seems to round the text size up to the nearest page boundary, so I can only say that any code size increase was less than one 4k page.) Radar 7421267. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89814 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c10337d20080fca89c19acd69ae11f4a28e61cc8 |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Use StringRef instead of std::string in DIEString. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89793 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e9a059714e3dccd6c870f19c3839f3352ac823ed |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Use StringRef instead of std::string in DIEString. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89793 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
815c35cdb070cb876d01f3837f56b4d73b87f036 |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Remove DebugLabelFolder pass. It is not used by dwarf writer anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89790 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineModuleInfo.cpp
|
f5a7a2c84a1951151fee4e7e34d1d94ef0c31fa8 |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Remove DebugLabelFolder pass. It is not used by dwarf writer anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89790 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineModuleInfo.cpp
|
6f2bdd58f2cee41a5de62fe5515642d0371fecf8 |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Swith to pubtypes section before emitting pub types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89787 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f3a0376a56f7b299804c0b0a3e5d991312cedef1 |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Swith to pubtypes section before emitting pub types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89787 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ec13b4fffb1742d8acd6e07a388b1e54dfd7c1c9 |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Emit pubtypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89725 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
193f720f118f52eb05de172d936a440f335c1469 |
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Emit pubtypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89725 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
115a53c6df56d2befe8c19e602e31ffc2515b93a |
24-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
<rdar://problem/6721894>. Allow multiple registers to be renamed together (super and sub) if necessary to break an anti-dependence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89722 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
2601329106c6a4542175f48b876c3497fb48ed0b |
24-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
<rdar://problem/6721894>. Allow multiple registers to be renamed together (super and sub) if necessary to break an anti-dependence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89722 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
c61b56c8b54d3abdf197464c00ea9b3613aa5889 |
24-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used. Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
735afe14eea8049bf69210ce8a3512e391fc643f |
24-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used. Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
8d34f97d8b78e04cad93ab4fb27f19963c0b2f70 |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89702 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
277207e6cbc217a626ef7462487906d5127bf7b0 |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89702 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3a271d8ee93e2de1277abaa40fe3614c458905be |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Print the debug info line and column in MachineInstr::print even when there's no filename. This situation is apparently fairly common right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89701 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
75ae593a2750f9f7995980c3a03c0d972985e394 |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Print the debug info line and column in MachineInstr::print even when there's no filename. This situation is apparently fairly common right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89701 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b125c6e04f2a851b4ed6a361a705816d0374ce4b |
23-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Revert r89487. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89686 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
05f6fa874e8d187483a836ccb4906bb3807bb305 |
23-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Revert r89487. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89686 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7d3b3e40e16069bbc07c2acb20594cfffe406572 |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGISel.cpp
|
5fca8b1c8dc0b9efb0a9822222a6505d1eea6bdd |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGISel.cpp
|
7ec2051989d074e3ffef5fe74fed228d61b5f428 |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGLowering to SelectionDAGBuilder, and rename SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89681 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
2048b85c7c2c987874b9423e682ec8e60b60574b |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGLowering to SelectionDAGBuilder, and rename SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89681 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGBuilder.cpp
electionDAG/SelectionDAGBuilder.h
electionDAG/SelectionDAGISel.cpp
|
78105759c1482cdea69c13d7bedcd1867c40efad |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move RegsForValue to an anonymous namespace, since it is only used in this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89675 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f9bd450a1074ad7b08e691b08388f0e39d5b06cc |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move RegsForValue to an anonymous namespace, since it is only used in this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89675 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c073abf312a796da1dd5c567aa92affe77f62e1b |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move some more code out of SelectionDAGBuild.cpp and into FunctionLoweringInfo.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89674 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
66336edf823f8d64d77dc5ab2bbefc21ef82f6ec |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move some more code out of SelectionDAGBuild.cpp and into FunctionLoweringInfo.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89674 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
ead611c1b544ed84281bfb255c2677ad58d63494 |
23-Nov-2009 |
Ted Kremenek <kremenek@apple.com> |
Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
9977ed0290b7ca62c05c7ed087ab5b841636bd89 |
23-Nov-2009 |
Ted Kremenek <kremenek@apple.com> |
Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
39a0cdff39ccce6633deb6ca4427a96796fef1b3 |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move the FunctionLoweringInfo class and some related utility functions out of SelectionDAGBuild.h/cpp into its own files, to help separate general lowering logic from SelectionDAG-specific lowering logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
6277eb2bb997a5da0808a8a5a57f18fd9faaf336 |
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move the FunctionLoweringInfo class and some related utility functions out of SelectionDAGBuild.h/cpp into its own files, to help separate general lowering logic from SelectionDAG-specific lowering logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FunctionLoweringInfo.cpp
electionDAG/FunctionLoweringInfo.h
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
1df6ea033855b9c8ff66bdfc5f479fe8d2afb272 |
23-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Pull LLVMContext out of PromoteMemToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89645 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
ce2c51b6701c06f701efa2871794b7710cb64b41 |
23-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Pull LLVMContext out of PromoteMemToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89645 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
587d488cbfbfdba6a5e9cebff4f6b614856fde58 |
22-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Add getFrameIndexReference() to TargetRegisterInfo, which allows targets to tell debug info which base register to use to reference a frame index on a per-index basis. This is useful, for example, in the presence of dynamic stack realignment when local variables are indexed via the stack pointer and stack-based arguments via the frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a2f20b20a8dc7f053599840557405554a0848aec |
22-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Add getFrameIndexReference() to TargetRegisterInfo, which allows targets to tell debug info which base register to use to reference a frame index on a per-index basis. This is useful, for example, in the presence of dynamic stack realignment when local variables are indexed via the stack pointer and stack-based arguments via the frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b23f242b6ee5ec88e39ef0d58f7165eed9df7a8c |
22-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
80-column cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89612 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7ab38dfccbc1473b76a227e73a04c08f7448dc45 |
22-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
80-column cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89612 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ed9ebc2d93025f3fed6be267258d1f2abbd7f892 |
22-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineBasicBlock::updateTerminator() to handle a failing TII->ReverseBranchCondition(Cond) call. This fixes the MallocBench/cfrac test case regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89608 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
e0239930ebd69336ca78843e55738a8bf2e4f2bb |
22-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineBasicBlock::updateTerminator() to handle a failing TII->ReverseBranchCondition(Cond) call. This fixes the MallocBench/cfrac test case regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89608 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
652b7433b68fdc0371902b0211be5030d56056be |
22-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
31ef40e9408ff9b16b9a1755a803f765eaa50b36 |
22-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
76fe98917d56fbbc1087c2275d3ab3a8ee4abd2b |
21-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to disable if-converting predicable instructions. e.g. NEON instructions under ARM mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89541 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e54cb16308ad40d0f0b257de47efaa0ee5a47004 |
21-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to disable if-converting predicable instructions. e.g. NEON instructions under ARM mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89541 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c50078e7edda4caf0443225ffde587ae36e1a5ad |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Cosmetic changes, which were long overdue, in DwarfDebug.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89537 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
2c4ceb177be718a7a3697ea63aa254719fc3528f |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Cosmetic changes, which were long overdue, in DwarfDebug.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89537 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
|
1432b62b04c33ad89f4249ef73f2e73740db18c7 |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
We are not using DBG_STOPPOINT anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
bef8888a9197655512f156e50b10799da7240252 |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
We are not using DBG_STOPPOINT anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
e79ff41f7b22dc50740c3c87d0e6801e5fae5924 |
21-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more clever about calculating live variables through new basic blocks. When splitting a critical edge, the registers live through the edge are: - Used in a PHI instruction, or - Live out from the predecessor, and - Live in to the successor. This allows the coalescer to eliminate even more phi joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89530 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
323d8c3ed72c9e440c2079e8c1954af69357c7cf |
21-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more clever about calculating live variables through new basic blocks. When splitting a critical edge, the registers live through the edge are: - Used in a PHI instruction, or - Live out from the predecessor, and - Live in to the successor. This allows the coalescer to eliminate even more phi joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89530 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
76c1a107d9e2fb6eec90a3fffc8a39c11a4b0317 |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89522 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9bff5cbae870170f76a30b69d5b4fd4c6dc6e800 |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89522 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fa1ce6a3b1b8d9f6ee587449741239c59f2b107e |
21-Nov-2009 |
Dale Johannesen <dalej@apple.com> |
When generating a vector the really slow way, via loads and stores, handle the case where the element size is not a valid target type correctly (PPC). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5b8bce11d60694a651965cf019b9cb5d84ed3b90 |
21-Nov-2009 |
Dale Johannesen <dalej@apple.com> |
When generating a vector the really slow way, via loads and stores, handle the case where the element size is not a valid target type correctly (PPC). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1233f91cb593d825c7efebcb8b3571a502976f23 |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
There is no need to use FoldingSet to unique DIEs. DIEs are created from MDNode, which are already uniqued. And DwarfDebug already uses ValueMaps to find and use existing DIE for a given MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6f01d9c2f0a97b0dccde93a232c88f088877819f |
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
There is no need to use FoldingSet to unique DIEs. DIEs are created from MDNode, which are already uniqued. And DwarfDebug already uses ValueMaps to find and use existing DIE for a given MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89518 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
2737ee18866f4e52cc1cd1411d2273d76794374a |
21-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Restructure code to allow renaming of multiple-register groups for anti-dep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89511 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
00621efb40edb7fe16bf2af6d4699c9d024a28e7 |
21-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Restructure code to allow renaming of multiple-register groups for anti-dep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89511 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
1004f9502ae653e8a4752e606c9136060c218068 |
21-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable hoisting load from constant memories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89510 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c26abd94877eb1e2e00de8f9f927606e37e479d8 |
21-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable hoisting load from constant memories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89510 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
885793baaed110c848ccfdfb460bbc91774d8981 |
21-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Target-independent support for TargetFlags on BlockAddress operands, and support for blockaddresses in x86-32 PIC mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89506 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
29cbade25aa094ca9a149a96a8614cf6f3247480 |
21-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Target-independent support for TargetFlags on BlockAddress operands, and support for blockaddresses in x86-32 PIC mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89506 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
d90672c248edda0cab8f84db6f9b16fe8fe4b281 |
20-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not hold on to a map slot while new entries may be inserted into the map. Use ValueMap, instead of std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89490 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
017d121c5934a01922197b207c1cd981edeb2d25 |
20-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not hold on to a map slot while new entries may be inserted into the map. Use ValueMap, instead of std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89490 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
197e2fcd5b2b0a4d391208380dbe71dbcee48e04 |
20-Nov-2009 |
David Greene <greened@obbligato.org> |
Cleanups. Make things a little more efficient as suggested by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89489 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
a96fc2f3ad3b31ffb605c0ace86fcd53260fb903 |
20-Nov-2009 |
David Greene <greened@obbligato.org> |
Cleanups. Make things a little more efficient as suggested by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89489 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
8268f72bb23ff56e4e72260fa1e6575941f46c15 |
20-Nov-2009 |
Devang Patel <dpatel@apple.com> |
There is no need to emit source location info for DW_TAG_pointer_type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89487 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1f37b5b3afe9eb8f4c05391b13af7b58b021ae36 |
20-Nov-2009 |
Devang Patel <dpatel@apple.com> |
There is no need to emit source location info for DW_TAG_pointer_type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89487 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ffd15dce5570f5c05754fc4dd7962ffe27faaac6 |
20-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add option -licm-const-load to hoist all loads from constant memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89477 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
87b75ba75e854773bde482309d6594c25c567e0e |
20-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add option -licm-const-load to hoist all loads from constant memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89477 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d34903a350e0bb37ab31d6cb8449b419535bfe8a |
20-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89471 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
|
557bbe6b5d13faaec38f85a266db457c7cb09ff2 |
20-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89471 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
|
ff47428dd421e3fa20990dcb4a26a1b8b287ac3b |
20-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
More consistent labelling of basic blocks in debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89470 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6cd8103bea5c0bc92f30b8021e9469131a2a408f |
20-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
More consistent labelling of basic blocks in debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89470 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6888fe797e7b7ee3cd9028cbc8d54aa67a878147 |
20-Nov-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR5558, which was caused by a wrong fix for PR3393 (see commit 63048), which was an expensive checks failure due to a bug in the checking. This patch in essence reverts the original fix for PR3393, and refixes it by a tweak to the way expensive checking is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
c088ae8b84bfcdefb57efafb022430312bddf638 |
20-Nov-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR5558, which was caused by a wrong fix for PR3393 (see commit 63048), which was an expensive checks failure due to a bug in the checking. This patch in essence reverts the original fix for PR3393, and refixes it by a tweak to the way expensive checking is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
40b0a2e6bb0787bc7c36a8fc79910a33e1a58965 |
20-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel to avoid selecting the return instruction if a tail call has been encountered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b4afb137efbc38462707bab9f5e8bc5c2d07cd2d |
20-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel to avoid selecting the return instruction if a tail call has been encountered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c0bb0ae7d0154008e836e31d8f8cf77fa2ebb726 |
20-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Add an experimental option to run gep-splitting and no-load GVN just before codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89439 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2e7e94826a4cf6715b4c07d779fb84994c0bc47b |
20-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Add an experimental option to run gep-splitting and no-load GVN just before codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89439 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
222f68489f8cf17fa316ad1028c285326d830214 |
20-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineBasicBlock::getName, and use it in place of getBasicBlock()->getName. Fix debug code that assumes getBasicBlock never returns NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89428 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineLICM.cpp
achineVerifier.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
324da7647cfc3025e0c987176f0a300f9f780e6f |
20-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineBasicBlock::getName, and use it in place of getBasicBlock()->getName. Fix debug code that assumes getBasicBlock never returns NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89428 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineLICM.cpp
achineVerifier.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
d7c28c8c5c1de49d0b0413f6ff4fada2b80c1ec0 |
20-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Removed references to LiveStacks from Spiller.* . They're no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89422 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
8783e401a3ad187dcd0f306153f9339f7270621d |
20-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Removed references to LiveStacks from Spiller.* . They're no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89422 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
25d6435df004aa2890aee502e67242b158c744e7 |
20-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix a couple of problems with maintaining liveness information for antidep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89404 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
3e72d301e03de8edcd603a5d3e9486748dfa6887 |
20-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix a couple of problems with maintaining liveness information for antidep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89404 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
f9cd9bd206387e98c2897c47b29fd4d31df2f223 |
19-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Place new basic blocks immediately after their predecessor when splitting critical edges in PHIElimination. This has a huge impact on regalloc performance, and we recover almost all of the 10% compile time regression that edge splitting introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89381 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
160069d15aef1cd756bae112da9149c98308da68 |
19-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Place new basic blocks immediately after their predecessor when splitting critical edges in PHIElimination. This has a huge impact on regalloc performance, and we recover almost all of the 10% compile time regression that edge splitting introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89381 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
f0e65b8d3493b044f266aa620cead7a1c91b3ccf |
19-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Reverting the EH table patches. $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89279 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/Target/TargetLoweringObjectFile.cpp $ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89270 into '.': G lib/CodeGen/AsmPrinter/DwarfException.cpp G lib/Target/TargetLoweringObjectFile.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
fb7634f1c7a804829fc55e3711ba62c8ade818d0 |
19-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Reverting the EH table patches. $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89279 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/Target/TargetLoweringObjectFile.cpp $ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89270 into '.': G lib/CodeGen/AsmPrinter/DwarfException.cpp G lib/Target/TargetLoweringObjectFile.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
af9a21d1a69f3b3ef222674d760309001f4827b7 |
19-Nov-2009 |
David Greene <greened@obbligato.org> |
Fix a small bug. Fix one case we missed to make sure we reserve registers from allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89376 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
feb5bfbc6b7c565ad47cf5015482d559b0a7651f |
19-Nov-2009 |
David Greene <greened@obbligato.org> |
Fix a small bug. Fix one case we missed to make sure we reserve registers from allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89376 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
c71d1f03e0c46be0eee00263f6b1609fd84bd235 |
19-Nov-2009 |
David Greene <greened@obbligato.org> |
Add support for spreading register allocation. Add a -linearscan-skip-count argument (default to 0) that tells the allocator to remember the last N registers it allocated and skip them when looking for a register candidate. This tends to spread out register usage and free up post-allocation scheduling at the cost of slightly more register pressure. The primary benefit is the ability to backschedule reloads. This is turned off by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89356 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
7cfd336af61b860d4ac95851f6b2982285d227be |
19-Nov-2009 |
David Greene <greened@obbligato.org> |
Add support for spreading register allocation. Add a -linearscan-skip-count argument (default to 0) that tells the allocator to remember the last N registers it allocated and skip them when looking for a register candidate. This tends to spread out register usage and free up post-allocation scheduling at the cost of slightly more register pressure. The primary benefit is the ability to backschedule reloads. This is turned off by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89356 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
7e105d8389347468aaa57d612d4d20c0168464ec |
19-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added a new Spiller implementation which wraps LiveIntervals::addIntervalsForSpills. All spiller calls in RegAllocLinearScan now go through the new Spiller interface. The "-new-spill-framework" command line option has been removed. To use the trivial in-place spiller you should now pass "-spiller=trivial -rewriter=trivial". (Note the trivial spiller/rewriter are only meant to serve as examples of the new in-place modification work. Enabling them will yield terrible, though hopefully functional, code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89311 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
835ca07991c1b8ec47240b15417e1b2732480094 |
19-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added a new Spiller implementation which wraps LiveIntervals::addIntervalsForSpills. All spiller calls in RegAllocLinearScan now go through the new Spiller interface. The "-new-spill-framework" command line option has been removed. To use the trivial in-place spiller you should now pass "-spiller=trivial -rewriter=trivial". (Note the trivial spiller/rewriter are only meant to serve as examples of the new in-place modification work. Enabling them will yield terrible, though hopefully functional, code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89311 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
121e71656e195b7fe04fcc6416b69393cf0ef33e |
19-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EH exception table than DataRel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89279 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
01c69374b508bad0ee71cd3c49414a325238e29a |
19-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EH exception table than DataRel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89279 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d7a62cc10ff8a5d40b15d2750b62b1f66e507779 |
19-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
There should be no need to keep renumbering blocks during tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89275 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
fbb6b67df086fa5ed54e2ff27c15e4c087883957 |
19-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
There should be no need to keep renumbering blocks during tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89275 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
da739ea07a1f130adcc9ad3d51e9c895af374dc6 |
19-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Attempt #2: Place the EH table in the __TEXT section on MachO. It saves space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89270 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ec0445855179d2c9fb98a2c8a42e03525762f45f |
19-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Attempt #2: Place the EH table in the __TEXT section on MachO. It saves space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89270 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5a57a12064094766ae271d09fe365c882d48468b |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Tail duplication still needs to iterate. Duplicating new instructions onto the tail of a block may make that block a new candidate for duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89264 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
60f34b9fb0323688e93cf347d63b56327d6250f8 |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Tail duplication still needs to iterate. Duplicating new instructions onto the tail of a block may make that block a new candidate for duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89264 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7fda037ed8e65b25550b1b439af1153b40df0739 |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add another statistic to measure code size due to tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89254 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
79d621035ebe620261dd8139a0882f62edabbfdb |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add another statistic to measure code size due to tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89254 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
678387e294c678f1cdc602864e5f590ad6fdf65a |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR5300. When TwoAddressInstructionPass deletes a dead instruction, make sure that all register kills are accounted for. The 2-addr register does not get special treatment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89246 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0b25ae1afb9444f91f728c853c70dd27df43776a |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR5300. When TwoAddressInstructionPass deletes a dead instruction, make sure that all register kills are accounted for. The 2-addr register does not get special treatment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89246 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
390afed1012b60baf06eac8904fb72af3ccaedaa |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow the machine verifier to be run outside the PassManager. Verify LiveVariables information when present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89241 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
8f16e02fc95c9b197d38bcd681f2612d36ed5c11 |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow the machine verifier to be run outside the PassManager. Verify LiveVariables information when present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89241 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
c272c74658d1f521d0a67ccdf8155d4566380f75 |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -early-coalescing option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89240 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1e78aa445c5b5b466cea4478f3f9034d4be7278e |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the -early-coalescing option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89240 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9ec5663bc8a70b50a0b7b5e08140577ee1f3957f |
18-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fixed the in-place spiller and trivial rewriter, which had been broken by the recent SlotIndexes work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89238 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
irtRegRewriter.cpp
|
38283e23df5aa748ec3bb5f02f14f1741cf491ce |
18-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fixed the in-place spiller and trivial rewriter, which had been broken by the recent SlotIndexes work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89238 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
irtRegRewriter.cpp
|
ec816259573936142fdc922b8c8fa98e77a3c998 |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add statistics for tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89225 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7cd5d3e05ca9573dbac1a01846813037f901480c |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add statistics for tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89225 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f1a48f57d4a251f639165b4fa8f5b25de598e6c2 |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't require LiveVariables for PHIElimination. Enable critical edge splitting when LiveVariables is available. The -split-phi-edges is now gone, and so is the hack to disable it when using the local register allocator. The PHIElimination pass no longer has LiveVariables as a prerequisite - that is what broke the local allocator. Instead we do critical edge splitting when possible - that is when LiveVariables is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89213 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
0257dd375d64da978887d0c1e97ab3560d7597ce |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't require LiveVariables for PHIElimination. Enable critical edge splitting when LiveVariables is available. The -split-phi-edges is now gone, and so is the hack to disable it when using the local register allocator. The PHIElimination pass no longer has LiveVariables as a prerequisite - that is what broke the local allocator. Instead we do critical edge splitting when possible - that is when LiveVariables is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89213 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
19194a2f4d58b62e438b2c28f4b42966931cd397 |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a target hook to allow changing the tail duplication limit based on the contents of the block to be duplicated. Use this for ARM Cortex A8/9 to be more aggressive tail duplicating indirect branches, since it makes it much more likely that they will be predicted in the branch target buffer. Testcase coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89187 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
834b08af8d3d8fc6c76ac6ca40674565689e8d7f |
18-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a target hook to allow changing the tail duplication limit based on the contents of the block to be duplicated. Use this for ARM Cortex A8/9 to be more aggressive tail duplicating indirect branches, since it makes it much more likely that they will be predicted in the branch target buffer. Testcase coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89187 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
9321a6db532fd0d5437d854e19e8a9fdc1f59290 |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix inverted test and add testcase from failing self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89167 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
5052c1547ef75f401fd397084831e0bb15311b09 |
18-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix inverted test and add testcase from failing self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89167 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
05930c4f222e11e44989c1040e7b9912e662ad86 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable -split-phi-edges to unbreak the buildbots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89142 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
202344e1240db60afa393198806e75256cde985c |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Disable -split-phi-edges to unbreak the buildbots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89142 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
82ef39981df3f6d75e2ba52517452ff8df4a8415 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never call UpdateTerminator() when AnalyzeBranch would fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89139 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
5493acac6fcc06ef6fa8577bf9f720762d78e870 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never call UpdateTerminator() when AnalyzeBranch would fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89139 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
18f204f62c038bf35ed4887486bd051d60224825 |
17-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a WriteAsOperand for MachineBasicBlock so MachineLoopInfo dump looks sane. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89130 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
2a085c34933a6c76e5a86f2680d93c16b0438801 |
17-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a WriteAsOperand for MachineBasicBlock so MachineLoopInfo dump looks sane. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89130 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
71faf6a347d7bc9076951bf2e317058024d80697 |
17-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89129 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
7adcdc313f8367808a1f43c34ca67a4044595327 |
17-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89129 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
226f307c9fd011e31a1b9194017941265ce644d9 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable -split-phi-edges by default, except when -regalloc=local. The local register allocator doesn't like it when LiveVariables is run. We should also disable edge splitting under -O0, but that has to wait a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89125 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
95a2c8f1d0f29ce2a5ec8c41dac8b406aef88c68 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable -split-phi-edges by default, except when -regalloc=local. The local register allocator doesn't like it when LiveVariables is run. We should also disable edge splitting under -O0, but that has to wait a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89125 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
5da4d89ecae4eb432275e4c186811bbb2116a35b |
17-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Remove a special case for tail merging that seems to be both broken and unnecessary. It is broken because the "isIdenticalTo" check should be negated. If that is fixed, this code causes the CodeGen/X86/tail-opts.ll test to fail, in the dont_merge_oddly function. And, I confirmed that the regression is real -- the generated code is worse. As far as I can tell, that tail-opts.ll test is checking for what this code is supposed to handle and we're doing the right thing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89121 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
aa60ddac394e8d79ecd9700e32b595c115585007 |
17-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Remove a special case for tail merging that seems to be both broken and unnecessary. It is broken because the "isIdenticalTo" check should be negated. If that is fixed, this code causes the CodeGen/X86/tail-opts.ll test to fail, in the dont_merge_oddly function. And, I confirmed that the regression is real -- the generated code is worse. As far as I can tell, that tail-opts.ll test is checking for what this code is supposed to handle and we're doing the right thing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89121 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
4b167eeef90ff3d7c5195ce6f2b1acb4478d522c |
17-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Set MadeChange instead of MadeChangeThisIteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89114 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
37d60fd1427386f68faeb0217ac2034d1acfe486 |
17-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Set MadeChange instead of MadeChangeThisIteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89114 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c9622b2ee6ee8bf9057d5d17bc4b6dc70d8fa874 |
17-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Update a comment, now that tail duplication happens after other branch folding optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89109 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
465c8252f282fda26db6962a81948afce7f01cc2 |
17-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Update a comment, now that tail duplication happens after other branch folding optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89109 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
9cc7b872e96371d21aeff515d9f94e6c11955a07 |
17-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Perform tail duplication only once, after tail merging is complete. It was too difficult to keep the heuristics for merging and duplication consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89105 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
56ea69c3a251434db3fef489881368e29c95712d |
17-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Perform tail duplication only once, after tail merging is complete. It was too difficult to keep the heuristics for merging and duplication consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89105 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
91bbf5ea7a0dd374f65ba1db5a2e868cfa08065c |
17-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 89021. It's miscompiling llvm-gcc driver driver at -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89082 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
9e97f3c2e281b1d5f89da076f37d258e3dec5597 |
17-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 89021. It's miscompiling llvm-gcc driver driver at -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89082 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
58e64e179fc32f88dc3b1b447c6a2225ed22e55f |
17-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from the classes in this directory. Fixes bug 5507. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89075 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.h
|
381afae68f3edd5cca65835003dacd73aca5da55 |
17-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from the classes in this directory. Fixes bug 5507. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89075 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.h
|
ee68f45fe77ad7ce3079eb9e8222075dee099f08 |
17-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r88939. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89066 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5f9843f68fa2941a2c9930aa5cc920c38920f277 |
17-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r88939. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89066 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a9cc7bfa480cba73c84b03353fd134735d8021d4 |
17-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Refactor the code that creates the "dot-label" difference. This may be used in more than one place. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
7378b1bd00033d8be64d388d60a562027cbf953a |
17-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Refactor the code that creates the "dot-label" difference. This may be used in more than one place. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
3bf51602527c76684b69fb21070cdd4ba50edec3 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable -split-phi-edges by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89021 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
2cbe71cdf0550b4d27b4d9e7d61a26d97ca6debe |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable -split-phi-edges by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89021 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
7f9c46ffbb2f96175858d78814fa52a3416ee81e |
17-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove the optimizations that convert BRCOND and BR_CC into unconditional branches or fallthroghes. Instcombine/SimplifyCFG should be simplifying branches with known conditions. This fixes some problems caused by these transformations not updating the MachineBasicBlock CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89017 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e0f06c78d3ee56cea4e7195c616aafc200cb0ba2 |
17-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove the optimizations that convert BRCOND and BR_CC into unconditional branches or fallthroghes. Instcombine/SimplifyCFG should be simplifying branches with known conditions. This fixes some problems caused by these transformations not updating the MachineBasicBlock CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89017 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
16330ea4da1a4eba625c735d6247450b4afe56cd |
16-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Initialize the new AsmPrinterFlags field to 0, fixing uses of uninitialized memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88985 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
834651c94535bfb054449e6c01d5c77ab7a117d3 |
16-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Initialize the new AsmPrinterFlags field to 0, fixing uses of uninitialized memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88985 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4cb32c36830adc6833d7e459e3a8a9f784e235bb |
16-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Revert r88939. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88973 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f76a3d634f85783783d75bf4d8e736b178e4f5e6 |
16-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Revert r88939. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88973 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8450a9090b38c0faf1401326dd7ec95358e995cc |
16-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Sink a #include <map> to where it's actually needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88956 91177308-0d34-0410-b5e6-96231b3b80d8
ntiDepBreaker.h
|
6ac0e76ff4b8e46e45720e3422d43d33d73f4aae |
16-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Sink a #include <map> to where it's actually needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88956 91177308-0d34-0410-b5e6-96231b3b80d8
ntiDepBreaker.h
|
57d7aeffb1f29269aefed5240d6637436676184b |
16-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88953 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
552c0dff3408424404d1e9639a5710207b862964 |
16-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88953 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
|
dceacb2a529c2bcdfd59ed0585684dff24c9054b |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88940 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
4a504c6ff8c3d82e0e220611fbf53b2c9d9acdfd |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88940 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
ac402d8db30d059030a6410a5dbc7bef59c3fa32 |
16-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Add VISIBILITY_HIDDEN marker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88939 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
270a97430d6ac718d0d327ebea659d78df5e97a8 |
16-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Add VISIBILITY_HIDDEN marker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88939 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f4ae3216ba93bd253044cdcbfa7e7645677de6d7 |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88932 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c4a0c843e4c58386b263903ccbef2cdb980821b5 |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88932 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c81c2552bd5410dee67cbf3cb220fbac2ed3c2ac |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Whitespace: be consistent with pointer syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88929 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d34f5d91bc6fdc55085d3c4d509c778d6bcc5f0a |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Whitespace: be consistent with pointer syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88929 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d904455c24c3f96288e950109730e5f3c6e6009f |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Clean up whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88927 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
3cbc3120873242d93e469b4635c0bbd09fdb6438 |
16-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Clean up whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88927 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2e7b993b008be1bcca4cec4803092d876b21595a |
16-Nov-2009 |
David Greene <greened@obbligato.org> |
Support spill comments. Have the asm printer emit a comment if an instruction is a spill or reload and have the spiller mark copies it introdues so the asm printer can also annotate those. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88911 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ddff941357bd836243ed7004ab88db09490176d8 |
16-Nov-2009 |
David Greene <greened@obbligato.org> |
Support spill comments. Have the asm printer emit a comment if an instruction is a spill or reload and have the spiller mark copies it introdues so the asm printer can also annotate those. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88911 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
edf605d92d7e3529548911797e93397b81d1489e |
16-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Check if subreg index is zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88899 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
39aa7251a27735479305b3e7a9629b9c2a6abcc3 |
16-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Check if subreg index is zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88899 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
8a4ccce190f441cf2a178dbe4b74abdbf92221fa |
16-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
For some targets, a copy can use a register multiple times, e.g. ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88895 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
285a7d57dc3c1210eda135fc137928e727175200 |
16-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
For some targets, a copy can use a register multiple times, e.g. ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88895 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
8d0591c3acd4208faff96f90ddfba096e6c20dc3 |
16-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fixes the bug exposed by Anton's test case in PR 5495: Make sure when ProcessImplicitDefs removes a copy which kills its source reg that it removes the copy from said reg's Kills list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88881 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
79ac32de3bdaf8da2213945c808f6ec26cf2a7fa |
16-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fixes the bug exposed by Anton's test case in PR 5495: Make sure when ProcessImplicitDefs removes a copy which kills its source reg that it removes the copy from said reg's Kills list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88881 91177308-0d34-0410-b5e6-96231b3b80d8
rocessImplicitDefs.cpp
|
248a854e1e7ba8c2ab6595e24948dabed45c280e |
16-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fix for the original bug in PR5495 - Look at uses as well as defs when determining the PHI-copy insert point. - Patch by Andrew Canis! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88880 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
b126d0530d48890e1689975483b9f923a0fca1da |
16-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fix for the original bug in PR5495 - Look at uses as well as defs when determining the PHI-copy insert point. - Patch by Andrew Canis! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88880 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
ed6d6e7ec31ebd4b2a7cf8117082bd4395e6bd91 |
15-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added an assert to the PBQP allocator to catch infinite cost solutions which might otherwise lead to miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88829 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
e98b4b0695f727dda44c366f5de906edf06cf7e9 |
15-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added an assert to the PBQP allocator to catch infinite cost solutions which might otherwise lead to miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88829 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
37957d5ea068c53cda4586c3391a66b355cadddf |
14-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Do not merge jump tables this early. Branch folding will do any necessary merges, and until then, it's useful to keep the tables separate for ease of manipulation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88806 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c04cae9c9b420133ff2fc80c183c3fe0449d2ae1 |
14-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Do not merge jump tables this early. Branch folding will do any necessary merges, and until then, it's useful to keep the tables separate for ease of manipulation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88806 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
47387c55bcb1613a65de19780f7fe900253f3c6d |
14-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Add function to replace a destination MBB in a single jump table git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88804 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
68bb60f6a4e0902769f72d1badda4e37cd873ffb |
14-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Add function to replace a destination MBB in a single jump table git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88804 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
5461b52004980be0ec9abac2199abb4371dcfb3f |
14-Nov-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
revert 88761 as it fails builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88762 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9a501cf19dbf1f56f0782ddba4c1931565af9610 |
14-Nov-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
revert 88761 as it fails builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88762 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8bd6558bac94a6e57c6ccb051feed72d7124470a |
14-Nov-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fix debug info crashes for PIC16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88761 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6fb01a7750e3edd73a7fba957e7f55f5956a760d |
14-Nov-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fix debug info crashes for PIC16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88761 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f177bd4187684d81daae0889083f1a17dbea9616 |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added getSubRegIndex(A,B) that returns subreg index of A to B. Use it to replace broken code in VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88753 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
fae3e923452b85e72b2c03dd6eacc063f59d81b1 |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added getSubRegIndex(A,B) that returns subreg index of A to B. Use it to replace broken code in VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88753 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
a88d1acbaefb5416a147dcdd2199bb43ab70983d |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Change TargetInstrInfo::reMaterialize to pass in TargetRegisterInfo. - If destination is a physical register and it has a subreg index, use the sub-register instead. This fixes PR5423. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88745 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
d57cdd5683ea926e489067364fb7ffe5fd5d35ee |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Change TargetInstrInfo::reMaterialize to pass in TargetRegisterInfo. - If destination is a physical register and it has a subreg index, use the sub-register instead. This fixes PR5423. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88745 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
5da2b872edfc21b7483158f064a9f98636302c78 |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5412: Fix an inverted check and another missing sub-register check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88738 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
8fdd84cfa74e248394a8f5049e7478bf2535a150 |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5412: Fix an inverted check and another missing sub-register check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88738 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
c0c961121927e428d6279512dd45c634aafd1593 |
14-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Enable the tail call optimization when the caller returns undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88737 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ed9bab3b4da0a5c5581fdd477c19c02420dd2fc7 |
14-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Enable the tail call optimization when the caller returns undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88737 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
257ed14adea832ee52d55613bd9f8ce3d2a8f43d |
14-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix bug in -split-phi-edges. When splitting an edge after a machine basic block with fall-through, we forgot to insert a jump instruction. Fix this by calling updateTerminator() on the fall-through block when relevant. Also be more precise in PHIElimination::isLiveIn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88728 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
3b6ced15108909de2fab0766fc693fe66c48ab68 |
14-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix bug in -split-phi-edges. When splitting an edge after a machine basic block with fall-through, we forgot to insert a jump instruction. Fix this by calling updateTerminator() on the fall-through block when relevant. Also be more precise in PHIElimination::isLiveIn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88728 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
4e3a74162079124f41f7b17b28d8c2e96ce76a16 |
14-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update MachineDominator information git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88727 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
9aebb61daf4d787aa7dcff9e3caa89bac88e11d1 |
14-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update MachineDominator information git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88727 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
0f1c0cea5912f6b4297d4557b5d13f5d1d39f522 |
14-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added an API to the SlotIndexes pass to allow new instructions to be inserted into the numbering. PreAllocSplitting is now using this API to insert code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88725 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
lotIndexes.cpp
piller.cpp
|
b3661585c0f87b6045f0d65b5cac16921ae27086 |
14-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added an API to the SlotIndexes pass to allow new instructions to be inserted into the numbering. PreAllocSplitting is now using this API to insert code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88725 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
lotIndexes.cpp
piller.cpp
|
02406c496c6b5242eeb2d3d623d0cf50193f30e7 |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5411. Bug in UpdateKills. A reg def partially define its super-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88719 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
1f6a3c820a997fd3c4c08dedff6706f5e045e42d |
14-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5411. Bug in UpdateKills. A reg def partially define its super-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88719 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
abb5622f9edb5b9a82ac2b0b93031a30c5b358e0 |
13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PHIElimination optimization that uses MBB->getBasicBlock. The BasicBlock associated with a MachineBasicBlock does not necessarily correspond to the code in the MBB. Don't insert a new IR BasicBlock when splitting critical edges. We are not supposed to modify the IR during codegen, and we should be able to do just fine with a NULL BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88707 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
1222287543a5b5917f8c31aa8c88d740f70222d9 |
13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PHIElimination optimization that uses MBB->getBasicBlock. The BasicBlock associated with a MachineBasicBlock does not necessarily correspond to the code in the MBB. Don't insert a new IR BasicBlock when splitting critical edges. We are not supposed to modify the IR during codegen, and we should be able to do just fine with a NULL BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88707 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
9fea16565f83b155fcd7edc5faa8ef7b1a7dfea1 |
13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineFunction::verify() to call the machine code verifier directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88706 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ce727d0da006ca59bbd8c9ddc86e2fa71217d293 |
13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineFunction::verify() to call the machine code verifier directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88706 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
14b7fce7a45ed35c18811033e25a200a53ad49e1 |
13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix polarity of a CFG check in machine verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88704 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1dc0fcbaed01ed6510f067bc408f8bd2efd8ac68 |
13-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix polarity of a CFG check in machine verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88704 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a5d3935ad09cafa5d8fe40f1b65ab398e4e7b0e4 |
13-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Use .data() instead of .c_str() when nul-termination is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88703 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
24f8e29b4efe70496474c6d43aa6abfa27c21511 |
13-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Use .data() instead of .c_str() when nul-termination is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88703 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ca9b04ba02e321977d03e79a5bbd4c95eb23a0d8 |
13-Nov-2009 |
David Greene <greened@obbligato.org> |
Move DebugInfo checks into EmitComments and remove them from target-specific AsmPrinters. Not all comments need DebugInfo. Re-enable the line numbers comment test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88697 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1924aabf996be9335fab34e7ee4fa2aa5911389c |
13-Nov-2009 |
David Greene <greened@obbligato.org> |
Move DebugInfo checks into EmitComments and remove them from target-specific AsmPrinters. Not all comments need DebugInfo. Re-enable the line numbers comment test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88697 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cd6a8e23207f276f915f20cad9f3905a862df5d9 |
13-Nov-2009 |
Dan Gohman <gohman@apple.com> |
When optimizing for size, don't tail-merge unless it's likely to be a code-size win, and not when it's only likely to be code-size neutral, such as when only a single instruction would be eliminated and a new branch would be required. This fixes rdar://7392894. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88692 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c4c550c7584b3240bda71d4339ec49c1cf731d55 |
13-Nov-2009 |
Dan Gohman <gohman@apple.com> |
When optimizing for size, don't tail-merge unless it's likely to be a code-size win, and not when it's only likely to be code-size neutral, such as when only a single instruction would be eliminated and a new branch would be required. This fixes rdar://7392894. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88692 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
5cec5f651fae320adef8d66650851fa86587a88d |
13-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5410: LiveVariables lost subreg def: D0<def,dead> = ... ... = S0<use, kill> S0<def> = ... ... D0<def> = The first D0 def is correctly marked dead, however, livevariables should have added an implicit def of S0 or we end up with a use without a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88690 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
236490d870c2734203ecf26c8f104d0b3283e69e |
13-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5410: LiveVariables lost subreg def: D0<def,dead> = ... ... = S0<use, kill> S0<def> = ... ... D0<def> = The first D0 def is correctly marked dead, however, livevariables should have added an implicit def of S0 or we end up with a use without a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88690 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
e6e30350b685bd4c9eddf4a88cb5dac41ee61eb8 |
13-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow target to specify regclass for which antideps will only be broken along the critical path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88682 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ostRASchedulerList.cpp
|
87d21b92fc42f6b3bd8567a83fc5b5191c1205e5 |
13-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow target to specify regclass for which antideps will only be broken along the critical path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88682 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ostRASchedulerList.cpp
|
3510e118fbdf09887c4b804f1eba0cb62a2d3493 |
13-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Don't let a noalias difference disrupt the tailcall optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
01205a80f5c789234029813f8c09488891c0b23e |
13-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Don't let a noalias difference disrupt the tailcall optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ab9a0687312516700d6aae598e894db4560a48b0 |
13-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Ignore nameless variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87069 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3fb6bd690a5919ec78777508e184e3538b6d51b0 |
13-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Ignore nameless variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87069 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
48fd1e4422178b0f4989d6c06fc8abfb5b9fd12d |
13-Nov-2009 |
Dale Johannesen <dalej@apple.com> |
Adjust isConstantSplat to allow for big-endian targets. PPC is such a target; make it work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1e608819aa26c06b1552521469f2211339e3bfe0 |
13-Nov-2009 |
Dale Johannesen <dalej@apple.com> |
Adjust isConstantSplat to allow for big-endian targets. PPC is such a target; make it work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5b8472da2572659b4ed6b9c4bef4b71ca2d1626f |
13-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify code a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87040 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ecc260e403d09ba04ed87d2d04226ac851c68e5a |
13-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify code a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87040 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
7354a3e048bb8ca2281d38778368bfbbfb05c2b6 |
12-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Refactor code that checks if it's a call to a "nounwind" function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87036 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
ed060dcb5c7e9cb2fd11ff3b0b98203fb53063e7 |
12-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Refactor code that checks if it's a call to a "nounwind" function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87036 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
9b5fbf226159fc889516396ec979f408a182c136 |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Do some cleanups suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87034 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
b3bc115a2414a922caa40d5536d8a35ca54e40e3 |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Do some cleanups suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87034 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
0fb68ff9424b68ae0d41d9d58372f9075a35b2c1 |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Set the ReloadReuse AsmPrinter flag where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87030 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
6bedb302209b3d57805b7306847b4ca3366d8a26 |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Set the ReloadReuse AsmPrinter flag where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87030 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
3824bc8f0c4ba2970f9100e871692e389351fa55 |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87024 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
bf4af353edd2da1d7f2ed0b22238a8d2c038f5cf |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87024 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
e32637bcbd717a8233de28566aeaa0b2db1d659b |
12-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
If there's more than one function operand to a call instruction, be conservative and don't assume that the call doesn't throw. It would be nice if there were a way to determine which is the callee and which is a parameter. In practice, the architecture we care about normally only have one operand for a call instruction (x86 and arm). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87023 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ac18929801f1789d3f735733011541b19a205196 |
12-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
If there's more than one function operand to a call instruction, be conservative and don't assume that the call doesn't throw. It would be nice if there were a way to determine which is the callee and which is a parameter. In practice, the architecture we care about normally only have one operand for a call instruction (x86 and arm). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87023 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
6424ab9738972c0a9d5f588c59645f85782cf68c |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87022 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
irtRegMap.cpp
|
3f2bf85d14759cc4b28a86805f566ac805a54d00 |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87022 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
irtRegMap.cpp
|
ea862b03de56f3746e10b93b4aaea3f5c781fd21 |
12-Nov-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add compare_lower and equals_lower methods to StringRef. Switch all users of StringsEqualNoCase (from StringExtras.h) to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
05872ea804cdc9534960b30d28a391928c61481a |
12-Nov-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add compare_lower and equals_lower methods to StringRef. Switch all users of StringsEqualNoCase (from StringExtras.h) to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5b11c7069ffa39e6276b66d9dbf91ecd3844f286 |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Make FixedStackPseudoSourceValue a first-class PseudoSourceValue by making it visible to clients and adding LLVM-style cast capability. This will be used by AsmPrinter to determine when to emit spill comments for an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87019 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
cf62632d835313b720b68669bd1e5682d4d52d0d |
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Make FixedStackPseudoSourceValue a first-class PseudoSourceValue by making it visible to clients and adding LLVM-style cast capability. This will be used by AsmPrinter to determine when to emit spill comments for an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87019 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
1f708fd24678e7f44057dd08643f78dd1541aa5a |
12-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Rename registers to break output dependencies in addition to anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87015 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
|
12dd99dc308150a6beff32aafc824e1d6fec1139 |
12-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Rename registers to break output dependencies in addition to anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87015 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
|
4a7ef8dcbe4c986ba7f4267b56d4779567bc91ff |
12-Nov-2009 |
Devang Patel <dpatel@apple.com> |
"Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87014 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
70d75ca3107ce05bc30ad3511aa669b9fab5eb90 |
12-Nov-2009 |
Devang Patel <dpatel@apple.com> |
"Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87014 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
cdac8bdcab6df408da67ef9f8a32a6298a8a523c |
12-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
RegScavenger::enterBasicBlock should always reset register state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86972 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
60f90618203290f628f295510b8962c1bedd74da |
12-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
RegScavenger::enterBasicBlock should always reset register state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86972 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
04e67d0e2a2d7bcde1028998b06990c935dd95b2 |
12-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Move the utility function UpdateTerminator() from CodePlacementOpt() into MachineBasicBlock so other passes can utilize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86947 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
achineBasicBlock.cpp
|
7707a0df5b00c8326a581205639d6b2871f182e9 |
12-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Move the utility function UpdateTerminator() from CodePlacementOpt() into MachineBasicBlock so other passes can utilize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86947 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
achineBasicBlock.cpp
|
b53550dee876b4de5472e30c701034694d0e5d24 |
12-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Make the BranchFolderPass class local to BranchFolding.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86928 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
72b2990a7495b9df89e151eb711c1e7abdd5f2e5 |
12-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Make the BranchFolderPass class local to BranchFolding.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86928 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
7f14744c3d06ad94c6a47e1258e73d724b81a2b6 |
12-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Minor code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86926 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8520149db158427339a235a74dd2cc19553a7328 |
12-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Minor code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86926 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2df5c60d9171a173f7bad2e3d53c8c35c85b96d5 |
12-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fixed an iteration condition in PreAllocSplitting. This should fix some miscompilations casued by PreAllocSplitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86919 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f035ce58bcf66c45d7a956668ae950f1eeeb8b20 |
12-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fixed an iteration condition in PreAllocSplitting. This should fix some miscompilations casued by PreAllocSplitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86919 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
08982a392a0eaba71c37087eb53b071aa29b55e8 |
12-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Tail merge at any size when there are two potentials blocks and one can be made to fall through into the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86909 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
ad6af45dc172fe23801771200eabb6a7f764e2cb |
12-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Tail merge at any size when there are two potentials blocks and one can be made to fall through into the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86909 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d225fdf94c2b6eeed4f5511a134750cf6970b377 |
12-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't mark a call as potentially throwing if the function it's calling has the "nounwind" attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86897 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
73b55510585573cd37fca85864c8d7d73e6b4093 |
12-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't mark a call as potentially throwing if the function it's calling has the "nounwind" attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86897 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
e7bfb8796a10f92b4749d8c2510437693a8722e7 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Promote MergePotentialsElt and SameTailElt to be regular classes instead of typedefs for std::pair. This simplifies the type of SameTails, which previously was std::vector<std::pair<std::vector<std::pair<unsigned, MachineBasicBlock *> >::iterator, MachineBasicBlock::iterator> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86885 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
ffe644ebf4dcc50b314261ddd2d08c841f629349 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Promote MergePotentialsElt and SameTailElt to be regular classes instead of typedefs for std::pair. This simplifies the type of SameTails, which previously was std::vector<std::pair<std::vector<std::pair<unsigned, MachineBasicBlock *> >::iterator, MachineBasicBlock::iterator> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86885 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
|
cec9c63631255076665e2adec25fc785e6945e34 |
11-Nov-2009 |
Kenneth Uildriks <kennethuil@gmail.com> |
x86 users can now return arbitrary sized structs. Structs too large to fit in return registers will be returned through a hidden sret parameter introduced during SelectionDAG construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
c158dde21944f2dc016d8d34b46e301d61243ca2 |
11-Nov-2009 |
Kenneth Uildriks <kennethuil@gmail.com> |
x86 users can now return arbitrary sized structs. Structs too large to fit in return registers will be returned through a hidden sret parameter introduced during SelectionDAG construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
36f0ea91aca18d364fde01604ebb6b1de21331b0 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Revert this line of 86871. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86875 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7cc253e3b85b27540bbc91b8331e06e7a65fbc4c |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Revert this line of 86871. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86875 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
1b4d683a5818182cbb69cd3e4b2e7a7585cdefc3 |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
If doesSupportDebugInformation() is false then do not try to emit dwarf debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86874 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
3380cc530702a0df90e6e287069bd65c28085337 |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
If doesSupportDebugInformation() is false then do not try to emit dwarf debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86874 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
47faa8df5d82bb3a11b334b589cf957ebc1e43a5 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Check in the changes to this file too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86873 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.h
|
412a3b90d1f4f1ad42c6c0e7e4e596f7ab688cb7 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Check in the changes to this file too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86873 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.h
|
6638ea7611f1fa8da067372147aa7bbec6d2e562 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Add support for tail duplication to BranchFolding, and extend tail merging support to handle more cases. - Recognize several cases where tail merging is beneficial even when the tail size is smaller than the generic threshold. - Make use of MachineInstrDesc::isBarrier to help detect non-fallthrough blocks. - Check for and avoid disrupting fall-through edges in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86871 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
2210c0bea83aa8a8585d793a1f63e8c01b65be38 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Add support for tail duplication to BranchFolding, and extend tail merging support to handle more cases. - Recognize several cases where tail merging is beneficial even when the tail size is smaller than the generic threshold. - Make use of MachineInstrDesc::isBarrier to help detect non-fallthrough blocks. - Check for and avoid disrupting fall-through edges in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86871 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
409558d2c4f941068e3d00eed5e0242ddeb90fba |
11-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix liveness calculation when splitting critical edges during PHI elimination. - Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86867 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
3e20475feebca3bfb29375ac7f3e5acbeb2a95c8 |
11-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix liveness calculation when splitting critical edges during PHI elimination. - Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86867 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
0fc27d2431b70c05018c84432f6bbc13ea28cf91 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix indentation level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86856 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
cdc06ba5dfdded6cdc48061d36b63b807962ab31 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix indentation level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86856 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7a6aa7b82c2ce16ee86ffb5e0ccd3b6007922397 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86855 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
4e3f125e184f96ae72f2c44d16cafe0d44158283 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86855 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
aa4f4fa4cae85ae252660d03d9af0b4ebe596169 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Prefix MBB numbers with "BB#" in debug output to make it clear what the numbers mean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86854 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a127edceae2a0097133e9f032e759f9d15f92b7e |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Prefix MBB numbers with "BB#" in debug output to make it clear what the numbers mean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86854 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a0045b0723b852027e2a6cf3fe8a0876a7e06280 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86853 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d194498d2669e28cd8e85b0ceb7c69a7ec66da13 |
11-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86853 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c9f2d2426db8ea833e540eeb26ac3e25f1741e4a |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86794 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c032679d3ef57246a472cd49e2c884d0345e9ff2 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86794 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6c9df2b8d4ebb458bf3bd6088f0b9be26b2abc86 |
11-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Make sure that the exception handling data has the same visibility as the function it's generated for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ee161a68240dfe7e28fdc45d5595380a3ec3b9c8 |
11-Nov-2009 |
Bill Wendling <isanbard@gmail.com> |
Make sure that the exception handling data has the same visibility as the function it's generated for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ce8986f9627a92ccebb067284b3cf4092d737149 |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not assume first function scope seen represents current function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
39ae3ff6d13ef71d0f0ecc8499b49935355508af |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not assume first function scope seen represents current function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
53addbf446f848c0f165e5d2cbaca31fff796b36 |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
While creating DbgScopes, do not forget parent scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
2f105c6e18b1cf0507be74dd03779b675d254a30 |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
While creating DbgScopes, do not forget parent scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bad42264107804ba40844000f12d9e0a23ea563b |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Ignore variable if scope info is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86753 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fb0ee43438d674213490afbeeaccba8052287f31 |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Ignore variable if scope info is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86753 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8b8c35b2d8a380c7ce06cce6618bb5875f5c5294 |
11-Nov-2009 |
Dale Johannesen <dalej@apple.com> |
Emit correct code when making a ConstantPool entry for a vector constant whose component type is not a legal type for the target. (If the target ConstantPool cannot handle this type either, it has an opportunity to merge elements. In practice any target with 8-bit bytes must support i8 *as data*). 7320806 (partial). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9a645cd9d4c0e7d25e4b8836ed31deb5881c8101 |
11-Nov-2009 |
Dale Johannesen <dalej@apple.com> |
Emit correct code when making a ConstantPool entry for a vector constant whose component type is not a legal type for the target. (If the target ConstantPool cannot handle this type either, it has an opportunity to merge elements. In practice any target with 8-bit bytes must support i8 *as data*). 7320806 (partial). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
90a0fe3bd6043f897285b967b196f6ab26dfdcae |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Implement support to debug inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86748 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
53bb5c95afe4ff2627cac513221af2e4e7c5d2e3 |
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Implement support to debug inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86748 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
be9cdbf981991737b49e4474701e820bc881cbfd |
10-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach PHIElimination to split critical edges when -split-phi-edges is enabled. Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86725 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
f235f13931835b3335f3f2ff2d3060381b93626c |
10-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach PHIElimination to split critical edges when -split-phi-edges is enabled. Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86725 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
HIElimination.h
|
4e45f87bcb425c0f18e92f80eac28a2dbc6be555 |
10-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refactoring: Extract method PHIElimination::isLiveOut(). Clean up some whitespace. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86724 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
e35e3c33dc5533dd1e8ab7d9f4039cc1429d56aa |
10-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refactoring: Extract method PHIElimination::isLiveOut(). Clean up some whitespace. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86724 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
bb0ae064da8981a29f17d289d341d6fa981e2976 |
10-Nov-2009 |
Duncan Sands <baldrick@free.fr> |
Codegen support for the llvm.invariant/lifetime.start/end intrinsics: just throw them away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86678 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
f07c9497b2ad030457c9314db5bfb8b0b204a0da |
10-Nov-2009 |
Duncan Sands <baldrick@free.fr> |
Codegen support for the llvm.invariant/lifetime.start/end intrinsics: just throw them away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86678 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
91f5efc47691a931743775b97103f84879d121e5 |
10-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86642 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7071528e4e1879b67d043e6058b758f17ae7ac1b |
10-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86642 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
9b3225207423344cbac9fa367c077055d0cdeaf9 |
10-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86641 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b2e40990c40999804f0f28650685c4af18e4c261 |
10-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86641 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8154d2e023fe3137363f8bbc9dae2dff7188dccb |
10-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix DenseMap iterator constness. This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86636 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
reAllocSplitting.cpp
lotIndexes.cpp
|
81cf4325698b48b02eddab921ac333c7f25005c3 |
10-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix DenseMap iterator constness. This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86636 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
reAllocSplitting.cpp
lotIndexes.cpp
|
2a0ca3b82e4e78705e37f2b3d9092bc9767b8306 |
10-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fixed to address code review. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86634 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
c2e8a7e8d2ab156afaa8ab0d0317dd9ee3db7d30 |
10-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fixed to address code review. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86634 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
526dd742a7832e90f52ac99c24a4370d3d98d347 |
10-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow targets to specify register classes whose member registers should not be renamed to break anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86628 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ostRASchedulerList.cpp
|
0855dee564f80160abf95497475306af38ab7f84 |
10-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow targets to specify register classes whose member registers should not be renamed to break anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86628 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ostRASchedulerList.cpp
|
de65e53debdf767545ba31e5bb8f2fd7095f9e8f |
09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove an unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ba565bfc2117b401ecd55631fb3e4e6428a62a5c |
09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove an unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0dd119b2f1709f252b0ba64f6966bc2077f14ac8 |
09-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fix for 64-bit builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
70e5e6834cb5065186f82c3a459681f3f22cd1e0 |
09-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fix for 64-bit builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
80164f2cd037e165924e023aa3a8b8b9b533e8f7 |
09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Print "..." instead of all the uninteresting register clobbers on call instructions. This makes CodeGen dumps significantly less noisy. Example before: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead> Same example after: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86583 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
80f6c5898113806130975fd56d24929b06bf54f8 |
09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Print "..." instead of all the uninteresting register clobbers on call instructions. This makes CodeGen dumps significantly less noisy. Example before: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead> Same example after: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86583 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1eb5ad3173bac40e253c4bd8346745a0b9d35217 |
09-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix dependencies added to model memory aliasing for post-RA scheduling. The dependencies were overly conservative for memory access that are known not to alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86580 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
980d494ab6ba3c812194f5cbc14992fa35dcc976 |
09-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix dependencies added to model memory aliasing for post-RA scheduling. The dependencies were overly conservative for memory access that are known not to alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86580 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
a39e7acd54fdc09f0b8b3db176a4fbf53c1679a1 |
09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Constify MachineFunctionAnalysis' TargetMachine reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86564 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
28a4c786219861534a0ad321a3a31d2465d769d9 |
09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Constify MachineFunctionAnalysis' TargetMachine reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86564 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
48ac7b971f7e6cbd60c4d1c70663cb0d328cacf2 |
09-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Hide a couple of options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86522 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
electionDAG/SelectionDAGISel.cpp
|
df8ed024735b651d6e0082262d4e7a00b2fa4d32 |
09-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Hide a couple of options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86522 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
electionDAG/SelectionDAGISel.cpp
|
a241af8f12c65c26a4a631c3428cc7daefed4318 |
09-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86521 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
63040ce85813f4251af7d7a5660f267366360ece |
09-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86521 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
2a7f8c576a1490e1b2cc6bc04b5c8333435902bd |
08-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Moved some ManagedStatics out of the SlotIndexes header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86446 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
16dcaf59960d699735a57b1623092d561c18a165 |
08-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Moved some ManagedStatics out of the SlotIndexes header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86446 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
0e459b4d02c73518bf209236d7e406259e56408e |
07-Nov-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add 8 bit libcalls and make use of them for msp430 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
8983da729aa1ca99a11a3b98ae6280dfcdbadb39 |
07-Nov-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add 8 bit libcalls and make use of them for msp430 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
87c965591afc72dca6b805427a322cd5adf40d11 |
07-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR5421 by APInt'izing switch lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86354 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
e880efe446f731b73558542c12a6f980b8baa765 |
07-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR5421 by APInt'izing switch lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86354 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
a1c6ba05e0a2b1e604f2cae702a60cf8e568d40b |
07-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Update some globals to use ManagedStatic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86342 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
d6ef7fac1a020c58ec61cad2325e5f6afd0bbee6 |
07-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Update some globals to use ManagedStatic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86342 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
e6f60f14e1adc950bfd1529325db1acedf9cf97e |
07-Nov-2009 |
Mon P Wang <wangmp@apple.com> |
Fix memoizing of CvtRndSatSDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bdea34807aadf7a27ebaf1b7c5b7c199afda3e91 |
07-Nov-2009 |
Mon P Wang <wangmp@apple.com> |
Fix memoizing of CvtRndSatSDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
626474d3ddba098f44d1a372314418a63c152540 |
07-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Add TargetInstrInfo::isIdentical(). It's similar to MachineInstr::isIdentical 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86328 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
argetInstrInfoImpl.cpp
|
78e5c1140adc926e7c004748c1c912bfddd875b4 |
07-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Add TargetInstrInfo::isIdentical(). It's similar to MachineInstr::isIdentical 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86328 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
argetInstrInfoImpl.cpp
|
87d0426c569d606dca1d32dc23cae9dee245fc76 |
07-Nov-2009 |
Kenneth Uildriks <kennethuil@gmail.com> |
Add code to check at SelectionDAGISel::LowerArguments time to see if return values can be lowered to registers. Coming soon, code to perform sret-demotion if return values cannot be lowered to registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGBuild.cpp
|
b4997aeab74934ffa6fc0409afc4d8704245e372 |
07-Nov-2009 |
Kenneth Uildriks <kennethuil@gmail.com> |
Add code to check at SelectionDAGISel::LowerArguments time to see if return values can be lowered to registers. Coming soon, code to perform sret-demotion if return values cannot be lowered to registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGBuild.cpp
|
d1332dcf1421bd9a7b2e9527056cb1934aea041c |
07-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix inverted conflict test in -early-coalesce. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86322 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3de23e6f6cf337451a0934159da494d645b93133 |
07-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix inverted conflict test in -early-coalesce. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86322 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cda028f643df712e635d48b9f19af6e5dad2cd54 |
06-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix comment typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c0ef244499a97ba4f411456fe5d65deb79d51ba7 |
06-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix comment typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86295 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
400718724c2abc7eab43ccf09a4e970a23846017 |
06-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Use WriteAsOperand to print GlobalAddress MachineOperands. This prints them with the leading '@'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86261 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8d4e3b5b48b245ed65259270a53fcaf0bf91d9f7 |
06-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Use WriteAsOperand to print GlobalAddress MachineOperands. This prints them with the leading '@'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86261 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
83e42c7163cc29cf8afd36082164ffb8a2e4b454 |
06-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not bother to emit debug info for nameless global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86259 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
84c73e9b8234287c4521e6d7e27c15e77843489e |
06-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not bother to emit debug info for nameless global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86259 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fabc47c0671013d23e636704db0fb6a34e106615 |
06-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not try to emit debug info entry for dead global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86212 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
465c3bed165dc76452606ea10a34ae2ef6033e8a |
06-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Do not try to emit debug info entry for dead global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86212 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bbc43963b76f8e54e6cee47defde4868586665fd |
06-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Factor out the printing of the leading tab into printInlineAsm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86199 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
40c57860dad429d3c938ed5f918c2c66f3b5fa72 |
06-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Factor out the printing of the leading tab into printInlineAsm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86199 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ff592eced3d70159de10c5a3837e0d0fee7edb8f |
06-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix the label name generation for address-taken labels to avoid potential problems with name collisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86189 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
568a3be545dd1ad256af69549d9b95df474bfd8f |
06-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix the label name generation for address-taken labels to avoid potential problems with name collisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86189 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0d1cb01d2bfeba381f2df9e1295403c8f44527d6 |
05-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added support for renumbering existing index list elements. Removed some junk from the initial numbering code in runOnMachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86184 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
fbb8fa247ec13067d9ad3f0c426e2029d15222b2 |
05-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added support for renumbering existing index list elements. Removed some junk from the initial numbering code in runOnMachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86184 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
6c41ba177e160a4c26c6c9c7c49d27cbecf1a94b |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix bug in aggressive antidep breaking; liveness was not updated correctly for regions that do not have antidep candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86172 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
7040d6e2f5d503e9948b9caff940a66238a0c605 |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix bug in aggressive antidep breaking; liveness was not updated correctly for regions that do not have antidep candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86172 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
63e2b7e7ea21976b0922a76e4cd10ebf3a2591ea |
05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Avoid printing a redundant space in SDNode->dump(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c5600c89d61e25f0662847a81af8afbf264caee4 |
05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Avoid printing a redundant space in SDNode->dump(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
38e9090bf172f4eb48f6ec53f5895160515b84a9 |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Replace std::map.at() with std::map[]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86102 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
98f2f1aff8dae1917497b090720c5f5a906ac40b |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Replace std::map.at() with std::map[]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86102 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
36005a2ab57baffb80e841d6d3334c41aa8ddc86 |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Break anti-dependencies using free registers in a round-robin manner to avoid introducing new anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86098 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ostRASchedulerList.cpp
|
54097836f31660bd5e84c34ee8c92d237844315f |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Break anti-dependencies using free registers in a round-robin manner to avoid introducing new anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86098 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ostRASchedulerList.cpp
|
a192bc05ae6122d9b2921cbbb0337db8972961ea |
05-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Now that code placement optimization pass is run for JIT, make sure it's before pre-emit passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86092 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
517e2556e39973ae65f58fad9865eef3a5a0966b |
05-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Now that code placement optimization pass is run for JIT, make sure it's before pre-emit passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86092 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
10aae1b683ac3f55b0f49787927e385cfe2cd706 |
05-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86085 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9fb744e16945390d6ff0a631d4ad7637fec5b7b1 |
05-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86085 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c466871dfda63d07da52ca2d87279c33a1db2eca |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Correctly add chain dependencies around calls and unknown-side-effect instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86080 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
5be870add97c52862285eddaf950c806a3fa076b |
05-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Correctly add chain dependencies around calls and unknown-side-effect instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86080 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
71842a96a0af9476bb92a29534509e04f02a835d |
05-Nov-2009 |
Devang Patel <dpatel@apple.com> |
While calculating original type size for a derived type, handle type variants encoded as DIDerivedType appropriately. This improves bitfield support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86073 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
61ecbd196c0128abb8c588aebc456ed96cdf1d63 |
05-Nov-2009 |
Devang Patel <dpatel@apple.com> |
While calculating original type size for a derived type, handle type variants encoded as DIDerivedType appropriately. This improves bitfield support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86073 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7d9fe58ac9c54287f9894c61e361af13e6690300 |
04-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Fix DW_AT_data_member_location for bit-fields. It points to the location of annonymous field that covers respective field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86054 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
33db5082836bfe6257f9a36e16aecb062076837d |
04-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Fix DW_AT_data_member_location for bit-fields. It points to the location of annonymous field that covers respective field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86054 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
13d4167715408b029b52ca88437321f306b057df |
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Handle empty/tombstone keys for LiveIndex more cleanly. Check for index sanity when constructing index list entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86049 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
0368e500eb7f5f03313e1a7af5b8fa48465c0560 |
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Handle empty/tombstone keys for LiveIndex more cleanly. Check for index sanity when constructing index list entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86049 91177308-0d34-0410-b5e6-96231b3b80d8
lotIndexes.cpp
|
4fc72f071d1541bcc6f6a5d276b728167d53359c |
04-Nov-2009 |
Eric Christopher <echristo@apple.com> |
Add some options to disable various code gen optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86044 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
522c01ac6585604d53172daa970443d1fcaca3b1 |
04-Nov-2009 |
Eric Christopher <echristo@apple.com> |
Add some options to disable various code gen optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86044 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1ff19cf6b084b54e4f04b72f080926a4a37d953c |
04-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Array element size does not match array size but array is not a bitfield. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86043 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c416d3b25df0a2bc7fb431914abe55260d330e48 |
04-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Array element size does not match array size but array is not a bitfield. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86043 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7f251671d1a905be12347721af468b8e31ad9d6e |
04-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out an informative comment for KILL instructions. The KILL pseudo-instruction may survive to the asm printer pass, just like the IMPLICIT_DEF. Print the KILL as a comment instead of just leaving a blank line in the output. With -asm-verbose=0, a blank line is printed, like IMPLICIT?DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86041 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ad68264f590f05db3731a452fc91dc22bc75167d |
04-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out an informative comment for KILL instructions. The KILL pseudo-instruction may survive to the asm printer pass, just like the IMPLICIT_DEF. Print the KILL as a comment instead of just leaving a blank line in the output. With -asm-verbose=0, a blank line is printed, like IMPLICIT?DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86041 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a39f127c957d42f0ce408b00fb5c597fb9f766d1 |
04-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
RangeIsDefinedByCopyFromReg() should check for subreg_to_reg, insert_subreg, and extract_subreg as a "copy" that defines a valno. Also fixes a typo. These two issues prevent a simple subreg coalescing from happening before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86022 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
50608bac2fe1d3eb4753b6acdac06292eae7b980 |
04-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
RangeIsDefinedByCopyFromReg() should check for subreg_to_reg, insert_subreg, and extract_subreg as a "copy" that defines a valno. Also fixes a typo. These two issues prevent a simple subreg coalescing from happening before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86022 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c527ba8dbb651bc60d2ea16990283d8e96e249ed |
04-Nov-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Fix CMake makefiles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85994 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
dece1e217a65268806f63ab95b53fd28b605c0af |
04-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix CMake makefiles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85994 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
d6a717cba117dae9a90a373698f691d9452c9c49 |
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
The Indexes Patch. This introduces a new pass, SlotIndexes, which is responsible for numbering instructions for register allocation (and other clients). SlotIndexes numbering is designed to match the existing scheme, so this patch should not cause any changes in the generated code. For consistency, and to avoid naming confusion, LiveIndex has been renamed SlotIndex. The processImplicitDefs method of the LiveIntervals analysis has been moved into its own pass so that it can be run prior to SlotIndexes. This was necessary to match the existing numbering scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85979 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
lotIndexes.cpp
piller.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
irtRegMap.cpp
irtRegMap.h
|
233a60ec40b41027ff429e2f2c27fa2be762f2e9 |
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
The Indexes Patch. This introduces a new pass, SlotIndexes, which is responsible for numbering instructions for register allocation (and other clients). SlotIndexes numbering is designed to match the existing scheme, so this patch should not cause any changes in the generated code. For consistency, and to avoid naming confusion, LiveIndex has been renamed SlotIndex. The processImplicitDefs method of the LiveIntervals analysis has been moved into its own pass so that it can be run prior to SlotIndexes. This was necessary to match the existing numbering scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85979 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
reAllocSplitting.cpp
rocessImplicitDefs.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
lotIndexes.cpp
piller.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
irtRegMap.cpp
irtRegMap.h
|
24a1825a08acd458d350140f0706f3cbc5bf6a2e |
04-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix branch folding bug for indirect branches: for a block containing only an unconditional branch (possibly from tail merging), this code is trying to redirect all of its predecessors to go directly to the branch target, but that isn't feasible for indirect branches. The other predecessors (that don't end with indirect branches) could theoretically still be handled, but that is not easily done right now. The AnalyzeBranch interface doesn't currently let us distinguish jump table branches from indirect branches, and this code is currently handling jump tables. To avoid punting on address-taken blocks, we would have to give up handling jump tables. That seems like a bad tradeoff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85975 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
888acc35a3e271d092f9b1efc7c32b94ff17fbf7 |
04-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix branch folding bug for indirect branches: for a block containing only an unconditional branch (possibly from tail merging), this code is trying to redirect all of its predecessors to go directly to the branch target, but that isn't feasible for indirect branches. The other predecessors (that don't end with indirect branches) could theoretically still be handled, but that is not easily done right now. The AnalyzeBranch interface doesn't currently let us distinguish jump table branches from indirect branches, and this code is currently handling jump tables. To avoid punting on address-taken blocks, we would have to give up handling jump tables. That seems like a bad tradeoff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85975 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d6cb4521300b5d215e1363b82cdc2fd443c67088 |
03-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 85799. It turns out my code isn't buggy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85947 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
777c6b7caa9bbefe14085bf51e91a0bf21b0b3c0 |
03-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 85799. It turns out my code isn't buggy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85947 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
996892b9ed838e797c1a870e9839dfcd236a5014 |
03-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85939 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
xactHazardRecognizer.cpp
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
|
4de099d8ca651e00fa5fac22bace4f4dba2d0292 |
03-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85939 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
xactHazardRecognizer.cpp
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
|
d078dfc911400195d7d2fc6961f5e684dbb1413c |
03-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
<rdar://problem/7352605>. When building schedule graph use mayAlias information to avoid chaining loads/stores of spill slots with non-aliased memory ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85934 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
a9e610768bad77f400bc763a0011e77aee19053e |
03-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
<rdar://problem/7352605>. When building schedule graph use mayAlias information to avoid chaining loads/stores of spill slots with non-aliased memory ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85934 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
11ac7e7b5d9a4c1ede1e3485ad38eb4ca889918c |
03-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Ignore unnamed variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85909 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1b845976d0662b64bc06a52824ef9a5540486a1e |
03-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Ignore unnamed variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85909 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8ea4690298176786e7a20f69755e5dadaa4f5e98 |
03-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix a funky "declared with greater visibility than the type of its field" warning from gcc by removing VISIBILITY_HIDDEN attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
36d52bf4df4f5c86f2aad1131195b0f47e481836 |
03-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix a funky "declared with greater visibility than the type of its field" warning from gcc by removing VISIBILITY_HIDDEN attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
da8a1abb3dc7f1fde5759ccb0fc0820c4198d94d |
02-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 85799 for now. It might be breaking llvm-gcc driver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85827 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
454ac8961b243afa7c46fce9c28fb4c01650bb3e |
02-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 85799 for now. It might be breaking llvm-gcc driver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85827 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9374f78f5230bcd68f2e8b24d0b975cb86527e76 |
02-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Chain dependencies used to enforce memory order should have latency of 0 (except for true dependency of Store followed by aliased Load... we estimate that case with a single cycle of latency assuming the hardware will bypass) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85807 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
7c9b1ac5073a4988a9ed39aed6cd5a22e6a1c24f |
02-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Chain dependencies used to enforce memory order should have latency of 0 (except for true dependency of Store followed by aliased Load... we estimate that case with a single cycle of latency assuming the hardware will bypass) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85807 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
9a615773ca6289058893e18267c9ce4095cb3656 |
02-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Initilize the machine LICM CSE map upon the first time an instruction is hoisted to the loop preheader. Add instructions which are already in the preheader block that may be common expressions of those that are hoisted out. These does get a few more instructions CSE'ed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85799 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
72ed88feacb989831581f2c71176a68fcdba4b67 |
02-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Initilize the machine LICM CSE map upon the first time an instruction is hoisted to the loop preheader. Add instructions which are already in the preheader block that may be common expressions of those that are hoisted out. These does get a few more instructions CSE'ed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85799 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
87e4592785576c12930d0ffd65b33c7b7d889fc5 |
02-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add PseudoSourceValue::mayAlias. It returns true if the object can ever alias any LLVM IR value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85762 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
f57b1baa441e3bbce7f264d8bb5054e50fe8ee1c |
02-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add PseudoSourceValue::mayAlias. It returns true if the object can ever alias any LLVM IR value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85762 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
70337f0e084c54af2348a7a8aee72a2823c0e5b8 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix a missing newline in the dwarf output code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b953c944b6da99dfbdbc11a8b021c386ad37c332 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix a missing newline in the dwarf output code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
57b31659358cd7ae9cd045ec2ce3019b5adc234a |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make -print-machineinstrs more readable. - Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85682 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
electionDAG/SelectionDAG.cpp
|
0ba90f3e34b826b039bdfece1415ef032c4ad3f5 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make -print-machineinstrs more readable. - Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85682 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineVerifier.cpp
ostRASchedulerList.cpp
electionDAG/SelectionDAG.cpp
|
de4f1504bec844ec60a29d3946ff7257da0c3c50 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Factor out more code into addCommonCodeGenPasses. The JIT wasn't previously running CodePlacementOpt. Also print headers before each dump in -print-machineinstrs mode, so that it's clear which dump is which. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85681 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
499a9377a3dcce85f39f04b2ab39c3dffa3025ef |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Factor out more code into addCommonCodeGenPasses. The JIT wasn't previously running CodePlacementOpt. Also print headers before each dump in -print-machineinstrs mode, so that it's clear which dump is which. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85681 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6d54b9847f98e0dfb58e9c7d13af4cb86a5b0812 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove CodeGenLICM. It's largely obsoleted by MachineLICM's new ability to unfold loop-invariant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85657 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9f476e3179713a1e93bbf634855b85a93f8653cd |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove CodeGenLICM. It's largely obsoleted by MachineLICM's new ability to unfold loop-invariant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85657 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9c98ce3d0b7bca679abebf6c6e2e9f6de6bbb02e |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
When discarding SrcValue information, discard all of it so that code that uses this information knows to behave conservatively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
75832d7d4f23e5151affd167662f0b2c80d0e90d |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
When discarding SrcValue information, discard all of it so that code that uses this information knows to behave conservatively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
509fccf21830e93d117e482fdc5a6b18e183bd3e |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85653 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
60d686df5471f7156a6b8afa5859346272216c56 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85653 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
6de661ad137c60e288bd4626f5817e39fc695e51 |
31-Oct-2009 |
Eric Christopher <echristo@apple.com> |
Fix warning with gcc-4.0 and signed/unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
cdfa666c309ddb3dc655f805fb3d47205c4182d0 |
31-Oct-2009 |
Eric Christopher <echristo@apple.com> |
Fix warning with gcc-4.0 and signed/unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
61b16fbdaeb7617b779fd0df62b32b40cf68a12c |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add assertion checks here to turn silent miscompiles into aborts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85639 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGEmit.cpp
|
1410b7620ac43f236c40d6b6d35034dd357866d4 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add assertion checks here to turn silent miscompiles into aborts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85639 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGEmit.cpp
|
c00047af5603cf63b34c76c740d4a29fd22ff60a |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Don't mark registers dead here when processing nodes with MVT::Flag results. This works around a problem affecting targets which rely on MVT::Flag to handle physical register defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85638 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
4cddfd9b6f2b770c0dce66792b79ac9d18bb0ca3 |
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Don't mark registers dead here when processing nodes with MVT::Flag results. This works around a problem affecting targets which rely on MVT::Flag to handle physical register defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85638 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
f011658a243d918c31627fddaf7ae351f2f19eb6 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix MachineLICM to use the correct virtual register class when unfolding loads for hoisting. getOpcodeAfterMemoryUnfold returns the opcode of the original operation without the load, not the load itself, MachineLICM needs to know the operand index in order to get the correct register class. Extend getOpcodeAfterMemoryUnfold to return this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85622 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
0115e164bad632572e2cfbaf72f0f0882d5319de |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix MachineLICM to use the correct virtual register class when unfolding loads for hoisting. getOpcodeAfterMemoryUnfold returns the opcode of the original operation without the load, not the load itself, MachineLICM needs to know the operand index in order to get the correct register class. Extend getOpcodeAfterMemoryUnfold to return this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85622 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
56c480af03aad91c507eed011fd3977e81225e70 |
30-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Stop the iterator in ValueLiveAt from potentially running off the end of the interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85599 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
788fa17af87dba8836fca691c9028c57ef8fc4fe |
30-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Stop the iterator in ValueLiveAt from potentially running off the end of the interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85599 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
21d49aa0bac191a9c3dc3b7a6fba8805209d1dff |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Don't delete blocks which have their address taken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85572 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
ab918103d284b91105831c6b198ad2ab760b907d |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Don't delete blocks which have their address taken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85572 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8f38bef9785b0d126ffac7a6dbe9050daff1a786 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Mention if a block has its address taken in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85571 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
dfbbf6e0232315b79805f13baab06828de24e558 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Mention if a block has its address taken in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85571 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
1995be14a415ae124e42dec505a9c5fa6f83a8d1 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add support for BlockAddress static initializers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85562 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6a55e62996e1f7223ecab0f26216a2f32e8ae7e4 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add support for BlockAddress static initializers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85562 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d8e273feafff0c64aac1587298390f0a91f147af |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85559 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6ae5b32e487c24f723f262eb989475a2e12eb951 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85559 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
65e3b3e189325686c5cb6b38e9cf6446d5fb9952 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85558 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b1cac33856687715bf8db3860ff55ad2f6ca94b5 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85558 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9105751c7ce64082e5769142e14b0c65cd06bb0a |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Initial target-independent CodeGen support for BlockAddresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85556 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
achineInstr.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
8c2b52552c90f39e4b2fed43e309e599e742b6ac |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Initial target-independent CodeGen support for BlockAddresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85556 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineBasicBlock.cpp
achineInstr.cpp
electionDAG/InstrEmitter.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
fffff4408557f721ab7ff680bcdcca2c2534aaae |
30-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Between scheduling regions, correctly maintain anti-dep breaking state so that we don't incorrectly rename registers that span these regions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85537 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
5b3c308970f9fe1f6a2e0df265dcd40ea8ad50a8 |
30-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Between scheduling regions, correctly maintain anti-dep breaking state so that we don't incorrectly rename registers that span these regions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85537 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
|
438d4105eeb47c5bc1c5e5464b47a3df46ff2bbd |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove some unnecessary spaces in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6c1de1830b233e61f6f122923ba5bcf3c81dc288 |
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove some unnecessary spaces in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b65e3acb4a07cbc809bc22fbc67675c7233d0f79 |
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Move some code from being emitted as boilerplate duplicated in every *ISelDAGToDAG.cpp to being regular code in SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85530 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e1f188fe27050ec812e5b64cc996e6bb93300392 |
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Move some code from being emitted as boilerplate duplicated in every *ISelDAGToDAG.cpp to being regular code in SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85530 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e2471f2abaa8edb55f5d8252cab8fe08ef09618f |
29-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix a couple of bugs in aggressive anti-dep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85522 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
67a8a7b3bd5afefc8057e365bd5f5c7330b3dd1a |
29-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix a couple of bugs in aggressive anti-dep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85522 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
|
4b7a76d7d57c0140e80d5e3f74d929fc909aa8b5 |
29-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor complicated predicate into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85519 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7b888b8ad07cccec099634bc838eed5da3f336b1 |
29-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor complicated predicate into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85519 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
30afe01e7ef78e1d2c01c924161ebe53bf02a3de |
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename usesCustomDAGSchedInserter to usesCustomInserter, and update a bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
|
533297b58da8c74bec65551e1aface9801fc2259 |
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename usesCustomDAGSchedInserter to usesCustomInserter, and update a bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
electionDAG/SelectionDAGISel.cpp
|
5e0e60ac697c23819629d0fb2cc8a04bcfe1cf75 |
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Refactor the code for unfolding a load into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85515 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
5c95230f25a51835375ebaae77b841c6d2c57889 |
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Refactor the code for unfolding a load into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85515 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
3c91dd9cb7e0acb0b92309cbf8b3c75a469ff18b |
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Reapply r85338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85514 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
a33ac6a4c18b51888bc8fd8c36b7d5cbe561161f |
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Reapply r85338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85514 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
1ba150df4bd9907b5820fb1d805aa8e4e6a0a0b0 |
29-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
When the function is doing dynamic stack realignment, the spill slot will be indexed via the stack pointer, even if a frame pointer is present. Update the heuristic to place it nearest the stack pointer in that case, rather than nearest the frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85474 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
f2ce516828ed6b04bad5132a13c8e228d9a0b117 |
29-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
When the function is doing dynamic stack realignment, the spill slot will be indexed via the stack pointer, even if a frame pointer is present. Update the heuristic to place it nearest the stack pointer in that case, rather than nearest the frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85474 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
12d5a3225f1a26113673727170f9552622525325 |
29-Oct-2009 |
Dale Johannesen <dalej@apple.com> |
When there is a 2-instruction spill sequence, record the second (store) instruction in SpillSlotToUsesMap consistently. I don't think this matters functionally, but it's cleaner and Evan wants it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85463 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
78c5cdaf2a24c9d2b5c89fdb5d66fd6ca3b5654b |
29-Oct-2009 |
Dale Johannesen <dalej@apple.com> |
When there is a 2-instruction spill sequence, record the second (store) instruction in SpillSlotToUsesMap consistently. I don't think this matters functionally, but it's cleaner and Evan wants it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85463 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
ef486b10571f71e53fe3281aec3abdb3446c5245 |
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't put in these EH changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85460 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
|
8bedf97f683bd5edb9308799a5e525de137d635c |
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't put in these EH changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85460 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
|
6577d404c19a0a80b13e358dd72b0c1b022b06c1 |
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Reverting r85338 for now. It's causing a bootstrap failure on PPC darwin9. --- Reverse-merging r85338 into '.': U lib/CodeGen/SimpleRegisterCoalescing.cpp U lib/CodeGen/SimpleRegisterCoalescing.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85454 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
f58898fd41a61d8f02657c3ecddb085c39c0d773 |
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Reverting r85338 for now. It's causing a bootstrap failure on PPC darwin9. --- Reverse-merging r85338 into '.': U lib/CodeGen/SimpleRegisterCoalescing.cpp U lib/CodeGen/SimpleRegisterCoalescing.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85454 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
LVMTargetMachine.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
e84c212b3cf2616caf6284d522b5fccdd95cbc8e |
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Reimplement BranchFolding change to avoid tail merging for a 1 instruction common tail, except when the OptimizeForSize function attribute is present. Radar 7338114. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85441 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2c04dae715b05017d7d2c19ab4f8cb37c1e650ae |
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Reimplement BranchFolding change to avoid tail merging for a 1 instruction common tail, except when the OptimizeForSize function attribute is present. Radar 7338114. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85441 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
eaa6891fe4fe26bc3a8842ed01be52746a752393 |
28-Oct-2009 |
Dale Johannesen <dalej@apple.com> |
When we generate spill code, then decide we don't need to spill after all, we weren't handling 2-instruction spill sequences correctly (PPC Altivec). We need to remove the store in this case. Removing the other instruction(s) would be goodness but is not needed for correctness, and isn't done here. 7331562. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85437 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
e841d2f8679f603ec453fe56a3bf9bea97aef303 |
28-Oct-2009 |
Dale Johannesen <dalej@apple.com> |
When we generate spill code, then decide we don't need to spill after all, we weren't handling 2-instruction spill sequences correctly (PPC Altivec). We need to remove the store in this case. Removing the other instruction(s) would be goodness but is not needed for correctness, and isn't done here. 7331562. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85437 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
220daf6b5c39b425ef06192ce461538f29efabd6 |
28-Oct-2009 |
Eric Christopher <echristo@apple.com> |
Make sure we return the right sized type here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7e5d2ff20fb4ca86b27f28fc5fb9d589bc0752fd |
28-Oct-2009 |
Eric Christopher <echristo@apple.com> |
Make sure we return the right sized type here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
93ab5617a1e187a411418c1ea38b312b6aacf850 |
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r85346 change to control tail merging by CodeGenOpt::Level. I'm going to redo this using the OptimizeForSize function attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85426 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
LVMTargetMachine.cpp
|
a597103c328e29fb763e7a4864bd7c29a588fc9d |
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r85346 change to control tail merging by CodeGenOpt::Level. I'm going to redo this using the OptimizeForSize function attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85426 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
LVMTargetMachine.cpp
|
4a8676e226cc62766c4638cb3dcd128f02e9d128 |
28-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Make AntiDepReg.h internal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85412 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
|
82c7248518a8b759a567fbb4b3176542ad2cf414 |
28-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Make AntiDepReg.h internal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85412 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.h
ntiDepBreaker.h
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
|
927dcecba16c04d82b567cbe00479256465bd5c2 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Don't call SDNode::isPredecessorOf when it isn't necessary. If the load's chains have no users, they can't be predecessors of the condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1507cd03a64679f6999f51218a3a0180d51ab673 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Don't call SDNode::isPredecessorOf when it isn't necessary. If the load's chains have no users, they can't be predecessors of the condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
92ebb1fa248a671b76301809137a445f7e9dbb9c |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code: if the unfolded load can't be hoisted, just delete the new instructions and leave the old one in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85393 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
b8457a1a29c659638af9e260a14aa12836ca128f |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code: if the unfolded load can't be hoisted, just delete the new instructions and leave the old one in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85393 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
ed7cc32565a72f3a40d03cfc7e313515bca7b9e2 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rewrite SelectionDAG::isPredecessorOf to be iterative instead of recursive to avoid consuming extraordinary amounts of stack space when processing tall graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6688d617978b338f96d27c6d73a396fbd2bf8e9c |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rewrite SelectionDAG::isPredecessorOf to be iterative instead of recursive to avoid consuming extraordinary amounts of stack space when processing tall graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6efe35213b3fca4fd9df6a35848aadf2e31923c5 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Teach MachineLICM to unfold loads from constant memory from otherwise unhoistable instructions in order to allow the loads to be hoisted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85364 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
589f1f5a4321eeee2856baa5c8ab1139d6e0351e |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Teach MachineLICM to unfold loads from constant memory from otherwise unhoistable instructions in order to allow the loads to be hoisted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85364 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a0e6778c5f1e124bc15fceeca0c875614a082c79 |
28-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a second ValueType argument to isFPImmLegal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a1eaa3c52b75d4fe2bcd4f7c52e56c405ee91d3c |
28-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a second ValueType argument to isFPImmLegal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
48c10d1e1fdd6f7d2f1ce5a9e2380b281dbe3006 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Mark dead physregdefs dead immediately. This helps MachineSink and MachineLICM and other things which run before LiveVariables is run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
a104d1eab279a39ebf0481269426c2e2de8f5587 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Mark dead physregdefs dead immediately. This helps MachineSink and MachineLICM and other things which run before LiveVariables is run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/InstrEmitter.cpp
|
114924db349324f455170178d8b1a8d34da8f4c6 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Allow constants of different types to share constant pool entries if they have compatible encodings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85359 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
83f6120c9a1fe758b2502b060cd7ae9a981ecc39 |
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Allow constants of different types to share constant pool entries if they have compatible encodings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85359 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
4c3800f0172e2fdc0b3b2e78dbaf89b150f4e04f |
28-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
rename indbr -> indirectbr to appease the residents of #llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
ab21db79ef1d2530880ad11f21f0b87ffca02dd4 |
28-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
rename indbr -> indirectbr to appease the residents of #llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
afe63293c930f39f6f6d4ac6e76da0d3546dfca4 |
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Record CodeGen optimization level in the BranchFolding pass so that we can use it to control tail merging when there is a tradeoff between performance and code size. When there is only 1 instruction in the common tail, we have been merging. That can be good for code size but is a definite loss for performance. Now we will avoid tail merging in that case when the optimization level is "Aggressive", i.e., "-O3". Radar 7338114. Since the IfConversion pass invokes BranchFolding, it too needs to know the optimization level. Note that I removed the RegisterPass instantiation for IfConversion because it required a default constructor. If someone wants to keep that for some reason, we can add a default constructor with a hard-wired optimization level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85346 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
LVMTargetMachine.cpp
|
cd4f04d6bcb7aefa24d92582fbadfe17519f4756 |
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Record CodeGen optimization level in the BranchFolding pass so that we can use it to control tail merging when there is a tradeoff between performance and code size. When there is only 1 instruction in the common tail, we have been merging. That can be good for code size but is a definite loss for performance. Now we will avoid tail merging in that case when the optimization level is "Aggressive", i.e., "-O3". Radar 7338114. Since the IfConversion pass invokes BranchFolding, it too needs to know the optimization level. Note that I removed the RegisterPass instantiation for IfConversion because it required a default constructor. If someone wants to keep that for some reason, we can add a default constructor with a hard-wired optimization level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85346 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
LVMTargetMachine.cpp
|
472ebdd60175b884d8ea2f1e77a73bcbe5a9136c |
28-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Fixed a bug in the coalescer where intervals were occasionally merged despite a real interference. This fixes rdar://problem/7157961. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85338 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
1239c9656bdcc0d86a2a4f89759acd5962e19ff6 |
28-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Fixed a bug in the coalescer where intervals were occasionally merged despite a real interference. This fixes rdar://problem/7157961. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85338 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
b34bcfc17c7c84a3b9be34a99b40f7596c2174cd |
27-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Update the MachineBasicBlock CFG for an indirect branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
eef55dc3fdebf915128e5d3848f372c7db6c38e8 |
27-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Update the MachineBasicBlock CFG for an indirect branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2b87f2ae510bb5298482aba49c63c49840b0db7d |
27-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add CodeGen support for indirect branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
64825153a219b40bcdb79861fb6ac4fd8eadd616 |
27-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add CodeGen support for indirect branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f5278f228d564351a3f0df98a74fad48a892debc |
27-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Do not held on to DenseMap slot accross map insertion. The insertion may cause the map to grow rending the slot invalid. Use this opportunity to use ValueMap instead of DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
bdf45cbe1526e33c17a17acd7467cb65d32b6a4f |
27-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Do not held on to DenseMap slot accross map insertion. The insertion may cause the map to grow rending the slot invalid. Use this opportunity to use ValueMap instead of DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
dab00f86c61d0de362877671ffb2c835e59b84a1 |
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
don't use stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
98eef869aeee2edcba7a212060b6002339abffbf |
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
don't use stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6337b551d01bc8239f0bd6440ac82bce2b313f4c |
27-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which returns true if the fp immediate can be natively codegened by target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
eb2f969a4ddfb0bc8fdcb5bce3b52e53abff321d |
27-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which returns true if the fp immediate can be natively codegened by target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
e0787286429c486909bd3b01b5dfedacbc2d7394 |
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
add enough support for indirect branch for the feature test to pass (assembler,asmprinter, bc reader+writer) and document it. Codegen currently aborts on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
f9be95f867745b6754b2402b9b72f9eaeabd637f |
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
add enough support for indirect branch for the feature test to pass (assembler,asmprinter, bc reader+writer) and document it. Codegen currently aborts on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
6d15db7cb3b93b99d16ff5d7c0b87ceb0bf02f21 |
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
pseudosourcevalue is also still using getGlobalContext(), so it isn't thread safe either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85253 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/SelectionDAGISel.cpp
|
75c478a96a542dc386152e00518441e63d22058d |
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
pseudosourcevalue is also still using getGlobalContext(), so it isn't thread safe either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85253 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/SelectionDAGISel.cpp
|
37115cc04ea3dc2516d34a1b0f8dc262652fbb63 |
27-Oct-2009 |
Eric Christopher <echristo@apple.com> |
Add objectsize intrinsic and hook it up through codegen. Doesn't do anything than return "I don't know" at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7b5e61707a128a222e5e7ab20eb8154ca81001cb |
27-Oct-2009 |
Eric Christopher <echristo@apple.com> |
Add objectsize intrinsic and hook it up through codegen. Doesn't do anything than return "I don't know" at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f9a7a33126ed4def13851a4d77a442db55ffe307 |
27-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Remove FreeInst. Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
046e78ce55a7c3d82b7b6758d2d77f2d99f970bf |
27-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Remove FreeInst. Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
aa644ea6cd8b6c4fa5d0442c91267cdfdab43eab |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85166 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
|
e10deca33e74a7c70ab585f78eee3fb52937f668 |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85166 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
|
64948f805fbd7e5d69066d85f8dee30c9d84bf1f |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Define virtual destructor in *.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85146 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
ada0ef86d98df4ac36808e4a0f0098250bf1a842 |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Define virtual destructor in *.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85146 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a8b859600a76b46db61dd5fe6609f66897fe9c07 |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85145 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
MakeLists.txt
ostRASchedulerList.cpp
|
348777110a960f0e017025dd5141cb29472c3984 |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85145 91177308-0d34-0410-b5e6-96231b3b80d8
ggressiveAntiDepBreaker.cpp
ggressiveAntiDepBreaker.h
MakeLists.txt
ostRASchedulerList.cpp
|
7080dc09b5ff61334f9a13c1eec1e0eb9c195556 |
26-Oct-2009 |
Dan Gohman <gohman@apple.com> |
When checking whether a def of an aliased register is dead, ask the machineinstr whether the aliased register is dead, rather than the original register is dead. This allows it to get the correct answer when examining an instruction like this: CALLpcrel32 <ga:foo>, %AL<imp-def>, %EAX<imp-def,dead> where EAX is dead but a subregister of it is still live. This fixes PR5294. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85135 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
91203cf87b8a72227c78a9eeae8bb744dfcc4ef0 |
26-Oct-2009 |
Dan Gohman <gohman@apple.com> |
When checking whether a def of an aliased register is dead, ask the machineinstr whether the aliased register is dead, rather than the original register is dead. This allows it to get the correct answer when examining an instruction like this: CALLpcrel32 <ga:foo>, %AL<imp-def>, %EAX<imp-def,dead> where EAX is dead but a subregister of it is still live. This fixes PR5294. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85135 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
ad5789c4fd62e77a8d27c43db98384ed9762dfe7 |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Break anti-dependence breaking out into its own class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85127 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
|
2e7be612d5d0eb42ee3ae08194dbb03b750cc6bf |
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Break anti-dependence breaking out into its own class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85127 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
riticalAntiDepBreaker.cpp
riticalAntiDepBreaker.h
ostRASchedulerList.cpp
|
9919ed02cbeac5498b21825ae4924b140784be08 |
26-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg around. - Relax register scavenging to allow use of partially "not-live" registers. It's common for targets to operate on registers where the top bits are undef. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... = d0 When the insert_subreg is eliminated by the coalescer, the scavenger used to complain. The previous fix was to keep to insert_subreg around. But that's brittle and it's overly conservative when we want to use the scavenger to allocate registers. It's actually legal and desirable for other instructions to use the "undef" part of d0. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... s1 = = s1 = d0 We probably need add a "partial-undef" marker on machine operand so the machine verifier would not complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85091 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
a5dc45e3c8fa26e62b187284a240adf3879b56e2 |
26-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg around. - Relax register scavenging to allow use of partially "not-live" registers. It's common for targets to operate on registers where the top bits are undef. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... = d0 When the insert_subreg is eliminated by the coalescer, the scavenger used to complain. The previous fix was to keep to insert_subreg around. But that's brittle and it's overly conservative when we want to use the scavenger to allocate registers. It's actually legal and desirable for other instructions to use the "undef" part of d0. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... s1 = = s1 = d0 We probably need add a "partial-undef" marker on machine operand so the machine verifier would not complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85091 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
1ec7df14990f3bdf92f8e55dcdeeca03d6802602 |
26-Oct-2009 |
Chandler Carruth <chandlerc@gmail.com> |
Move DataTypes.h to include/llvm/System, update all users. This breaks the last direct inclusion edge from System to Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
|
8b67f774e9c38b7718b2b300b628388f966df4e0 |
26-Oct-2009 |
Chandler Carruth <chandlerc@gmail.com> |
Move DataTypes.h to include/llvm/System, update all users. This breaks the last direct inclusion edge from System to Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
|
899830995d35fa6878fd6204fce742c90b9d554b |
25-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Use isIdentityCopy. Fix a bozo bug (flipped condition) in InvalidateRegDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85047 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
427c3ba97a09778bfb1596356028b02497578906 |
25-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Use isIdentityCopy. Fix a bozo bug (flipped condition) in InvalidateRegDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85047 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
381f09782a49e19f142866145947405531b8d2cd |
25-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85046 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
d98e30f618266a50219990e9a76a024a0fa90436 |
25-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85046 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
c319538252bef8bab51638c1cb6ac9beab6e0bf5 |
25-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not delete identity insert_subreg even if dest is virtual. Let later passes delete them. This avoids register scavenger complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85045 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d66f0015addb5646364877e6ca57fba6ff59632c |
25-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not delete identity insert_subreg even if dest is virtual. Let later passes delete them. This avoids register scavenger complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85045 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5a44ef9fd5f7c3964ad79b94778261175dea5c33 |
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
CMetadata.cpp
CStrategy.cpp
owerSubregs.cpp
achineFunction.cpp
achineLICM.cpp
achineSink.cpp
achineVerifier.cpp
camlGC.cpp
ostRASchedulerList.cpp
seudoSourceValue.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegRewriter.cpp
|
f5a86f45e75ec744c203270ffa03659eb0a220c1 |
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
CMetadata.cpp
CStrategy.cpp
owerSubregs.cpp
achineFunction.cpp
achineLICM.cpp
achineSink.cpp
achineVerifier.cpp
camlGC.cpp
ostRASchedulerList.cpp
seudoSourceValue.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegRewriter.cpp
|
492d06efde44a4e38a6ed321ada4af5a75494df6 |
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineFunction.cpp
achineLICM.cpp
achineSink.cpp
achineVerifier.cpp
camlGC.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
seudoSourceValue.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegRewriter.cpp
|
6726b6d75a8b679068a58cb954ba97cf9d1690ba |
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
eadMachineInstructionElim.cpp
warfEHPrepare.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
owerSubregs.cpp
achineFunction.cpp
achineLICM.cpp
achineSink.cpp
achineVerifier.cpp
camlGC.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
seudoSourceValue.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
tackProtector.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegRewriter.cpp
|
9ef97dcce4891c64bef5ce217341053224a57dc5 |
25-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
When the scavenger is looking for a good candidate location to restore from a spill, it should avoid doing so inside the live range of a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85026 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
07d4964d1fc10a404f9bafd7c30b46322fe9293f |
25-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
When the scavenger is looking for a good candidate location to restore from a spill, it should avoid doing so inside the live range of a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85026 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
3a175215245c62bf37aaa117703882fcc271e72d |
25-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename isLoopExit to isLoopExiting, for consistency with the wording used elsewhere - an exit block is a block outside the loop branched to from within the loop. An exiting block is a block inside the loop that branches out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85019 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
32663b719b4996b3a735f22bba80d771d50f96e7 |
25-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename isLoopExit to isLoopExiting, for consistency with the wording used elsewhere - an exit block is a block outside the loop branched to from within the loop. An exiting block is a block inside the loop that branches out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85019 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8e4c4276b78da64a7b505a83d6d0b107ade85f0e |
24-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add some asserts to catch copyRegToReg() fails early git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84983 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
efcd89a5f66826430d077476564afe41109290cb |
24-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add some asserts to catch copyRegToReg() fails early git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84983 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
8940d798e7ceec957f1dc2a2862105d4180f3bda |
24-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Identity copies should not contribute to spill weight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84978 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c9dfeb1be841045427d71b85e95ac7355b64e8b1 |
24-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Identity copies should not contribute to spill weight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84978 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6530ae50de6d78e90f499b67ee9db01da894ff4a |
23-Oct-2009 |
Dan Gohman <gohman@apple.com> |
APInt-ify the gep scaling code, so that it correctly handles the case where the scale overflows pointer-sized arithmetic. This fixes PR5281. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7abbd04e90489c087bfae03ad25c3a99aafbaded |
23-Oct-2009 |
Dan Gohman <gohman@apple.com> |
APInt-ify the gep scaling code, so that it correctly handles the case where the scale overflows pointer-sized arithmetic. This fixes PR5281. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
68e0213cf4b9f944a356cf578050cc17f19d1257 |
23-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Neuter stack protectors by only checking character arrays. This is what GCC does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84916 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
dfd85c142f184ba3ce5562f0eed32a908c59c076 |
23-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Neuter stack protectors by only checking character arrays. This is what GCC does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84916 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
e56e4a63f19ea3b7e40d84704d9b066698722db6 |
23-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow the target to select the level of anti-dependence breaking that should be performed by the post-RA scheduler. The default is none. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84911 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
4c3715c2e5e17d7216a96ac2baf9720630f04408 |
23-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow the target to select the level of anti-dependence breaking that should be performed by the post-RA scheduler. The default is none. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84911 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9f6aeb72926b953e115d6fac3cbe138f569fb9a5 |
22-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Tidying up some code and comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84894 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
48dc29ef911a223a52b099604d0ccb499ecbf703 |
22-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Tidying up some code and comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84894 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
fcfa3114e0922e6a127cd9e63dce10d98fb77757 |
22-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix null pointer dereference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
443b2153e3c1c039f5fbf229bd2df2da179f3875 |
22-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix null pointer dereference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
52a7362292fcc0cf59c3d38ce8955b709b8e00e6 |
22-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Revert the main portion of r31856. It was causing BranchFolding to break up CFG diamonds by banishing one of the blocks to the end of the function, which is bad for code density and branch size. This does pessimize MultiSource/Benchmarks/Ptrdist/yacr2, the benchmark cited as the reason for the change, however I've examined the code and it looks more like a case of gaming a particular branch than of being generally applicable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84803 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
6d31268a7dc9854fa5a5cb9227ba9a15c5898414 |
22-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Revert the main portion of r31856. It was causing BranchFolding to break up CFG diamonds by banishing one of the blocks to the end of the function, which is bad for code density and branch size. This does pessimize MultiSource/Benchmarks/Ptrdist/yacr2, the benchmark cited as the reason for the change, however I've examined the code and it looks more like a case of gaming a particular branch than of being generally applicable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84803 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
3def926d532e753cab49cc1bacf660f49d626864 |
22-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
The spill restore needs to be resolved to the SP/FP just like the spill git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84792 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
29bed1c8bb491a5fe609d58c5e560929117a859e |
22-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
The spill restore needs to be resolved to the SP/FP just like the spill git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84792 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
154f22e8e4bafc4013c1f6a516b7a8102669012d |
21-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Cleanup of frame index scavenging. Better code flow and more accurately handles T2 and ARM use cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84761 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
332553768242e82383df61d9161d1a665bfb3122 |
21-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Cleanup of frame index scavenging. Better code flow and more accurately handles T2 and ARM use cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84761 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
8c56cfc79c02c68bef1c8bc37f8ee7a47c5e2e32 |
21-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Need a comma after imp-use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84749 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5affca0763836e15ca15e78ed3a0fd56ef6b2e92 |
21-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Need a comma after imp-use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84749 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fb035b45cbad41ccbc6190fdcc6b888528075bc5 |
21-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Revert r84658 and r84691. They were causing llvm-gcc bootstrap to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84727 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
c1ae8c9b8f426b74215abf0f7e46bffecc6f52d9 |
21-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Revert r84658 and r84691. They were causing llvm-gcc bootstrap to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84727 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
38e5be5da7a72d9318370359b20992765ce73152 |
21-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Respect src register allocation requirements when breaking anti-dependencies. Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84691 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
7441d14873cca4af68a0347d41676c476e0ab1f5 |
21-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Respect src register allocation requirements when breaking anti-dependencies. Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84691 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
672de0aa03c5943cfdd1e49206326d1955c8b3a1 |
20-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix invalid for vector types fneg(bitconvert(x)) => bitconvert(x ^ sign) transform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2bcf60a9cc435658ca8a02ee692af225599cf9e4 |
20-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix invalid for vector types fneg(bitconvert(x)) => bitconvert(x ^ sign) transform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d4a322f88c5a91a151fc42f6d829e11c90ee38ce |
20-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Oops. Backing out 84681 - needs to wait for the indexing patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84682 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
3fd7a68ba97fd946f92c35dc9e8f5d8d567f33d1 |
20-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Oops. Backing out 84681 - needs to wait for the indexing patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84682 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
38f4d15c5884940ea775494bb1e64d5b4b3e9e87 |
20-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Added some debugging output to pre-alloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84681 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
67f25669db3c0f18c47f7baea33a6b5e9b5c5e4c |
20-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Added some debugging output to pre-alloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84681 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
11eb3a6c0dc019c8e69c7853e2d3678940714d30 |
20-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Checkpoint more aggressive anti-dependency breaking for post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84658 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
480c529e026942f28e1a792d2cec6d6b5bc0edba |
20-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Checkpoint more aggressive anti-dependency breaking for post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84658 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a10c4a8a085bff9a71ee666c2ac214c00dfee9a8 |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Better handle instructions that re-def a scratch register git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84657 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
03d02d4faa6cf8ae1337f64bc83dcbd9de570372 |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Better handle instructions that re-def a scratch register git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84657 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
6caa53a1305c77e42d5099722ea05ab79ea0ab97 |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Register re-use for scavenged frame indices must check for re-deginition of the register in the instruction which kills the scavenged value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84641 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
f7a0c0de6d73df8f24438234485b7950323b3d44 |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Register re-use for scavenged frame indices must check for re-deginition of the register in the instruction which kills the scavenged value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84641 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b457c89c5998fb359323bf27c43fa326c1016124 |
20-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks are tracked. Instead of trying to manually keep track of these locations while doing complex modifications, just recompute them when they're needed. This fixes a bug in which the TopMBB and BotMBB were not correctly updated, leading to invalid transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84598 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
07adb85cb7f97968b3b9a102e5fa504a5f6ac682 |
20-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks are tracked. Instead of trying to manually keep track of these locations while doing complex modifications, just recompute them when they're needed. This fixes a bug in which the TopMBB and BotMBB were not correctly updated, leading to invalid transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84598 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
2894c9052cf5b91ff9d422c31c5aa68eebb869e2 |
20-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Trim unnecessary includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84597 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
cheduleDAGPrinter.cpp
|
5f4fb86d5853a433815501739584624d296b57a3 |
20-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Trim unnecessary includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84597 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
cheduleDAGPrinter.cpp
|
7e3f3cec672df37935f6c651d1135657fdfe5cdd |
20-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add getTopBlock and getBottomBlock member functions to MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84596 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
81b16a3558514481c61e7c68d19f84d7a69352cb |
20-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add getTopBlock and getBottomBlock member functions to MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84596 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
2f576c1745fb305f8db1f583022e7e4e93706841 |
20-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
If the physical register being spilled does not have an interval, spill its sub-registers instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84586 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0222a8cfb8f8f3f67e4a07164eb1ecf9c44e6f64 |
20-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
If the physical register being spilled does not have an interval, spill its sub-registers instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84586 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
81d33cdd24ad12950350365eb634134292e357e1 |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Enable post-pass frame index register scavenging for ARM and Thumb2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84585 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7e831db1d4f5dc51ca6526739cf41e59895c5c20 |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Enable post-pass frame index register scavenging for ARM and Thumb2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84585 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
976a864c9995dced48ffaca18ff68921f0a4d5df |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Adjust the scavenge register spilling to allow the target to choose an appropriate restore location for the spill as well as perform the actual save and restore. The Thumb1 target uses this to make sure R12 is not clobbered while a spilled scavenger register is live there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84554 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
d482f55af135081aee7f7ab972bb8973f189c88f |
20-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Adjust the scavenge register spilling to allow the target to choose an appropriate restore location for the spill as well as perform the actual save and restore. The Thumb1 target uses this to make sure R12 is not clobbered while a spilled scavenger register is live there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84554 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
2e1e52272a4d8168ae18689877ae1fe7737ced4f |
19-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Revert r84295, this unbreaks llvm-gcc bootstrap on x86-64/linux git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84516 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
766fc1db1640499c6affce80e7337d8c22dc8cb1 |
19-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Revert r84295, this unbreaks llvm-gcc bootstrap on x86-64/linux git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84516 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
d20dd8f42feee188300b2f59ea4a9c0ab4809690 |
19-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84504 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
dfffba6a83b7f79c8853e1412a93442b7a9b825d |
19-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84504 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
988308e1aa1aa43502e9dd353cf50bc409ca5f96 |
19-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Change a few instance variables to be local variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84503 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
4e9785ed8ad34f01ccb459796d85a56600ed592b |
19-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Change a few instance variables to be local variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84503 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c91317828c58e9780e7d6b6c127dc87cf61fa1f5 |
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Spill slots cannot alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84432 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
38bdfc69cbe370ce5f623df4449afa32cda97422 |
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Spill slots cannot alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84432 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
174e2cf99df2011a0d56e96dcdb32c1ccaf4f464 |
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
-Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84424 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
cheduleDAGInstrs.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
ff89dcb06fbd103373436e2d0ae85f252fae2254 |
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
-Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84424 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
cheduleDAGInstrs.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
3820341c59acd9a1d0a664a2ce86745015d8fccb |
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Only fixed stack objects and spill slots should be get FixedStack PseudoSourceValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
20270c909357e5e501cac1f5393430dfacfc57d8 |
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Only fixed stack objects and spill slots should be get FixedStack PseudoSourceValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
844797e20c5a78cdefd967a979a19415398ddd2c |
18-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix my -Asserts warning fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84372 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
c499e32b371faf02cbd17e03bad2a42b93ade82a |
18-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix my -Asserts warning fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84372 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
aa127ee919bdff5f6363818a10fe7db8d70e0780 |
17-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Suppress -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84327 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
afc158780089a3d9c1bfe78de77855dfdd901bd0 |
17-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Suppress -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84327 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
5505bc1c26d335e9a0f22f2c55fcf7544037b2d9 |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Distinquish stack slots from other stack objects. They (and fixed objects) get FixedStack PseudoSourceValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84326 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
irtRegMap.cpp
|
491f54f1fd700204db0a19efde0cc2627641d711 |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Distinquish stack slots from other stack objects. They (and fixed objects) get FixedStack PseudoSourceValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84326 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
irtRegMap.cpp
|
1f99657b2abd791d220018261e21d9f4008708b4 |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 84315 for now. Re-thinking the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84321 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
6553155172a2e74feff1253837daa608123de54a |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 84315 for now. Re-thinking the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84321 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
77e61b46fce5e165ecfedb5666c43b3d2c1dc971 |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename getFixedStack to getStackObject. The stack objects represented are not necessarily fixed. Only those will negative frame indices are "fixed." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84315 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
bf125583f8bd8196a34921276add7f304b7c1433 |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename getFixedStack to getStackObject. The stack objects represented are not necessarily fixed. Only those will negative frame indices are "fixed." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84315 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
1adc252eb5e951fc26ff19d06854d7828f9c5f48 |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
cac25a9452c75b24e33fffe3390de8b2b8983e92 |
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
bb39ea144fef229366341ab9636934e73de09b43 |
17-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f77fc92b03efe455008474894d217282e2a03cad |
17-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
37f513df87ceb54e873adc113a1fcf4af9556833 |
17-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Remove MallocInst from LLVM Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
a276c603b82a11b0bf0b59f0517a69e4b63adeab |
17-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Remove MallocInst from LLVM Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
e2996ee5c9a9e0c05141675726ba67d5484c541e |
17-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Enhance CodePlacementOpt's unconditional intra-loop branch elimination logic to be more general and understand more varieties of loops. Teach CodePlacementOpt to reorganize the basic blocks of a loop so that they are contiguous. This also includes a fair amount of logic for preserving fall-through edges while doing so. This fixes a BranchFolding-ism where blocks which can't be made to use a fall-through edge and don't conveniently fit anywhere nearby get tossed out to the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84295 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
3bdd8de2806e47f34369c1e6ce6e6b44a135bd29 |
17-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Enhance CodePlacementOpt's unconditional intra-loop branch elimination logic to be more general and understand more varieties of loops. Teach CodePlacementOpt to reorganize the basic blocks of a loop so that they are contiguous. This also includes a fair amount of logic for preserving fall-through edges while doing so. This fixes a BranchFolding-ism where blocks which can't be made to use a fall-through edge and don't conveniently fit anywhere nearby get tossed out to the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84295 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
e50ac8f2f5743922862162859c658dfb3ca4ab14 |
17-Oct-2009 |
Mon P Wang <wangmp@apple.com> |
Allow widening of extract subvector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
3b7ee20d58f526c3904dc6e068c55e9e07b54c90 |
17-Oct-2009 |
Mon P Wang <wangmp@apple.com> |
Allow widening of extract subvector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
18a7d1c9020268e07643101f0944fe4c4febef25 |
16-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Do not emit name entry for a pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84276 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
808b82664f146f8ddda0582ffd755a484cbac609 |
16-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Do not emit name entry for a pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84276 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
86e24b01e3cfdd1d2f533df99be1824515b677c5 |
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change createPostRAScheduler so it can be turned off at llc -O1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84273 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
|
fa16354e0370fe884830286923352268b036737d |
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change createPostRAScheduler so it can be turned off at llc -O1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84273 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
|
a6871afa41a2f40b6c1c3d8ef087c474d999ffc7 |
16-Oct-2009 |
Devang Patel <dpatel@apple.com> |
If there is not any llvm instruction associated with each lexical scope encoded in debug info then create such scope on demand for variable info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84262 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
149aa7cce368a879e3ad20b2a6ec777e9441cdab |
16-Oct-2009 |
Devang Patel <dpatel@apple.com> |
If there is not any llvm instruction associated with each lexical scope encoded in debug info then create such scope on demand for variable info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84262 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
57796906e96fa68af19262323496e4b9c038a516 |
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
If post-alloc scheduler is not enabled, it should return false, not true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84248 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
c83da2f9e389332b9cf8eae9d823f745be5624b8 |
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
If post-alloc scheduler is not enabled, it should return false, not true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84248 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
722d96604ba2eed55fc01e166566935979f4739b |
16-Oct-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Indent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
931424a7d8b8b15ddda7308d6c5b08277d8bdc0e |
16-Oct-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Indent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e7a6705ab48692b1c34be80322bc4846bd3c2a74 |
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84244 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
449c25baa0e61f3bd99706fb073878e81a5e857e |
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84244 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
75dbdd10525ae7cb7c2f16ecc7092a667b69556f |
15-Oct-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Report errors correctly for unselected target intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84193 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
11ee508d7bd37f2b007da735fbd2c1497ed51848 |
15-Oct-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Report errors correctly for unselected target intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84193 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cebc72ccbc6215b71808c2be76779ecfee77f0ee |
15-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make CodePlacementOpt align loops, rather than loop headers. The header is just the entry block to the loop, and it needn't be at the top of the loop in the code layout. Remove the code that suppressed loop alignment for outer loops, so that outer loops are aligned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84158 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
cd2ae14ce3f16f0cef162aa85707f32295c4ee3d |
15-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make CodePlacementOpt align loops, rather than loop headers. The header is just the entry block to the loop, and it needn't be at the top of the loop in the code layout. Remove the code that suppressed loop alignment for outer loops, so that outer loops are aligned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84158 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
d94b8ee12edef4928c7fc762e3c8a4bf7075bdd8 |
15-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
When LiveVariables is adding implicit-def to model "partial dead", add the earlyclobber marker if the superreg def has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84153 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
a2f80471345960c971825a053d22ec886a2ab514 |
15-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
When LiveVariables is adding implicit-def to model "partial dead", add the earlyclobber marker if the superreg def has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84153 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
b71c46ced3b6452d2d96e06b5fde59910541ccb5 |
15-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Print earlyclobber for implicit-defs as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84152 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0789707c49135bba69e0e308d0fbc41bb7cbe78a |
15-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Print earlyclobber for implicit-defs as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84152 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
c2febcd7aeb104f4afd876aa1526195459159f31 |
14-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Make loop not recalc getNumOperands() each time around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84138 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
33524c3b26e3b709488d84094493d9a6098c0155 |
14-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Make loop not recalc getNumOperands() each time around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84138 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
dd7bb43d6a6e61569368046b33fbe2d700d5bc68 |
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to record DbgScope as inlined scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
c90aefe95ec5fd028782788620ab7d6fd73593f3 |
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to record DbgScope as inlined scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1ce93edf8e13e59909f6b87e8532c3961fd2c80d |
14-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
quiet compiler warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84133 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d0c38327547d6f864bec2e0b88042b1c97b89131 |
14-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
quiet compiler warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84133 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4205cfe3fe4c86814b91248d25f0cf01ecf642b4 |
14-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
I don't see any point in having both eh.selector.i32 and eh.selector.i64, so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector. Likewise for eh.typeid.for. This aligns us with gcc, which always uses a 32 bit value for the selector on all platforms. My understanding is that the register allocator used to assert if the selector intrinsic size didn't match the pointer size, and this was the reason for introducing the two variants. However my testing shows that this is no longer the case (I fixed some bugs in selector lowering yesterday, and some more today in the fastisel path; these might have caused the original problems). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84106 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
jLjEHPrepare.cpp
|
b01bbdcc1af27bd90b552bb1b62b48916e0d4be3 |
14-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
I don't see any point in having both eh.selector.i32 and eh.selector.i64, so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector. Likewise for eh.typeid.for. This aligns us with gcc, which always uses a 32 bit value for the selector on all platforms. My understanding is that the register allocator used to assert if the selector intrinsic size didn't match the pointer size, and this was the reason for introducing the two variants. However my testing shows that this is no longer the case (I fixed some bugs in selector lowering yesterday, and some more today in the fastisel path; these might have caused the original problems). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84106 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
jLjEHPrepare.cpp
|
d32578ed8fc15abf79d37b9b1f62f0c8fa7ce01d |
14-Oct-2009 |
Dan Gohman <gohman@apple.com> |
This remat entry is basically done. There are hooks to allow targets to remat non-load instructions as loads, and the remat code now uses the UnmodeledSideEffects flags, MachineMemOperands, and similar things to decide which instructions are valid for rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84060 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
9ba0e2ba87a5af3b863d9a5f6f620c9b7583d0f4 |
14-Oct-2009 |
Dan Gohman <gohman@apple.com> |
This remat entry is basically done. There are hooks to allow targets to remat non-load instructions as loads, and the remat code now uses the UnmodeledSideEffects flags, MachineMemOperands, and similar things to decide which instructions are valid for rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84060 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
60547e8e863ea6b31029e1d2875cd947a320f9d0 |
14-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a few README.txt items. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84059 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
363bbc011045a9f5710569cc191c520ec25b2907 |
14-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a few README.txt items. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84059 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
fc1df34dea6dae98d823f9cf95afbb364201ec97 |
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
s/DebugLoc.CompileUnit/DebugLoc.Scope/g s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84054 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
1619dc3b9ee2573c481591764c2d26d5ff16b483 |
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
s/DebugLoc.CompileUnit/DebugLoc.Scope/g s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84054 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
dd7bd93b11d18bc0bcb64e8ee5261c5724b25614 |
13-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce new convenience methods for sign extending or truncating an SDValue (depending on whether the target type is bigger or smaller than the value's type); or zero extending or truncating it. Use it in a few places (this seems to be a popular operation, but I only modified cases of it in SelectionDAGBuild). In particular, the eh_selector lowering was doing this wrong due to a repeated rather than inverted test, fixed with this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
3a66a68b0cc81193abfc074b1d360a4950151d38 |
13-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce new convenience methods for sign extending or truncating an SDValue (depending on whether the target type is bigger or smaller than the value's type); or zero extending or truncating it. Use it in a few places (this seems to be a popular operation, but I only modified cases of it in SelectionDAGBuild). In particular, the eh_selector lowering was doing this wrong due to a repeated rather than inverted test, fixed with this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
958921a663e7b11ad8dcb246924864548d4810e7 |
13-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Add debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84011 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
d452ea6a6417e4ce7e110249c5e74bcc6ab1ae49 |
13-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Add debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84011 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
c74255d3943b40a2dc36226750cfedf6f4482c72 |
13-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix a -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83950 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6e4bdfc229cbbe5ba549e45f55bda4bb989b159d |
13-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix a -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83950 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6096157c93259c3484c250b3541e9851dfc55da4 |
13-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Find enclosing subprogram info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83922 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6ef75173142f782b281909125e846f3b6828de98 |
13-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Find enclosing subprogram info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83922 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9cd02c5e750dea8637fe300b27a0bf14a53e22bd |
13-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set default location for a function if it is not set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1f03471a2dfb02fa39f7168244bb8c0891a56ab9 |
13-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set default location for a function if it is not set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f215bb209351a7fa2244cc691ef214b6beaa757e |
12-Oct-2009 |
Dale Johannesen <dalej@apple.com> |
Revert the kludge in 76703. I got a clean bootstrap of FSF-style PPC, so there is some reason to believe the original bug (which was never analyzed) has been fixed, probably by 82266. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83871 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
3a6b9eb868f579b945aa8ec8fadf65e4dd913555 |
12-Oct-2009 |
Dale Johannesen <dalej@apple.com> |
Revert the kludge in 76703. I got a clean bootstrap of FSF-style PPC, so there is some reason to believe the original bug (which was never analyzed) has been fixed, probably by 82266. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83871 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
69a9b168a959772b096ef8f7ad53992ec2c663d9 |
12-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove a redundant member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83857 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
7fa50ede618f96821a8e5d8e8a5dd374097b2bde |
12-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove a redundant member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83857 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.h
|
e4e67c4d7b48ad44a7647ae33fac429025963387 |
12-Oct-2009 |
Nate Begeman <natebegeman@mac.com> |
More heuristics for Combiner-AA. Still catches all important cases, but compile time penalty on gnugo, the worst case in MultiSource, is down to about 2.5% from 30% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
677c89d8bfaf17587076703816730c75c68c894b |
12-Oct-2009 |
Nate Begeman <natebegeman@mac.com> |
More heuristics for Combiner-AA. Still catches all important cases, but compile time penalty on gnugo, the worst case in MultiSource, is down to about 2.5% from 30% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8935700747e6774fc1732c2608c80e533690a0f8 |
12-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR5087, patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83822 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
f5e16139f28d650536024280a16dcf73513baf46 |
12-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR5087, patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83822 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
f5ee5165329daef7db0c6a8a0abc23d344e9e6f9 |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Create a new InstrEmitter class for translating SelectionDAG nodes into MachineInstrs. This is mostly just moving the code from ScheduleDAGSDNodesEmit.cpp into a new class. This decouples MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
bcea859fc1dd1af9ac66ec93ea04ce9a19c8451c |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Create a new InstrEmitter class for translating SelectionDAG nodes into MachineInstrs. This is mostly just moving the code from ScheduleDAGSDNodesEmit.cpp into a new class. This decouples MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/InstrEmitter.cpp
electionDAG/InstrEmitter.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
e1c0b3bed2a6e94779604ba226ee8721496f20e7 |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make getMachineNode return a MachineSDNode* instead of a generic SDNode* since it won't do any folding. This will help avoid some inconvenient casting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83698 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c81b783e2777b70f4533a4750489d058b6b74ad9 |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make getMachineNode return a MachineSDNode* instead of a generic SDNode* since it won't do any folding. This will help avoid some inconvenient casting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83698 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
101611d6083ca81b9bcf86d51be4717fbe1edc5a |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix a missing initialization of PostRAScheduler's AA member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83695 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
5bf7c2a34679b6afe46ba4f605f1921da950a66b |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix a missing initialization of PostRAScheduler's AA member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83695 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
04e1b1d338e24537ab7c42bd0a1f0bf544732080 |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
The ScheduleDAG framework now requires an AliasAnalysis argument, though it isn't needed in the ScheduleDAGSDNodes schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83691 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
98976e4dcd18adbbe676048c0069e67346eb4ade |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
The ScheduleDAG framework now requires an AliasAnalysis argument, though it isn't needed in the ScheduleDAGSDNodes schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83691 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
|
0a4c09e724bd3ab7c9a1d3a1615894e7bf209179 |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Factor out LiveIntervalAnalysis' code to determine whether an instruction is trivially rematerializable and integrate it into TargetInstrInfo::isTriviallyReMaterializable. This way, all places that need to know whether an instruction is rematerializable will get the same answer. This enables the useful parts of the aggressive-remat option by default -- using AliasAnalysis to determine whether a memory location is invariant, and removes the questionable parts -- rematting operations with virtual register inputs that may not be live everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83687 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
|
a70dca156fa76d452f54829b5c5f962ddfd94ef2 |
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Factor out LiveIntervalAnalysis' code to determine whether an instruction is trivially rematerializable and integrate it into TargetInstrInfo::isTriviallyReMaterializable. This way, all places that need to know whether an instruction is rematerializable will get the same answer. This enables the useful parts of the aggressive-remat option by default -- using AliasAnalysis to determine whether a memory location is invariant, and removes the questionable parts -- rematting operations with virtual register inputs that may not be live everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83687 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
|
40c80212c1c0be155e7a561f0a18a94856d7eb2f |
10-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Extract scope information from the variable itself, instead of relying on alloca or llvm.dbg.declare location. While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
ac1ceb3dd33cb79ecb0dbd64b6abafa7ce067c5f |
10-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Extract scope information from the variable itself, instead of relying on alloca or llvm.dbg.declare location. While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
e5496f6ba52d5603eb26d72b421c2d8731f4ac24 |
09-Oct-2009 |
Dan Gohman <gohman@apple.com> |
isTriviallyReMaterializable checks the TargetInstrDesc::isRematerializable flag, so it isn't necessary to do this check in its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83671 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
achineLICM.cpp
impleRegisterCoalescing.cpp
|
599a87aca0194edb46f0bee141c3de8281bf22b9 |
09-Oct-2009 |
Dan Gohman <gohman@apple.com> |
isTriviallyReMaterializable checks the TargetInstrDesc::isRematerializable flag, so it isn't necessary to do this check in its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83671 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
achineLICM.cpp
impleRegisterCoalescing.cpp
|
c7973eb023472b13237076954240d915c30c2c69 |
09-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add basic infrastructure and x86 support for preserving MachineMemOperand information when unfolding memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83656 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
91e69c37153eb7d8cd149d9c2484c3115027b90f |
09-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add basic infrastructure and x86 support for preserving MachineMemOperand information when unfolding memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83656 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
fb8127571e3f12f3c71b90f92b561ba34b4c0582 |
09-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Check invalid debug info for enums. This may happen when underlyng enum is optimized away. Eventually DwarfChecker will clean this up during llvm verification stage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83655 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c525472828823b47c8aa90b901f61d5236de890a |
09-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Check invalid debug info for enums. This may happen when underlyng enum is optimized away. Eventually DwarfChecker will clean this up during llvm verification stage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83655 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
66037312be7232178d30cfcab772f4e8e330ff5c |
09-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
when previous scratch register is killed, flag the value as no longer tracking git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83653 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
71c8dc9b20536e89afdae1b82075806761a57c89 |
09-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
when previous scratch register is killed, flag the value as no longer tracking git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83653 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d1aa3e5f0fe657b868ff72e8bab8db7359e1bc98 |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Give Dan and my recent changes, machine LICM is now code size neutral. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83624 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
64efb555ceb67aa5dc6554140cc2b4ebc0eab23a |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Give Dan and my recent changes, machine LICM is now code size neutral. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83624 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
3dd21c11a02af6dede438855f9b433be3dfb1abc |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a logic error that caused non-rematable loop invariants loads to be licm'ed out of loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83622 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
3dc326ba83c8fc9a47f1cb9968ff15ba73913ce8 |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a logic error that caused non-rematable loop invariants loads to be licm'ed out of loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83622 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9b4ac5427138629eb3cf8419fcf059b1b8848f91 |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Reset kill markers after live interval is reconstructed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83608 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
35ca9203f299bea3fac5abb78d7b43bbec2ffcbe |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Reset kill markers after live interval is reconstructed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83608 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
9e95fbdc67767a5b924b05be00174db40a0cce57 |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove code that makes no sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83589 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
9c8068078b843ee126372bddd605466988a1cb27 |
09-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove code that makes no sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83589 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f57e106e4ef58a165435aef6683db98b559f594b |
08-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Clear variable debug info map at the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83571 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
85d29e2de30cf49956558e45246b998f6d9ed985 |
08-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Clear variable debug info map at the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83571 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
fcaa4cff1b4f3a5b7a731c6e591f345ce5fcdbc1 |
08-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a SelectionDAG getTargetInsertSubreg convenience function, similar to getTargetExtractSubreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5fcbf0d26ecb99d54c182f542bf8db43ff048d6d |
08-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a SelectionDAG getTargetInsertSubreg convenience function, similar to getTargetExtractSubreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6882dff7faafcef6f4099c22fcb8f1720b021720 |
08-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Do not record line number to implicitly mark start of function if function has arguments. Extra line number entries trip gdb in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
eda312193dfc56cb9a5d1d3e7cf3c89dce07124a |
08-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Do not record line number to implicitly mark start of function if function has arguments. Extra line number entries trip gdb in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83563 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
130a245ddcec93d0105d56a5490bf15261fc5775 |
08-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a form of addPreserved which takes a string argument, to allow passes to declare that they preserve other passes without needing to pull in additional header file or library dependencies. Convert MachineFunctionPass and CodeGenLICM to make use of this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83555 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionPass.cpp
|
8a261e44f71a433b7d9af373c3e3dfa6fea67146 |
08-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a form of addPreserved which takes a string argument, to allow passes to declare that they preserve other passes without needing to pull in additional header file or library dependencies. Convert MachineFunctionPass and CodeGenLICM to make use of this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83555 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionPass.cpp
|
4820d98aaad1442bfb4efb104a2ac91b64bc3a36 |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Re-enable register scavenging in Thumb1 by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83521 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
65c58daa8b8985d2116216043103009815a55e77 |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Re-enable register scavenging in Thumb1 by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83521 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
51d82f19af9992ec249e8494031365864defd035 |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
bugfix. The target may use virtual registers that aren't tracked for re-use but are allocated by the scavenger. The re-use algorithm needs to watch for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83519 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
e40bf5f9f40a4672cd55bfa51c64a4bb6f4b2f8f |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
bugfix. The target may use virtual registers that aren't tracked for re-use but are allocated by the scavenger. The re-use algorithm needs to watch for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83519 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
c7d2c5396f2876ed2ac8e5c3b65291a769a90767 |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
reverting thumb1 scavenging default due to test failure while I figure out what's up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83501 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
9f3a559dff691bc1ed85089cb0870cf30a4a2d96 |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
reverting thumb1 scavenging default due to test failure while I figure out what's up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83501 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
bcd68c3cde6340d81b205a97d9855c55c131150b |
08-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
second half of lazy liveness removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83500 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
831a2bba04f0ccb9a2754ef4b0fca0a410f48ac2 |
08-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
second half of lazy liveness removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83500 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
ce7bfc50779b980e76e470733c72c25c82a5c0bf |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Enable thumb1 register scavenging by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83496 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
bafa3d9f6aaf24d721476ded7b1211ad57dd46c3 |
08-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Enable thumb1 register scavenging by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83496 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
a3330a871867e32033b8e0ea4134517d0ff62b9d |
07-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83483 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b8452b80f4b24bed1efe0bace9e925c2ec01122e |
07-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83483 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b1355fe89fe28726ead6203e1b1f6e43f3292a81 |
07-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
add initializers for clarity. Add missing assignment of PrevLastUseOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83481 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
391e1704c2e6934bae2ef5df07fc9690c26dbb62 |
07-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
add initializers for clarity. Add missing assignment of PrevLastUseOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83481 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
fd4a856fb7ad8ccf886eebd9a1575be404ada2f9 |
07-Oct-2009 |
Owen Anderson <resistor@mac.com> |
Remove LazyLiveness from the tree. It doesn't work right now, and I'm not going to have the time to finish it any time soon. If someone's interested it, they can resurrect it from SVN history. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83480 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
c024df648ebb326af719933c188edb6bf4b4d0fe |
07-Oct-2009 |
Owen Anderson <resistor@mac.com> |
Remove LazyLiveness from the tree. It doesn't work right now, and I'm not going to have the time to finish it any time soon. If someone's interested it, they can resurrect it from SVN history. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83480 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
9c1b793895e57d2696e6c84215f63bfd699e222e |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Replace some code for aggressive-remat with MachineInstr::isInvariantLoad, and teach it how to recognize invariant physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83476 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2627e08e05d8e7521f7c03496ede45868144d426 |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Replace some code for aggressive-remat with MachineInstr::isInvariantLoad, and teach it how to recognize invariant physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83476 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
eef78170dfb5ee4137742e94dbb0253cdda451f8 |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Replace TargetInstrInfo::isInvariantLoad and its target-specific implementations with a new MachineInstr::isInvariantLoad, which uses MachineMemOperands and is target-independent. This brings MachineLICM and other functionality to targets which previously lacked an isInvariantLoad implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83475 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
cheduleDAGInstrs.cpp
|
e33f44cfc547359bc28526e4c5e1852b600b4448 |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Replace TargetInstrInfo::isInvariantLoad and its target-specific implementations with a new MachineInstr::isInvariantLoad, which uses MachineMemOperands and is target-independent. This brings MachineLICM and other functionality to targets which previously lacked an isInvariantLoad implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83475 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
cheduleDAGInstrs.cpp
|
d5ce7033ba2445d8fd13504e422afeeffb61c3d3 |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a few simple MachineVerifier checks for MachineMemOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83474 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
2dbc4c84f6de55deeea6631201c5df943d5327c0 |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add a few simple MachineVerifier checks for MachineMemOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83474 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b67fb2b7be5c577e88578d240998a7ed3bf210db |
07-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Add register-reuse to frame-index register scavenging. When a target uses a virtual register to eliminate a frame index, it can return that register and the constant stored there to PEI to track. When scavenging to allocate for those registers, PEI then tracks the last-used register and value, and if it is still available and matches the value for the next index, reuses the existing value rather and removes the re-materialization instructions. Fancier tracking and adjustment of scavenger allocations to keep more values live for longer is possible, but not yet implemented and would likely be better done via a different, less special-purpose, approach to the problem. eliminateFrameIndex() is modified so the target implementations can return the registers they wish to be tracked for reuse. ARM Thumb1 implements and utilizes the new mechanism. All other targets are simply modified to adjust for the changed eliminateFrameIndex() prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83467 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
egisterScavenging.cpp
|
b58f498f7502e7e1833decbbbb4df771367c7341 |
07-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
Add register-reuse to frame-index register scavenging. When a target uses a virtual register to eliminate a frame index, it can return that register and the constant stored there to PEI to track. When scavenging to allocate for those registers, PEI then tracks the last-used register and value, and if it is still available and matches the value for the next index, reuses the existing value rather and removes the re-materialization instructions. Fancier tracking and adjustment of scavenger allocations to keep more values live for longer is possible, but not yet implemented and would likely be better done via a different, less special-purpose, approach to the problem. eliminateFrameIndex() is modified so the target implementations can return the registers they wish to be tracked for reuse. ARM Thumb1 implements and utilizes the new mechanism. All other targets are simply modified to adjust for the changed eliminateFrameIndex() prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83467 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
egisterScavenging.cpp
|
e725a19617ce125a02ad9c96279a68fbb0459240 |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix this comment. The loop header is the loop entry point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83437 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
bd31b173d276cb488b5fa72de8d42ae192cbfc97 |
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Fix this comment. The loop header is the loop entry point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83437 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
0feae424692b07197998bd7a451d8da44fd0ac9a |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to handle debug info attached to an instruction. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
|
60b35bd8ecb2c3358b80d8441873cfffa0d27851 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to handle debug info attached to an instruction. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
|
5fda434b0d4932d63b21ce3b5dd72c18e855da26 |
06-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Instead of printing unnecessary basic block labels as labels in verbose-asm mode, print comments instead. This eliminates a non-comment difference between verbose-asm mode and non-verbose-asm mode. Also, factor out the relevant code out of all the targets and into target-independent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83392 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e3cc3f3c84abfdf8eb3bd19dfa806ceea49f15d6 |
06-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Instead of printing unnecessary basic block labels as labels in verbose-asm mode, print comments instead. This eliminates a non-comment difference between verbose-asm mode and non-verbose-asm mode. Also, factor out the relevant code out of all the targets and into target-independent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83392 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f2519d6193d736ee7f2b9cc24e0143cfa933f79e |
06-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce and use convenience methods for getting pointer types where the element is of a basic builtin type. For example, to get an i8* use getInt8PtrTy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83379 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
seudoSourceValue.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
ac53a0b272452013124bfc70480aea5e41b60f40 |
06-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce and use convenience methods for getting pointer types where the element is of a basic builtin type. For example, to get an i8* use getInt8PtrTy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83379 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
seudoSourceValue.cpp
hadowStackGC.cpp
jLjEHPrepare.cpp
|
33b6450f08ca9ef6306adbd8cdb24145bf9a2202 |
06-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83378 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
6e214805b1163c0e3cd218963c9e66ea244956b2 |
06-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83378 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
f434889fb46c722f22c99a827ccc026f6271e3cd |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Fix cut-n-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83367 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8a4087ddc79945383d01cf9846d906215dfab3c7 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Fix cut-n-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83367 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5450fc15cb5de674d4e5203ab9ace59d3d6c38e5 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Update processDebugLoc() so that it can be used to process debug info before and after printing an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
af0e2726835e096e32c30c1b88cc7a6232a6ef69 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Update processDebugLoc() so that it can be used to process debug info before and after printing an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ac35dcf9887f9e7883745876525c2a7dc39bf8d4 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
89703cf838c5d875875faf58b746a78fc33c2499 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
393a46deb66be6885fd064a38e650bed859af5a1 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add utility routine to set begin and end labels for DbgScopes. This will be used by processDebugLoc(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83361 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0d20ac8d175575fbad1ed410c9fe610cf7255af3 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add utility routine to set begin and end labels for DbgScopes. This will be used by processDebugLoc(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83361 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
77354f12a0fd1882f4ec787e0a4309c2aaeae819 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Remove unintentional function decl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
b39566d719b3a39035cbb15bd98c33f31ae245b2 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Remove unintentional function decl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.h
|
8413999c15ade93fff73f9e43738f1dfd885ba70 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add utility routine to collect variable debug info. This is not yet used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83355 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e717faa467538a6e86c3f651382af3ec2759d43a |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add utility routine to collect variable debug info. This is not yet used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83355 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
93d2e89b3e82de8ab53b252b5f86de4e3b6980b6 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set default location for the function if it is not already set. This code is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
454e957979727bd29d75ec70623e50795f5824d9 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set default location for the function if it is not already set. This code is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
95d477eff9aa5b68b022546565f0a41eee38cb89 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Existence of a compile unit for input source file is a good indicator to check debug info's presence in a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83348 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6f3dc920b013df98be2d56c2f2628041477d75ee |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Existence of a compile unit for input source file is a good indicator to check debug info's presence in a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83348 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
186ee5cfbdf8c08394250e41d4bd6493999d56a1 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
If subprogram die is not available then construct new one. This can happen if debug info is processed lazily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83347 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ffd9c3dd4a0f9b5c341b27862540c1ed165b22a7 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
If subprogram die is not available then construct new one. This can happen if debug info is processed lazily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83347 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
695c8b08cab0e2844ddc14e3e7f87916fd90fdc6 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Adjust context for the global variables that are not at file scope, e.g. void foo() { static int bar = 42; } Here, foo's DIE is parent of bar's DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83344 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
fd07cf56cdaf730036c1d59bf0f9372dae8900df |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Adjust context for the global variables that are not at file scope, e.g. void foo() { static int bar = 42; } Here, foo's DIE is parent of bar's DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83344 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6bd5cc8a280aee4124ba96c146ea9672ae8a9712 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set address while constructing DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b71a16d10dd47f70947386064783eeac2abe29b2 |
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set address while constructing DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
adf4cf604eeca26d6a854945893fa6c264e02900 |
06-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
In Thumb1, the register scavenger is not always able to use an emergency spill slot. When frame references are via the frame pointer, they will be negative, but Thumb1 load/store instructions only allow positive immediate offsets. Instead, Thumb1 will spill to R12. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83336 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
540b05d227a79443b2a7b07d5152a35cb6392abf |
06-Oct-2009 |
Jim Grosbach <grosbach@apple.com> |
In Thumb1, the register scavenger is not always able to use an emergency spill slot. When frame references are via the frame pointer, they will be negative, but Thumb1 load/store instructions only allow positive immediate offsets. Instead, Thumb1 will spill to R12. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83336 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
946d0aef89afb5752d65e1900532c2afdc0cd700 |
05-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Gracefully handle various scopes while recording source line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83317 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f84548db63ca5ceea0381a7bfc9e924cddc1cc3f |
05-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Gracefully handle various scopes while recording source line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83317 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
82cdc06a6626e9a9fae300fafaeae9702ffb3808 |
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
strength reduce a ton of type equality tests to check the typeid (Through the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achineInstr.cpp
|
cf0fe8d813727383d630055bb9d1cde21b00b7e7 |
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
strength reduce a ton of type equality tests to check the typeid (Through the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achineInstr.cpp
|
d511acce19f3f29ab933a90e0f1972d31685fd40 |
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
stop MachineFunctionPass from claiming that it preserves LoopDependence info, which causes dependence info to be linked into lli. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83289 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionPass.cpp
|
92bef66c100cd7515b81473de8e8579b142f0c66 |
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
stop MachineFunctionPass from claiming that it preserves LoopDependence info, which causes dependence info to be linked into lli. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83289 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionPass.cpp
|
cc0aeb29f77c1d84341f2843edf6c0f78642f125 |
04-Oct-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Whitespace and formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83285 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b44fad7f95b9c0c65d5c772f6ed5084cf46283e9 |
04-Oct-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Whitespace and formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83285 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ead9d35fa9885422f4d1168f9261c63e194b21ff |
03-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Oops. Renamed remaining MachineInstrIndex references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83255 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
piller.cpp
trongPHIElimination.cpp
|
6cc91e39c04c0c00756e7667f623f787c4851439 |
03-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Oops. Renamed remaining MachineInstrIndex references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83255 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
piller.cpp
trongPHIElimination.cpp
|
0a6f4525040fd90996d1391cef8b24284b817ed3 |
03-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Renamed MachineInstrIndex to LiveIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83254 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
piller.cpp
trongPHIElimination.cpp
irtRegMap.h
|
cc3b0650f1feec45d1a2890b20c05c4b325f1788 |
03-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Renamed MachineInstrIndex to LiveIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83254 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
piller.cpp
trongPHIElimination.cpp
irtRegMap.h
|
e3901ce4809ad26b8173855549cc5adbe7b29b56 |
02-Oct-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix a use-after-free in post-ra-scheduling. MI->addOperand invalidates references to it's operands, avoid touching the operand after a new one was added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83249 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
8bff4af61219031345e7dae0c1840315e6bfab7f |
02-Oct-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix a use-after-free in post-ra-scheduling. MI->addOperand invalidates references to it's operands, avoid touching the operand after a new one was added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83249 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
db397e1ea09a961e2b3f16d7ee85eae5f19f8771 |
02-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
All callee-saved registers are live-out of a return block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83223 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
63bcbb72f75c92e3eff4d994eb1e8cb6d64c6e9b |
02-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
All callee-saved registers are live-out of a return block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83223 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
736fed9ff71ae677a7c947ac80ebb42a527de0dc |
02-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove neonfp attribute and instead set default based on CPU string. Add -arm-use-neon-fp to override the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83218 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9843a93e830e76f96e9a997b3002624a28ca5aa6 |
02-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove neonfp attribute and instead set default based on CPU string. Add -arm-use-neon-fp to override the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83218 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
089aa85274d26ebec4989ac1ceeefba7fca5e5ea |
01-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Restore the -post-RA-scheduler flag as an override for the target specification. Remove -mattr for setting PostRAScheduler enable and instead use CPU string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83215 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
471850ab84301dd47cab2bf8d694fcb5766c1169 |
01-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Restore the -post-RA-scheduler flag as an override for the target specification. Remove -mattr for setting PostRAScheduler enable and instead use CPU string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83215 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
6a26010c218cd8979439036cc90d3bea93b3996b |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to extract lexical scope information from DebugLoc attached with an machine instruction. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83210 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
af9e84701b42856051d87c5641652b796936df11 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to extract lexical scope information from DebugLoc attached with an machine instruction. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83210 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
cdb56fcef112775875904583d3cc07a262a28af3 |
01-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Use MachineFrameInfo.getPristineRegs() to determine which callee-saved registers are available for anti-dependency breaking. Some cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83208 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
c7951f8e09a65e07626e7b9a272ce9911b249472 |
01-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Use MachineFrameInfo.getPristineRegs() to determine which callee-saved registers are available for anti-dependency breaking. Some cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83208 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
90ecd198e2f605f8a613ce0861aeea7e16a56575 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Record first and last instruction of a scope in DbgScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83207 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d38dd11e120d1f1b1e73c6050458430a2e7d75f3 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Record first and last instruction of a scope in DbgScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83207 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
04be082a4a304483410133a89dbd0f1dfe902c9a |
01-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Observe hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. Do not change operands of instructions with these properties while breaking anti-dep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83198 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
714e8bc1fc415050e557272326a75b50ac54d2bb |
01-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Observe hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. Do not change operands of instructions with these properties while breaking anti-dep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83198 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
f736728788cddfb56d44fb826cb5d91dfdbfe294 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add another MDNode into DebugLocTuple. This will be used to keep track of inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a1434045c32eb6818354a607b84d99353af759b0 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add another MDNode into DebugLocTuple. This will be used to keep track of inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
539f434334ae6cc5becba8b3099eb20ab7fe48dc |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
If location info is attached with an instruction then keep track of alloca slots used by a variable. This info will be used by AsmPrinter to emit debug info for variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
75549f4444cbb14e73c8f10ab90ec36c60413e8e |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
If location info is attached with an instruction then keep track of alloca slots used by a variable. This info will be used by AsmPrinter to emit debug info for variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
86049dcedaba49929bf6e4c1cd84f9d85cadb987 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Use MachineInstr as an processDebugLoc() argument. This will allow processDebugLoc() to handle scopes for DWARF debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83183 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b0fdedb3fd123a47e7deca75d1e6f7d64218b07a |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Use MachineInstr as an processDebugLoc() argument. This will allow processDebugLoc() to handle scopes for DWARF debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83183 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4d23d84af58fc21b50dce528a8a26a30a62db355 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Use MDNode * directly as an RecordSourceLine() argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83182 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
electionDAG/LegalizeDAG.cpp
|
3d910835fc5da1ccddefd7cc5978ffe8c903cbf0 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Use MDNode * directly as an RecordSourceLine() argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83182 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
electionDAG/LegalizeDAG.cpp
|
16030402039c222229fe0e64cbc8307964480e31 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83181 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
a63710124a4c0d248ab32f82b76b3c7ec670d1e0 |
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83181 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
b5f835ee6e48aedbffb804a6bf5308465867e67b |
01-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a new virtual EmitStartOfAsmFile method to the AsmPrinter and use this to emit target-specific things at the beginning of the asm output. This fixes a problem for PPC, where the text sections are not being kept together as expected. The base class doInitialization code calls DW->BeginModule() which emits a bunch of DWARF section directives. The PPC doInitialization code then emits all the TEXT section directives, with the intention that they will be kept together. But as I understand it, the Darwin assembler treats the default TEXT section as a special case and moves it to the beginning of the file, which means that all those DWARF sections are in the middle of the text. With this change, the EmitStartOfAsmFile hook is called before the DWARF section directives are emitted, so that all the PPC text section directives come out right at the beginning of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83176 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
812209a58c5520c604bc9279aa069e5ae066e860 |
01-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a new virtual EmitStartOfAsmFile method to the AsmPrinter and use this to emit target-specific things at the beginning of the asm output. This fixes a problem for PPC, where the text sections are not being kept together as expected. The base class doInitialization code calls DW->BeginModule() which emits a bunch of DWARF section directives. The PPC doInitialization code then emits all the TEXT section directives, with the intention that they will be kept together. But as I understand it, the Darwin assembler treats the default TEXT section as a special case and moves it to the beginning of the file, which means that all those DWARF sections are in the middle of the text. With this change, the EmitStartOfAsmFile hook is called before the DWARF section directives are emitted, so that all the PPC text section directives come out right at the beginning of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83176 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6ed4b620633aff7001447bf3ddd86924f8fd7d10 |
30-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83171 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bc9506f5eec2ff5f05f66b03e13a5fd678fd9134 |
30-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83171 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
64ccb3919aa594caf4c2196eed9e72cc9797fe57 |
30-Sep-2009 |
Reid Kleckner <reid@kleckner.net> |
Silence comparison always false warning in -Asserts mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3a90c9b8edb53ea1ea57d94f7ab256608b5b30c6 |
30-Sep-2009 |
Reid Kleckner <reid@kleckner.net> |
Silence comparison always false warning in -Asserts mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
af24317c91a2383560a6707d35ae41f770c05a14 |
30-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Add additional assert() to verify no extraneous use of a scavenged register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83163 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
32030fe021ee614df6fdd77a2228e0e265049f3d |
30-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Add additional assert() to verify no extraneous use of a scavenged register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83163 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e9b95fd1ebb1f046d17afd0123d7c3afcd4ddef0 |
30-Sep-2009 |
Reid Kleckner <reid@kleckner.net> |
Fix integer overflow in instruction scheduling. This can happen if we have basic blocks that are so long that their size overflows a short. Also assert that overflow does not happen in the future, as requested by Evan. This fixes PR4401. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83159 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
c277ab08a24d2dbe9b4ff1a9154ea6115ed6a4e3 |
30-Sep-2009 |
Reid Kleckner <reid@kleckner.net> |
Fix integer overflow in instruction scheduling. This can happen if we have basic blocks that are so long that their size overflows a short. Also assert that overflow does not happen in the future, as requested by Evan. This fixes PR4401. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83159 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
caa654136388c6b3b1909149a5d9002159983ee1 |
30-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a target hook to add pre- post-regalloc scheduling passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83144 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
629adde69953fa53362d20ddb7b4e67ed78b8ae3 |
30-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a target hook to add pre- post-regalloc scheduling passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83144 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a0e180ac4672e4a304f93a2d0207428c83de155e |
30-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
replace TRI->isVirtualRegister() with TargetRegisterInfo::isVirtualRegister() per customary usage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83137 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
366e021fb2cb0efb8e727ef5e40bd55cef974c7a |
30-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
replace TRI->isVirtualRegister() with TargetRegisterInfo::isVirtualRegister() per customary usage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83137 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
25e34f9b00ed6c3b69f77fbec6173ca9071ac793 |
30-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
fix compiler warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83132 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
0a13e566abcfacc3e07f509437060eee294dbfee |
30-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
fix compiler warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83132 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
48e8d7af49d3f3e2cd279c13b8897fcade1801a5 |
30-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83123 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
fdc826f6e834a2da80965a34f2ffb5d869fd8c64 |
30-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83123 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
cf89a609bc2c368e2c5c970131edc40c08175893 |
30-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove -post-RA-schedule flag and add a TargetSubtarget method to enable post-register-allocation scheduling. By default it is off. For ARM, enable/disable with -mattr=+/-postrasched. Enable by default for cortex-a8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83122 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
|
0dad89fa94536284d51f60868326294b725a0c61 |
30-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove -post-RA-schedule flag and add a TargetSubtarget method to enable post-register-allocation scheduling. By default it is off. For ARM, enable/disable with -mattr=+/-postrasched. Enable by default for cortex-a8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83122 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
|
b22cd0ff4c6c3ba4a39b8b11afb21ddf40e79f74 |
30-Sep-2009 |
Mike Stump <mrs@apple.com> |
Add a way for a frontend to generate more complex dwarf location information. This allows arbitrary code involving DW_OP_plus_uconst and DW_OP_deref. The scheme allows for easy extention to include, any, or all of the DW_OP_ opcodes. I thought about just exposing all of them, but, wasn't sure if people wanted the dwarf opcodes exposed in the api. Is that a layering violation? With this scheme, the entire existing block scheme used by llvm-gcc can be switched over to the new scheme. I think that would be cleaner, as then the compiler specific bits are not present in llvm proper. Before the old code can be yanked however, similar code in clang would have to be removed. Next up, more testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83120 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
3e4c9bdb67db9b6d65b17d474e3268b520a93514 |
30-Sep-2009 |
Mike Stump <mrs@apple.com> |
Add a way for a frontend to generate more complex dwarf location information. This allows arbitrary code involving DW_OP_plus_uconst and DW_OP_deref. The scheme allows for easy extention to include, any, or all of the DW_OP_ opcodes. I thought about just exposing all of them, but, wasn't sure if people wanted the dwarf opcodes exposed in the api. Is that a layering violation? With this scheme, the entire existing block scheme used by llvm-gcc can be switched over to the new scheme. I think that would be cleaner, as then the compiler specific bits are not present in llvm proper. Before the old code can be yanked however, similar code in clang would have to be removed. Next up, more testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83120 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1f2144540eebd8dfd6161f7f1e350f7f0cf8fc89 |
29-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Additional check for regno==0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83103 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
a9a9c95f6789946d5df34185725fc28cebad8b16 |
29-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Additional check for regno==0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83103 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
50ffdfb9df7dceaba43fd40a1053d22787257fd6 |
29-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Remove unnecessary cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83100 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9dddf9748025cb65a951e6807bc156cf5bcd046d |
29-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Remove unnecessary cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83100 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
aaf012ebb492482ba3626e4129140713cd7836b7 |
29-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Remove std::string uses from DebugInfo interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83083 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
5ccdd10b1a0ee1ce35b6e5a18eb0fcfd6f5131d3 |
29-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Remove std::string uses from DebugInfo interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83083 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
achineInstr.cpp
|
428fa81b068032e70a4df96a9bf95aea8647bae7 |
29-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Simplify the tracking of virtual frame index registers. Ranges cannot overlap, so a simple "current register" will suffice. Also add some additional sanity-checking assertions to make sure things are as we expect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83081 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
9a0b6e6ded68db772631c2938c7a07905e28144f |
29-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Simplify the tracking of virtual frame index registers. Ranges cannot overlap, so a simple "current register" will suffice. Also add some additional sanity-checking assertions to make sure things are as we expect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83081 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
1261bc74142b823bf80824e5f7e20697cb136747 |
29-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Moving register scavenging to a post pass results in virtual registers in the instruction we're scavenging for. The scavenger needs to know to avoid them when analyzing register usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83077 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
9ab2238df9f921970554cae8e7f6f7ad23d6c626 |
29-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Moving register scavenging to a post pass results in virtual registers in the instruction we're scavenging for. The scavenger needs to know to avoid them when analyzing register usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83077 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
6de78e26bd0bb682ac466ae1b46a8a29c9d6ae9c |
28-Sep-2009 |
Devang Patel <dpatel@apple.com> |
s/class Metadata/class MetadataContext/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e30e678865b8dc1b69ef1c26e7567ffd1300553c |
28-Sep-2009 |
Devang Patel <dpatel@apple.com> |
s/class Metadata/class MetadataContext/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b5896160216cae66e3a06cb58c3c38ba09f6969e |
28-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Do not use global typedef for MDKindID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a2148402ce39fb3aad09e98a32078d3853a01ae9 |
28-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Do not use global typedef for MDKindID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1b17870ccf5ae6abd45044f2788825fa0db381e5 |
28-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use KILL instead of IMPLICIT_DEF in LowerSubregs pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83007 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
ostRASchedulerList.cpp
|
544df3651e15f31ae2c14588c1272fd870560250 |
28-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use KILL instead of IMPLICIT_DEF in LowerSubregs pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83007 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
ostRASchedulerList.cpp
|
c7d0e9d24270f52cdc47b94ebaad316d4fcc2b44 |
28-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Use VerifySchedule instead of doing the work manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
937d2d86242339c17e77a6016b96999f439a1714 |
28-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Use VerifySchedule instead of doing the work manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
58cb38c09d1b7e0e8c27d56ac94a524552ef436c |
28-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Coalescer should not delete extract_subreg, insert_subreg, and subreg_to_reg of physical registers. This is especially critical for the later two since they start the live interval of a super-register. e.g. %DO<def> = INSERT_SUBREG %D0<undef>, %S0<kill>, 1 If this instruction is eliminated, the register scavenger will not be happy as D0 is not defined previously. This fixes PR5055. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82968 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0e6b590b91fcf6d49d2c25196f5053ce285e17f5 |
28-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Coalescer should not delete extract_subreg, insert_subreg, and subreg_to_reg of physical registers. This is especially critical for the later two since they start the live interval of a super-register. e.g. %DO<def> = INSERT_SUBREG %D0<undef>, %S0<kill>, 1 If this instruction is eliminated, the register scavenger will not be happy as D0 is not defined previously. This fixes PR5055. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82968 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4c2770bd33b6ce5587a1226d52a77a2ad5a3f345 |
27-Sep-2009 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Use explicit structs instead of std::pair to map callee saved regs to spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82909 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
8ff95de83cbe85d939535d2f4fb5f9b2b721081a |
27-Sep-2009 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Use explicit structs instead of std::pair to map callee saved regs to spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82909 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
2221f5657297e8c645617e7304d360aceda1b409 |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Convert comparisons like (x == infinity) to (x >= infinity) on targets where FCMP_OEQ is not legal and FCMP_OGE is, such as x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
11eab02b770086c119a18aae0fe214fbe5eed0d0 |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Convert comparisons like (x == infinity) to (x >= infinity) on targets where FCMP_OEQ is not legal and FCMP_OGE is, such as x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7da0592edfecaac630500ce491f7e339d416be60 |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Don't hoist or sink instructions with physreg uses if the physreg is allocatable. Even if it doesn't appear to have any defs, it may latter on after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82834 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
achineSink.cpp
|
45094e34bcbb133aa0bbe55710e25369df0e02ed |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Don't hoist or sink instructions with physreg uses if the physreg is allocatable. Even if it doesn't appear to have any defs, it may latter on after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82834 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
achineSink.cpp
|
13b1ad6276483958045c11cb589586e0fb0959ed |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Unbreak MachineLICM for instructions that reference RIP on x86-64 too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82825 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a8fb336c2e7b8beb00d96a0992c41d38f0310a8f |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Unbreak MachineLICM for instructions that reference RIP on x86-64 too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82825 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
232e4448242ec67d6a7b48906002ab7c3f7af96c |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineMemOperand::getAlignment out of line, to avoid needing MathExtras.h in MachineMemOperand.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82822 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4b2ebc19288491cb068f268c311d9fef0ec6a29f |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineMemOperand::getAlignment out of line, to avoid needing MathExtras.h in MachineMemOperand.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82822 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
75b79e54a4fd0ea94c2bc91ab7ac3c6248d1af5c |
26-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82821 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
295a8089cd76079d3e2798c6a44ee249852cab12 |
26-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82821 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5dedd5c716f4c2741afd8ac264d5e4e09adbcf1b |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix MachineSink to be able to sink instructions that use physical registers which have no defs anywhere in the function. In particular, this fixes sinking of instructions that reference RIP on x86-64, which is currently being modeled as a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82815 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
19778e7558bc161b87920c5be9cc01bb84a08de2 |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix MachineSink to be able to sink instructions that use physical registers which have no defs anywhere in the function. In particular, this fixes sinking of instructions that reference RIP on x86-64, which is currently being modeled as a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82815 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
04abe740fc7391473a417d498535eed8fd834a4b |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Simplify a few more uses of reg_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82812 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineRegisterInfo.cpp
egAllocLinearScan.cpp
|
2bf0649e053d1589689d2e4cf32c7bf1e5e6ae12 |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Simplify a few more uses of reg_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82812 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineRegisterInfo.cpp
egAllocLinearScan.cpp
|
282a4ab6f595a493b5fe6cdd36ff9673454e1f16 |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code by using use_iterator instead of reg_iterator and skipping the defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82811 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
29438d13e036cb454b2089b8e175fc93f62bbba2 |
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code by using use_iterator instead of reg_iterator and skipping the defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82811 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c9122db8146cea80861ecaac6566ae8f75ed2497 |
25-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Flip -disable-post-RA-scheduler to -post-RA-scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82803 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
483011018efec3972fb2b003d6e8b6a095e4d9e5 |
25-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Flip -disable-post-RA-scheduler to -post-RA-scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82803 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4e3bb1bc735783b73f2dcca82c86b7faca1a87e8 |
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Improve MachineMemOperand handling. - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82794 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineFunction.cpp
achineInstr.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
c76909abfec876c6b751d693ebd3df07df686aa0 |
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Improve MachineMemOperand handling. - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82794 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineFunction.cpp
achineInstr.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
61fda0d889b3578fe435455679182c231a649aac |
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Rename getTargetNode to getMachineNode, for consistency with the naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82790 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
602b0c8c17f458d2c80f2deb3c8e554d516ee316 |
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Rename getTargetNode to getMachineNode, for consistency with the naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82790 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bccd219ac7eb590d369f9bda03ade6467aa49e24 |
25-Sep-2009 |
Dale Johannesen <dalej@apple.com> |
Make sure sin, cos, sqrt calls are marked readonly before producing FSIN, FCOS, FSQRT. If they aren't so marked we have to assume they might set errno. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a45bfd31de14321262dd5f5123d04fc953a79ff1 |
25-Sep-2009 |
Dale Johannesen <dalej@apple.com> |
Make sure sin, cos, sqrt calls are marked readonly before producing FSIN, FCOS, FSQRT. If they aren't so marked we have to assume they might set errno. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8891e4478909879ca4f4e745312b542cc8aca7e6 |
25-Sep-2009 |
Dale Johannesen <dalej@apple.com> |
Generate FSQRT from calls to the sqrt function, which allows appropriate backends to generate a sqrt instruction. On x86, this isn't done at -O0 because we go through FastISel instead. This is a behavior change from before this series of sqrt patches started. I think this is OK considering that compile speed is most important at -O0, but could be convinced otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
52fb79b7f9792999b18c1230b5ababaa48df9c85 |
25-Sep-2009 |
Dale Johannesen <dalej@apple.com> |
Generate FSQRT from calls to the sqrt function, which allows appropriate backends to generate a sqrt instruction. On x86, this isn't done at -O0 because we go through FastISel instead. This is a behavior change from before this series of sqrt patches started. I think this is OK considering that compile speed is most important at -O0, but could be convinced otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c1c8b5e19b33c8b5e52c4b516669181f18feb98e |
25-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
pr4926: ARM requires the stack pointer to be aligned, even for leaf functions. For the AAPCS ABI, SP must always be 4-byte aligned, and at any "public interface" it must be 8-byte aligned. For the older ARM APCS ABI, the stack alignment is just always 4 bytes. For X86, we currently align SP at entry to a function (e.g., to 16 bytes for Darwin), but no stack alignment is needed at other times, such as for a leaf function. After discussing this with Dan, I decided to go with the approach of adding a new "TransientStackAlignment" field to TargetFrameInfo. This value specifies the stack alignment that must be maintained even in between calls. It defaults to 1 except for ARM, where it is 4. (Some other targets may also want to set this if they have similar stack requirements. It's not currently required for PPC because it sets targetHandlesStackFrameRounding and handles the alignment in target-specific code.) The existing StackAlignment value specifies the alignment upon entry to a function, which is how we've been using it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82767 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
0035f9c3b9982eeef098b608fceb7572df969b3e |
25-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
pr4926: ARM requires the stack pointer to be aligned, even for leaf functions. For the AAPCS ABI, SP must always be 4-byte aligned, and at any "public interface" it must be 8-byte aligned. For the older ARM APCS ABI, the stack alignment is just always 4 bytes. For X86, we currently align SP at entry to a function (e.g., to 16 bytes for Darwin), but no stack alignment is needed at other times, such as for a leaf function. After discussing this with Dan, I decided to go with the approach of adding a new "TransientStackAlignment" field to TargetFrameInfo. This value specifies the stack alignment that must be maintained even in between calls. It defaults to 1 except for ARM, where it is 4. (Some other targets may also want to set this if they have similar stack requirements. It's not currently required for PPC because it sets targetHandlesStackFrameRounding and handles the alignment in target-specific code.) The existing StackAlignment value specifies the alignment upon entry to a function, which is how we've been using it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82767 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
aec69ee8287d0ac26b45fb20240af79e5497ef01 |
25-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix combiner-aa issue with bases which are different, but can alias. Previously, it treated GV+28 GV+0 as different bases, and assumed they could not alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cc66cdd79c7500e8184a837418debdfae4407b5f |
25-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix combiner-aa issue with bases which are different, but can alias. Previously, it treated GV+28 GV+0 as different bases, and assumed they could not alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
594bb86a065af025a8fd90ef486d9f54fb869f95 |
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a version of dumpr() that has a SelectionDAG* argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8fc13cb4f7a2997f993ffdfe6e488046ec6c834e |
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a version of dumpr() that has a SelectionDAG* argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
abd0e3ddaf34e1589bae68eecb9fcfb7f14ac297 |
25-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Start of revamping the register scavenging in PEI. ARM Thumb1 is the driving interest for this, as it currently reserves a register rather than using the scavenger for matierializing constants as needed. Instead of scavenging registers on the fly while eliminating frame indices, new virtual registers are created, and then a scavenged collectively in a post-pass over the function. This isolates the bits that need to interact with the scavenger, and sets the stage for more intelligent use, and reuse, of scavenged registers. For the time being, this is disabled by default. Once the bugs are worked out, the current scavenging calls in replaceFrameIndices() will be removed and the post-pass scavenging will be the default. Until then, -enable-frame-index-scavenging enables the new code. Currently, only the Thumb1 back end is set up to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82734 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
3d6cb88a64fe67064de206405951eb326d86fc0c |
25-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Start of revamping the register scavenging in PEI. ARM Thumb1 is the driving interest for this, as it currently reserves a register rather than using the scavenger for matierializing constants as needed. Instead of scavenging registers on the fly while eliminating frame indices, new virtual registers are created, and then a scavenged collectively in a post-pass over the function. This isolates the bits that need to interact with the scavenger, and sets the stage for more intelligent use, and reuse, of scavenged registers. For the time being, this is disabled by default. Once the bugs are worked out, the current scavenging calls in replaceFrameIndices() will be removed and the post-pass scavenging will be the default. Until then, -enable-frame-index-scavenging enables the new code. Currently, only the Thumb1 back end is set up to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82734 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
2fd84e281e90d309c22639a7ba9585871050e777 |
25-Sep-2009 |
Mike Stump <mrs@apple.com> |
Delete space after function name, before (, reflow a comment and delete a few blank lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82729 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
7e3720da38834a192da2257fc4cb0829db7c1b40 |
25-Sep-2009 |
Mike Stump <mrs@apple.com> |
Delete space after function name, before (, reflow a comment and delete a few blank lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82729 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cf991836d66fafd16a28b20a04bbff143c99e700 |
25-Sep-2009 |
Mike Stump <mrs@apple.com> |
Fix spacing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82727 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ee4b8a7781b3398be82851cec9f098ebda7b5c2f |
25-Sep-2009 |
Mike Stump <mrs@apple.com> |
Fix spacing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82727 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
ed17499ee7446c5da5638f6c4c34eea660808a3d |
24-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Make the end-of-itinerary mark explicit. Some cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82709 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
1f528956921561f277a8c697e0202ac1e9a9c1d5 |
24-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Make the end-of-itinerary mark explicit. Some cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82709 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
92244901c3c0101b8114ffa52c1dcf0e9cda72a1 |
24-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a hypothetical problem for targets with StackGrowsUp and a non-zero LocalAreaOffset. (We don't have any of those right now.) PEI::calculateFrameObjectOffsets includes the absolute value of the LocalAreaOffset in the cumulative offset value used to calculate the stack frame size. It then adds the raw value of the LocalAreaOffset to the stack size. For a StackGrowsDown target, that raw value is negative and has the effect of cancelling out the absolute value that was added earlier, but that obviously won't work for a StackGrowsUp target. Change to subtract the absolute value of the LocalAreaOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82693 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c34666ee1871d47dfa4865c7138902dd1b770101 |
24-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a hypothetical problem for targets with StackGrowsUp and a non-zero LocalAreaOffset. (We don't have any of those right now.) PEI::calculateFrameObjectOffsets includes the absolute value of the LocalAreaOffset in the cumulative offset value used to calculate the stack frame size. It then adds the raw value of the LocalAreaOffset to the stack size. For a StackGrowsDown target, that raw value is negative and has the effect of cancelling out the absolute value that was added earlier, but that obviously won't work for a StackGrowsUp target. Change to subtract the absolute value of the LocalAreaOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82693 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c73e8ebf88f2c21b857296951b4babc6bd404426 |
24-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
unconditionally compute MMI even if the target doesn't support EH or Debug info, because the target may use it for other things, this fixes PR5036 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b55e068e53fccc609b7d9cd198ed9818c188a196 |
24-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
unconditionally compute MMI even if the target doesn't support EH or Debug info, because the target may use it for other things, this fixes PR5036 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f33cdc3f423b26e209fd058d50acea55966adb00 |
24-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024 with a big hammer: disable the double-def assertion in the scavenger. LiveVariables add implicit kills to correctly track partial register kills. This works well enough and is fairly accurate. But coalescer can make it impossible to maintain these markers. e.g. BL <ga:sss1>, %R0<kill,undef>, %S0<kill>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def>, ... ... %reg1031<def> = FLDS <cp#1>, 0, 14, %reg0, Mem:LD4[ConstantPool] ... %S0<def> = FCPYS %reg1031<kill>, 14, %reg0, %D0<imp-use,kill> When reg1031 and S0 are coalesced, the copy (FCPYS) will be eliminated the the implicit-kill of D0 is lost. In this case it's possible to move the marker to the FLDS. But in many cases, this is not possible. Suppose %reg1031<def> = FOO <cp#1>, %D0<imp-def> ... %S0<def> = FCPYS %reg1031<kill>, 14, %reg0, %D0<imp-use,kill> When FCPYS goes away, the definition of S0 is the "FOO" instruction. However, transferring the D0 implicit-kill to FOO doesn't work since it is the def of D0 itself. We need to fix this in another time by introducing a "kill" pseudo instruction to track liveness. Disabling the assertion is not ideal, but machine verifier is doing that job now. It's important to know double-def is not a miscomputation since it means a register should be free but it's not tracked as free. It's a performance issue instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82677 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
393e277ecd02f52443633f6bfacdd1d4c6981212 |
24-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024 with a big hammer: disable the double-def assertion in the scavenger. LiveVariables add implicit kills to correctly track partial register kills. This works well enough and is fairly accurate. But coalescer can make it impossible to maintain these markers. e.g. BL <ga:sss1>, %R0<kill,undef>, %S0<kill>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def>, ... ... %reg1031<def> = FLDS <cp#1>, 0, 14, %reg0, Mem:LD4[ConstantPool] ... %S0<def> = FCPYS %reg1031<kill>, 14, %reg0, %D0<imp-use,kill> When reg1031 and S0 are coalesced, the copy (FCPYS) will be eliminated the the implicit-kill of D0 is lost. In this case it's possible to move the marker to the FLDS. But in many cases, this is not possible. Suppose %reg1031<def> = FOO <cp#1>, %D0<imp-def> ... %S0<def> = FCPYS %reg1031<kill>, 14, %reg0, %D0<imp-use,kill> When FCPYS goes away, the definition of S0 is the "FOO" instruction. However, transferring the D0 implicit-kill to FOO doesn't work since it is the def of D0 itself. We need to fix this in another time by introducing a "kill" pseudo instruction to track liveness. Disabling the assertion is not ideal, but machine verifier is doing that job now. It's important to know double-def is not a miscomputation since it means a register should be free but it's not tracked as free. It's a performance issue instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82677 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
04f3d1de138c7ebffc1d37a273e5a8675b6a933d |
24-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up LiveVariables and change how it deals with partial updates and kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more accurate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82676 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
impleRegisterCoalescing.cpp
|
ad934b821c78d39e73a213c62cd57288f8605a0c |
24-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up LiveVariables and change how it deals with partial updates and kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more accurate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82676 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
impleRegisterCoalescing.cpp
|
ad4880332c61c808014c202255dce5f8fafe581e |
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Use getStoreSize() instead of getStoreSizeInBits()/8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
|
4e918b2c8ca81edd63f6708e08835b2c14648615 |
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Use getStoreSize() instead of getStoreSizeInBits()/8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
|
3bab1f776cf32aadd62d490f54cec968ef38eec7 |
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Rename several variables from EVT to more descriptive names, now that EVT is also the name of their type, as declarations like "EVT EVT" look really odd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
8a55ce4a392f07ac1f3c183100ac591b7ad7c693 |
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Rename several variables from EVT to more descriptive names, now that EVT is also the name of their type, as declarations like "EVT EVT" look really odd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
ef0853ae5ef4ef4dac82362ecb914ad2b3df1ae0 |
23-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix verification of explicit operands. The machine code verifier did not check for explicit operands correctly. It used MachineInstr::getNumExplicitOperands, but that method may cheat and use the declared count in the TargetInstrDesc. Now we check the explicit operands one at a time in visitMachineOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82652 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
39523e2cfb625d90aa122252b041e2311a9a8ca5 |
23-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix verification of explicit operands. The machine code verifier did not check for explicit operands correctly. It used MachineInstr::getNumExplicitOperands, but that method may cheat and use the declared count in the TargetInstrDesc. Now we check the explicit operands one at a time in visitMachineOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82652 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a9b57edff7a7dbf11ba9fe787349d21f7e3e80f6 |
23-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Edit a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82641 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
94188d4e67cf1c570ad87dbabf198931033d628e |
23-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Edit a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82641 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
83b6ace01ffb5d8d495a4b70c7406d06f0dd2067 |
23-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix bug in kill flag updating for post-register-allocation scheduling. When the kill flag of a superreg needs to be cleared because there are one or more subregs live, we instead add implicit-defs of those subregs and leave the kill flag on the superreg. This allows us to end the live-range of the superreg without ending the live-ranges of the subregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82629 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
8f909345bcabd0cbcb99d01d23f1d77b8b1518ec |
23-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix bug in kill flag updating for post-register-allocation scheduling. When the kill flag of a superreg needs to be cleared because there are one or more subregs live, we instead add implicit-defs of those subregs and leave the kill flag on the superreg. This allows us to end the live-range of the superreg without ending the live-ranges of the subregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82629 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
d062bf740651c35ed3ee80b66b02d8363fd14a3a |
23-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024. LiveVariables physical register defs should *commit* only after all of the defs are processed. Also fix a implicit_def propagation bug: a implicit_def of a physical register should be applied to uses of the sub-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82616 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
296925dc169b45e7535abdccc8dc143a8bec7f0a |
23-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024. LiveVariables physical register defs should *commit* only after all of the defs are processed. Also fix a implicit_def propagation bug: a implicit_def of a physical register should be applied to uses of the sub-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82616 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
29a1c10040effaa8c0968a3899b053b6b591a73a |
23-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a obvious logic error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82610 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f7cd853071a02392d17ac544f69c14481e5400d0 |
23-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a obvious logic error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82610 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
915d872b7a05774ea93ba7fbb25f0944d62e10fb |
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Give MachineMemOperand an operator<<, factoring out code from two different places for printing MachineMemOperands. Drop the virtual from Value::dump and instead give Value a protected virtual hook that can be overridden by subclasses to implement custom printing. This lets printing be more consistent, and simplifies printing of PseudoSourceValue values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82599 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/SelectionDAG.cpp
|
cd26ec5f3c089b3b24f80ff200e94e681eb9e1ee |
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Give MachineMemOperand an operator<<, factoring out code from two different places for printing MachineMemOperands. Drop the virtual from Value::dump and instead give Value a protected virtual hook that can be overridden by subclasses to implement custom printing. This lets printing be more consistent, and simplifies printing of PseudoSourceValue values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82599 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/SelectionDAG.cpp
|
069f1c9642c471d827cfaaca98f31aef707464ee |
23-Sep-2009 |
Mike Stump <mrs@apple.com> |
This is overly constraining with respect to clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82591 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d75e9aad24723cf816d3b3cf658bbd23da144f90 |
23-Sep-2009 |
Mike Stump <mrs@apple.com> |
This is overly constraining with respect to clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82591 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cc74792c99e085a14bdd6db9edea362b465406da |
22-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Use early returns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82554 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
047ae2f2ad2161d37996c26a5e5ac2b79f09eee5 |
22-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Use early returns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82554 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
cd216d523e696749d681faca9f3bda92b13cd695 |
22-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024. LiveVariables::FindLastPartialDef should return a set of sub-registers that were defined by the last partial def, not just a single sub-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82535 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
60c7df2c9311fc35ab02f1600419e91d55d5b133 |
22-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024. LiveVariables::FindLastPartialDef should return a set of sub-registers that were defined by the last partial def, not just a single sub-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82535 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
b6d716f620ad28e540c2a262504ebaeff6461b3f |
22-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a pasto. Also simplify for Bill's benefit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82505 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
014d624a2864605b10d3b14fd9cda3163c41f6bf |
22-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a pasto. Also simplify for Bill's benefit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82505 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
eb21e377d210da64284a7e52ca694e0f42b5062d |
22-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug fix. LowerSubregs should translate %S0<def> = EXTRACT_SUBREG %Q0<kill>, 1 to %S0<def> = IMPLICIT_DEF %Q0<imp-use,kill> Implicit_def does not *read* any register so the operand should be marked "implicit". The missing "implicit" marker on the operand is wrong, but it doesn't actually break anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82503 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
1c17c1bc54335564e86bdb7c5e87383feddbc729 |
22-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug fix. LowerSubregs should translate %S0<def> = EXTRACT_SUBREG %Q0<kill>, 1 to %S0<def> = IMPLICIT_DEF %Q0<imp-use,kill> Implicit_def does not *read* any register so the operand should be marked "implicit". The missing "implicit" marker on the operand is wrong, but it doesn't actually break anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82503 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
b9bbb5795a133c6cca6a5ac4e5ab110016d4e7c1 |
21-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up spill weight computation. Also some changes to give loop induction variable increment / decrement slighter high priority. This has major impact on some micro-benchmarks. On MultiSource/Applications and spec tests, it's a minor win. It also reduce 256.bzip instruction count by 8%, 55 on 164.gzip on i386 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82485 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
cf985a95454c935d8662ef5200c79ca0553b3da7 |
21-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up spill weight computation. Also some changes to give loop induction variable increment / decrement slighter high priority. This has major impact on some micro-benchmarks. On MultiSource/Applications and spec tests, it's a minor win. It also reduce 256.bzip instruction count by 8%, 55 on 164.gzip on i386 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82485 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
169948d4180417313f5332b85d2572520592de3c |
21-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Change MachineMemOperand's alignment value to be the alignment of the base pointer, without the offset. This matches MemSDNode's new alignment behavior, and holds more interesting information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82473 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAG.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
28f02fdd76f4efc05d14649e0eec90ce8e71e17e |
21-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Change MachineMemOperand's alignment value to be the alignment of the base pointer, without the offset. This matches MemSDNode's new alignment behavior, and holds more interesting information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82473 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAG.cpp
tackSlotColoring.cpp
argetInstrInfoImpl.cpp
|
30a8d480ddd031f85b3386db7ccfe11e027b525c |
21-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix this assertion string to mention subreg_to_reg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82455 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a079ff38052729cb9e22eb71bce7b402d079d42c |
21-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix this assertion string to mention subreg_to_reg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82455 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8314a42c92bd21ecfa700da8cbe60b6818caba33 |
21-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that phi instructions refer to MBBs in the CFG. The machine code verifier no longer tolerates phi instructions with noop operands. All MBBs on a phi instruction must be in the CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82448 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a5ba07c3d14ffdf288af2513d4ab39464fb7e20d |
21-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that phi instructions refer to MBBs in the CFG. The machine code verifier no longer tolerates phi instructions with noop operands. All MBBs on a phi instruction must be in the CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82448 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a32393f6bbe778ea5f6960bc67c34176ce769198 |
21-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4986. "r1024 = insert_subreg r1024, undef, 2" cannot be turned in an implicit_def. Instead, it's an identity copy so it should be eliminated. Also make sure to update livevariable kill information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82436 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b0f5973bee566269f41d1cc21b7a1d3bede1d837 |
21-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4986. "r1024 = insert_subreg r1024, undef, 2" cannot be turned in an implicit_def. Instead, it's an identity copy so it should be eliminated. Also make sure to update livevariable kill information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82436 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
738b4f2a7d37600af45fc6a5515d5a5be175d19e |
21-Sep-2009 |
Reid Kleckner <reid@kleckner.net> |
Implement the JIT side of the GDB JIT debugging interface. To enable this feature, either build the JIT in debug mode to enable it by default or pass -jit-emit-debug to lli. Right now, the only debug information that this communicates to GDB is call frame information, since it's already being generated to support exceptions in the JIT. Eventually, when DWARF generation isn't tied so tightly to AsmPrinter, it will be easy to push that information to GDB through this interface. Here's a step-by-step breakdown of how the feature works: - The JIT generates the machine code and DWARF call frame info (.eh_frame/.debug_frame) for a function into memory. - The JIT copies that info into an in-memory ELF file with a symbol for the function. - The JIT creates a code entry pointing to the ELF buffer and adds it to a linked list hanging off of a global descriptor at a special symbol that GDB knows about. - The JIT calls a function marked noinline that GDB knows about and has put an internal breakpoint in. - GDB catches the breakpoint and reads the global descriptor to look for new code. - When sees there is new code, it reads the ELF from the inferior's memory and adds it to itself as an object file. - The JIT continues, and the next time we stop the program, we are able to produce a proper backtrace. Consider running the following program through the JIT: #include <stdio.h> void baz(short z) { long w = z + 1; printf("%d, %x\n", w, *((int*)NULL)); // SEGFAULT here } void bar(short y) { int z = y + 1; baz(z); } void foo(char x) { short y = x + 1; bar(y); } int main(int argc, char** argv) { char x = 1; foo(x); } Here is a backtrace before this patch: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x2aaaabdfbd10 (LWP 25476)] 0x00002aaaabe7d1a8 in ?? () (gdb) bt #0 0x00002aaaabe7d1a8 in ?? () #1 0x0000000000000003 in ?? () #2 0x0000000000000004 in ?? () #3 0x00032aaaabe7cfd0 in ?? () #4 0x00002aaaabe7d12c in ?? () #5 0x00022aaa00000003 in ?? () #6 0x00002aaaabe7d0aa in ?? () #7 0x01000002abe7cff0 in ?? () #8 0x00002aaaabe7d02c in ?? () #9 0x0100000000000001 in ?? () #10 0x00000000014388e0 in ?? () #11 0x00007fff00000001 in ?? () #12 0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70, F=0x14024e0, ArgValues=@0x7fffffffe050) at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395 #13 0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain (this=0x1405b70, Fn=0x14024e0, argv=@0x13f06f8, envp=0x7fffffffe3b0) at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377 #14 0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe398, envp=0x7fffffffe3b0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208 And a backtrace after this patch: Program received signal SIGSEGV, Segmentation fault. 0x00002aaaabe7d1a8 in baz () (gdb) bt #0 0x00002aaaabe7d1a8 in baz () #1 0x00002aaaabe7d12c in bar () #2 0x00002aaaabe7d0aa in foo () #3 0x00002aaaabe7d02c in main () #4 0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70, F=0x14024e0, ArgValues=...) at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395 #5 0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain (this=0x1405b70, Fn=0x14024e0, argv=..., envp=0x7fffffffe3c0) at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377 #6 0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe3a8, envp=0x7fffffffe3c0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82418 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
|
2763217fbd2f1c54a7a25fd3ae9e997ea6ece0cb |
21-Sep-2009 |
Reid Kleckner <reid@kleckner.net> |
Implement the JIT side of the GDB JIT debugging interface. To enable this feature, either build the JIT in debug mode to enable it by default or pass -jit-emit-debug to lli. Right now, the only debug information that this communicates to GDB is call frame information, since it's already being generated to support exceptions in the JIT. Eventually, when DWARF generation isn't tied so tightly to AsmPrinter, it will be easy to push that information to GDB through this interface. Here's a step-by-step breakdown of how the feature works: - The JIT generates the machine code and DWARF call frame info (.eh_frame/.debug_frame) for a function into memory. - The JIT copies that info into an in-memory ELF file with a symbol for the function. - The JIT creates a code entry pointing to the ELF buffer and adds it to a linked list hanging off of a global descriptor at a special symbol that GDB knows about. - The JIT calls a function marked noinline that GDB knows about and has put an internal breakpoint in. - GDB catches the breakpoint and reads the global descriptor to look for new code. - When sees there is new code, it reads the ELF from the inferior's memory and adds it to itself as an object file. - The JIT continues, and the next time we stop the program, we are able to produce a proper backtrace. Consider running the following program through the JIT: #include <stdio.h> void baz(short z) { long w = z + 1; printf("%d, %x\n", w, *((int*)NULL)); // SEGFAULT here } void bar(short y) { int z = y + 1; baz(z); } void foo(char x) { short y = x + 1; bar(y); } int main(int argc, char** argv) { char x = 1; foo(x); } Here is a backtrace before this patch: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x2aaaabdfbd10 (LWP 25476)] 0x00002aaaabe7d1a8 in ?? () (gdb) bt #0 0x00002aaaabe7d1a8 in ?? () #1 0x0000000000000003 in ?? () #2 0x0000000000000004 in ?? () #3 0x00032aaaabe7cfd0 in ?? () #4 0x00002aaaabe7d12c in ?? () #5 0x00022aaa00000003 in ?? () #6 0x00002aaaabe7d0aa in ?? () #7 0x01000002abe7cff0 in ?? () #8 0x00002aaaabe7d02c in ?? () #9 0x0100000000000001 in ?? () #10 0x00000000014388e0 in ?? () #11 0x00007fff00000001 in ?? () #12 0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70, F=0x14024e0, ArgValues=@0x7fffffffe050) at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395 #13 0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain (this=0x1405b70, Fn=0x14024e0, argv=@0x13f06f8, envp=0x7fffffffe3b0) at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377 #14 0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe398, envp=0x7fffffffe3b0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208 And a backtrace after this patch: Program received signal SIGSEGV, Segmentation fault. 0x00002aaaabe7d1a8 in baz () (gdb) bt #0 0x00002aaaabe7d1a8 in baz () #1 0x00002aaaabe7d12c in bar () #2 0x00002aaaabe7d0aa in foo () #3 0x00002aaaabe7d02c in main () #4 0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70, F=0x14024e0, ArgValues=...) at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395 #5 0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain (this=0x1405b70, Fn=0x14024e0, argv=..., envp=0x7fffffffe3c0) at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377 #6 0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe3a8, envp=0x7fffffffe3c0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82418 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
|
9c220f60be3a50de7fd2a5c491ccfa63c5d3a342 |
20-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7453f8a68f506837d332056733c14001b828d6e1 |
20-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dac97dab11fffaae623be1d4bd2a0c2e249a5c54 |
20-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging r82282 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/CodeGen/AsmPrinter/DwarfException.h --- Reverse-merging r82274 into '.': U lib/Target/TargetLoweringObjectFile.cpp G lib/CodeGen/AsmPrinter/DwarfException.cpp These revisions were breaking everything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
711bb91574db242ba34a86caea719819b0ecef43 |
20-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging r82282 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/CodeGen/AsmPrinter/DwarfException.h --- Reverse-merging r82274 into '.': U lib/Target/TargetLoweringObjectFile.cpp G lib/CodeGen/AsmPrinter/DwarfException.cpp These revisions were breaking everything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
3be44e69724c80460d2ef5abab22d802f78615cc |
20-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Tabs -> spaces, and remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82355 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
|
a279bc3da55691784064cb47200a1c584408b8ab |
20-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Tabs -> spaces, and remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82355 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
|
ab2f66670c4c8ecc8e62d989f9d9d9c6f62dc07b |
20-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Here's fun! It turns out that these filter functions can be internal. If they're internal, they shouldn't use the indirect pointer stuff. In the case of throw_rethrow_test, it was marked as 'internal' and calculated its own offset to its contents. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82354 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5511ffd763c6de8264de7bdf318564fee2bbfc99 |
20-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Here's fun! It turns out that these filter functions can be internal. If they're internal, they shouldn't use the indirect pointer stuff. In the case of throw_rethrow_test, it was marked as 'internal' and calculated its own offset to its contents. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82354 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
13c4b63b5151f9f9c434341c2ea43f4f34c2243b |
20-Sep-2009 |
Dale Johannesen <dalej@apple.com> |
When computing live intervals for earlyclobber operands, we pushed the beginning of the interval back 1, so the interval would overlap with inputs that die. We were also pushing the end of the interval back 1, though, which means the earlyclobber didn't overlap with other output operands. Don't do this. PR 4964. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82342 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
39faac2531268b8555475796c6071556670dc290 |
20-Sep-2009 |
Dale Johannesen <dalej@apple.com> |
When computing live intervals for earlyclobber operands, we pushed the beginning of the interval back 1, so the interval would overlap with inputs that die. We were also pushing the end of the interval back 1, though, which means the earlyclobber didn't overlap with other output operands. Don't do this. PR 4964. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82342 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
19f1d447f73de5807acb64281df5d7acaa23ceeb |
19-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82333 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
00564995496df04c76fc0e4e57b77372d0fe86d5 |
19-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82333 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
41716328c597656692f2189f47c7cc56120d2aa5 |
19-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Strip trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82332 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f612ff6cfbf3a59842732f0280807c0714ab9025 |
19-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Strip trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82332 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9229fdb0d591d22ad962dfb97d98d12ef56b5833 |
19-Sep-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove the default value for ConstantStruct::get's isPacked parameter and update the code which was broken by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82327 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
c332fba8285e35a5a11463c34795af84f3960759 |
19-Sep-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove the default value for ConstantStruct::get's isPacked parameter and update the code which was broken by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82327 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
5f3a54090af5d61d35de2158542ff76fc9ef053f |
19-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ce31910eae5bd4896fa6c27798e7b26885691d3b |
19-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1d8662c4dfa69ff87d42037794cf6e6774c2c512 |
18-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo and some whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82285 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e31e4e51a9305b623eec819ceb6b71f20b259864 |
18-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo and some whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82285 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
98c415caf6f8e0eac9b9247fb782d6718430e288 |
18-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Factor out label difference creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82282 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
f41b6e5d0624c1610d155c19c7744ef30ad1f372 |
18-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Factor out label difference creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82282 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
8c065b334c41ba54d98ad45a6c5b4fdd60c06d2c |
18-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
It's inefficient to have place the exception tables (which contain the LSDA) into the __DATA section. At launch time, dyld has to update most of the section to fix up the type info pointers. It's better to place it into the __TEXT section and use pc-rel indirect pointer encodings. Similar to the personality routine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82274 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
296ab7e5445f0402d0aae3814c38f964d6f547fb |
18-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
It's inefficient to have place the exception tables (which contain the LSDA) into the __DATA section. At launch time, dyld has to update most of the section to fix up the type info pointers. It's better to place it into the __TEXT section and use pc-rel indirect pointer encodings. Similar to the personality routine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82274 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d7dc983029cf293dd67637c27b92c04c0baf968b |
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82273 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
fb2e752e4175920d0531f2afc93a23d0cdf4db14 |
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82273 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
b611307c9730ae90448fcacfd8ee9d0d208cc3ee |
18-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
add a new hook to allow targets to splat stuff at the end of the file. Overriding doFinalization is pretty lame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82268 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bd23d5fda85e38c88dfa668a99777cd05c524822 |
18-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
add a new hook to allow targets to splat stuff at the end of the file. Overriding doFinalization is pretty lame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82268 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
600abb363005c6b5abc9385b35c37720cb2eacbf |
18-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
duncan points out the EH selector values are signed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6ba2e87061bad9a24c75db69ab9b80bb6e16d96b |
18-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
duncan points out the EH selector values are signed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
3789f872b0ac8f9d22d99696164e04b664af90f6 |
18-Sep-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Allow symbols to start from the digit if target requests it. This allows, e.g. pinning variables to specified absolute address. Make use of this feature for MSP430. This unbreaks PR4776. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82227 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c6f729ed5519cdf398ca4039dbdbea4f81433ec0 |
18-Sep-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Allow symbols to start from the digit if target requests it. This allows, e.g. pinning variables to specified absolute address. Make use of this feature for MSP430. This unbreaks PR4776. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82227 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f3233f2b427e9abfbe1633a91e8e84e7bbb19b43 |
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert r82214. It broke 403.gcc on x86_64 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8be58a11868ae081c195c107cd39a07f1f523877 |
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert r82214. It broke 403.gcc on x86_64 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ac00d566d4070167ca5aa1cb48f83fa55b1535b9 |
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in sdisel switch lowering code. When it updates the phi nodes in switch successor blocks, it can introduce multiple phi operands of the same value from different blocks (and may not be on the predecessor list). This can be seen on CodeGen/Generic/2006-09-06-SwitchLowering.ll. But it's not known to cause any real regression (but I have added an assertion for it now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f8a56255a54bf60d0cfa6b20d10dad969cce9f81 |
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in sdisel switch lowering code. When it updates the phi nodes in switch successor blocks, it can introduce multiple phi operands of the same value from different blocks (and may not be on the predecessor list). This can be seen on CodeGen/Generic/2006-09-06-SwitchLowering.ll. But it's not known to cause any real regression (but I have added an assertion for it now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b51aa3322dc54cc149250513132c30574b2e003c |
18-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
tolerate llvm.eh.selector.i64 on 32-bit systems and llvm.eh.selector.i32 on 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
3a5815f90feb1eb791f6383acd62e6c5ed75cada |
18-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
tolerate llvm.eh.selector.i64 on 32-bit systems and llvm.eh.selector.i32 on 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ee62b0424d8c75617484b2d4a9383565044eb5aa |
17-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
pass machinemoduleinfo down into getSymbolForDwarfGlobalReference, currently unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82157 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
8609c7c931c0213d6d29f665df2110cf3c709e4c |
17-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
pass machinemoduleinfo down into getSymbolForDwarfGlobalReference, currently unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82157 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
47472be0fc842626bbc7103ca8c2d724c213d67e |
17-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82150 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f9ca50e3dce88b2f9e2f2f0cac2d3ed78afda841 |
17-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82150 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b21f415e57b24dbb1a962ddab5fd21ebaebc7d0d |
17-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove simple regalloc. It has bit rotted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82127 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocSimple.cpp
|
f436463dbd35ea816163a053b304d9fef9e0cf25 |
17-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove simple regalloc. It has bit rotted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82127 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egAllocSimple.cpp
|
f7f012381f5d47bb4f8a5a4663311daee8692cbf |
17-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4910: Broken logic in coalescer means when a physical register liveness is being shortened, the sub-registers were not. The symptom is the register allocator could not find a free register for this particular test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82108 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5cf732e3b143df35fe2e956c73b60685fd5f0aeb |
17-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4910: Broken logic in coalescer means when a physical register liveness is being shortened, the sub-registers were not. The symptom is the register allocator could not find a free register for this particular test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82108 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
3f7aeddf89537d10eebd50196576e3ec91d066e9 |
16-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82080 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
713f043c16220b746804f668a72f4e0344cbe4d1 |
16-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82080 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a0fbb00ae6d27128232f1c11550b70bddb6fa76d |
16-Sep-2009 |
Devang Patel <dpatel@apple.com> |
At iSel time, update DebugLoc based on debug info attached with an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82077 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
123eaa71b50f5ac2ea2233685baedddbb72f387b |
16-Sep-2009 |
Devang Patel <dpatel@apple.com> |
At iSel time, update DebugLoc based on debug info attached with an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82077 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a653f3541148079687b4c8b95e2dff2e1c91ad77 |
16-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a new pass for doing late hoisting of floating-point and vector constants out of loops. These aren't covered by the regular LICM pass, because in LLVM IR constants don't require separate instructions. They're not always covered by the MachineLICM pass either, because it doesn't know how to unfold folded constant-pool loads. This is somewhat experimental at this point, and off by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82076 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6f65d79750154c92c3e184c8cf3233a66c411c87 |
16-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a new pass for doing late hoisting of floating-point and vector constants out of loops. These aren't covered by the regular LICM pass, because in LLVM IR constants don't require separate instructions. They're not always covered by the MachineLICM pass either, because it doesn't know how to unfold folded constant-pool loads. This is somewhat experimental at this point, and off by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82076 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9ccaf3f7c56c9f3e7e3359165f387895a1cd5ffa |
16-Sep-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't sort the vector when it is empty. This should fix some expensive checking failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82040 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
|
f4f1b266fd83c819ea2cf7cbd9bcd377d95c4eb6 |
16-Sep-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't sort the vector when it is empty. This should fix some expensive checking failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82040 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
|
9f16e4059d7e325248642d3a8051d83bec4c7404 |
16-Sep-2009 |
Xerxes Ranby <xerxes@zafena.se> |
updated lib/CodeGen/CMakeLists.txt to unbreak cmake build after r82018 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82038 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
3314091792cad1732750434b527e173c518c72cf |
16-Sep-2009 |
Xerxes Ranby <xerxes@zafena.se> |
updated lib/CodeGen/CMakeLists.txt to unbreak cmake build after r82018 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82038 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
f8a575424917e1f0e6921529c7be86d8825f7778 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
add a new MachineModuleInfoMachO class, which is the per-module stuff common across all macho targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82018 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
|
686cb3df6a7c88f2c6f29b02064e6f7dc8658d3f |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
add a new MachineModuleInfoMachO class, which is the per-module stuff common across all macho targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82018 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfoImpls.cpp
|
16fcdf9d05d09acde6146d531067fab0bf24f822 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
the pointer MMI keeps will start out with object-file format specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82012 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
f18545550e1cfbe3f47afb6a9a58405416258e3b |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
the pointer MMI keeps will start out with object-file format specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82012 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
500fba8363dccdd3dd29495831e5d689ddc50c49 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove the AsmPrinter::printMCInst hook hack now that we have MCInstPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82006 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4edd187ddddc38540dd020c5cadef70bc5934b1e |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove the AsmPrinter::printMCInst hook hack now that we have MCInstPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82006 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8886dc29cd311a78fd1f672904fd9a3af51c883c |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
Big change #1 for personality function references: Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding fields from MAI: they aren't part of the asm syntax, they are related to the structure of the object file. To replace their functionality, add a new TLOF::getSymbolForDwarfGlobalReference method which asks targets to decide how to reference a global from EH in a pc-relative way. The default implementation just returns the symbol. The default darwin implementation references the symbol through an indirect $non_lazy_ptr stub. The bizarro x86-64 darwin specialization handles the weird "foo@GOTPCREL+4" hack. DwarfException.cpp now uses this to emit the reference to the symbol in the right way, and this also eliminates another horrible hack from DwarfException.cpp: - if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL")) - O << "-" << MAI->getPCSymbol(); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
8c6ed05157e9c97ff8f3ccb211dd797e53228da1 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
Big change #1 for personality function references: Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding fields from MAI: they aren't part of the asm syntax, they are related to the structure of the object file. To replace their functionality, add a new TLOF::getSymbolForDwarfGlobalReference method which asks targets to decide how to reference a global from EH in a pc-relative way. The default implementation just returns the symbol. The default darwin implementation references the symbol through an indirect $non_lazy_ptr stub. The bizarro x86-64 darwin specialization handles the weird "foo@GOTPCREL+4" hack. DwarfException.cpp now uses this to emit the reference to the symbol in the right way, and this also eliminates another horrible hack from DwarfException.cpp: - if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL")) - O << "-" << MAI->getPCSymbol(); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
57c76b5eea6a1b4202941a0c3e7d06f0a00c8485 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
inline AsmPrinter::getCurrentFunctionEHName into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81970 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
25d812bd7d1f58f2ba1b598b1425a2e146e27381 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
inline AsmPrinter::getCurrentFunctionEHName into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81970 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
c54a0890ddc80c1d7efa21695fb3159ef1b57cf8 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
Eliminate AsmPrinter::EmitExternalGlobal, inlining its (now) one implementation into its one caller. This eliminates a totally awesome and gratuitous hack where we casted a Function* to GlobalVariable*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81967 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
1c90c6f1c530e22aea5be055004b2517e77a0f02 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
Eliminate AsmPrinter::EmitExternalGlobal, inlining its (now) one implementation into its one caller. This eliminates a totally awesome and gratuitous hack where we casted a Function* to GlobalVariable*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81967 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
5632fabd0a6e1f30e9cbbd6c2b6d3dce6dcc656a |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the horrid AsmPrinter::getGlobalLinkName method, inlining it into all of its call sites and simplifying them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
334fd1f259b3e8aaf83cf0d40f74af5b209770e6 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the horrid AsmPrinter::getGlobalLinkName method, inlining it into all of its call sites and simplifying them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
|
36d0329a368bc31e7129c92b2e1c38559793a48d |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove some horrible MAI hooks which fortunately turn out to be always empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81946 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bfd1e50c4f51e5f22ba68f28172b0ed9ab66a61a |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove some horrible MAI hooks which fortunately turn out to be always empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81946 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
451e8e6330161627a231f22d167d49dd0c374db8 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
strength reduce a call to PrintRelDirective(true). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81942 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
f60d3eb186c2821f65d85b40665d602eb7d051f4 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
strength reduce a call to PrintRelDirective(true). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81942 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
72ba67246b322935e03e118480c6b8c235669b35 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
add hooks to hang target-specific goop off MachineModuleInfo, move MachineFunctionInfo virtual method out of line to give it a home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81940 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineModuleInfo.cpp
|
a70e2e3d4831b8a39ea6bae5c62df29fa82a86f3 |
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
add hooks to hang target-specific goop off MachineModuleInfo, move MachineFunctionInfo virtual method out of line to give it a home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81940 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineModuleInfo.cpp
|
4c9a0d70e34e1cc679f71bc5ca8e9554255b18d6 |
16-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Do not add the SVOffset to the Node CSE ID. The same pointer argument cannot have different SVOffsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
40fe16fadaccb86d9bff13ebe1c9a0cb20b2251b |
16-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Do not add the SVOffset to the Node CSE ID. The same pointer argument cannot have different SVOffsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1482ed20fd413149c26101b5e3741e6ffe7ecf4e |
15-Sep-2009 |
Eric Christopher <echristo@apple.com> |
Expand on comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81928 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
ec26bf7d44def6fa9e989bcd69564f35b2273fad |
15-Sep-2009 |
Eric Christopher <echristo@apple.com> |
Expand on comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81928 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
ef65e0c69530a1832ba84028c8a25096b41e5f04 |
15-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81909 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
504f9a61e61ee274fe50d8300825bdc2e5adb9b0 |
15-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81909 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2494777a2cb2e6e78713b12c0658523856b44ecb |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Better solution for tracking both the original alignment of the access, and the current alignment based on the source value offset. This avoids increasing the size of mem nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81897 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
101b25c028706c61c7dd9fb92d0b3c1541cb12b6 |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Better solution for tracking both the original alignment of the access, and the current alignment based on the source value offset. This avoids increasing the size of mem nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81897 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
6a48b00dc985aaf83b11bf1c6b31ccd4ba49ede6 |
15-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another try at early partial coalescing. Identity phi source copies (their sources are defined by phi join def) are coalesced. And the phi join copy is backward copy propagated into the other copies. Still miscompiling some tests. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81849 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3f85549f4dab19f9dde2c766151bf01e688f83b7 |
15-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another try at early partial coalescing. Identity phi source copies (their sources are defined by phi join def) are coalesced. And the phi join copy is backward copy propagated into the other copies. Still miscompiling some tests. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81849 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6647b934fcb19a24d6eb7a07750ce292d79205c3 |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Remove incorrect CSE code from r81813. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81819 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
71524d716ad7da8f5a8e75085f9739aa6b772f9d |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Remove incorrect CSE code from r81813. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81819 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
722f41892d746e32e0456a8e90640be7b93b4175 |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Substantially speed up combiner-aa in the following ways: 1. Switch from an std::set to a SmallPtrSet for visited chain nodes. 2. Do not force the recursive flattening of token factor nodes, regardless of use count. 3. Immediately process newly created TokenFactor nodes. Also, improve combiner-aa by teaching it that loads to non-overlapping offsets of relatively aligned objects cannot alias. These changes result in a >5x speedup for combiner-aa on most testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b6aef5c86736accefb1c61cacaf1bd29e9b25ecd |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Substantially speed up combiner-aa in the following ways: 1. Switch from an std::set to a SmallPtrSet for visited chain nodes. 2. Do not force the recursive flattening of token factor nodes, regardless of use count. 3. Immediately process newly created TokenFactor nodes. Also, improve combiner-aa by teaching it that loads to non-overlapping offsets of relatively aligned objects cannot alias. These changes result in a >5x speedup for combiner-aa on most testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9e1b9b6fc8c9553b28a676fda614db3d057aa368 |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Teach the legalizer to propagate the original alignment of loads and store when it splits them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81815 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
9cae7053c0381e5ba8c9e758231bfc9a1ccf57de |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Teach the legalizer to propagate the original alignment of loads and store when it splits them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81815 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
e22356dcb8d97062576619c5419a1140c76059dd |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Add an "original alignment" field to load and store nodes. This enables the DAG Combiner to disambiguate chains for loads and stores of types which are broken up by the Legalizer into smaller pieces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
e6798372ea38e5ea24c26282a0d69aa6e3829854 |
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Add an "original alignment" field to load and store nodes. This enables the DAG Combiner to disambiguate chains for loads and stores of types which are broken up by the Legalizer into smaller pieces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
95320818705e1a8a2ec6e0eaf009695c7b36630e |
14-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add early coalescing to liveintervals. This is work in progress and is known to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this. The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81796 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
752195e3c662c6b5db042cf897c984624720f3b8 |
14-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add early coalescing to liveintervals. This is work in progress and is known to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this. The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81796 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3380dd66fb6f3cedf9fe83f56c8680802bfaf4cb |
14-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Pull the creation of the "RewindFunction" function out of the loop. It's only created once, so shouldn't be stuck in the middle of the loop. Also early exit if there are no uses of UnwindInst in the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81785 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
43488710a8dc76b39f9f3b628c2fdd5d34aa0dbb |
14-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Pull the creation of the "RewindFunction" function out of the loop. It's only created once, so shouldn't be stuck in the middle of the loop. Also early exit if there are no uses of UnwindInst in the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81785 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
da5fb6d704adbe833dcf16d12398a87a5af8d01e |
14-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
PIC16 does allow colon after MBB labels, simplify EmitBasicBlockStart. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81755 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
662316c997e4eb8c3fdec6999b3e9da03620847a |
14-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
PIC16 does allow colon after MBB labels, simplify EmitBasicBlockStart. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81755 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a835afd084f0e1c9ce65902b24eac79921547c79 |
14-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
Change MCAsmStreamer to take an MCInstPrinter instead of a full AsmPrinter, and change TargetRegistry to keep track of registered MCInstPrinters. llvm-mc is still linking in the entire target foo to get the code emitter stuff, but this is an important step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81754 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
90edac0e8b35f766599362b6301863229f0ddcdb |
14-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
Change MCAsmStreamer to take an MCInstPrinter instead of a full AsmPrinter, and change TargetRegistry to keep track of registered MCInstPrinters. llvm-mc is still linking in the entire target foo to get the code emitter stuff, but this is an important step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81754 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
00512f63d4d10e60ae18c8b46392ce49e663f0bd |
14-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
kill off the last use of TRI::AsmName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6a6570a312d4757d2a6555d40dd83c203e43d644 |
14-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
kill off the last use of TRI::AsmName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
28f7e3506ee1779753939d87c2ce4e1a2f19e9c0 |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate an extraneous use of TRI::getAsmName in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f806c23a9a297e0b6d19d82ed23c6c5921d6ecd9 |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate an extraneous use of TRI::getAsmName in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
149495f84e67c353295dd54c4ca92ccd0fd3c1ef |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove MAI::JumpTableSpecialLabelPrefix now that MAI has real information about linker private linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81695 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7c30191393c99c9ba804f1a01942a9e130c53904 |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove MAI::JumpTableSpecialLabelPrefix now that MAI has real information about linker private linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81695 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2faa4ef57551d45e7b58b1827ae8156cea221637 |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
replace printBasicBlockLabel with EmitBasicBlockStart, now that printBasicBlockLabel is only used for starting a MBB. This allows elimination of a bunch of arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
70a54c07a0807bf89d1a8b4414e53298c376eb61 |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
replace printBasicBlockLabel with EmitBasicBlockStart, now that printBasicBlockLabel is only used for starting a MBB. This allows elimination of a bunch of arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81684 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c6f802dd7f346ac5a44bbdc57d264ed928fe1e7c |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
convert some uses of printBasicBlockLabel to use GetMBBSymbol instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81677 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
325d3dcfe4d5efc91db0f59b20a72a11dea024ed |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
convert some uses of printBasicBlockLabel to use GetMBBSymbol instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81677 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
08c9708a8aed7028c5e3126d2d680ee1ffb4af9f |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
devirtualize AsmPrinter::printBasicBlockLabel since it is never overridden. Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that we only have one place that decides what to name bb labels. Hopefully various clients of printBasicBlockLabel can start using GetMBBSymbol instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81652 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7cb384dcca3f1ccfc993182ee4b972f7fffc8ffa |
13-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
devirtualize AsmPrinter::printBasicBlockLabel since it is never overridden. Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that we only have one place that decides what to name bb labels. Hopefully various clients of printBasicBlockLabel can start using GetMBBSymbol instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81652 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2a7b3b261e96625d4fff876dbb859dec67e4c04e |
12-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Moved some more index operations over to LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81605 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
35f291d2c5f80e8e713704190230064311bbbbbe |
12-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Moved some more index operations over to LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81605 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
d0d3ee158facc0f354906b1e5559b73ce0fd20e7 |
12-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove -new-coalescer-heuristic. It's not useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81600 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
b24222cd7d223b10c2e01e02f535f30453c6e4ca |
12-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove -new-coalescer-heuristic. It's not useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81600 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
16c2f62b7c53316702d1ad99d7c33a08f5f5ced7 |
12-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81598 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
217311130d83f04c05d4248c557cef4bc8994e50 |
12-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81598 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9da96d8044dc814a45010e9f78af212c189cc447 |
11-Sep-2009 |
Caroline Tice <ctice@apple.com> |
Don't generate Dwarf line table entries for source line 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81542 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c6f9d62eae02e11fbfe772e8e2c2e4d5ee5e4b13 |
11-Sep-2009 |
Caroline Tice <ctice@apple.com> |
Don't generate Dwarf line table entries for source line 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81542 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a24946acb21bffc40e9054f7ac25eb9319b406d8 |
11-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR4948 (and a leak): by not destroying the DwarfException object, the timer it creates was not being deleted. Since the timer belonged to a static timer group, the timer group would be destroyed on shutdown, and would notice and complain that not all timers it contained were destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
597f9797fd12bfede377de73ab89620842278105 |
11-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR4948 (and a leak): by not destroying the DwarfException object, the timer it creates was not being deleted. Since the timer belonged to a static timer group, the timer group would be destroyed on shutdown, and would notice and complain that not all timers it contained were destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
8c5f55f3e68092a732e6d3fa0dac6de724461a44 |
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Make fast-isel try ISD::FNEG before resorting to bitcasts and xors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4a215a13c3035a8818254b61267be77def4a2a37 |
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Make fast-isel try ISD::FNEG before resorting to bitcasts and xors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b144a5210c2df1b248b0c92fbf18f0cb1f9f9f91 |
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r81171 with a fix: don't try to use i64 when it isn't legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81492 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5e5abb77fe9eeb92a55f119fdb721bca4508094a |
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r81171 with a fix: don't try to use i64 when it isn't legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81492 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
bdebfa961d5a71ebab1e0e622dd2abb463fff8aa |
11-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Don't swap the operands of a subtraction when trying to create a post-decrement load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
92ad363f58681df785933a75a9b9955f13885e7d |
11-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Don't swap the operands of a subtraction when trying to create a post-decrement load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f2c39f52d692834fd39bfb37e942840188554463 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Exit early if exception handling isn't supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
73c5a6172508e957d0b1a46170cb070dce6cac4f |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Exit early if exception handling isn't supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
7bb50b4935836725b83eefeb1e90d0a659ef15a5 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Comment and whitespace cleanups. No intentional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81436 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
28275fdf02885587156da5cb20388b22d5b96557 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Comment and whitespace cleanups. No intentional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81436 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
74446ffeba3226ae63f9a437230fe0f407a308d4 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert part of my r81424 patch. I removed what looked like superfluous padding from the exception tables. However, Duncan explained why it's a can of worms to do it the GCC way. I went back to doing it the LLVM way and added Duncan's explanation so that I don't do this again in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81434 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a2f6449a57fcce73beacc30158aafe39b5349947 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert part of my r81424 patch. I removed what looked like superfluous padding from the exception tables. However, Duncan explained why it's a can of worms to do it the GCC way. I went back to doing it the LLVM way and added Duncan's explanation so that I don't do this again in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81434 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5c6e5ae3c8ec8cc5df9f82b4c51d67105e941e5f |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't hardcode the TType format size. In fact, rework the code so that it's more like what GCC outputs. The mysterious code to insert padding wasn't in GCC at all. I modified the TType base offset code to calculate the offset like GCC does, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81424 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
fe220285b5ef1e4480ddd7f7c8bb182b88a33b16 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't hardcode the TType format size. In fact, rework the code so that it's more like what GCC outputs. The mysterious code to insert padding wasn't in GCC at all. I modified the TType base offset code to calculate the offset like GCC does, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81424 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
630d3b5c3e116554239d4c50032d2c1b9a01738d |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove the "#if 0" that Noone loved. It wasn't really necessary, because the code within it was the same inside and out. There's still a problem of the TypeInfoSize should be the size of the TType format encoding (at least that's what GCC thinks it should be). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81417 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
43e484fbcf6a40a70d9a5c7ea142f37416ef1e68 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove the "#if 0" that Noone loved. It wasn't really necessary, because the code within it was the same inside and out. There's still a problem of the TypeInfoSize should be the size of the TType format encoding (at least that's what GCC thinks it should be). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81417 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
9aadf0b01025e9a91a285fe87cf58353cc8aa61e |
10-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r81171 which was causing pr4927. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2a16e6b22c558f9ba0b25096dfe0697488e51c8e |
10-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r81171 which was causing pr4927. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d832f2cd021588a797c00175a894f63d652b3755 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Pull check for SJLJ EH into a boolean and use that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81409 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d1a5b37a62e829e56b6225e0934a01d9f8823387 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Pull check for SJLJ EH into a boolean and use that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81409 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1961846a4701a5cd43a8d7f2624138da0f745e1f |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Use the SizeOfEncodedValue function instead of magic variables for the sizeof(DW_EH_PE_udata4). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81408 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
40121bccbee44d387ab5d6a5194c5fc27c542e12 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Use the SizeOfEncodedValue function instead of magic variables for the sizeof(DW_EH_PE_udata4). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81408 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
f551420260bd4eb5e4ca6307eb9ae4d411154061 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Add helpful comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
bb3e29932d14cc012149a1ab452b88e6f6f5bb49 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Add helpful comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
e99c6d49ea0f6f3b562af85580bdf18bd278b933 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Believe it or not, this is a simplification. :-) Basically, this patch is working towards removing the hard-coded values that are output for the CIE. In particular, the CIE augmentation and the CIE augmentation size. Both of these should be calculated. In the process, I was able to make a bunch of code simpler. The encodings for the personality, LSDA, and FDE in the CIE are still not correct. They should be generated either from target-specific callbacks (blech!) or grokked from first-principles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81404 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
52783c63a13d384582997684384553e6545852d3 |
10-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Believe it or not, this is a simplification. :-) Basically, this patch is working towards removing the hard-coded values that are output for the CIE. In particular, the CIE augmentation and the CIE augmentation size. Both of these should be calculated. In the process, I was able to make a bunch of code simpler. The encodings for the personality, LSDA, and FDE in the CIE are still not correct. They should be generated either from target-specific callbacks (blech!) or grokked from first-principles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81404 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
32d4cc74e1075b6d9f77c75ff6099784ad4f15b2 |
10-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove DebugLoc from MCInst and eliminate "Comment printing" from the MCInst path of the asmprinter. Instead, pull comment printing out of the autogenerated asmprinter into each target that uses the autogenerated asmprinter. This causes code duplication into each target, but in a way that will be easier to clean up later when more asmprinter stuff is commonized into the base AsmPrinter class. This also fixes an xcore strangeness where it inserted two tabs before every instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
c5ea263a23f4f15587e35c9cb07cf72a9fba7613 |
10-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove DebugLoc from MCInst and eliminate "Comment printing" from the MCInst path of the asmprinter. Instead, pull comment printing out of the autogenerated asmprinter into each target that uses the autogenerated asmprinter. This causes code duplication into each target, but in a way that will be easier to clean up later when more asmprinter stuff is commonized into the base AsmPrinter class. This also fixes an xcore strangeness where it inserted two tabs before every instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
be23fd415c91d6b17149b67497316d9593305e05 |
09-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Use the EOL that takes the encoding and translates it into DWARF-English. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81382 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
0734d35044c304dd072f20e49840bcbea427db9c |
09-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Use the EOL that takes the encoding and translates it into DWARF-English. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81382 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
c38ebcb176943ab2d8c5e0aa458f3f18990f15b8 |
09-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Early exit from function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81381 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
7b09a6c62215e5ed30443b0d2b2a5ae18b89b94f |
09-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Early exit from function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81381 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
cb3105b639197e0e15486fa17beeee74682a608c |
09-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Small amount of code clean-up: Don't use ".size()" when not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81380 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
b4049fe8cbb38416522f7b214f028ef0b7693d21 |
09-Sep-2009 |
Bill Wendling <isanbard@gmail.com> |
Small amount of code clean-up: Don't use ".size()" when not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81380 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a46d337b041e98c716269c600e3097cc5cca64ae |
09-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Removed static qualifier from a few index related methods. These methods may require a LiveIntervals instance in future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81374 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
trongPHIElimination.cpp
|
9647994e097840d8ea7bd3ed7014934034f38763 |
09-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Removed static qualifier from a few index related methods. These methods may require a LiveIntervals instance in future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81374 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
trongPHIElimination.cpp
|
f193e18b174a8fe51242aabb07f3c0a4f39415af |
09-Sep-2009 |
Andreas Neustifter <astifter@gmx.at> |
Preserve ProfileInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81360 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
ff5dfdff56dc2355a6c4740623dddd5fab40d885 |
09-Sep-2009 |
Andreas Neustifter <astifter-llvm@gmx.at> |
Preserve ProfileInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81360 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
da58ebcc2659fad293f11e4cd48f9d92b7fc594b |
09-Sep-2009 |
Dan Gohman <gohman@apple.com> |
When widening a vector load, use the correct chain. This fixes PR4891. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81343 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
607a0508ba5732716809b926a271a9152bdcec12 |
09-Sep-2009 |
Dan Gohman <gohman@apple.com> |
When widening a vector load, use the correct chain. This fixes PR4891. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81343 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
0ac501ab8363823363bb62cba3f3bde409d8c5b5 |
09-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
change selectiondag to add the sign extended versions of immediate operands to instructions instead of zero extended ones. This makes the asmprinter print signed values more consistently. This apparently only really affects the X86 backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
d842962e27b10b6831c2421fa257e3fd58a85b18 |
09-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
change selectiondag to add the sign extended versions of immediate operands to instructions instead of zero extended ones. This makes the asmprinter print signed values more consistently. This apparently only really affects the X86 backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
99c816857be050d35719a3425f46a4ac1b1057e7 |
08-Sep-2009 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
When emitting a label for a PostCall safe point, the machine instruction to insert before can be end(). getDebugLoc on end() returns an invalid value, therefore use the debug loc of the call instruction, and give it to InsertLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81207 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
22f35ace4599f28f50159cf0e19436e755669340 |
08-Sep-2009 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
When emitting a label for a PostCall safe point, the machine instruction to insert before can be end(). getDebugLoc on end() returns an invalid value, therefore use the debug loc of the call instruction, and give it to InsertLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81207 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
4f6c7da13e517fa7aacc7514bbff034365823970 |
08-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
When remat'ing and destination virtual register has a sub-register index. Make sure the sub-register class matches the register class of the remat'ed instruction definition register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81204 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8bdb0de2bd3124bdf7cc6e781d7fb54af68d5c80 |
08-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
When remat'ing and destination virtual register has a sub-register index. Make sure the sub-register class matches the register class of the remat'ed instruction definition register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81204 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1b9f83a3e87d2b6cbcf1af525f0b1796c17fd571 |
08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix an abort on a store of an empty struct member. getValue returns null in the case of an empty struct, so don't try to call getNumValues on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ed48caf5e703c8ee088a8ffa7fb77ebd1b25e97b |
08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix an abort on a store of an empty struct member. getValue returns null in the case of an empty struct, so don't try to call getNumValues on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c4d34a74cd602a2a0438efade40a536d67ed38a3 |
08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix a thinko: When lowering fneg with xor, bitcast the operands from floating-point to integer first, and bitcast the result back to floating-point. Previously, this test was passing by falling back to SelectionDAG lowering. The resulting code isn't as nice, but it's correct and CodeGen now stays on the fast path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
fd06aa7c076f397b307ddd638a2666f4090ee2b1 |
08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix a thinko: When lowering fneg with xor, bitcast the operands from floating-point to integer first, and bitcast the result back to floating-point. Previously, this test was passing by falling back to SelectionDAG lowering. The resulting code isn't as nice, but it's correct and CodeGen now stays on the fast path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
950b9861ba3a7964bc911df9b97fa8d136e0bcd5 |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Simplify. Testing shows that this is not equivalent to BBI = CR.CaseBB + 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
514985297520dbe79441a7af743a5941422a1b69 |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Simplify. Testing shows that this is not equivalent to BBI = CR.CaseBB + 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
dc94fb91bc0e3dba99c31b3b7f3b8e5048b0e137 |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Mark more constants unsigned, as warned about by icc (#68). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81116 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Heuristics/Briggs.h
|
18f13c66bfb9cb2116be0f339fa955949dd60dd1 |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Mark more constants unsigned, as warned about by icc (#68). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81116 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/Heuristics/Briggs.h
|
05db668fe21feee223e19fe50ddeb6456ddebafb |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Remove some not-really-used variables, as warned about by icc (#593, partial). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81115 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
|
c2d98bc0d682419f09659d94afefd6a6266dd6ee |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Remove some not-really-used variables, as warned about by icc (#593, partial). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81115 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
|
0db71af6ee5f1ed8495222226db9e4c85eef4805 |
06-Sep-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
It's a bool, so treat it like one. Fixes a MSVC warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81112 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
be441c0f348a1c02a3632718832f6e2d42c4f8f0 |
06-Sep-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
It's a bool, so treat it like one. Fixes a MSVC warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81112 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
5c3f915679bede35de38a5702359ab5befc38b95 |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Remove some unused variables and methods warned about by icc (#177, partial). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81106 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
irtRegRewriter.cpp
|
b7c5bdf843419e4222770475c27932c4c8e5c303 |
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Remove some unused variables and methods warned about by icc (#177, partial). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81106 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
irtRegRewriter.cpp
|
5290ac201f2bd669d8e09cfc45f98b6f39784324 |
05-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Detect VLAs. Do not use DenseMap operator[] because it inserts new entry if lookup fails. Use find() to check an entry in a DenseMap first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81058 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
bd1d6a8ce1197de640df52e1da2e63e8ce8d8705 |
05-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Detect VLAs. Do not use DenseMap operator[] because it inserts new entry if lookup fails. Use find() to check an entry in a DenseMap first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81058 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0c03f0626103c650db38940c5edf806648f6895d |
05-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Ignore malformed global variable debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
905cf5e0bd4feaec00c45f44893afbbd1f02a149 |
05-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Ignore malformed global variable debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d8f309943c6c05daa9e23f7bcb08cf5c18eb4a26 |
04-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Replaces uses of unsigned for indexes in LiveInterval and VNInfo with a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81040 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
piller.cpp
trongPHIElimination.cpp
irtRegMap.h
|
8651125d2885f74546b6e2a556082111d5b75da3 |
04-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Replaces uses of unsigned for indexes in LiveInterval and VNInfo with a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81040 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
piller.cpp
trongPHIElimination.cpp
irtRegMap.h
|
680c2a0652497c5b9b550a147c96e506facb854b |
04-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Use delete[] to match new[] (found by valgrind). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80997 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
70327dabb4cbe7a95b65ea787716170508ac3068 |
04-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Use delete[] to match new[] (found by valgrind). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80997 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
9dcb760ccdb1e1418afe31c42e6b26d663b00cbf |
04-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Run branch folding if if-converter make some transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80994 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
|
030a0a0cdb38924e55773a8e0b5fe7347aa664aa |
04-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Run branch folding if if-converter make some transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80994 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ranchFolding.h
fConversion.cpp
|
368ddcb5b8995476324018aed319e36085de3411 |
04-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80993 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.h
|
e93909185fb61ae1b2fd045572d7d51209a39d1c |
04-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80993 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.h
|
24fd31656faf1f70c5e4ade5b6462b2e66465748 |
04-Sep-2009 |
Eric Christopher <echristo@apple.com> |
If there's a calling convention attach it to the rewind function call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80976 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
82f149d794dcb705a05e9e260402cbf3f36f1957 |
04-Sep-2009 |
Eric Christopher <echristo@apple.com> |
If there's a calling convention attach it to the rewind function call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80976 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
fe0a279423e23454b9f41d59d2a86340fdceb8a8 |
04-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Funky indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80971 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b3c27428969b3cc52ab8493e91b5dd1465325fed |
04-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Funky indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80971 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f154271b8e81b6fc65137b7fda7c935b9fe93203 |
04-Sep-2009 |
Dan Gohman <gohman@apple.com> |
LLVM currently represents floating-point negation as -0.0 - x. Fix FastISel to recognize this pattern and emit a floating-point negation using xor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3d45a853db014fdddcdb79424e663dfed5eccbc7 |
04-Sep-2009 |
Dan Gohman <gohman@apple.com> |
LLVM currently represents floating-point negation as -0.0 - x. Fix FastISel to recognize this pattern and emit a floating-point negation using xor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
598ea31a7440ad0fae45e9fd4d7d640c431ef030 |
04-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Don't crash when target has no itineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80962 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
4f7228f851bc48fe6a729a9d526a0b8de60e48d0 |
04-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Don't crash when target has no itineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80962 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
856b38c3e9341ed6667788eb3c923be358ac5b71 |
04-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Create our own block initializer for kill fixups as the scheduling one wasn't doing the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80958 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
5e41178a6ee9a0faa2c031811d32543d7e9d0aff |
04-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Create our own block initializer for kill fixups as the scheduling one wasn't doing the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80958 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
fa196cc6a40c2f1146f336ee904688ab37d9ac0e |
03-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Overhaul the TwoAddressInstructionPass to simplify the logic, especially for the complicated case where one register is tied to multiple destinations. This avoids the extra scan of instruction operands that was introduced by my recent change. I also pulled some code out into a separate TryInstructionTransform method, added more comments, and renamed some variables. Besides all those changes, this takes care of a FIXME in the code regarding an assumption about there being a single tied use of a register when converting to a 3-address form. I'm not aware of cases where that assumption is violated, but the code now only attempts to transform an instruction, either by commuting its operands or by converting to a 3-address form, for the simple case where there is a single pair of tied operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80945 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
cc80df92c18c125ab31a273f1490ab99eb25f0d1 |
03-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Overhaul the TwoAddressInstructionPass to simplify the logic, especially for the complicated case where one register is tied to multiple destinations. This avoids the extra scan of instruction operands that was introduced by my recent change. I also pulled some code out into a separate TryInstructionTransform method, added more comments, and renamed some variables. Besides all those changes, this takes care of a FIXME in the code regarding an assumption about there being a single tied use of a register when converting to a 3-address form. I'm not aware of cases where that assumption is violated, but the code now only attempts to transform an instruction, either by commuting its operands or by converting to a 3-address form, for the simple case where there is a single pair of tied operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80945 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
41b3f4abc695b3ce178e1db7610b34d3745ed22d |
03-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Recognize more opportunities to use SSE min and max instructions, swapping the operands if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8d44b28bc6f615b9ad79b066987d53b1ea2a2942 |
03-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Recognize more opportunities to use SSE min and max instructions, swapping the operands if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e86b0df8fc92fdeb05d03897afe4802ee5108dae |
03-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Fixed a test that ensures the LocalRewriter does not attempt to avoid reloads by reusing clobbered registers. This was causing issues in 256.bzip2 when compiled with PIC for a while (starting at r78217), though the problem has since been masked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80872 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
irtRegRewriter.cpp
|
3f2f3f5341374c85955cfaffa71886724999762d |
03-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Fixed a test that ensures the LocalRewriter does not attempt to avoid reloads by reusing clobbered registers. This was causing issues in 256.bzip2 when compiled with PIC for a while (starting at r78217), though the problem has since been masked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80872 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
irtRegRewriter.cpp
|
fa2d3271d5e771007cf55840bb4eae119c02818c |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Rearrange code to eliminate redundancy and avoid gotos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80798 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d163917fd834376aee17d5c37f6d47cafed09087 |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Rearrange code to eliminate redundancy and avoid gotos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80798 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5838baa4a8aedfd453a5b0663425979c77e4e285 |
02-Sep-2009 |
Sandeep Patel <deeppatel1987@gmail.com> |
Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGBuild.cpp
|
65c3c8f323198b99b88b109654194540cf9b3fa5 |
02-Sep-2009 |
Sandeep Patel <deeppatel1987@gmail.com> |
Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGBuild.cpp
|
2a073840a9863f7fde14aba104621ce546f35510 |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Avoid calling removeVirtualRegisterKilled which iterates over the operands to find the kill, since we already have the operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80736 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
86f7cd786eecc74e0480c0f8ab6a4234bb72bfbb |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Avoid calling removeVirtualRegisterKilled which iterates over the operands to find the kill, since we already have the operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80736 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4868b2482d56166b836de78a4b35607a799f7958 |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor some code into separate functions. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80733 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
326f43812ca28b2b4bb5eb8e5191deab6ba621f3 |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor some code into separate functions. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80733 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
432d176192c6a1707a9f714ea00ea500f1d9a6ee |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Move use of LV inside condition that guards for null LV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80731 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c08f5fe882d6d2f2f94606b4f4ea8a1209cb1e24 |
02-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Move use of LV inside condition that guards for null LV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80731 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
9f086b93c3bb001b72590024114ac8c19f5abdaa |
02-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Offset from ExternalSybmol MachineOperands, this is unused (and at least partly unsupported, in X86 encoding at least). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
31e2c7b4c13c2f31774614b1124533628958d0cd |
02-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Offset from ExternalSybmol MachineOperands, this is unused (and at least partly unsupported, in X86 encoding at least). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
0c971ca2967e9dd20f26d8d68cacb131dd2fb7ca |
01-Sep-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix ELF Writter related memory leaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80717 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
0bb83860f9e105f451beee16fe3cf0fe28d65a81 |
01-Sep-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix ELF Writter related memory leaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80717 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
d5496d944b0095cfd0d1cc93386a3c569b7f06d5 |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
reduce size of SmallString to something more reasonable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80710 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ee793a6c197b2cccfee96c6da1bbe6a2048830cc |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
reduce size of SmallString to something more reasonable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80710 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1e58780928c42ba7c34deb7bbb35c17391b3d36e |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Use raw_ostream instead of sstream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80704 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
c40d9f9bae70c83947bf8fa5f9ee97adbf1bb0c0 |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Use raw_ostream instead of sstream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80704 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
4b023dd6936966cce0cfea28c5148168f7a5b40e |
01-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Add hidden flags to allow binary search of post-RA scheduling errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80702 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
1f1522839838a33e69d68656a423a244e19dffb8 |
01-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Add hidden flags to allow binary search of post-RA scheduling errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80702 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
598082b1dd506ca0d6540f2bcaded867bfbf77af |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
revert inadvertant change from previous commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80689 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
33668c0f1a7e374d4c3c53df34efbdf570e0987b |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
revert inadvertant change from previous commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80689 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
90cc01b4e49618f75a3cb899cefaa0abe9ca7066 |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Simply LSDA lable emission to use a direct special-case output instead of EmitLabel() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80677 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
a01d34676fa45ab341d18cf9ec1e39cc5979898f |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Simply LSDA lable emission to use a direct special-case output instead of EmitLabel() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80677 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
13099514dad37eb4e6f270fc84fb749c3eaeb487 |
01-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr4843: When an instruction has multiple destination registers that are tied to different source registers, the TwoAddressInstructionPass needs to be smarter. Change it to check before replacing a source register whether that source register is tied to a different destination register, and if so, defer handling it until a subsequent iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80654 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
71124f698befddb89309758f4aa171e11b9beff3 |
01-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr4843: When an instruction has multiple destination registers that are tied to different source registers, the TwoAddressInstructionPass needs to be smarter. Change it to check before replacing a source register whether that source register is tied to a different destination register, and if so, defer handling it until a subsequent iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80654 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5e0257f9b7567c8c285ee3115c10d552c7c037fb |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Clean up LSDA name generation and use for SJLJ exception handling. This makes an eggregious hack somewhat more palatable. Bringing the LSDA forward and making it a GV available for reference would be even better, but is beyond the scope of what I'm looking to solve at this point. Objective C++ code could generate function names that broke the previous scheme. This fixes that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80649 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
3fb2b1ede30193b59a651328a946174196b20610 |
01-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
Clean up LSDA name generation and use for SJLJ exception handling. This makes an eggregious hack somewhat more palatable. Bringing the LSDA forward and making it a GV available for reference would be even better, but is beyond the scope of what I'm looking to solve at this point. Objective C++ code could generate function names that broke the previous scheme. This fixes that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80649 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
|
318d70da84dd9c3371774284695e2f96613d68a9 |
01-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Subprogram is a scope. Derive DISubprogram from DIScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
82dfc0cd8c3c2bf780a13cc35c1a8df7ad137477 |
01-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Subprogram is a scope. Derive DISubprogram from DIScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
a53768e1e514ec9184b3e17c465b19f9334c1e5c |
01-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Rename DIBlock as DILexicalBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80633 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5e005d814f13f1796cf9e32c7525a5241fface1a |
01-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Rename DIBlock as DILexicalBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80633 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
acce6ef067e3e784306ea3e13c30913722a2207c |
31-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
Use early exit and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80631 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4344979ba9de3564d5f59f7947a6aec421d79288 |
31-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
Use early exit and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80631 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
ce99fa7903584a25dd332004f3dcf639bbba91f6 |
31-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
If the tied registers are already the same, there is no need to change them. Move the code to make that change inside the conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80630 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d4034b2825a2a030893593327d67ca12b4e8a249 |
31-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
If the tied registers are already the same, there is no need to change them. Move the code to make that change inside the conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80630 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
248d5579576fdfb0f1dca59bc3c6cebb8a6976fc |
31-Aug-2009 |
Caroline Tice <ctice@apple.com> |
Add flag to mark structs for Apple Block "byref" variables; also add code to modify the type and location debug information for these variables to match the programmer's expectations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80625 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
dc8f6049d11ee73835c7b7e9b7c6d0b9e6a2c9b1 |
31-Aug-2009 |
Caroline Tice <ctice@apple.com> |
Add flag to mark structs for Apple Block "byref" variables; also add code to modify the type and location debug information for these variables to match the programmer's expectations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80625 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
864c4b83472a97397039240f7d5e9c6e269174b1 |
31-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Don't mark a register live at an undef use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80621 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a3251db21a474affaca945e3fc53f22d30d20f00 |
31-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Don't mark a register live at an undef use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80621 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
56843af6f90e5bdf7d79a271d2406f57e6674122 |
31-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Simplify isDerivedType() and other predicate interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80602 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6ceea33c5e5c00069453e48740aaef5fe1c0953b |
31-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Simplify isDerivedType() and other predicate interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80602 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4cfaf41d499ce05b11ecb62746c3e86b04440f62 |
31-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Output a hex value, because all of the others are hex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80601 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
049e98d641f90e90e8312d76cbf4c68908fb9d1d |
31-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Output a hex value, because all of the others are hex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80601 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
752d366fe7a9d0f68258465ce554cdf40af2918e |
31-Aug-2009 |
Duncan Sands <baldrick@free.fr> |
Revert commit 80428. It completely broke exception handling on x86-32 linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80592 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
c69d74a5d41a6c5e92f9d947f2fa181f48626ca5 |
31-Aug-2009 |
Duncan Sands <baldrick@free.fr> |
Revert commit 80428. It completely broke exception handling on x86-32 linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80592 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
54b6adfbb882f2f9b96c241fb87d0128ce840960 |
31-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
PR4747 Shared landing pads run into trouble with SJLJ, as the dispatch table is mapped to call sites, and merging the pads will throw that off. There needs to be a one-to-one mapping of landing pad exception table entries to invoke call points. Detecting the shared pad during lowering of SJLJ info insn't sufficient, as the dispatch function may still need separate destinations to properly handle phi-nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80530 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
jLjEHPrepare.cpp
|
0bb61c56bcad7a738d50f705b5966be446ef06c1 |
31-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
PR4747 Shared landing pads run into trouble with SJLJ, as the dispatch table is mapped to call sites, and merging the pads will throw that off. There needs to be a one-to-one mapping of landing pad exception table entries to invoke call points. Detecting the shared pad during lowering of SJLJ info insn't sufficient, as the dispatch function may still need separate destinations to properly handle phi-nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80530 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
jLjEHPrepare.cpp
|
09880947395319ff0df656549ddf0b080b7af385 |
30-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Nuke moribund "std::string" version of EOL(..., Encoding). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80466 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8ed211406a68d036c044829807e45eefc17f5aa8 |
30-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Nuke moribund "std::string" version of EOL(..., Encoding). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80466 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b4ac493684cdeb2147000a6816a563269fcf3c70 |
29-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add target lowering methods to get the preferred format for the FDE and LSDA encodings. - Make some of the values emitted by the FDEs dependent upon the pointer size. This is in line with how GCC does things. And it has the benefit of working for Darwin in 64-bit mode now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80428 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
9b35a09e7e5b1aa26588e3852fe00a42b4f383ba |
29-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add target lowering methods to get the preferred format for the FDE and LSDA encodings. - Make some of the values emitted by the FDEs dependent upon the pointer size. This is in line with how GCC does things. And it has the benefit of working for Darwin in 64-bit mode now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80428 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
946b521498866b3d83c4447c9c0ece6095a56874 |
29-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Add a form of EOL which emits the text version of a DWARF format encoding. This doesn't handle all values of the formatting. Those can be added as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80427 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b5abecded7573de0747f9f529a52561741bed0a2 |
29-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Add a form of EOL which emits the text version of a DWARF format encoding. This doesn't handle all values of the formatting. Those can be added as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80427 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0ac7faa993d472be4a23e0e58fa6e9372960cfe8 |
29-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Make the augmentation size and next set of bytes agree on size, and make the reference pointer size as it should be. Fixes an abort on a testcase derived from libunwind's personality test in 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80414 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
6fefcebc4f92b944664b7b26042bc21e57aefe43 |
29-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Make the augmentation size and next set of bytes agree on size, and make the reference pointer size as it should be. Fixes an abort on a testcase derived from libunwind's personality test in 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80414 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
e54c004ea5ea6c7e89b1cef9531ce05096122bbf |
29-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Another stab at fixing up register kill flags after post-RA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80410 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
7886cd85b21db4498ff042a4e42aded7bf3272ee |
29-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Another stab at fixing up register kill flags after post-RA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80410 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
15e723d2c6021bbeacad9baa9c0d946d4a19867e |
29-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 79977. Use MDNodes to encode debug info in llvm IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
e4b275610a7a05b7ee4c0378a906a6330e4c4ab0 |
29-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 79977. Use MDNodes to encode debug info in llvm IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
a14f4474b2d915579e9e9bd8bf4080d7f25e7dcd |
29-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80401 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
dbfcdb976367ad5a9d3541fef90cd9f8dde7e2b4 |
29-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80401 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
20b3210d23b9c5633787e3d8bbd98d7cc0083c32 |
28-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Closure is a very generic name. Use AppleBlock instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80307 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
a1ba269a27ca9d776e6de77e8177fa8fa844bd5e |
28-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Closure is a very generic name. Use AppleBlock instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80307 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
fa4c3253f6dd9f328549aa73e2710981ac3a2881 |
27-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Adjust the MachineBasicBlock verifier rules to be more tolerant of blocks that end with "unreachable". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80270 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a01a80fa6c0c6e9c92ecfa951e974b98c3ba1783 |
27-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Adjust the MachineBasicBlock verifier rules to be more tolerant of blocks that end with "unreachable". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80270 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5537c20c55869fac64e4f5738f8eab2080cc79c6 |
27-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80198 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
639217cb6a3948800c71c39503f8def4873a535e |
27-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80198 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
25cd944a98bcf3b1542c71d2654fe61e28562867 |
27-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging r80147 into '.': A include/llvm/ADT/iterator.cmake U autoconf/configure.ac --- Reverse-merging r80161 into '.': U cmake/config-ix.cmake --- Reverse-merging r80171 into '.': U Makefile --- Reverse-merging r80173 into '.': U configure U include/llvm/Config/config.h.in --- Reverse-merging r80180 into '.': A include/llvm/ADT/iterator.h.in Despite common miscomceptions, iterator.h is alive and well. It broke the build bots for several hours. And yet no one bothered to look at them. Gabor and Doug, please review your changes and make sure that they actually build before resubmitting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80197 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
fffb7266fe9c5c95d859ff5b3aeb5386cbd0cd1e |
27-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging r80147 into '.': A include/llvm/ADT/iterator.cmake U autoconf/configure.ac --- Reverse-merging r80161 into '.': U cmake/config-ix.cmake --- Reverse-merging r80171 into '.': U Makefile --- Reverse-merging r80173 into '.': U configure U include/llvm/Config/config.h.in --- Reverse-merging r80180 into '.': A include/llvm/ADT/iterator.h.in Despite common miscomceptions, iterator.h is alive and well. It broke the build bots for several hours. And yet no one bothered to look at them. Gabor and Doug, please review your changes and make sure that they actually build before resubmitting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80197 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
0d0598f6281c0b1ae107b2fa2fabd69ec21263c4 |
27-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add some checks for MachineCFG consistency. Use AnalyzeBranch and do extra checking when it succeeds, as those are cases where CodeGen will be doing particularly interesting CFG modifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80196 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
27920594b940d824038d16b13846aa76cac493cf |
27-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add some checks for MachineCFG consistency. Use AnalyzeBranch and do extra checking when it succeeds, as those are cases where CodeGen will be doing particularly interesting CFG modifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80196 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
e92cc8d5591cb7ded636c91cc98c741af62ec85f |
26-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Rework getPersonalityIndex slightly - 0 is now a valid and not-NULL personality function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80153 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
5e365e23f165d03fd2edc972bd4395e52a481c25 |
26-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Rework getPersonalityIndex slightly - 0 is now a valid and not-NULL personality function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80153 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
c87d5ae938fe0c3b0afc3aefef1dc6a9873516e4 |
26-Aug-2009 |
Eric Christopher <echristo@apple.com> |
If we're emitting additional CIEs due to personality functions don't emit the default one. Explicitly check for the NULL CIE later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80146 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
|
d44fff7849034fc17d6a0e9f9926542865bb7881 |
26-Aug-2009 |
Eric Christopher <echristo@apple.com> |
If we're emitting additional CIEs due to personality functions don't emit the default one. Explicitly check for the NULL CIE later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80146 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
|
84603633a7609ec55de5d8145048efbbf45e5c9c |
26-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80145 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
cf29697266a78f74b4c00675ae54e3826a03fec1 |
26-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Nuke trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80145 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
0defefd8ce9f13cecba8c988897c3224a25e96f8 |
26-Aug-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add extload expansion for f128 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80116 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
62c77d33b18937ea0b246be3631df082cd621126 |
26-Aug-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add extload expansion for f128 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80116 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
32b17ffaa8593d25728c9ebad7e82a45c16f817c |
26-Aug-2009 |
Dan Gohman <gohman@apple.com> |
-fast is now -O0. -fast-isel is no longer experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80104 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e29fea4434b784bd8d908088c0ee4d4788080088 |
26-Aug-2009 |
Dan Gohman <gohman@apple.com> |
-fast is now -O0. -fast-isel is no longer experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80104 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
94060421ce73922e71c183fba0fda8bace7d0e2d |
26-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
824598883513789516a919651f4b35e7a638ec5c |
26-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
2e1a5d0b91503b8d5ada9fe0b19567daca2f1c6f |
26-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Add isClosure() predicate. This is used to add DW_AT_APPLE_block attribute. Patch by Caroline Tice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80061 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8af76bdb7450b097efa17f7c192882111a9e8f10 |
26-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Add isClosure() predicate. This is used to add DW_AT_APPLE_block attribute. Patch by Caroline Tice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80061 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
97be9d37d93c38bc82950e0373cd3a8d1d2aa024 |
26-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of this horrible "benign race" by exploiting ManagedStatic to initialize the array on its first access. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d8110fb7264993f30133c532cd074313bead0afa |
26-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of this horrible "benign race" by exploiting ManagedStatic to initialize the array on its first access. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a9c16fe7d4d2b61191b362a5d073bdc95c123c0f |
25-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Fixup register kills after scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80002 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
88a589c4b39830bbeed23654521ef2f77bb87abe |
25-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Fixup register kills after scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80002 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a75796301ee17e60daea754e30a035a53891650d |
25-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
- Rename EmitCommonInformationEntry to EmitCIE. - Rename EmitFunctionDescriptionEntry to EmitFDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
7ccda0f2aadb601ce48f05c12cc153f3fcc554e6 |
25-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
- Rename EmitCommonInformationEntry to EmitCIE. - Rename EmitFunctionDescriptionEntry to EmitFDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
57b83c78f56324e3a8ff636b311235f6f2350b4e |
25-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
2a610c7387664bc557a35ce3bb4c0d4df56e4755 |
25-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
bcc93309ca3632b3cd2b45f265a534256be7589a |
25-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
- Emit new line after each FDE. - Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79971 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
4bda11fbdafc1d4fa97b7539bdf5a0f62ecfc280 |
25-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
- Emit new line after each FDE. - Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79971 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
4767b24840250630c47fee8be2a6aef07f19d30a |
25-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Rename functions to something more descriptive. At the very least mention the CIE and FDE in their names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79969 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
a6f91da8b2500259828412de919393fca206cf29 |
25-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Rename functions to something more descriptive. At the very least mention the CIE and FDE in their names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79969 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
f537768f6dfcdf5f06696b0383e292cbe3c6fec1 |
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
prune the #includes in raw_ostream.h by moving a member out of line. ftostr is not particularly speedy, so that method is presumably not perf sensitive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79885 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
23132b188ba651ba172380cd082cc286df73d440 |
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
prune the #includes in raw_ostream.h by moving a member out of line. ftostr is not particularly speedy, so that method is presumably not perf sensitive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79885 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
|
8755dee89ba6ae78f867a5f117212b569c2681fb |
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove the last uses of Config/alloca.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79873 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
dbe89cd2f019c23f41fe6471b8bfe0b45cc1c1ce |
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove the last uses of Config/alloca.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79873 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
b1aa85bcfad6245bed0a0c43adcca9efb51fcf79 |
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Prune #includes from llvm/Linker.h and llvm/System/Path.h, forcing them down into various .cpp files. This change also: 1. Renames TimeValue::toString() and Path::toString() to ::str() for similarity with the STL. 2. Removes all stream insertion support for sys::Path, forcing clients to call .str(). 3. Removes a use of Config/alloca.h from bugpoint, using smallvector instead. 4. Weans llvm-db off <iostream> sys::Path really needs to be gutted, but I don't have the desire to do it at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79869 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
74382b7c699120fbec5cb5603c9cf4212eb37f06 |
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Prune #includes from llvm/Linker.h and llvm/System/Path.h, forcing them down into various .cpp files. This change also: 1. Renames TimeValue::toString() and Path::toString() to ::str() for similarity with the STL. 2. Removes all stream insertion support for sys::Path, forcing clients to call .str(). 3. Removes a use of Config/alloca.h from bugpoint, using smallvector instead. 4. Weans llvm-db off <iostream> sys::Path really needs to be gutted, but I don't have the desire to do it at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79869 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
165b4dfeba7c1b0e7d3ca0ef71c276f585fee79f |
23-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
SJLJ pass needs to punt if there's no personality function available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79858 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
a235d13217ff14621a88f3ea96a8a3b980c56d02 |
23-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
SJLJ pass needs to punt if there's no personality function available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79858 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
bf1c25570b611624388de2c71ed59ece5050e14c |
23-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR4753. When undoing a reuse in ReuseInfo::GetRegForReload, check if it was only a sub-register being used. The MachineOperand::getSubReg() method is only valid for virtual registers, so we have to recover the sub-register index manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79855 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
46ff969ca6e42e354c29328877810b0f7f373af0 |
23-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR4753. When undoing a reuse in ReuseInfo::GetRegForReload, check if it was only a sub-register being used. The MachineOperand::getSubReg() method is only valid for virtual registers, so we have to recover the sub-register index manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79855 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
0588d2da0980b653e2862e8742e0fa7923b9f170 |
23-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Kill off more cerr/cout uses and prune includes a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79852 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegRewriter.cpp
irtRegRewriter.h
|
cfa6ec92e61a1ab040c2b79db5de3a39df732ff6 |
23-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Kill off more cerr/cout uses and prune includes a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79852 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegRewriter.cpp
irtRegRewriter.h
|
33b2663488b0f8f188c1a6003faabd5ee89f7749 |
23-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some refactos for iostream changes (in -Asserts mode). - The world needs better C++ refactoring tools, can I get an Amen!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79843 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
43ed267db3512823a9698f810be4e64bee227270 |
23-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some refactos for iostream changes (in -Asserts mode). - The world needs better C++ refactoring tools, can I get an Amen!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79843 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
5febcae0d24fc09d90564a46e23645b2443f4304 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some uses of llvm/Support/Streams.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79842 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineModuleInfo.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
d9ea85ab01fb0f2929ed50223d3758dceea8bcbd |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some uses of llvm/Support/Streams.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79842 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineModuleInfo.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
bf9d76de710117c29a70a3cd18aca0254064aa68 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert LoopInfo.h and GraphWriter.h to use raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79836 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ostRASchedulerList.cpp
|
103289e9383ad1eb66caf28c9b166aebce963a35 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert LoopInfo.h and GraphWriter.h to use raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79836 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ostRASchedulerList.cpp
|
36eef827f1576cb240418a78e2323863ef6b4f8c |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate uses of cerr() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
4437ae213d5435390f0750213b53ec807c047f22 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate uses of cerr() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
2b40c564224cda719903f8f552caefd285716632 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few DOUTs here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
|
bbbfa99d3d18fe9f20265305e833666645ada528 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few DOUTs here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
|
397f4560780d34da0bd1e4c9b9101c6f0774e8ff |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change Pass::print to take a raw ostream instead of std::ostream, update all code that this affects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
CStrategy.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
achineDominators.cpp
reAllocSplitting.cpp
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
45cfe545ec8177262dabc70580ce05feaa1c3880 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change Pass::print to take a raw ostream instead of std::ostream, update all code that this affects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
CStrategy.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
achineDominators.cpp
reAllocSplitting.cpp
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
a7a9daa051617d5d01fdeaa84585cba498e1c96e |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the std::ostream form of WriteAsOperand and update clients. This also updates dominator related stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79825 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
791102fb1192ac9483274e54cbc42480c9b1af10 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the std::ostream form of WriteAsOperand and update clients. This also updates dominator related stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79825 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
8a6411ca14e6216192ccddb18c5196a26e98e1b3 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the "Value" printing methods that print to a std::ostream. This required converting a bunch of stuff off DOUT and other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79819 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
bdff548e4dd577a72094d57b282de4e765643b96 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the "Value" printing methods that print to a std::ostream. This required converting a bunch of stuff off DOUT and other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79819 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
15be26734a1ce01943f61fbfdac489a197da6a23 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
shoot a few more std::ostream print methods in the head. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79814 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveStackAnalysis.cpp
|
c02497f5bae87e71fd5617db5751cb0b3a14bbed |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
shoot a few more std::ostream print methods in the head. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79814 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveStackAnalysis.cpp
|
d71b0b0bc402d151d7ea364cad32ad44ac7fbee2 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove various std::ostream version of printing methods from MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79813 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
achineVerifier.cpp
|
705e07f578e2b3af47ddab610feb4e7f2d3063a5 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove various std::ostream version of printing methods from MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79813 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
achineVerifier.cpp
|
620add5fb26e130107a36e7140c70fb66ae63e7c |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some DOUTs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79812 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
6456d3868d63a093b70ad522951f94b138389690 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some DOUTs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79812 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
0bde4e303451efeaf102dc61ed5e746e87b0e031 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove std::ostream versions of printing stuff for MBB and MF, upgrading a few things to use raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79811 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
LVMTargetMachine.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineSink.cpp
achineVerifier.cpp
|
cf143a4d917699f8f4202f331fa9e184070471fb |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove std::ostream versions of printing stuff for MBB and MF, upgrading a few things to use raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79811 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
LVMTargetMachine.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineSink.cpp
achineVerifier.cpp
|
fdcd46e28ab0cc3eb975d6017ca77395214e8ad5 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change raw_fd_ostream to take flags as an optional bitmask instead of as two bools. Use this to add a F_Append flag which has the obvious behavior. Other unrelated changes conflated into this patch: 1. REmove EH stuff from llvm-dis and llvm-as, the try blocks are dead. 2. Simplify the filename inference code in llvm-as/llvm-dis, because raw_fd_ostream does the right thing with '-'. 3. Switch machine verifier to use raw_ostream instead of ostream (Which is the thing that needed append in the first place). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79807 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
17e9edc4a7bbeadf756494cf39fcacc9eff72202 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change raw_fd_ostream to take flags as an optional bitmask instead of as two bools. Use this to add a F_Append flag which has the obvious behavior. Other unrelated changes conflated into this patch: 1. REmove EH stuff from llvm-dis and llvm-as, the try blocks are dead. 2. Simplify the filename inference code in llvm-as/llvm-dis, because raw_fd_ostream does the right thing with '-'. 3. Switch machine verifier to use raw_ostream instead of ostream (Which is the thing that needed append in the first place). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79807 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
d739775da8ba6a9b9b79c05b44d2efaab0ffab29 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert some stuff to work on raw_ostreams instead of std::ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79803 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
d74c556e9aaad81a188158b7ba12d7ccffb30936 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert some stuff to work on raw_ostreams instead of std::ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79803 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
74c5255224ffdc1c3b4bc21a5caa8849562a5871 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix a gone file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79802 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
19ef66968965f829336f4dc01fec05bfa72712c3 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix a gone file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79802 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
0c08a932968f2f6c85e06cde043e675b57500f11 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some dead print method variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79801 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
372fefe8d24e40df2390fffeea0dc2dec611f88b |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some dead print method variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79801 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
1514e998df9eca5b6dab7552e247197ba69f4187 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert the DIE printing stuff to use raw_ostream instead of std::ostream. Tweak #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79800 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
|
b01acfae5bf66d82eda7c12c473e5a51831f9382 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert the DIE printing stuff to use raw_ostream instead of std::ostream. Tweak #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79800 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
|
ed1da1af983817b39047ad64aa5953fc181d3566 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
random code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79798 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
623dd141b4c09b29de2c52d55328a787205d9340 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
random code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79798 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ebb8c086555e9a820d4fbc0bc6f257decee8b56d |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some random indentation stuff, yay for efficiency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79797 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
c281de1d8485b5ec64f4b330b541f91d1ee86c37 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some random indentation stuff, yay for efficiency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79797 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
b3fff70ff7fea177af2d704fd005974c2be79fdc |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove dead PrefixPrinter class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79796 91177308-0d34-0410-b5e6-96231b3b80d8
ump.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
2d8e3d20be377112999670f210200b3658762571 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove dead PrefixPrinter class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79796 91177308-0d34-0410-b5e6-96231b3b80d8
ump.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
fbbb9397cf0be41dc19b962d32285d27d18bb066 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a dead class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79795 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
77942d4ee47e76626d574b027e4b9c5c90e2bbf4 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a dead class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79795 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
50777b42052c6e44def11d124a5e75ffee18a331 |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
random cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79794 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
6371ed5e2b29434796333e487e6d14cf16306b4c |
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
random cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79794 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
a719605589c78aeb0b790709cfa3ef811d544d0d |
23-Aug-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add check for completeness. Note that this doesn't actually have any effect with the way the current code is structured. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79792 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5aba5c0e882fca505e3e0fc784c37a85babb872e |
23-Aug-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add check for completeness. Note that this doesn't actually have any effect with the way the current code is structured. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79792 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a5ef4d36198b2b591b592c595978ed7d3ac96a18 |
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
rename TAI -> MAI, being careful not to make MAILJMP instructions :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79777 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
LFWriter.h
CMetadataPrinter.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
33adcfb4d217f5f23d9bde8ba02b8e48f9605fc5 |
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
rename TAI -> MAI, being careful not to make MAILJMP instructions :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79777 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
LFWriter.h
CMetadataPrinter.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
f97ae6be182c6f279e6e6fbf62df467ca71af106 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79766 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
c75e7d2a06205f6c9870624eb5e8174a2b7b1bdd |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79766 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
9ce42a5ee25f97d3837a1d9725daad689fe3e8dc |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79765 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
70357db30a84914dc5cea5dab1071904e58080e3 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79765 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
621c44d3606307a3e9e56add33539c78c0009ab9 |
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
CMetadataPrinter.cpp
LVMTargetMachine.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
electionDAG/TargetLowering.cpp
|
af76e592c7f9deff0e55c13dbb4a34f07f1c7f64 |
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
CMetadataPrinter.cpp
LVMTargetMachine.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
electionDAG/TargetLowering.cpp
|
e7ef91921ce6bc1001233bab5effde323aa48a4b |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79762 91177308-0d34-0410-b5e6-96231b3b80d8
hrinkWrapping.cpp
|
9c52affd374e20b212d3266050f13d87ba80e36d |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79762 91177308-0d34-0410-b5e6-96231b3b80d8
hrinkWrapping.cpp
|
0d5be087c5a3de5e4da453001e42d23fa330eb4a |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79760 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
960bb85b2165bd69feea3fc07d9cadd2da821c72 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79760 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
540f0b77468697fec1ab8db8f1ec254fdb9855f6 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79759 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
cbac788324da2e3c7aaf9e9959b4426b52fc88b2 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79759 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
9dcc063737b7c0620255943510a224d371f34c50 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79758 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
fbb594f351f401e9e02fb21803d4ef18c060a8db |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79758 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
7a353b22d305af4bccf98b113a6ad9e3cf40390a |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79756 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
c3115a02c55ea44daeaeda7848af43d3c49f6f06 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79756 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
7767d3fe4ba52c4fdd5df6b3f7df673405ce4c64 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79755 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
1e973aae79476d003b58dc430d81f964c2ea5853 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79755 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c4ed8ed1d2c81445166638df30fa4c44332cd700 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79754 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
b7a89928f495da21e77bae788e3d6b1c57ecc192 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79754 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
22491a6d41be52d7a2708dfa3d5824c6d396f3db |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79753 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
0d6b1b124888e568b4dd2037a9e31dcd54e62d18 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79753 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
83c96ca9a435da56e005249deed47316269fa8bc |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79752 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8e6179fb134af929ee7c937c82d9dc1c9a104c5f |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79752 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ba5cfa3278ca247ccee651506a225246d8d043dd |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79751 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
44ff7949c73580bf2bc5d075527fc13d8b7ef6a1 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79751 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
4c1dfccaab3d5bfdba8438ed505bc060c6aa12c9 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Normalize how the 'namespace llvm {' is used in this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79750 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
fb98a43b311dec66188b3669a0da017829833617 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Normalize how the 'namespace llvm {' is used in this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79750 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
f20b01e2608c5247fd5bdd500bf8e837580cad95 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79749 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
b22d8df162c6ab764434f0a0d45739f3d97baec1 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79749 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
6aaba5d93725eedcce10dc61720738cf155f1c95 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79748 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
9311a2283091f194f5b40490f3419cb0767a861d |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79748 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
ef26d40be2bf9dd56d7bacfb14c6866ef29515a9 |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79747 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
3403bcd8f943cb053a7d9bbf8eb8135407699afa |
22-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Convert DOUT to DEBUG(errs()...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79747 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c3d25a1ce7c6718d6304464aacb2005c1ae99de7 |
22-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Record variable debug info at ISel time directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
rologEpilogInserter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
24f20e083280d979e8fa1bc88959ae9e8339ee99 |
22-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Record variable debug info at ISel time directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfWriter.cpp
rologEpilogInserter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
1a285c21708d469a799ba3d59292b8d23a137bb9 |
22-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Reapply r79708 with the appropriate fix for the case that still requires locking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
02b10347bb2497e18d3a4019beed2974aa715cd4 |
22-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Reapply r79708 with the appropriate fix for the case that still requires locking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
28ab49bc9e73b5f8267b8fafc6f03de9c740f775 |
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
revert r79708 + r79711 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79720 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
895a55e66d107aa96a1e763a62a97e8ad62284a0 |
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
revert r79708 + r79711 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79720 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b48b4e26e91c039464b8dd91847aa58b64cc4cb0 |
22-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Actually remove unused static. Previous commit removed trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8dde7c0ff1a568a0739ff7581464c31dbc063527 |
22-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Actually remove unused static. Previous commit removed trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
440d9eb4e03c42ede30b2e4e5e4b2b5c126f4aff |
22-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Remove unused static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4d7c18c49bdc6e39ea6e862072ec224de499a2a1 |
22-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Remove unused static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b08876f050758a11800831e3e4b61c86de3852b5 |
22-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Ease contention on this lock by noticing that all writes to the VTs array will be of (dynamically) constant values, so races on it are immaterial. We just need to ensure that at least one write has completed before return the pointer into it. With this change, parllc exhibits essentially no overhead on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79708 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0b7401d3cdb4a2ecd266396ef1a77c8533a4476d |
22-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Ease contention on this lock by noticing that all writes to the VTs array will be of (dynamically) constant values, so races on it are immaterial. We just need to ensure that at least one write has completed before return the pointer into it. With this change, parllc exhibits essentially no overhead on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79708 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
370c21dacb4b4569e172f89e1b1b272cddf4c038 |
21-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix typo. Should check both values of RangeUse for 0. Patch by Marius Wachtler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
636e258a53b20695e841a70774f42c052c4c0bfd |
21-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix typo. Should check both values of RangeUse for 0. Patch by Marius Wachtler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
16f275c399a2ed9334e241984515e0ed9fd17334 |
21-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Attempt to comment this code more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a583c55864e83e470333b7be878280b10e175a6e |
21-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Attempt to comment this code more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
7639931caca9a8e11b477ced232c32b71cb64db8 |
20-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Suppress build warning in -Asserts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79564 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
bc84ad95b7a4e453f6dd91f535abd7ef9ddc1773 |
20-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Suppress build warning in -Asserts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79564 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
b882721ed44ad2150b7bc690c09adf217add8070 |
20-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Check for shared landing pads when assigning call site values. Invokes which share a landing pad should also use the same call site value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79501 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
8fc3b6903ac555e21d6c64c34f9815781e68c88b |
20-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Check for shared landing pads when assigning call site values. Invokes which share a landing pad should also use the same call site value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79501 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
44662aa3907e309a8ef3e52a3324aecf44af753b |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79481 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.h
|
5f3aeac9a7a258bc020d1db22a39972acec5d549 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79481 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.h
|
b214eb923422fa6850fba5e7c36a3482a4ffb871 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79480 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
098612b0e8b864d6db82bb10b633d630cccd8562 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79480 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
5358561c3dbf74549650fa6e22ee0d07f9e19980 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79479 91177308-0d34-0410-b5e6-96231b3b80d8
achOCodeEmitter.cpp
|
43c76fbba286a17c7ea5c376211e22d58e7bfc7b |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79479 91177308-0d34-0410-b5e6-96231b3b80d8
achOCodeEmitter.cpp
|
119a8c9899e750d6185092b3118c5ba7994b51e4 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79478 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
2a711e36da2aa7d3e0a493297651745a38c4dce2 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79478 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
b9e5913544efc3b330e9e2de11c0b3110ba33e93 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79476 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
0d036d2e81c03d88c6460aa772fc7b9bcbaa54a2 |
20-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79476 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
18938f9bdbeb5353b354057ca39c4216093ccedc |
19-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79475 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
eea1f4cdb7e2ba6d5d07a6b5f11fce215064cc8c |
19-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79475 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
bb993c796f05205a5ce8473fc8a75f95c2567590 |
19-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79474 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
fc4da0cea8a0f6c9c1483b92c2dffda217c0ba24 |
19-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79474 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d87baff44c679d26b13ef2dc2621a1ff84f98b6f |
19-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79473 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b2c66fc322f62779f08e83e5253f383ae219bf78 |
19-Aug-2009 |
David Greene <greened@obbligato.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79473 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
768e97ddbde973fa68b12aecc0e0935e7f37dc2c |
19-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch to SmallString::str from SmallString::c_str, and remove SmallString::c_str. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79456 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dddfd34e32ff081409e5a1c95b991a898d63dff2 |
19-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch to SmallString::str from SmallString::c_str, and remove SmallString::c_str. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79456 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
7ffdd43aca7b74e449b88905738ac5815005071c |
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add an x86 peep that narrows TEST instructions to forms that use a smaller encoding. These kinds of patterns are very frequent in sqlite3, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6a402dc952ccad3f8fd0d9e272dbdd261f50854e |
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add an x86 peep that narrows TEST instructions to forms that use a smaller encoding. These kinds of patterns are very frequent in sqlite3, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5c6eabba721e46860a318447cc227e3a50bbd0db |
19-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Use the schedule itinerary operand use/def cycle information to adjust dependence edge latency for post-RA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79425 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.cpp
|
dc4bdcdef1c8dd1a28b82deb08df039e5c0ffc5a |
19-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Use the schedule itinerary operand use/def cycle information to adjust dependence edge latency for post-RA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79425 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGSDNodes.cpp
|
67ebebabfb0a1879a297abbcd979dee1065111c6 |
19-Aug-2009 |
Eli Friedman <eli.friedman@gmail.com> |
PR4737: Fix a nasty bug in load narrowing with non-power-of-two types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d68eea2b6d5ff284d3c7371c4f201c25ca030747 |
19-Aug-2009 |
Eli Friedman <eli.friedman@gmail.com> |
PR4737: Fix a nasty bug in load narrowing with non-power-of-two types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4891d148a4bb33d2de1a76ca7cc660a4918dc5df |
19-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
switch asmprinter to emit alignments through OutStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
663c2d2580e6e9b2435785c7e5a2de18758860a3 |
19-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
switch asmprinter to emit alignments through OutStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
73266f9a953d9cb0833df1208c455725f5adf2ef |
19-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate AsmPrinter::SwitchToSection and just have clients talk to the MCStreamer directly instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79405 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
|
6c2f9e14fdf14d8c1c687c6bd9918183fa7f8a7f |
19-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate AsmPrinter::SwitchToSection and just have clients talk to the MCStreamer directly instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79405 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfException.cpp
smPrinter/OcamlGCPrinter.cpp
|
d51a13fe57568744940c71042dcf191d18729c27 |
19-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Added an option to have the PBQP allocator attempt coalescing during allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79397 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
8481e3b368444386d5be5b74cd1e0ba6f858d983 |
19-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Added an option to have the PBQP allocator attempt coalescing during allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79397 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
1bc9cd58ffa9e34acc8c8c46715ce4c90d2e894c |
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Be tidy and use a break to exit from a switch block rather than just falling through the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2c9489d6e96d99f77b6c31919805b5e61954deb2 |
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Be tidy and use a break to exit from a switch block rather than just falling through the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d97b83c65f677d7ac5c28adb430a7a3d7462561c |
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, and SRA_PARTS, as is done for SRL, SHL, and SRA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
db8dc2b9faf346fbfa04c07f501981250948f5e2 |
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, and SRA_PARTS, as is done for SRL, SHL, and SRA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
65c8d8e8831536d4d49bd1f76e21ba48c677ab05 |
19-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Changes DOUT references in the PBQP allocator to use DEBUG(errs() ...) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79378 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
233fd9cea04468d71ae44031df3f2c8d1c3299a7 |
19-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Changes DOUT references in the PBQP allocator to use DEBUG(errs() ...) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79378 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
a793115a75b24b6b59de79d12b331a4829c6b9e2 |
18-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify RegScavenger::FindUnusedReg. - Drop the Candidates argument and fix all callers. Now that RegScavenger tracks available registers accurately, there is no need to restict the search. - Make sure that no aliases of the found register are in use. This was a potential bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79369 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
c0823fe7c679ca8f7d1667a310c2fca97b9402d5 |
18-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify RegScavenger::FindUnusedReg. - Drop the Candidates argument and fix all callers. Now that RegScavenger tracks available registers accurately, there is no need to restict the search. - Make sure that no aliases of the found register are in use. This was a potential bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79369 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
066ed6a19998f933d53d79d7a67390cfa2907065 |
18-Aug-2009 |
David Greene <greened@obbligato.org> |
Make various changes suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fe37ab335be5632eab561d49984c95cb06b946d4 |
18-Aug-2009 |
David Greene <greened@obbligato.org> |
Make various changes suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2c3026df5ac39a51016de56a1c80812455747c4a |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sections git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79346 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
35c3531754c392a533921a465a22f67f7e8fb743 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sections git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79346 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1a30b666a716784bcdba2df32ec512944e8a638c |
18-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Make tail merging handle blocks with repeated predecessors correctly, and remove RemoveDuplicateSuccessor, as it is no longer necessary, and because it breaks assumptions made in MachineBasicBlock::isOnlyReachableByFallthrough. Convert test/CodeGen/X86/omit-label.ll to FileCheck and add a testcase for PR4732. test/CodeGen/Thumb2/thumb2-ifcvt2.ll sees a diff with this commit due to it being bugpoint-reduced to the point where it doesn't matter what the condition for the branch is. Add some more interesting code to test/CodeGen/X86/2009-08-06-branchfolder-crash.ll, which is the testcase that originally motivated the RemoveDuplicateSuccessor code, to help verify that the original problem isn't being re-broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79338 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
da65822cfc938594f8fb7840947c1eb77e057a48 |
18-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Make tail merging handle blocks with repeated predecessors correctly, and remove RemoveDuplicateSuccessor, as it is no longer necessary, and because it breaks assumptions made in MachineBasicBlock::isOnlyReachableByFallthrough. Convert test/CodeGen/X86/omit-label.ll to FileCheck and add a testcase for PR4732. test/CodeGen/Thumb2/thumb2-ifcvt2.ll sees a diff with this commit due to it being bugpoint-reduced to the point where it doesn't matter what the condition for the branch is. Add some more interesting code to test/CodeGen/X86/2009-08-06-branchfolder-crash.ll, which is the testcase that originally motivated the RemoveDuplicateSuccessor code, to help verify that the original problem isn't being re-broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79338 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d69d8ad1c3569a5cbf08e795dfc3582e75c3b9ff |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Make AsmStreamer maintain a notion of the current section, pushing it up from the MCAsmStreamer. Based on this, eliminate the current section from AsmPrinter. While I'm at it, clean up the last of the horrible "switch to null section" stuff and add an assert. This change is in preparation for completely eliminating asmprinter::switchtosection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79324 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dabf07c70a5e13a4560d75667fa5c7db28921a92 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Make AsmStreamer maintain a notion of the current section, pushing it up from the MCAsmStreamer. Based on this, eliminate the current section from AsmPrinter. While I'm at it, clean up the last of the horrible "switch to null section" stuff and add an assert. This change is in preparation for completely eliminating asmprinter::switchtosection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79324 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2c3a75c3853a35b38796daea0bc551c51b80b3c0 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
add a horrible hack to the dwarf printer. It looks like mingw is not specifying an EHFrame section, so we just emit ehframe data into a random section. This is clearly bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79323 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
6a66e585b8242b9764ec3343309697d24bb1e312 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
add a horrible hack to the dwarf printer. It looks like mingw is not specifying an EHFrame section, so we just emit ehframe data into a random section. This is clearly bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79323 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a59f39b8fe424ea505b4c75f476a7ac915e9d606 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix another bozo bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79313 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
1f50fc736ea402b10286523d7d53d2b16bd5ce16 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix another bozo bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79313 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
1378a3a41367b129594b2754dba2ee0ff20cc8be |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix accidentally inverted conditional and add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79312 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
b49a30c109469361881189d65ffeed44177ed98b |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix accidentally inverted conditional and add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79312 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
01303c8fb44754ffe59559017d78c6dbddcfda28 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
turn this conditional into something humans might actually be able to understand ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79311 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
a006d4e60df8f1f07d669ddb5b46f5044717b6e4 |
18-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
turn this conditional into something humans might actually be able to understand ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79311 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
0a9b7e23d54e15a4fd57dac39e40252db1546245 |
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
cleanups per review. Mostly cosmetic, plus use SmallVector in place of std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79287 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
606f3d696ff78211524fa49c3ca0c4de6db37041 |
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
cleanups per review. Mostly cosmetic, plus use SmallVector in place of std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79287 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
13ed51fec3ac63666184b6d540bc7126fa8bbfa6 |
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Remove a bit more cruft from the sjlj moving to a backend pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineFunction.cpp
electionDAG/SelectionDAGBuild.cpp
|
29626642271ae810dd526de8afa151484452abe0 |
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Remove a bit more cruft from the sjlj moving to a backend pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
achineFunction.cpp
electionDAG/SelectionDAGBuild.cpp
|
4c4411c77d56b61d28677ce9b9721ac382ce8ba1 |
17-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMakeLists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79264 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
ae68a19ef9d16fc1d331b289b62fb7c759bfdb99 |
17-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Update CMakeLists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79264 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
2b731cb45fe6494421220c5745548eccec2841ea |
17-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix build warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79262 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
5d17eddb0cc07c13acbb38205778db7678a65065 |
17-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix build warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79262 91177308-0d34-0410-b5e6-96231b3b80d8
jLjEHPrepare.cpp
|
3e4fab4247bd777b044ab3b5252f78610c86acd0 |
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Move the sjlj exception handling conversions to a back-end pass where they more properly belong. This allows removing the front-end conditionalized SJLJ code, and cleans up the generated IR considerably. All of the infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is added by the SjLjEHPrepare pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
LVMTargetMachine.cpp
jLjEHPrepare.cpp
|
8b818d7e98309125c6058c4ea72a7dc73b031db2 |
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Move the sjlj exception handling conversions to a back-end pass where they more properly belong. This allows removing the front-end conditionalized SJLJ code, and cleans up the generated IR considerably. All of the infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is added by the SjLjEHPrepare pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
LVMTargetMachine.cpp
jLjEHPrepare.cpp
|
e010697fb00a8d2b7f605ee97d6c8aeb283be0f3 |
17-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79247 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
fac8541dd40e01aa2b52962516f9ae67c99720cc |
17-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79247 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
46148950d8ca80286b88da5dffc5fefc75239778 |
17-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
the MinPad argument to PadToColumn only really makes sense to be 1, just remove the argument and replace it with 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79246 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8f4b1ec02bbc72161a9bd9777a2996dae439c81e |
17-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
the MinPad argument to PadToColumn only really makes sense to be 1, just remove the argument and replace it with 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79246 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2f579bdd6582504b9bd6ca6e9d267b38b85b2810 |
17-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
change AsmPrinter to switch sections using AsmStreamer instead of doing it directly. This requires const'izing a bunch of stuff that took sections, but this seems like the right semantic thing to do: emitting a label to a section shouldn't mutate the MCSection object itself, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79227 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
975780bb595b57a45a8e6d72d8151b436314ce22 |
17-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
change AsmPrinter to switch sections using AsmStreamer instead of doing it directly. This requires const'izing a bunch of stuff that took sections, but this seems like the right semantic thing to do: emitting a label to a section shouldn't mutate the MCSection object itself, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79227 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
13a4af7f6ef51a10cf4595e73aec87b6f6ea7c4f |
17-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
give MCAsmStreamer a TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79222 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f3ce009fcb0a04a245c437d86657e9bd61ecc18f |
17-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
give MCAsmStreamer a TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79222 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
932dbf43f53920d259d86d0e3195ec8f59968449 |
16-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace RegScavenger::DistanceMap with a simpler local algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79195 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
66a39699fb6b862e674415b32d307263812e996e |
16-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace RegScavenger::DistanceMap with a simpler local algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79195 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
af2a076c94fe7f56637579d4ac99a7dc38db6adc |
16-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up the public interface of RegScavenger. Remove unused methods and make others private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79194 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e689ce626ce1d0022f70fb4a85113590bbdbb5e9 |
16-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up the public interface of RegScavenger. Remove unused methods and make others private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79194 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
3686358eaccd713c89f1d2abeda4f9ef73fbd702 |
16-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg. If two uses of a CopyFromReg want different regclasses, first try a common sub-class, then fall back on the copy emitted in AddRegisterOperand. There is no need for an assert here. The cross-class joiner usually cleans up nicely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79193 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
f7e8af925cee687b94ed4b84235cf0efed75a68b |
16-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg. If two uses of a CopyFromReg want different regclasses, first try a common sub-class, then fall back on the copy emitted in AddRegisterOperand. There is no need for an assert here. The cross-class joiner usually cleans up nicely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79193 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
4e3d397c057e265fbd055301010139a0da8ed621 |
16-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Needs to check whether unaligned load / store of i64 is legal here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8a9d5f96a5681ffe6e48dab9c8c383e71fd82a2c |
16-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Needs to check whether unaligned load / store of i64 is legal here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ace63a60c77432a29c522866c5f8c040263d49c3 |
16-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79146 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
|
eb75364020aad1af558b756e4a5e2eeea91be36f |
16-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79146 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/HeuristicSolver.h
|
8e8abb34c093ceec4976fca482502a00990ae25a |
15-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Unbreak build. Evan, please make sure my changes are correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
bc037cfcdef8e88274d7dd167fb9d8ba545f2229 |
15-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Unbreak build. Evan, please make sure my changes are correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
f94139ee8fd441a76b2e74335dd2d15916a45b38 |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refine EarlyClobber assert in register scavenger. It is legal for an inline asm operand to use an earlyclobber register if the use operand is tied to the earlyclobber operand. The issue is discussed here: http://gcc.gnu.org/ml/gcc/1999-04n/msg00431.html We should perhaps let only the machine code verifier worry about these finer details. EarlyClobber operands are not really interesting to the scavenger. This fixes PR4528 for the third time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79122 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
16b794d25accbc4c5db63bb4d172049f052f0a55 |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refine EarlyClobber assert in register scavenger. It is legal for an inline asm operand to use an earlyclobber register if the use operand is tied to the earlyclobber operand. The issue is discussed here: http://gcc.gnu.org/ml/gcc/1999-04n/msg00431.html We should perhaps let only the machine code verifier worry about these finer details. EarlyClobber operands are not really interesting to the scavenger. This fixes PR4528 for the third time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79122 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
2f4cc1d88ab57c00619bda6ad4bd2208aef9fbf6 |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't setCalleeSavedInfoValid() until spills are interted. In a naked function, the flag is never set and getPristineRegs() returns an empty list. That means naked functions are able to clobber callee saved registers, but that is the whole point of naked functions. This fixes PR4716. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79096 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d62c9a697b53f9e754926a89126fd121220ed09b |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't setCalleeSavedInfoValid() until spills are interted. In a naked function, the flag is never set and getPristineRegs() returns an empty list. That means naked functions are able to clobber callee saved registers, but that is the whole point of naked functions. This fixes PR4716. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79096 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
ca576bf84583264702f11643e23c2eca876df3e0 |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow double defs in the machine code verifier after the addPreRegAlloc passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79095 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4af85b2328d432960371efeb092a70a8d9c25227 |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow double defs in the machine code verifier after the addPreRegAlloc passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79095 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
fca82bc53828c9218f7a7030eb55075233b976ee |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update LocalRewriter::DistanceMap when inserting stack loads. In the included test case, a stack load was not included in DistanceMap. That caused TransferDeadness to ignore the instruction, leading to a scavenger assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79090 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
7a1e872564a65a8494412d72e15c2f48735d32ab |
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update LocalRewriter::DistanceMap when inserting stack loads. In the included test case, a stack load was not included in DistanceMap. That caused TransferDeadness to ignore the instruction, leading to a scavenger assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79090 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
9505df6da56cc2e7bbbed44dc6f581520a6bbbcd |
15-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e96507c73111d88743a15db6d6329f4fbdde7dec |
15-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
788fabf85cc009b61c75e9959fbdc6be116b6c62 |
15-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code to not depend as much on CurMBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0d24bfbf92ee0c3fa604df6c2099f46ec9ad3a94 |
15-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code to not depend as much on CurMBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e7ff5091f9eae5b87c8d266d5889154aa3827ccf |
14-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Do not completely skip subrange info for a zero sized array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79044 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6325a5305ea9665bb8291037df4849baabd13b81 |
14-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Do not completely skip subrange info for a zero sized array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79044 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cdab71fbe3e03cd2481f648ce9f8ea24e3fc73a5 |
14-Aug-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Allow targets to specify their choice of calling conventions per libcall. Take advantage of this in the ARM backend to rectify broken choice of CC when hard float is in effect. PIC16 may want to see if it could be of use in MakePIC16Libcall, which works unchanged. Patch by Sandeep! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
72977a45a8ad9d9524c9b49399e89fb9a3a676ed |
14-Aug-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Allow targets to specify their choice of calling conventions per libcall. Take advantage of this in the ARM backend to rectify broken choice of CC when hard float is in effect. PIC16 may want to see if it could be of use in MakePIC16Libcall, which works unchanged. Patch by Sandeep! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
6c1789cb271d1ad2824855b131cdc31c9a1d74c8 |
14-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
*try* to use a better name to describe how common symbols are marked on the elf object file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79029 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
abd7514a68b0687f00d9df73cf5c79cb61ff08b6 |
14-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
*try* to use a better name to describe how common symbols are marked on the elf object file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79029 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
c92710a33f2478df2572b966e0cc128c2290be1e |
14-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add virtual printMCInst method to AsmPrinter, as a quick way to expose the API to print one instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78985 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
575327b77e9092074e5d18bfebfb78ce550aa2a3 |
14-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add virtual printMCInst method to AsmPrinter, as a quick way to expose the API to print one instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78985 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
83a83d4cca16132415a22d99c6be5ae76fc0a8f9 |
14-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Indentation change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7cefd80bd52f239dbb002abdc1c4a7a5f76dd47e |
14-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Indentation change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4cb6365d45ad16a1d287e04956263ceaba97206b |
14-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
TargetRegistry: Change AsmPrinter constructor to be typed as returning an AsmPrinter instance (instead of just a FunctionPass) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78962 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
789457847002f5289dbbc5cfce9d68c72e00bed1 |
14-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
TargetRegistry: Change AsmPrinter constructor to be typed as returning an AsmPrinter instance (instead of just a FunctionPass) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78962 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
02f7bd5a38a6712f438cbee3cbcf7ef0b1f0618d |
14-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Actually privatize a IntegerTypes, and fix a few bugs exposed by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78955 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
0e275dc53880a7f14f8b8c83cc6e0290a215492d |
14-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Actually privatize a IntegerTypes, and fix a few bugs exposed by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78955 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
35b4707edb32008b1a7976dcbf3920b1160fc1c6 |
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
warfEHPrepare.cpp
LFWriter.cpp
ntrinsicLowering.cpp
achineFunction.cpp
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
tackProtector.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
warfEHPrepare.cpp
LFWriter.cpp
ntrinsicLowering.cpp
achineFunction.cpp
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
tackProtector.cpp
|
dfa78d19236fe2c33733c916f45d25ba46e0773f |
13-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove hack used to strip unwanted chars from section name Use MCSectionELF methods as much as possible, removing some ELFWriter methods which are now unused git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78940 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
d163e8b14c8aa5bbbb129e3f0dffdbe7213a3c72 |
13-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove hack used to strip unwanted chars from section name Use MCSectionELF methods as much as possible, removing some ELFWriter methods which are now unused git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78940 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
ef5abb43c2b98118d24f587d2aa9d6448466df72 |
13-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
TargetRegistry: Reorganize AsmPrinter construction so that clients pass in the TargetAsmInfo. This eliminates a dependency on TargetMachine.h from TargetRegistry.h, which technically was a layering violation. - Clients probably can only sensibly pass in the same TargetAsmInfo as the TargetMachine has, but there are only limited clients of this API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78928 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
67d894ea64bc52245abf3f2ba89122a749d99c53 |
13-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
TargetRegistry: Reorganize AsmPrinter construction so that clients pass in the TargetAsmInfo. This eliminates a dependency on TargetMachine.h from TargetRegistry.h, which technically was a layering violation. - Clients probably can only sensibly pass in the same TargetAsmInfo as the TargetMachine has, but there are only limited clients of this API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78928 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
800920825ed79c45ed608e0f708b268fac49a43f |
13-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track pristine registers as if they were live-in in the register scavenger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78913 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
06789e23d1aa0bcd935a3fba3eff0ec8a35b9c01 |
13-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Track pristine registers as if they were live-in in the register scavenger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78913 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
ca418873717a5e4df1db7389e0c6e6aeb67476fe |
13-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use pristine register info in machine code verifier. So far these registers are simply tracked as if they were live-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78912 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
a6b677d209013d82b03fa8da937296b6faae7de0 |
13-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use pristine register info in machine code verifier. So far these registers are simply tracked as if they were live-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78912 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
e7b072a2fd07af722e2d9975bde84c8bbf51a9d3 |
13-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineFrameInfo::getPristineRegisters(MBB) method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78911 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
|
4a0f08c5fc14d840e4e411fade036f1cd815b795 |
13-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineFrameInfo::getPristineRegisters(MBB) method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78911 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
|
88c6f889620a5d749e86df844da667f5d91e717b |
13-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Add callback to allow target to adjust latency of schedule dependency edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78910 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
710461688bba935f0ad5c75da7fec2ad0f225c00 |
13-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Add callback to allow target to adjust latency of schedule dependency edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78910 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
26d7ecd5f45419ebe39e07188218c00c0ab3a916 |
13-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Change MCSectionELF to represent a section semantically instead of syntactically as a string, very similiar to what Chris did with MachO. The parsing support and validation is not introduced yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78890 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
b808588a3a5febe931896b3779d159ba90d836f7 |
13-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Change MCSectionELF to represent a section semantically instead of syntactically as a string, very similiar to what Chris did with MachO. The parsing support and validation is not introduced yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78890 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
2aa282f4941f44996dc3e56f658a7a932dfb6531 |
13-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Various AsmWriter output cleanups. Use WriteAsOperand instead of PrintUnmangledNameSafely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78878 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cf20ac4fd12ea3510a8f32a24fff69eebe7b6f4a |
13-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Various AsmWriter output cleanups. Use WriteAsOperand instead of PrintUnmangledNameSafely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78878 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
745d9d3b20414f44393b9b80f4edd87080d250c5 |
12-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix counting of Post-RA scheduling stalls. Improve debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78843 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
2ffb0ce7dce2d5c243b90493807308af6fab0528 |
12-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Fix counting of Post-RA scheduling stalls. Improve debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78843 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
8ee65c55dc0cdaaa3d354830187e7674258b4cbe |
12-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Added RegisterCoalescer to required passes for PBQP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78840 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
f7c553e993dccd7e71d1a5a45ca87f02626a17b6 |
12-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Added RegisterCoalescer to required passes for PBQP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78840 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
5ee8d03e04279ae83e02c711dd0b7ed0bdaf8987 |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use WriteAsOperand to print BasicBlock names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78838 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
46d505647d255410b220d7f8134053390794683e |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use WriteAsOperand to print BasicBlock names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78838 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
495af975328da9ebbe95f748105d3288468cfc0d |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a few more places to use PadToColumn instead of tabs. And fix the basic block label printing to check whether a block has a name before printing a comment character and whitespace for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78830 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e45da0dce0af2d6254c7db63a2fe0c3501dd3a5a |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a few more places to use PadToColumn instead of tabs. And fix the basic block label printing to check whether a block has a name before printing a comment character and whitespace for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78830 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
87581ebb5e7da766d971fbd25c008146932b38ad |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use PadToColumn instead of tabs for aligning comments. Fix one place that emitted unnecessary whitespace outside of VerboseAsm mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a12e9d751b64767a5c41a718da2a91122d5874c4 |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use PadToColumn instead of tabs for aligning comments. Fix one place that emitted unnecessary whitespace outside of VerboseAsm mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4b6e4983844989b5a88421f2ac8aa54bed7de166 |
12-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78827 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
1a8f36e3ce5b9c230781b66600c81536128abfb5 |
12-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78827 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
f2d915d7810e0ceb04a207bd6c15c6542ede83e8 |
12-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Add catch block handling to SjLj exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78817 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
bff392384ddb032c732c38ec78b91d7a25dcf467 |
12-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Add catch block handling to SjLj exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78817 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d88f9fd3f28cee69b0fcdca59532824d5617577e |
12-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple pair instead of from a virtual method on TargetMachine. This cuts the final ties of TargetAsmInfo to TargetMachine, meaning that MC can now use TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78802 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a7ac47cee1a0b3f4c798ecaa22ecf9d1be9c07e6 |
12-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple pair instead of from a virtual method on TargetMachine. This cuts the final ties of TargetAsmInfo to TargetMachine, meaning that MC can now use TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78802 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
657930c3a046738f6540107e2ba623acee2d76ea |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
This logic was accidentally inverted in r78767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78773 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
da2775767b34a503735b78422c3558815933cc94 |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
This logic was accidentally inverted in r78767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78773 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
de75f6de8a40874a8f774c87bd9b9f68890cfe8f |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Factor out the code for finding an available register for use in breaking an anti-dependence into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78767 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
26255adcaa5836fafe32e5e296d81df63a0fb9c5 |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Factor out the code for finding an available register for use in breaking an anti-dependence into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78767 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
77f4eb53ebe58e44972a4f99d8b67a91dcbfe2cb |
12-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
23b9b19b1a5a00faa9fce0788155c7dbfd00bfb1 |
12-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
cae14fd2f334ef46b141a5e400fc43528f5e5b43 |
12-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change the asmprinter to print the comment character before the "inlineasmstart/end" strings so that the contents of the directive are separate from the comment character. This lets elf targets get #APP/#NOAPP for free even if they don't use "#" as the comment character. This also allows hoisting the darwin stuff up to the shared TAI class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e2b060161c92ddf60b5d020f981451e9e34a3f02 |
12-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change the asmprinter to print the comment character before the "inlineasmstart/end" strings so that the contents of the directive are separate from the comment character. This lets elf targets get #APP/#NOAPP for free even if they don't use "#" as the comment character. This also allows hoisting the darwin stuff up to the shared TAI class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78737 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
eb75972692419eee5ea85909cea17b04abeeddc6 |
12-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow a zero cycle stage to reserve/require a FU without advancing the cycle counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78736 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
546952fd600ddba3f1eb6d4f93ff4eb42821a962 |
12-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Allow a zero cycle stage to reserve/require a FU without advancing the cycle counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78736 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
2dd68a20cb6e307a7e46dfa363b8ba75d5072b01 |
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Fix warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
|
766b5efd99c01e26f00f22d81b57d1385b3d2ab0 |
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Fix warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
|
36e3a6e235ee8b21eba777686b4508f71248b869 |
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Split EVT into MVT and EVT, the former representing _just_ a primitive type, while the latter is capable of representing either a primitive or an extended type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
825b72b0571821bf2d378749f69d6c4cfb52d2f9 |
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Split EVT into MVT and EVT, the former representing _just_ a primitive type, while the latter is capable of representing either a primitive or an extended type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
3fb451e883aad740e1d1503a3acda5bde359e498 |
11-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
"TAI::JumpTableDirective" is always null for current arm targets, simplify the code based on this and make it fall through better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78708 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b3ac6e40d9dd3bc8157edc47004f39c8f382dc9e |
11-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
"TAI::JumpTableDirective" is always null for current arm targets, simplify the code based on this and make it fall through better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78708 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
387579f3b477c8aba1ad37513006f4f5cbc6c048 |
11-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Use DEBUG macro for debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78694 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
7cd0118c367314308cf94765ac12f81020a56271 |
11-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Use DEBUG macro for debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78694 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
391efe0de27f008e3e3e47af958ea7851ee40842 |
11-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Add some debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78687 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
|
c93d8373c93159c590838957b3194900caeb8a03 |
11-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Add some debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78687 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
|
45f13d4db24058e9ad3aa3e818b12758b9d8664c |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Tidy #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78677 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
electionDAG/SelectionDAG.cpp
|
ffef8acc3e3398bdd04e947c7949befdd52faf86 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Tidy #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78677 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
electionDAG/SelectionDAG.cpp
|
d1e9ec57081f3b62d3595d9e3a66dd0d35fc02d4 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Remove unnecessary throw() specifications; LLVM doesn't use exceptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78667 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/PBQPMath.h
egAllocPBQP.cpp
|
00b0a243bdf2d9675bafbdb44ac3b2df768878b3 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Remove unnecessary throw() specifications; LLVM doesn't use exceptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78667 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/PBQPMath.h
egAllocPBQP.cpp
|
46a803a67e7b3157f11173e696a8e724c6af190e |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Remove unnecessary casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78664 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
1b2d0b83977a37cb22391dc5a7bf09de76caf0b2 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Remove unnecessary casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78664 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
f038e30eeed7579166cee58c258551633132880b |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78663 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
d443ee68847c9af65b7c387c40e9e4038e660fdf |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78663 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
0a3d49dc94760c871d053298f1033414cbf81893 |
11-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rebuild RegScavenger::DistanceMap each time it is needed. The register scavenger maintains a DistanceMap that maps MI pointers to their distance from the top of the current MBB. The DistanceMap is built incrementally in forward() and in bulk in findFirstUse(). It is used by scavengeRegister() to determine which candidate register has the longest unused interval. Unfortunately the DistanceMap contents can become outdated. The first time scavengeRegister() is called, the DistanceMap is filled to cover the MBB. If then instructions are inserted in the MBB (as they always are following scavengeRegister()), the recorded distances are too short. This causes bad behaviour in the included test case where a register use /after/ the current position is ignored because findFirstUse() thinks is is /before/ the current position. A "using an undefined register" assertion follows promptly. The fix is to build a fresh DistanceMap at the top of scavengeRegister(), and discard it after use. This means that DistanceMap is no longer needed as a RegScavenger member variable, and forward() doesn't need to update it. The fix then discloses issue number two in the same test case: The candidate search in scavengeRegister() finds a CSR that has been saved in the prologue, but is currently unused. It would be both inefficient and wrong to spill such a register in the emergency spill slot. In the present case, the emergency slot restore is placed immediately before the normal epilogue restore, leading to a "Redefining a live register" assertion. Fix number two: When scavengerRegister() stumbles upon an unused register that is overwritten later in the MBB, return that register early. It is important to verify that the register is defined later in the MBB, otherwise it might be an unspilled CSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78650 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
8c54a620618a77f18af4bb5a0fb48dc741044b91 |
11-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rebuild RegScavenger::DistanceMap each time it is needed. The register scavenger maintains a DistanceMap that maps MI pointers to their distance from the top of the current MBB. The DistanceMap is built incrementally in forward() and in bulk in findFirstUse(). It is used by scavengeRegister() to determine which candidate register has the longest unused interval. Unfortunately the DistanceMap contents can become outdated. The first time scavengeRegister() is called, the DistanceMap is filled to cover the MBB. If then instructions are inserted in the MBB (as they always are following scavengeRegister()), the recorded distances are too short. This causes bad behaviour in the included test case where a register use /after/ the current position is ignored because findFirstUse() thinks is is /before/ the current position. A "using an undefined register" assertion follows promptly. The fix is to build a fresh DistanceMap at the top of scavengeRegister(), and discard it after use. This means that DistanceMap is no longer needed as a RegScavenger member variable, and forward() doesn't need to update it. The fix then discloses issue number two in the same test case: The candidate search in scavengeRegister() finds a CSR that has been saved in the prologue, but is currently unused. It would be both inefficient and wrong to spill such a register in the emergency spill slot. In the present case, the emergency slot restore is placed immediately before the normal epilogue restore, leading to a "Redefining a live register" assertion. Fix number two: When scavengerRegister() stumbles upon an unused register that is overwritten later in the MBB, return that register early. It is important to verify that the register is defined later in the MBB, otherwise it might be an unspilled CSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78650 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
de00452af16a5462bca25fefc4700d9369572090 |
11-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix a -Asserts warning. - Since the function is never called in NDEBUG mode, just dropped the DEBUG() uses here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78649 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
d4d415a1e72dbcf4e123c2c383c9fdfc71b03f06 |
11-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix a -Asserts warning. - Since the function is never called in NDEBUG mode, just dropped the DEBUG() uses here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78649 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
|
0eeb45137a84aaa4dd22567dddce6bb07f487941 |
11-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Replace DOUT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78634 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
ostRASchedulerList.cpp
|
3a5f0d444cf21e2b90d5eb965bb677c7ce098546 |
11-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Replace DOUT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78634 91177308-0d34-0410-b5e6-96231b3b80d8
xactHazardRecognizer.cpp
ostRASchedulerList.cpp
|
29feb6a583204de0948def1d59d186e4b837ef52 |
11-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
SjLj based exception handling unwinding support. This patch is nasty, brutish and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
LVMTargetMachine.cpp
achineFunction.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
1b747ad8a0694b86e8d98a8b9a05ddfe74ec0cd3 |
11-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
SjLj based exception handling unwinding support. This patch is nasty, brutish and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
LVMTargetMachine.cpp
achineFunction.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
8797283758f03653bed11d91ec76d0bba28bf6f9 |
11-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78620 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
|
52c1afcaea61440950a11a4ccadac4354420d727 |
11-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78620 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
|
d546ef7f4201acea72797d80d21f50451646c589 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the DAGCombiner's handling of multiple linked MERGE_VALUES nodes. Replacing the result values with the operands in one MERGE_VALUES node may cause another MERGE_VALUES node be CSE'd with the first one, and bring its uses along, so that the first one isn't dead, as this code expects. Fix this by iterating until the node is really dead. This fixes PR4699. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
00edf39b3447db1b8dc0030d716ef70675f55755 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the DAGCombiner's handling of multiple linked MERGE_VALUES nodes. Replacing the result values with the operands in one MERGE_VALUES node may cause another MERGE_VALUES node be CSE'd with the first one, and bring its uses along, so that the first one isn't dead, as this code expects. Fix this by iterating until the node is really dead. This fixes PR4699. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3f20cb6d9679205620a4fd51d3ec9aa73bf3a508 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug where DAGCombine was producing an illegal ConstantFP node after legalize, and remove the workaround code from the ARM backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a407ca16c29b4e91ef3cf9e188ac2e3ab6920cd8 |
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug where DAGCombine was producing an illegal ConstantFP node after legalize, and remove the workaround code from the ARM backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ac9de036dc0e4065ee2c03419f11515a34ce505e |
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
e50ed30282bb5b4a9ed952580523f2dda16215ac |
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
5d8d5e9423a9fd05f429ae0c08f876bc675eb871 |
10-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Remove a bunch of debugging code that was slowing PBQP down by 25% or so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78601 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
4600d179fdf132534af887f94d82d1afdbb1398a |
10-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Remove a bunch of debugging code that was slowing PBQP down by 25% or so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78601 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
27bfb67d9ac01e9bf33a7b105c7fe842525b7582 |
10-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
77547befdc430633aaedf4130ddf17d953ed552e |
10-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
c1a090ff401564c2b00b3a5f4942fecf03cc16fe |
10-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Make this comment more closely reflect the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
eb1fedc62d0a3e3901d79edf40a585747dde2e1e |
10-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Make this comment more closely reflect the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e52fd87879c56151b6fc78b52c3aa1306f6e9af6 |
10-Aug-2009 |
David Greene <greened@obbligato.org> |
Add support for printing loop structure information in asm comments. This definitely slows down asm output so put it under an -asm-exuberant flag. This information is useful when doing static analysis of performance issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b71d1b2fe2c0673005283b48be2f37c750ce367b |
10-Aug-2009 |
David Greene <greened@obbligato.org> |
Add support for printing loop structure information in asm comments. This definitely slows down asm output so put it under an -asm-exuberant flag. This information is useful when doing static analysis of performance issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78567 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5ab4fd4caaa5a1600e7cf3e89ebda14ca657f185 |
10-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Post RA scheduler changes. Introduce a hazard recognizer that uses the target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78563 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
xactHazardRecognizer.cpp
xactHazardRecognizer.h
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
impleHazardRecognizer.h
|
d94a4e5d8de1145be200ff7223f98b0928462b94 |
10-Aug-2009 |
David Goodwin <david_goodwin@apple.com> |
Post RA scheduler changes. Introduce a hazard recognizer that uses the target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78563 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
xactHazardRecognizer.cpp
xactHazardRecognizer.h
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
impleHazardRecognizer.h
|
63c4e065432658761a1d27028fc3900949489849 |
10-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Move ConstantExpr handling to ResolveConstantExpr method and also add support for PtrToInt, Add, Mul. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78552 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
64a6b3941759587d5d1800580e959a2d40e7f17c |
10-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Move ConstantExpr handling to ResolveConstantExpr method and also add support for PtrToInt, Add, Mul. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78552 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
26aabb95ddbfb011af2f738e8d329b079e4e889f |
09-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
sink the 'name' and 'isdirective' state out of MCSection into its derived classes. This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78517 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
LFWriter.cpp
|
93b6db3de934a3cfca5586df25184fef4a54c500 |
09-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
sink the 'name' and 'isdirective' state out of MCSection into its derived classes. This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78517 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
LFWriter.cpp
|
d0d09fcf74cd20325acc3dcc38007c4ebc2816ff |
09-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
1. Make MCSection an abstract class. 2. Move section switch printing to MCSection virtual method which takes a TAI. This eliminates textual formatting stuff from TLOF. 3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and TLOFELF::AtIsCommentChar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78510 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
892e18239308f8a02a4c83758616be84a459c19d |
09-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
1. Make MCSection an abstract class. 2. Move section switch printing to MCSection virtual method which takes a TAI. This eliminates textual formatting stuff from TLOF. 3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and TLOFELF::AtIsCommentChar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78510 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a8b97f498668ebb2dc64f307f0b86240f25a2d32 |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate TargetLoweringObjectFileSparc in favor of a TAI hook. A TAI hook is appropriate in this case because this is just an asm syntax issue, not a semantic difference. TLOF should model the semantics of the section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78498 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5277b22687d3513dd29d5a9c8510cac740f933f6 |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate TargetLoweringObjectFileSparc in favor of a TAI hook. A TAI hook is appropriate in this case because this is just an asm syntax issue, not a semantic difference. TLOF should model the semantics of the section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78498 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4b9e0c7cc6946cfab67e08d3f484da8a4fecff17 |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't build illegal ops in DAGCombiner::SimplifyBinOpWithSameOpcodeHands(). Blackfin supports and/or/xor on i32 but not on i16. Teach DAGCombiner::SimplifyBinOpWithSameOpcodeHands to not produce illegal nodes after legalize ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78497 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
17421d81fdbc94dbd8b3549b095303baaf52e689 |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't build illegal ops in DAGCombiner::SimplifyBinOpWithSameOpcodeHands(). Blackfin supports and/or/xor on i32 but not on i16. Teach DAGCombiner::SimplifyBinOpWithSameOpcodeHands to not produce illegal nodes after legalize ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78497 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d5b21c16ee6a7a9c435808537d138ac6111b6119 |
08-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
ELF improvements: Handle large integers, x86_fp80, ConstantAggregateZero, and two more ConstantExpr: GetElementPtr and IntToPtr Set SHF_MERGE bit for mergeable strings Avoid zero initialized strings to be classified as a bss symbol Don't allow common symbols to be classified as STB_WEAK Add a constant to be used as a global value offset in data relocations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78476 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
LFWriter.h
|
3e0094d9694a27c9e925f789fa26e740dc445fbe |
08-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
ELF improvements: Handle large integers, x86_fp80, ConstantAggregateZero, and two more ConstantExpr: GetElementPtr and IntToPtr Set SHF_MERGE bit for mergeable strings Avoid zero initialized strings to be classified as a bss symbol Don't allow common symbols to be classified as STB_WEAK Add a constant to be used as a global value offset in data relocations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78476 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
LFWriter.h
|
803e6ca25b44a8bf77d2debb39e024aabafea05b |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean out per-function data after the machine code verifier is done with it. Also don't dereference old pointers after they have been deleted causing random crashes when enabling the machine code verifier. Ahem... I have not included a test case for the crash. It hapened when enabling the verifier on CodeGen/X86/2009-08-06-branchfolder-crash.ll. The crash depends on an MBB being allocated at the same address as a previously deleted MBB. I don't think that can be reproduced reliably. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78472 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
6349668fca491cfe1bf7c754fa0d7eb4255023b1 |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean out per-function data after the machine code verifier is done with it. Also don't dereference old pointers after they have been deleted causing random crashes when enabling the machine code verifier. Ahem... I have not included a test case for the crash. It hapened when enabling the verifier on CodeGen/X86/2009-08-06-branchfolder-crash.ll. The crash depends on an MBB being allocated at the same address as a previously deleted MBB. I don't think that can be reproduced reliably. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78472 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
e693fe774d2f52f9affea558e88d7d43169af112 |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update the machine code verifier to keep up with the scavenger. * Cleaner handling of <undef>. * <def> takes precedence over <def,dead>. * Implement the OK-to-redefine-a-register-that-was- live-in-but-has-not-been-used-before rule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78467 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
710b13b2c2257d65779fd6380e27b823b06a74a9 |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update the machine code verifier to keep up with the scavenger. * Cleaner handling of <undef>. * <def> takes precedence over <def,dead>. * Implement the OK-to-redefine-a-register-that-was- live-in-but-has-not-been-used-before rule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78467 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
463b9d2bf214221f33b5000735ec648fe676af75 |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove RegisterScavenger::isSuperRegUsed(). This completely reverses the mistaken commit r77904. Now there is no special treatment of instructions that redefine part of a super-register. Instead, the super-register is marked with <imp-use,kill> and <imp-def>. For instance, from LowerSubregs on ARM: subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1<undef>, %D1<kill>, 5 subreg: %D2<def> = FCPYD %D1<kill>, 14, %reg0, %Q1<imp-def> subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1, %D0<kill>, 6 subreg: %D3<def> = FCPYD %D0<kill>, 14, %reg0, %Q1<imp-use,kill>, %Q1<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78466 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
egisterScavenging.cpp
|
9390cd0e86cb3b79f6836acab2a27b275e5bde9e |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove RegisterScavenger::isSuperRegUsed(). This completely reverses the mistaken commit r77904. Now there is no special treatment of instructions that redefine part of a super-register. Instead, the super-register is marked with <imp-use,kill> and <imp-def>. For instance, from LowerSubregs on ARM: subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1<undef>, %D1<kill>, 5 subreg: %D2<def> = FCPYD %D1<kill>, 14, %reg0, %Q1<imp-def> subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1, %D0<kill>, 6 subreg: %D3<def> = FCPYD %D0<kill>, 14, %reg0, %Q1<imp-use,kill>, %Q1<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78466 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
egisterScavenging.cpp
|
94a5d17fba9615a9ba82d3a1999f01ffbd5ee28c |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify RegScavenger::forward a bit more. Verify that early clobber registers and their aliases are not used. All changes to RegsAvailable are now done as a transaction so the order of operands makes no difference. The included test case is from PR4686. It has behaviour that was dependent on the order of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78465 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
dffb051c21d32209c601ca0ca6baae75b6c6463f |
08-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify RegScavenger::forward a bit more. Verify that early clobber registers and their aliases are not used. All changes to RegsAvailable are now done as a transaction so the order of operands makes no difference. The included test case is from PR4686. It has behaviour that was dependent on the order of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78465 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
f7215417bb6ab686c5f8b7e85244eb51a8816cf0 |
08-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some -Asserts unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78447 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/GraphBase.h
egAllocPBQP.cpp
|
8a1871d10b3c8cdbac9b8378eebd95461790d1e6 |
08-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some -Asserts unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78447 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/GraphBase.h
egAllocPBQP.cpp
|
fdbeb81b564fc59d0916138cf2c5738b94b2f1ce |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
code cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5f51cd057984b89e0dc0812d45d512596a3c6596 |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
code cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1fc07376c214b1e8a7fcdf234b12712dbf81349a |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of now-dead crud from the asmprinter and TAI interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78428 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
db0a9706e76fde6f3076f2baa1cb5bd0e47c8ee3 |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of now-dead crud from the asmprinter and TAI interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78428 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
520cde24af985dcc5209754478cbd657a2d7d83d |
08-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Back out some of recent register scavenger change by John Mosby. It broke a number of ARM tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78421 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
c40f6130344c53d5f0833838eddca1f94670ea1d |
08-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Back out some of recent register scavenger change by John Mosby. It broke a number of ARM tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78421 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
99fb1eb43eb345fa0d6a6844f4a4da91057fd5ac |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78416 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
23510d36ac5af80f7a47df64b4614b54d6a078c9 |
08-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78416 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1773fe76af05f7d6fa95ab7da6552e666632d549 |
07-Aug-2009 |
Dale Johannesen <dalej@apple.com> |
Rewrite previous patch to follow Chris' stylistic preference; no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78391 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
1c5a28706d0b2e712f4c825d638b46bbe6eb67d6 |
07-Aug-2009 |
Dale Johannesen <dalej@apple.com> |
Rewrite previous patch to follow Chris' stylistic preference; no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78391 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
93a8d43799250813ba44b00ba5f0823db4c5a04e |
07-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another coalescer bug. When a dead copy is eliminated, transfer the kill to a def of the exact register rather than a super-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78376 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
15c592ddffc8f0e8d973bb126bd95e5d9a559739 |
07-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another coalescer bug. When a dead copy is eliminated, transfer the kill to a def of the exact register rather than a super-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78376 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
bd6e475ca04e092b4eec84c1fd68699120f57022 |
07-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78367 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
08ada178b8a9f2b380fb6c2bc2693c615532278e |
07-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78367 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
6d29b324f77099bf84fefbf8cb529de5141e1080 |
07-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of namespace pollution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78363 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
7db949df789383acce98ef072f08794fdd5bd04e |
07-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of namespace pollution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78363 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
0f110c5cdac6100605d65d79dee4e8700088f28f |
07-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78362 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
748f98f90836dbb4c36fea67c9ebe7b6bb13255e |
07-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78362 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
6d2db66d10e6fb4fe5ad8ba579f7a5db8265dd7d |
07-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78360 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3a3cce59c428619513b5209d62f9398b84743cdb |
07-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78360 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
25e9651afb26a004a9debda42da3f90234cc05e2 |
07-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Added legal stuff, fixed some formatting issues. Removed the graph generator stuff as it was only meant for debugging the solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78359 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/GraphBase.h
BQP/GraphGenerator.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
|
caaf120a676f493b1535c9facd188539bfad3f80 |
07-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Added legal stuff, fixed some formatting issues. Removed the graph generator stuff as it was only meant for debugging the solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78359 91177308-0d34-0410-b5e6-96231b3b80d8
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/GraphBase.h
BQP/GraphGenerator.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
|
3ca9a5bb440033db33cc5fa3318fa7f6f7c6a1eb |
07-Aug-2009 |
Lang Hames <lhames@gmail.com> |
New C++ PBQP solver. Currently about as fast (read _slow_) as the old C based solver, but I'll be working to improve that. The PBQP allocator has been updated to use the new solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78354 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
BQP.h
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/GraphBase.h
BQP/GraphGenerator.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
egAllocPBQP.cpp
|
6699fb27091927528f9f6059c3034d566dbed623 |
07-Aug-2009 |
Lang Hames <lhames@gmail.com> |
New C++ PBQP solver. Currently about as fast (read _slow_) as the old C based solver, but I'll be working to improve that. The PBQP allocator has been updated to use the new solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78354 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
BQP.h
BQP/AnnotatedGraph.h
BQP/ExhaustiveSolver.h
BQP/GraphBase.h
BQP/GraphGenerator.h
BQP/HeuristicSolver.h
BQP/Heuristics/Briggs.h
BQP/PBQPMath.h
BQP/SimpleGraph.h
BQP/Solution.h
BQP/Solver.h
egAllocPBQP.cpp
|
6bb6e72a616f276b2d6571b8984c5b38a62d0a3a |
07-Aug-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR 4626, a crash in branch folding after OptimizeBlock produced a CFG it wasn't prepared for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78351 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
14e545d18e46187b0f02e7c705a3da3ad82225c2 |
07-Aug-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR 4626, a crash in branch folding after OptimizeBlock produced a CFG it wasn't prepared for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78351 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
0be51482b5d2786f28747f46dc9ec98541234439 |
07-Aug-2009 |
Dale Johannesen <dalej@apple.com> |
Use stripPointerCasts instead of partially rewriting it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
76711246d9905575290fa7eebac4d1cad6000c60 |
07-Aug-2009 |
Dale Johannesen <dalej@apple.com> |
Use stripPointerCasts instead of partially rewriting it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8945dca72107dd4e0587dc3e9c256de556b83077 |
06-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Get rid of RegScavenger::backwards() before the bitrot spreads. If we need it one day, there is nothing wrong with putting it back in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78337 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
31f5591c91d4c012901018013aba19b0015fa6a0 |
06-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Get rid of RegScavenger::backwards() before the bitrot spreads. If we need it one day, there is nothing wrong with putting it back in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78337 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e61cf3b16436fc1dc2989d66f54f748dd646ca37 |
06-Aug-2009 |
John Mosby <ojomojo@gmail.com> |
Reg Scavenging generalization (Thumb support): - start support for new PEI w/reg alloc, allow running RS from emit{Pro,Epi}logue() target hooks. - fix minor issue with recursion detection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78318 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e0161ea1050fd4107f3307b1e25b3aac02c2ba16 |
06-Aug-2009 |
John Mosby <ojomojo@gmail.com> |
Reg Scavenging generalization (Thumb support): - start support for new PEI w/reg alloc, allow running RS from emit{Pro,Epi}logue() target hooks. - fix minor issue with recursion detection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78318 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e9a0775fe34ff3e86c70e41ccd7f2d94bf62c9c1 |
06-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add assertion checks after the calls to LowerFormalArguments, LowerCall, and LowerReturn, to verify that the targets' hooks have respected some of their postconditions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
5e86606f457d074769c1ee95aeaf718a5853f212 |
06-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add assertion checks after the calls to LowerFormalArguments, LowerCall, and LowerReturn, to verify that the targets' hooks have respected some of their postconditions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
aeee93f666ef04039e6bed630027c6967d1fe021 |
06-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Remove an over-aggressive assert. Functions with empty struct return types don't have any return values, from CodeGen's perspective. This fixes PR4688. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e483feded9a66b9a634f3dbdbf21eaaa65c69781 |
06-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Remove an over-aggressive assert. Functions with empty struct return types don't have any return values, from CodeGen's perspective. This fixes PR4688. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0cee5f4752c0ee0c90afaf20bb63d6cff167b92d |
06-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a few places in DAGCombiner that were creating all-ones-bits and high-bits values in ways that weren't correct for integer types wider than 64 bits. This fixes a miscompile in PPMacroExpansion.cpp in clang on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5cbd37e5056f6a715333553e9d529e0ddddb3e78 |
06-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a few places in DAGCombiner that were creating all-ones-bits and high-bits values in ways that weren't correct for integer types wider than 64 bits. This fixes a miscompile in PPMacroExpansion.cpp in clang on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d2ed7457a184bdb8699f25e22f5cb8856c36bc5b |
06-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Privatize the StructType table, which unfortunately involves routing contexts through a number of APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78258 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
d7f2a6cb3fbc012763adb42fd967f6fefbb22a37 |
06-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Privatize the StructType table, which unfortunately involves routing contexts through a number of APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78258 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
cdc2de3f6cee5709200c2267434e2884303e85f1 |
05-Aug-2009 |
David Greene <greened@obbligato.org> |
Fix some column padding bugs, reorganize things as suggested by Chris and eliminate complexity. Yay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78243 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a5bb59f85613e8ce481351803e7388f5ab466e72 |
05-Aug-2009 |
David Greene <greened@obbligato.org> |
Fix some column padding bugs, reorganize things as suggested by Chris and eliminate complexity. Yay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78243 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1c4428adef8bdc7400072f37d94ba5f5a1c75f4d |
05-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove the 'DataSectionStartSuffix' and 'TextSectionStartSuffix' knobs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78242 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cafbdc5c095f4cc84e74e0286651cf8daa6efa2a |
05-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove the 'DataSectionStartSuffix' and 'TextSectionStartSuffix' knobs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78242 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
40eed6c86c21ea0d756297c5da3bc8c1464be38a |
05-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Rename a variable to make MSVC happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78202 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0ffc47039645e05527ee769ee62058dde1479ce7 |
05-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Rename a variable to make MSVC happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78202 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
06f5740dfecf71d82952f9d8ddf8ce260213a368 |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Disable stack coloring with register for now. It's not able to set kill markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78179 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6248fa45299a9e54aac84b3296c02c44ddec84e8 |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Disable stack coloring with register for now. It's not able to set kill markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78179 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4e4498e03db13890aedf4a241bb3d2a6c5826adf |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another nasty coalescer bug (is there another kind): After coalescing reg1027's def and kill are both at the same point: %reg1027,0.000000e+00 = [56,814:0) 0@70-(814) bb5: 60 %reg1027<def> = t2MOVr %reg1027, 14, %reg0, %reg0 68 %reg1027<def> = t2LDRi12 %reg1027<kill>, 8, 14, %reg0 76 t2CMPzri %reg1038<kill,undef>, 0, 14, %reg0, %CPSR<imp-def> 84 %reg1027<def> = t2MOVr %reg1027, 14, %reg0, %reg0 96 t2Bcc mbb<bb5,0x2030910>, 1, %CPSR<kill> Do not remove the kill marker on t2LDRi12. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78178 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9cd163281490dd5de4597cc184e7e15f658acea0 |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another nasty coalescer bug (is there another kind): After coalescing reg1027's def and kill are both at the same point: %reg1027,0.000000e+00 = [56,814:0) 0@70-(814) bb5: 60 %reg1027<def> = t2MOVr %reg1027, 14, %reg0, %reg0 68 %reg1027<def> = t2LDRi12 %reg1027<kill>, 8, 14, %reg0 76 t2CMPzri %reg1038<kill,undef>, 0, 14, %reg0, %CPSR<imp-def> 84 %reg1027<def> = t2MOVr %reg1027, 14, %reg0, %reg0 96 t2Bcc mbb<bb5,0x2030910>, 1, %CPSR<kill> Do not remove the kill marker on t2LDRi12. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78178 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
661404bba65dfd26fa385f41fe8d46c68702ef6d |
05-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove accidental commited comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78177 91177308-0d34-0410-b5e6-96231b3b80d8
bjectCodeEmitter.cpp
|
6e88a515992390312c96da99ffb82fc2da3c4a4f |
05-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove accidental commited comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78177 91177308-0d34-0410-b5e6-96231b3b80d8
bjectCodeEmitter.cpp
|
b4be215fda2c63b6b194529d93b1839e4f5c1bcc |
05-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
- Remove custom handling of jumptables by the elf writter (this was a dirty hack and isn't need anymore since the last x86 code emitter patch) - Add a target-dependent modifier to addend calculation - Use R_X86_64_32S relocation for X86::reloc_absolute_word_sext - Use getELFSectionFlags whenever possible - fix getTextSection to use TLOF and emit the right text section - Handle global emission for static ctors, dtors and Type::PointerTyID - Some minor fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78176 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
bjectCodeEmitter.cpp
|
52d0851446afe2ae923fc7e7ee56aa4c9d61c1e1 |
05-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
- Remove custom handling of jumptables by the elf writter (this was a dirty hack and isn't need anymore since the last x86 code emitter patch) - Add a target-dependent modifier to addend calculation - Use R_X86_64_32S relocation for X86::reloc_absolute_word_sext - Use getELFSectionFlags whenever possible - fix getTextSection to use TLOF and emit the right text section - Handle global emission for static ctors, dtors and Type::PointerTyID - Some minor fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78176 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
bjectCodeEmitter.cpp
|
693cfcc5b58cedcedd2701064ef6a17d13275b83 |
05-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
add a temporary hook to allow reuse of the asmprinter from the disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78154 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d250329291dd9fe0d5f0e72e6cf1e287558a7cba |
05-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
add a temporary hook to allow reuse of the asmprinter from the disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78154 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3cb21ebef2e5765089d404d584e03ebf310412c0 |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turn some insert_subreg, extract_subreg, subreg_to_reg into implicit_defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78151 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
|
6ade93bbdceac28f441cfdc2571929a866eb7d24 |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turn some insert_subreg, extract_subreg, subreg_to_reg into implicit_defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78151 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
|
9eb13599cfa5208190d6866f514e21ace3f6821d |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
One more. Transfer kill of the larger register when lowering an EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78145 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
b018a1e5a778808e35a12c1e7edd9b59fb8f6295 |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
One more. Transfer kill of the larger register when lowering an EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78145 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
95374eb8c992d869780fcf1b424ee7d795d27e3c |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
One more place where subreg lowering forgot to transfer undefness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78144 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
a72dfb522da3f5a3c01fc4b1613565aa439d566d |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
One more place where subreg lowering forgot to transfer undefness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78144 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
9178de1d2b1e0787539b83ed54ad505ff13169e8 |
05-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Major calling convention code refactoring. Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
98ca4f2a325f72374a477f9deba7d09e8999c29b |
05-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Major calling convention code refactoring. Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
32e5ec2ca24e5a8582db12f6fa88fec2e7a6657b |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
If the insert_subreg source is <undef>, insert an implicit_def instead of a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78141 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
518ad1a88031cd4a667bb2e54688fce7dc2ae133 |
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
If the insert_subreg source is <undef>, insert an implicit_def instead of a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78141 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
b9a6a286674abb146b76307cd0aeb0eead4e6410 |
05-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Various comment fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78139 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
a5225add0d748bd6396f3e4e77669a8996d9ecec |
05-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Various comment fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78139 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
8c485ccb6d0978135f5475e95e94ce3ac4478849 |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up the handling of two-address operands in RegScavenger. This fixes PR4528. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78107 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
323e7d32ab256ba8847ba4ed176b5cd7d0bec3ad |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up the handling of two-address operands in RegScavenger. This fixes PR4528. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78107 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
0c5a1eb4b500414569ffa2b0a40f2a32018a2042 |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't give implicit machine operands special treatment in the register scavenger. Imp-def is *not* allowed to redefine a live register. Imp-use is *not* allowed to use a dead register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78106 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
f955cbf56f130cdeb4c6c8aaa4a2715d420c1327 |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't give implicit machine operands special treatment in the register scavenger. Imp-def is *not* allowed to redefine a live register. Imp-use is *not* allowed to use a dead register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78106 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
9dcecb924df97dee0a45b639a8bd1a364eba23e5 |
04-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
rip out SectionEndDirectiveSuffix support, only uses by the masm backend. If anyone cares about masm in the future, we'll have semantic sections it can hang off of. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f9c1ccf28020add0b3e1d633684debf3e3dc294f |
04-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
rip out SectionEndDirectiveSuffix support, only uses by the masm backend. If anyone cares about masm in the future, we'll have semantic sections it can hang off of. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b409fff1289ce9981085fe8fb365f3a12d56bef5 |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't tamper with <undef> operands in MachineInstr::addRegisterKilled. For an undef operand, MO.getReg() is meaningless and we should not use it. Undef operands should be skipped entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78095 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
efb8e3e113cbf359d6a838c3b37fedc8305d19bb |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't tamper with <undef> operands in MachineInstr::addRegisterKilled. For an undef operand, MO.getReg() is meaningless and we should not use it. Undef operands should be skipped entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78095 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9d01eb3df4554e8cdd09c1c0b735281cef899917 |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
LowerSubregsInstructionPass::LowerExtract should not extend the live range of registers. When LowerExtract eliminates an EXTRACT_SUBREG with a kill flag, it moves the kill flag to the place where the sub-register is killed. This can accidentally overlap with the use of a sibling sub-register, and we have trouble. In the test case we have this code: Live Ins: %R0 %R1 %R2 %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 %R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0] %R1L<def> = EXTRACT_SUBREG %R1<kill>, 1 %R0L<def> = EXTRACT_SUBREG %R0<kill>, 1 %R0H<def> = ADD16 %R2H<kill>, %R2L<kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def> subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 subreg: eliminated! subreg: killed here: %R0H<def> = ADD16 %R2H, %R2L, %R2<imp-use,kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def> The kill flag on %R2 is moved to the last instruction, and the live range overlaps with the definition of %R2H: *** Bad machine code: Redefining a live physical register *** - function: f - basic block: 0x18358c0 (#0) - instruction: %R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0] Register R2H was defined but already live. The fix is to replace EXTRACT_SUBREG with IMPLICIT_DEF instead of eliminating it completely: subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 subreg: replace by: %R2L<def> = IMPLICIT_DEF %R2<kill> Note that these IMPLICIT_DEF instructions survive to the asm output. It is necessary to fix the stack-color-with-reg test case because of that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78093 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
ded2e3b0d02998b3bb99b5089d05fca1e0097868 |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
LowerSubregsInstructionPass::LowerExtract should not extend the live range of registers. When LowerExtract eliminates an EXTRACT_SUBREG with a kill flag, it moves the kill flag to the place where the sub-register is killed. This can accidentally overlap with the use of a sibling sub-register, and we have trouble. In the test case we have this code: Live Ins: %R0 %R1 %R2 %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 %R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0] %R1L<def> = EXTRACT_SUBREG %R1<kill>, 1 %R0L<def> = EXTRACT_SUBREG %R0<kill>, 1 %R0H<def> = ADD16 %R2H<kill>, %R2L<kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def> subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 subreg: eliminated! subreg: killed here: %R0H<def> = ADD16 %R2H, %R2L, %R2<imp-use,kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def> The kill flag on %R2 is moved to the last instruction, and the live range overlaps with the definition of %R2H: *** Bad machine code: Redefining a live physical register *** - function: f - basic block: 0x18358c0 (#0) - instruction: %R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0] Register R2H was defined but already live. The fix is to replace EXTRACT_SUBREG with IMPLICIT_DEF instead of eliminating it completely: subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 subreg: replace by: %R2L<def> = IMPLICIT_DEF %R2<kill> Note that these IMPLICIT_DEF instructions survive to the asm output. It is necessary to fix the stack-color-with-reg test case because of that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78093 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
41339f0e8410ff33c4f7777c498d4e889773362b |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enforce stricter rules in machine code verifier. Implicit operands no longer get a free pass: Imp-use requires a live register and imp-def requires a dead register. There is also no special rule allowing redefinition of a sub-register when the super-register is live. The super register must have imp-kill+imp-def operands instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78090 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
d37bc5a27b2d40b05614587d61bbecb4017bdf23 |
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enforce stricter rules in machine code verifier. Implicit operands no longer get a free pass: Imp-use requires a live register and imp-def requires a dead register. There is also no special rule allowing redefinition of a sub-register when the super-register is live. The super register must have imp-kill+imp-def operands instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78090 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
48caa6bfaa851f55d5aeaf0899de52e59e1c0a29 |
04-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4528. This scavenger assertion is too strict. The two-address value is killed by another operand. There is probably a better fix. Either 1) scavenger can look at other operands, or 2) livevariables can be smarter about kill markers. Patches welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78072 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
7d35249e897dc655c7c884b83d5cb39478ae497c |
04-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4528. This scavenger assertion is too strict. The two-address value is killed by another operand. There is probably a better fix. Either 1) scavenger can look at other operands, or 2) livevariables can be smarter about kill markers. Patches welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78072 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
dd5cdf6d64445371826b9223a24210e92a419919 |
04-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Propogate the Depth argument when calling TLI.computeMaskedBitsForTargetNode from ComputeMaskedBits, since the former may call back into the latter. This fixes a major compile time problem on a testcase that happnened to hit this in a particularly bad way, PR4643. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
206ad10c14e5dda3bf7b2dc8faf84b2f75124844 |
04-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Propogate the Depth argument when calling TLI.computeMaskedBitsForTargetNode from ComputeMaskedBits, since the former may call back into the latter. This fixes a major compile time problem on a testcase that happnened to hit this in a particularly bad way, PR4643. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7a6661431d043c11e15a72c6eb57b681fe7d3248 |
04-Aug-2009 |
Ted Kremenek <kremenek@apple.com> |
Update CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78020 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
f6e75c3435de09bfd5a043c88e3a899da2bcc84f |
04-Aug-2009 |
Ted Kremenek <kremenek@apple.com> |
Update CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78020 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
ebd055c65ff685504558790428be11c967b62ecf |
04-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate CurrentSection, rename CurrentSection_ -> CurrentSection, make it private, eliminate IsInTextSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78017 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
290c2f56ce551ebcf4480ac2944986fe4bb339e9 |
04-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate CurrentSection, rename CurrentSection_ -> CurrentSection, make it private, eliminate IsInTextSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78017 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
0f98c3329e085621496a76ddd59ccb6b2f677abb |
04-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Kill off SwitchToDataSection and SwitchToTextSection, woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78015 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c6fdced3dbfdf673cc9b01dfad4f08e316d8803d |
04-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Kill off SwitchToDataSection and SwitchToTextSection, woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78015 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
180b5e789d07f611994743f4e936b44a7947c7fb |
03-Aug-2009 |
David Greene <greened@obbligato.org> |
Re-apply LiveInterval index dumping patch, with fixes suggested by Bill and others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78003 91177308-0d34-0410-b5e6-96231b3b80d8
ump.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
b5257664795d49ada0d4669fe8ed1cd49c04fbf3 |
03-Aug-2009 |
David Greene <greened@obbligato.org> |
Re-apply LiveInterval index dumping patch, with fixes suggested by Bill and others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78003 91177308-0d34-0410-b5e6-96231b3b80d8
ump.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
c1b906ffd28fb9f9bc9683782b249048d07613ac |
03-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix Bug 4657: register scavenger asserts with subreg lowering When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG instriction because it is an identity copy, make sure that the same registers are alive before and after the elimination. When the super-register is marked <undef> this requires inserting an IMPLICIT_DEF instruction to make sure the super register is live. Fix a related bug where a kill flag on the inserted sub-register was not transferred properly. Finally, clear the undef flag in MachineInstr::addRegisterKilled. Undef implies dead and kill implies live, so they cant both be valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77989 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
achineInstr.cpp
|
980daea857719b3eeb7dc88fe013049d361d955b |
03-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix Bug 4657: register scavenger asserts with subreg lowering When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG instriction because it is an identity copy, make sure that the same registers are alive before and after the elimination. When the super-register is marked <undef> this requires inserting an IMPLICIT_DEF instruction to make sure the super register is live. Fix a related bug where a kill flag on the inserted sub-register was not transferred properly. Finally, clear the undef flag in MachineInstr::addRegisterKilled. Undef implies dead and kill implies live, so they cant both be valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77989 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
achineInstr.cpp
|
75bdd29b81a79ff8dd3a6d6629cb7d42b48da45d |
03-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
make getObjFileLowering() return a non-const reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77984 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
38c398808cff7defdf013fa750dfac8e66302975 |
03-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
make getObjFileLowering() return a non-const reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77984 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
564f681bc2473228458c54d34cf0f95a174553aa |
03-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert 77974. It breaks 3 of the ARM tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
6e7a85c075ac1fc8fc7f11cad07e51839c80ee39 |
03-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert 77974. It breaks 3 of the ARM tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
6faaff6f13d194cdeb519901f9ad3843debf7062 |
03-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
make SwitchToSection accept null sections for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77976 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d54a6b8c58bf0228b965ab00c7d9e2e87239161f |
03-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
make SwitchToSection accept null sections for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77976 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a76e198fbda9797ec9dc173a4b8abc9e6b5dc5fb |
03-Aug-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to custom handle softening of results or operands before trying the standard stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77974 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
2caf1b212e2db36c52f3a7c3e391ea2800802c60 |
03-Aug-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to custom handle softening of results or operands before trying the standard stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77974 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
98c00ab7ee4842f1faa79d2fcf46476d02c4eb99 |
03-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
llvm_report_error already prints "LLVM ERROR:". So stop reporting errors like "LLVM ERROR: llvm: error:" or "LLVM ERROR: ERROR:". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
d5fe92efbc1774ada25a1cfa18009bfc5c6e625c |
03-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
llvm_report_error already prints "LLVM ERROR:". So stop reporting errors like "LLVM ERROR: llvm: error:" or "LLVM ERROR: ERROR:". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
af2deaf01dfdacce208d438ce592bdba06dd9021 |
03-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a coaelescer bug. If a copy val# is extended to eliminate a non-trivially coalesced copy, and the copy kills its source register. Trim the source register's live range to the last use if possible. This fixes up kill marker to make the scavenger happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77967 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
eed0ff147c40aa6a1550b331c6b4bb6ed994ff25 |
03-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a coaelescer bug. If a copy val# is extended to eliminate a non-trivially coalesced copy, and the copy kills its source register. Trim the source register's live range to the last use if possible. This fixes up kill marker to make the scavenger happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77967 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0a17f3d8e26ed60ac1b04407759ca67de2d1ffb5 |
03-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some comments referring to std::cerr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77931 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
275872e79950dafc6699f6502cee52f74b84a22a |
03-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some comments referring to std::cerr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77931 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
159abc0158542e0a7fe3a1200e93df0af32e163c |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix issue in regscavenger when scavenging a callee-saved register that has not been spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77912 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
b36eb9df205aa83cfdfc8ecebc93e1043d6253d9 |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix issue in regscavenger when scavenging a callee-saved register that has not been spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77912 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
7b8fe1343b483389a9d4680d3d0253139b3c1116 |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never add a kill flag to a constrained physical register in a two-addr instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77906 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ece48185168ab130b1777feb86d9e3fe80eb87d2 |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never add a kill flag to a constrained physical register in a two-addr instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77906 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
37512f434723e382cb644c9b778c94c74735522d |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Scavenger asserts. Allow imp-def and imp-use of anything in the scavenger asserts, just like the machine code verifier. Allow redefinition of a sub-register of a live register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77904 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
0e6a4efdd4f97137fb0a58d7bb3de07562185530 |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Scavenger asserts. Allow imp-def and imp-use of anything in the scavenger asserts, just like the machine code verifier. Allow redefinition of a sub-register of a live register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77904 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
8804e0ab44a86d0ca176575161b8ecf4ac9e6b57 |
02-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Avoid forming a SELECT_CC in a type that the target doesn't support. This isn't immediately interesting, because Legalize ends up lowering SELECT_CC if the target doesn't support it, but this simplifies the process. Also, if the SELECT_CC would be expanded in Legalize, it can potentially end up with two copies of the condition expression. By leaving it as SELECT+SETCC, the SELECT can be expanded into two SELECTs that use a single SETCC. The two comparisons are usually CSE'd, but depending on when various expressions get legalized, the comparison expression could involve calls to library functions, such that the comparison expression may not be able to be CSE'd. This will be needed by a future patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77896 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4ea480499c40cd7e28bf35cacda33ccbab2aab07 |
02-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Avoid forming a SELECT_CC in a type that the target doesn't support. This isn't immediately interesting, because Legalize ends up lowering SELECT_CC if the target doesn't support it, but this simplifies the process. Also, if the SELECT_CC would be expanded in Legalize, it can potentially end up with two copies of the condition expression. By leaving it as SELECT+SETCC, the SELECT can be expanded into two SELECTs that use a single SETCC. The two comparisons are usually CSE'd, but depending on when various expressions get legalized, the comparison expression could involve calls to library functions, such that the comparison expression may not be able to be CSE'd. This will be needed by a future patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77896 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c1297ac65105a518bf44a0298ccea271cd41faac |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle <undef> flag in machine code verifier. Use of an <undef> register is treated like an <imp-use>. It is not an error to use a dead <undef> register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77890 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
bcdbcb9f95ce02cdc25048938fc461325b6e94a6 |
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle <undef> flag in machine code verifier. Use of an <undef> register is treated like an <imp-use>. It is not an error to use a dead <undef> register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77890 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
72d228decc0b7d1cd28738b728cb289e5403f14c |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
move dwarf debug info section selection stuff from TAI to TLOF, unifying all the dwarf targets at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77889 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
18a4c16726db2b8874c7b84d04650dda80746074 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
move dwarf debug info section selection stuff from TAI to TLOF, unifying all the dwarf targets at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77889 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c01e333445a1aa6299bbbe95784b50b21098528b |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert EHFrameSection to be managed by TLOF instead of TAI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77888 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
35039ac24163e99cfab161620a9fb41f944a63d5 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert EHFrameSection to be managed by TLOF instead of TAI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77888 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
e3cfb273a3fe3b0f7cf832e7cff8dd2b45fc1062 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove the dead ELFTargetAsmInfo.h/cpp file. TargetAsmInfo defaults to being ELF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77866 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
9ba8c6872dc722d0f9f804fcd67bace4acfe67ba |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove the dead ELFTargetAsmInfo.h/cpp file. TargetAsmInfo defaults to being ELF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77866 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
f9f4d5a172b1bbde0bc5d9a89bbb7b93c8616d7e |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Fix some fixme's in #if 0'd code by making it dependent on the structural behavior of the LSDA section instead of on some random target hook that needs to be kept in synch with other points of truth. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77855 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
ad88bc4076d088baad8a5ee9561e46ac08a1c88a |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Fix some fixme's in #if 0'd code by making it dependent on the structural behavior of the LSDA section instead of on some random target hook that needs to be kept in synch with other points of truth. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77855 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
3d7780580131bf5a736412bcc3b11610721bd3e2 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
move getDwarfExceptionSection from TAI to TLOF and rename it to getLSDASection() to be more specific. This makes it pretty obvious that the ELF LSDA section is being specified wrong in PIC mode. We're probably getting a lot of startup-time relocations to a readonly page, which is expensive and bad. Someone who cares about ELF C++ should investigate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77847 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
d5bbb07ec806e6fa1e804afd7073987fdacc83e4 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
move getDwarfExceptionSection from TAI to TLOF and rename it to getLSDASection() to be more specific. This makes it pretty obvious that the ELF LSDA section is being specified wrong in PIC mode. We're probably getting a lot of startup-time relocations to a readonly page, which is expensive and bad. Someone who cares about ELF C++ should investigate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77847 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
b5c952a6aa643bfa7a002013f46e199e7a86bb3f |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert ctors/dtors section to be in TLOF instead of TAI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77842 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
80ec2792b2b271eca55743a3cc4c8bca214fa705 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
convert ctors/dtors section to be in TLOF instead of TAI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77842 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a945341d921f780e95b14475069c3a9c0d1c6575 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
(re)introduce new simpler apis for creation sectionkinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77834 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
2798119ab4d7e0b42812b3acdf37821f40dee627 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
(re)introduce new simpler apis for creation sectionkinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77834 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
d7f8c0a3b0375ca1550977e6281cb191712159b8 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Remove "JumpTableDataSection" from TAI, instead, have AsmPrinter compute it based on what it knows. As part of this, rename getSectionForMergeableConstant to getSectionForConstant because it works for non-mergable constants also. The only functionality change from this is that Xcore will start dropping its jump tables into readonly section instead of data section in -static mode. This should be fine as the linker resolves the relocations. If this is a problem, let me know and we'll come up with another solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
83d77faf6e8fc2c1c2377d037283dc162d8667a1 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Remove "JumpTableDataSection" from TAI, instead, have AsmPrinter compute it based on what it knows. As part of this, rename getSectionForMergeableConstant to getSectionForConstant because it works for non-mergable constants also. The only functionality change from this is that Xcore will start dropping its jump tables into readonly section instead of data section in -static mode. This should be fine as the linker resolves the relocations. If this is a problem, let me know and we'll come up with another solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77833 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
97988721ef914e63d8075402994d53ea0cfe7ff3 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
loweringinfo is always non-null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77821 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2f03f652057ff880034069c087258635bb7dd3c2 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
loweringinfo is always non-null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77821 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
34e4cde9db656a9a24bf52cf0182272944923659 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix a problem Eli noticed where we would compile the attached ptrtoint to: .quad X even on a 32-bit system, where X is not 64-bits. There isn't much that we can do here, so we just print: .quad ((X) & 4294967295) instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77818 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c19ee610f6ca1ff90b8298160c78283acb9cbaa1 |
02-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
fix a problem Eli noticed where we would compile the attached ptrtoint to: .quad X even on a 32-bit system, where X is not 64-bits. There isn't much that we can do here, so we just print: .quad ((X) & 4294967295) instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77818 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9de4876755e2d4ba1d3ad338cb1c67bf6aabebc4 |
01-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change SectionKind to be a property that is true of a *section*, it should have no state that is specific to particular globals in the section. In this case, it means the removal of the "isWeak" and "ExplicitSection" bits. MCSection uses the new form of SectionKind. To handle isWeak, I introduced a new SectionInfo class, which is SectionKind + isWeak, and it is used by the part of the code generator that does classification of a specific global. The ExplicitSection disappears. It is moved onto MCSection as a new "IsDirective" bit. Since the Name of a section is either a section or directive, it makes sense to keep this bit in MCSection. Ultimately the creator of MCSection should canonicalize (e.g.) .text to whatever the actual section is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77803 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
968ff1196768c0b6dbcc5508025a2923bfa73fab |
01-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change SectionKind to be a property that is true of a *section*, it should have no state that is specific to particular globals in the section. In this case, it means the removal of the "isWeak" and "ExplicitSection" bits. MCSection uses the new form of SectionKind. To handle isWeak, I introduced a new SectionInfo class, which is SectionKind + isWeak, and it is used by the part of the code generator that does classification of a specific global. The ExplicitSection disappears. It is moved onto MCSection as a new "IsDirective" bit. Since the Name of a section is either a section or directive, it makes sense to keep this bit in MCSection. Ultimately the creator of MCSection should canonicalize (e.g.) .text to whatever the actual section is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77803 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
3625126a1e082647476e760bf416889ed2a8f021 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Print the target flags as an int instead of a char, as they aren't actually characters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1944da1c5af82e95c9a4970a7f6a7310db0f6707 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Print the target flags as an int instead of a char, as they aren't actually characters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e8cce20c5ed892f4c3bce3eabdec55f896dcd7b0 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Give MachineFunctionAnalysis a destructor so it can verify that that it released its allocated memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77775 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
f94083333c1702006c068b55526441b2bce1d45b |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Give MachineFunctionAnalysis a destructor so it can verify that that it released its allocated memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77775 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunctionAnalysis.cpp
|
8b797f5ab7527c243fa1d1310c083100ca6bdd9b |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Delete a redundant variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8a0336a44bff2fcabc2de07cf482707c9508012f |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Delete a redundant variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fbd8829cd08d286b79f44ba24bb96a6be4b70a5e |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77769 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f7d6cd46e920776bb33913b2498347cf99358dc4 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77769 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4021660154c087c5a57a8018569ca41951dcc4bb |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
SelectionDAGISel no longer needs to check hasAvailableExternallyLinkage, as it is now a MachineFunctionPass, and MachineFunctionPass now handles this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77760 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c32304e56e85b89f426354dddf98c765eeb16333 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
SelectionDAGISel no longer needs to check hasAvailableExternallyLinkage, as it is now a MachineFunctionPass, and MachineFunctionPass now handles this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77760 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
de104bdfed7861731ff131fc3d37dd47ae4e6b43 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Make UnreachableMachineBlockElim preserve MachineDominatorTree and MachineLoopInfo. llc now runs MachineLoopInfo and MachineDominatorTree only twice, instead of three times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77759 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
4f3cfba575bceadcb3c2f66e83080751edcbcea6 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Make UnreachableMachineBlockElim preserve MachineDominatorTree and MachineLoopInfo. llc now runs MachineLoopInfo and MachineDominatorTree only twice, instead of three times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77759 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
ecb436f195e55e6bf84713b54efd6c621a9ddbfe |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use setPreservesAll and setPreservesCFG in CodeGen passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77754 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineModuleInfo.cpp
achineSink.cpp
HIElimination.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
egAllocSimple.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
845012e6d31799c7fbd1193fa1af8ee2d12e9231 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use setPreservesAll and setPreservesCFG in CodeGen passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77754 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineModuleInfo.cpp
achineSink.cpp
HIElimination.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
egAllocSimple.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
03354410a05e9b2d4af041326bcc7c363880e703 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
SelectionDAGISel does not "preserve all", since it makes lots of changes to the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a3477fe06df794e0eae26ea243f25912c619a6c4 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
SelectionDAGISel does not "preserve all", since it makes lots of changes to the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b067fe1f969786a0971638338e4122fe78d81595 |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use a range insert instead of an explicit loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77752 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
2d147c440178044aa2af1d9c276f9c4e540fcb8e |
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use a range insert instead of an explicit loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77752 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
45ab48e34fe0f640ee1587f6edb157a03b02a315 |
01-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
Allow target intrinsics that return multiple values, i.e., struct types, in SelectionDAGLowering::visitTargetIntrinsic. This removes a bit of special-case code for vector types. After staring at it for a while, I managed to convince myself that it is not necessary. The only case where TLI.getValueType() differs from MVT::getMVT is for iPTR, so this code could potentially make a difference for a vector of pointers. But, it looks like that is not supported. Calling TLI.getValueType() on a vector of pointers leads to the following sequence of calls: TargetLowering::getValueType MVT::getMVT MVT::getVectorVT(iPTR, num elements) MVT::getExtendedVectorVT MVT::getTypeForMVT for iPTR assertion fails "Type is not extended!" So, unless I'm really missing something, this bit of code is irrelevant to the current version of LLVM, which is consistent with the fact that I don't see this code in other similar places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8d91955d2b985bfbb70aeadcd5fed0d68f939000 |
01-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
Allow target intrinsics that return multiple values, i.e., struct types, in SelectionDAGLowering::visitTargetIntrinsic. This removes a bit of special-case code for vector types. After staring at it for a while, I managed to convince myself that it is not necessary. The only case where TLI.getValueType() differs from MVT::getMVT is for iPTR, so this code could potentially make a difference for a vector of pointers. But, it looks like that is not supported. Calling TLI.getValueType() on a vector of pointers leads to the following sequence of calls: TargetLowering::getValueType MVT::getMVT MVT::getVectorVT(iPTR, num elements) MVT::getExtendedVectorVT MVT::getTypeForMVT for iPTR assertion fails "Type is not extended!" So, unless I'm really missing something, this bit of code is irrelevant to the current version of LLVM, which is consistent with the fact that I don't see this code in other similar places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
32ab13dd0e1a5f460d460933f96b57f348c48667 |
01-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
add some comments on how this is *supposed* to work. We don't need the PreferredEHDataFormat hook, but I have yet-more refactoring to do before I can zap it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
46b754c76bd6a720dd1dd3be248cb93a4e25d3e5 |
01-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
add some comments on how this is *supposed* to work. We don't need the PreferredEHDataFormat hook, but I have yet-more refactoring to do before I can zap it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
8a2a64607104b9493e3651718ee8577cac3d3979 |
01-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
rearrange a conditional. Even if this weren't #if 0'd out, this would have no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77741 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
81c9a069377e9474d010f04eebe8325fd11429e3 |
01-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
rearrange a conditional. Even if this weren't #if 0'd out, this would have no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77741 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
4b62f5ba88a137246506b218d6386dc09fa7cc79 |
31-Jul-2009 |
David Greene <greened@obbligato.org> |
Simplify operand padding by keying off tabs in the asm stream. If padding is disabled, tabs get replaced by spaces except in the case of the first operand, where the tab is output to line up the operands after the mnemonics. Add some better comments and eliminate redundant code. Fix some testcases to not assume tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77740 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bef8768bd0576eec0470a80e3039cd5d1fd50c6b |
31-Jul-2009 |
David Greene <greened@obbligato.org> |
Simplify operand padding by keying off tabs in the asm stream. If padding is disabled, tabs get replaced by spaces except in the case of the first operand, where the tab is output to line up the operands after the mnemonics. Add some better comments and eliminate redundant code. Fix some testcases to not assume tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77740 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8b0bb375c9be32347afec9ee406cb15dd4c32cbb |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
PreferredEHDataFormat is always call with data and global, but this whole thing is #if0'd out anyway. Just simplify the code by reducing the interface. Not deleting this is essential for Bill's continuing happiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
7a01e959156ba4e0a15b45a1f153f67d1646c0a5 |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
PreferredEHDataFormat is always call with data and global, but this whole thing is #if0'd out anyway. Just simplify the code by reducing the interface. Not deleting this is essential for Bill's continuing happiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
84362ace0889c4f1f71e8e5604fd620ba7ebb664 |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
move emitUsedDirectiveFor to TargetLoweringObjectFile and rename it to indicate that it is a predicate, not an emitter. This eliminates TAI dependencies on Mangler and GlobalValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
26630c1180502d07c9b2b4a9a4ba06bc5ddf180b |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
move emitUsedDirectiveFor to TargetLoweringObjectFile and rename it to indicate that it is a predicate, not an emitter. This eliminates TAI dependencies on Mangler and GlobalValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
aac2837c17cafaf4ff6487a54bab42e6618b5945 |
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are metadata related, which I'm waiting on to avoid conflicting with Devang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77721 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
hadowStackGC.cpp
nreachableBlockElim.cpp
|
a7235ea7245028a0723e8ab7fd011386b3900777 |
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are metadata related, which I'm waiting on to avoid conflicting with Devang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77721 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
hadowStackGC.cpp
nreachableBlockElim.cpp
|
27abe0495d21cc9f078a57ade9137905356eeeeb |
31-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Update CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77709 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
f83146fd115cd3de9137605dd3e195321c55c048 |
31-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Update CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77709 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
e6ad12f8febebcdca8ea6b0e48014786267df1ea |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
switch off of 'Section' onto MCSection. We're not properly using MCSection subclasses yet, but this is a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77708 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
LFWriter.cpp
|
a87dea4f8c546ca748f1777a8d1cabcc06515d91 |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
switch off of 'Section' onto MCSection. We're not properly using MCSection subclasses yet, but this is a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77708 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
LFWriter.cpp
|
58ccf8dee03d7cf79468a774979ad065c5f945ac |
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
MachineFunction no longer needs Annotation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77704 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
f266f89634363cb067a5b43cbe33f79c4397c08c |
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
MachineFunction no longer needs Annotation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77704 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
fdf9ee278b684165014055069f407362bf9044f3 |
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77691 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveVariables.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineLoopInfo.cpp
achineVerifier.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
ad2afc2a421a0e41603d5eee412d4d8c77e9bc1c |
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77691 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveVariables.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineLoopInfo.cpp
achineVerifier.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
013162700841c12357dc27f2a4a268c967c3eb50 |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
refactor section construction in TLOF to be through an explicit initialize method, which can be called when an MCContext is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77687 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LFWriter.h
|
f26e03bc7e30162197641406e37e662a15d80f7e |
31-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
refactor section construction in TLOF to be through an explicit initialize method, which can be called when an MCContext is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77687 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LFWriter.h
|
4f720fae677b937ace6ffd2bdbfb670ddbadc663 |
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move getTrue() and getFalse() to 2.5-like APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77685 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
5defacc6e605f4651c6300237cef8e9bb2eb6d0e |
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move getTrue() and getFalse() to 2.5-like APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77685 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
696630149187f2f0f435c02c3a7fdc85817a7638 |
31-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang. --- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77661 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveVariables.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineLoopInfo.cpp
achineVerifier.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
c5b19b21d84814d19692a6bbea11fbd135f4b094 |
31-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang. --- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77661 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveVariables.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineLoopInfo.cpp
achineVerifier.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
7b829a2e9945416837d3ce0dee9648b7b6810c97 |
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Manage MachineFunctions with an analysis Pass instead of the Annotable mechanism. To support this, make MachineFunctionPass a little more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77654 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveVariables.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineLoopInfo.cpp
achineVerifier.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
933c762371fe8cc6e2ef5d00d6866f4924852fed |
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Manage MachineFunctions with an analysis Pass instead of the Annotable mechanism. To support this, make MachineFunctionPass a little more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77654 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveVariables.cpp
achineFunction.cpp
achineFunctionAnalysis.cpp
achineFunctionPass.cpp
achineLoopInfo.cpp
achineVerifier.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
8256b0ecdb38c80ad42545d025d83e76c059d5fd |
31-Jul-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix cmake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77649 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
376cd007ec2da67bddd15d68623e51a6e122869c |
31-Jul-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix cmake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77649 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
77198e495c6408851439d7de46e5ba0082a9621f |
31-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Removed the BigBlock register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77640 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
2f75c727f2bc4d76036d12a65c5e21a37e097b90 |
31-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Removed the BigBlock register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77640 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
b99ecca4954cbc3fbff77ffb252952cc19c4d799 |
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9e9a0d5fc26878e51a58a8b57900fcbf952c2691 |
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fda766d66b73e1fad51864bfaa616e1c6ab6d272 |
30-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Start using DebugInfoFinder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
78ab9e2c4907428f5f0d8aa594258ac188dd2125 |
30-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Start using DebugInfoFinder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77621 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f4e64d64cace387219b5c8f9c0ec6e362d589c9e |
30-Jul-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to define libcall names for mem(cpy,set,move) intrinsics, rather than hardcoding them in DAG lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
a114baa5bf0d70aed8b8cf576a864005c0d6a128 |
30-Jul-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to define libcall names for mem(cpy,set,move) intrinsics, rather than hardcoding them in DAG lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
b723fb501aee51fa80022635611a9d38b1e044df |
30-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Optimize some common usage patterns of atomic built-ins __sync_add_and_fetch() and __sync_sub_and_fetch. When the return value is not used (i.e. only care about the value in the memory), x86 does not have to use add to implement these. Instead, it can use add, sub, inc, dec instructions with the "lock" prefix. This is currently implemented using a bit of instruction selection trick. The issue is the target independent pattern produces one output and a chain and we want to map it into one that just output a chain. The current trick is to select it into a merge_values with the first definition being an implicit_def. The proper solution is to add new ISD opcodes for the no-output variant. DAG combiner can then transform the node before it gets to target node selection. Problem #2 is we are adding a whole bunch of x86 atomic instructions when in fact these instructions are identical to the non-lock versions. We need a way to add target specific information to target nodes and have this information carried over to machine instructions. Asm printer (or JIT) can use this information to add the "lock" prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77582 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
37b7387da90ffd42d28ad0f08fca00b684294b2c |
30-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Optimize some common usage patterns of atomic built-ins __sync_add_and_fetch() and __sync_sub_and_fetch. When the return value is not used (i.e. only care about the value in the memory), x86 does not have to use add to implement these. Instead, it can use add, sub, inc, dec instructions with the "lock" prefix. This is currently implemented using a bit of instruction selection trick. The issue is the target independent pattern produces one output and a chain and we want to map it into one that just output a chain. The current trick is to select it into a merge_values with the first definition being an implicit_def. The proper solution is to add new ISD opcodes for the no-output variant. DAG combiner can then transform the node before it gets to target node selection. Problem #2 is we are adding a whole bunch of x86 atomic instructions when in fact these instructions are identical to the non-lock versions. We need a way to add target specific information to target nodes and have this information carried over to machine instructions. Asm printer (or JIT) can use this information to add the "lock" prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77582 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
6b6e2d9392782724c48110bcca4bee2c8fbbd7b9 |
30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move types back to the 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77516 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
hadowStackGC.cpp
|
debcb01b0f0a15f568ca69e8f288fade4bfc7297 |
30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move types back to the 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77516 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
hadowStackGC.cpp
|
a0c38e6f80d46291fd3ce11c7b82026fd8745308 |
29-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
inline the global 'getInstrOperandRegClass' function into its callers now that TargetOperandInfo does the heavy lifting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77508 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
|
2a3868849438a0a0ad4f9a50f2b94eb1639b554e |
29-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
inline the global 'getInstrOperandRegClass' function into its callers now that TargetOperandInfo does the heavy lifting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77508 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
|
f07406157f610d0d63deede491d2de851e7bf4b5 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot to output the base offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
409914b773ffd53d53d214394d5636a76f673186 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot to output the base offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77505 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
6a66b29b664313e14e67ee50551413286699ad1a |
29-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
1. Introduce a new TargetOperandInfo::getRegClass() helper method and convert code to using it, instead of having lots of things poke the isLookupPtrRegClass() method directly. 2. Make PointerLikeRegClass contain a 'kind' int, and store it in the existing regclass field of TargetOperandInfo when the isLookupPtrRegClass() predicate is set. Make getRegClass pass this into TargetRegisterInfo::getPointerRegClass(), allowing targets to have multiple ptr_rc things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77504 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
cb778a8634454c70d88955b3732f330a6cbe5b07 |
29-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
1. Introduce a new TargetOperandInfo::getRegClass() helper method and convert code to using it, instead of having lots of things poke the isLookupPtrRegClass() method directly. 2. Make PointerLikeRegClass contain a 'kind' int, and store it in the existing regclass field of TargetOperandInfo when the isLookupPtrRegClass() predicate is set. Make getRegClass pass this into TargetRegisterInfo::getPointerRegClass(), allowing targets to have multiple ptr_rc things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77504 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
5666e684f4a22393526786ce6cd8c354b0a30ced |
29-Jul-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove now unused Context variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77495 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6c1e983a1756e914b328644e6cab7b4a39eb7853 |
29-Jul-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove now unused Context variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77495 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
02b48c3be2112c64d8fc9cf5419c9c8d4ec30b71 |
29-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantExpr to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
hadowStackGC.cpp
|
baf3c404409d5e47b13984a7f95bfbd6d1f2e79e |
29-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantExpr to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
hadowStackGC.cpp
|
2931fe435726903f4b8c63ab542e27620dc1a2f3 |
29-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
pass the mangler down into the various SectionForGlobal methods. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
e53a600f065075731d0aeb9dc8f4f3d75f5a05f8 |
29-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
pass the mangler down into the various SectionForGlobal methods. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77432 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
767459b83cb7176da521dfbbbeb038075387efd3 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Move comment to above method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77412 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
0dafca90761097230f02e655fdd541f59b888315 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Move comment to above method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77412 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
7b048681508f9739675c0aced56b57c1aec48b98 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
- Temporarily unbreak the build by forcing the TType "absptr", which isn't correct. But what are you going to do? I'll fix this in the future. - Move another large loop into its own method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77408 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
ade025c65c12503aba161a4fa399fd97414abaff |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
- Temporarily unbreak the build by forcing the TType "absptr", which isn't correct. But what are you going to do? I'll fix this in the future. - Move another large loop into its own method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77408 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
3ac794b56677e8f8bb01f33ae28748d7f4b0ef8b |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Cleanup code to use iterators instead of ".size()". Does any one else hate the name "const_reverse_iterator" as much as I do? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77399 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5cff487665097d971067cbede1598e249f673182 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Cleanup code to use iterators instead of ".size()". Does any one else hate the name "const_reverse_iterator" as much as I do? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77399 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
cb3f7d83009e7a08fa1c10a8034e0f23d378d5c6 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Doxygenify comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77394 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
d4609622ade8d0ebaf57fd70700c2fedf0b3d165 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Doxygenify comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77394 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
759e64d6e3c6587b7a0115e39a24fce5cf516a8d |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out large loop into it's very own method. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77393 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
5e953ddfa3abdd684c8a43f9c9c144f584ec7d6f |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out large loop into it's very own method. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77393 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
|
86fc13f803b7d293c1f48585233287f9e1d0fdd2 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Output the EH TType format and base offset only if there are types that we're going to emit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77382 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
b0d9c3e7fdc952ae7cbe169b01ccaf1b80329403 |
29-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Output the EH TType format and base offset only if there are types that we're going to emit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77382 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
598a6aa94d9d3d60cc8bf7dd38e128d28f4f12e4 |
28-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Use the preferred EH data format for the preferred EH data format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
c5800a809fd5e411de78ac1a4be633cd3e1d7840 |
28-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Use the preferred EH data format for the preferred EH data format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
79d87ec983b916e8cb7461ba648d96f9a08d5f27 |
28-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77369 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7cc2c406d0c82bcf329048ced643ec77fcae60e6 |
28-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77369 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2f422e06e096ae765ced5d4c67ac063c3e216424 |
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Return ConstantVector to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
af7ec975870f92245f1f1484ac80a1e2db6a0afa |
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Return ConstantVector to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
f109601f445629e11a2583c5c44d9464a76a3f05 |
28-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Handle null and file symbol on doInitialization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77354 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFWriter.cpp
|
50bc204291c5b947f289302c577f83784136cb2c |
28-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Handle null and file symbol on doInitialization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77354 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFWriter.cpp
|
7b4f9f8b74cd8f8d476787763ea02030762b00e7 |
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Change ConstantArray to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
hadowStackGC.cpp
|
1fd7096407d5e598ed3366a1141548e71273f1c5 |
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Change ConstantArray to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
hadowStackGC.cpp
|
f26175c063b38c62bfde37139257676c79aba35d |
28-Jul-2009 |
David Greene <greened@obbligato.org> |
Add reload and remat backscheduling. This is disabled by default. Use -schedule-spills=true to enable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77327 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
2d4e6d3f123f824709be4884e9e2e2f1a4579858 |
28-Jul-2009 |
David Greene <greened@obbligato.org> |
Add reload and remat backscheduling. This is disabled by default. Use -schedule-spills=true to enable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77327 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
c4c40a9f14d66de770ba7c0922be07dca7e3b827 |
28-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Rip all of the global variable lowering logic out of TargetAsmInfo. Since it is highly specific to the object file that will be generated in the end, this introduces a new TargetLoweringObjectFile interface that is implemented for each of ELF/MachO/COFF/Alpha/PIC16 and XCore. Though still is still a brutal and ugly refactoring, this is a major step towards goodness. This patch also: 1. fixes a bunch of dangling pointer problems in the PIC16 backend. 2. disables the TargetLowering copy ctor which PIC16 was accidentally using. 3. gets us closer to xcore having its own crazy target section flags and pic16 not having to shadow sections with its own objects. 4. fixes wierdness where ELF targets would set CStringSection but not CStringSection_. Factor the code better. 5. fixes some bugs in string lowering on ELF targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
electionDAG/TargetLowering.cpp
|
f0144127b98425d214e59e4a1a4b342b78e3642b |
28-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Rip all of the global variable lowering logic out of TargetAsmInfo. Since it is highly specific to the object file that will be generated in the end, this introduces a new TargetLoweringObjectFile interface that is implemented for each of ELF/MachO/COFF/Alpha/PIC16 and XCore. Though still is still a brutal and ugly refactoring, this is a major step towards goodness. This patch also: 1. fixes a bunch of dangling pointer problems in the PIC16 backend. 2. disables the TargetLowering copy ctor which PIC16 was accidentally using. 3. gets us closer to xcore having its own crazy target section flags and pic16 not having to shadow sections with its own objects. 4. fixes wierdness where ELF targets would set CStringSection but not CStringSection_. Factor the code better. 5. fixes some bugs in string lowering on ELF targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
electionDAG/TargetLowering.cpp
|
011c7ac8369dcae2c3fdb96b39f93e6a99687564 |
28-Jul-2009 |
Mike Stump <mrs@apple.com> |
Avoid build warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77271 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
02efa786d40fabae6dbbb3de5ab057359701e337 |
28-Jul-2009 |
Mike Stump <mrs@apple.com> |
Avoid build warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77271 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9c9f10e3c7667d9104b1ed98090cf0c84e90f8e0 |
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantStruct back to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77266 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
8fa3338ed2400c1352b137613d2c2c70d1ead695 |
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantStruct back to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77266 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
1eb0ad05844cdda1da0acfc72cb583c8aa9c8dbf |
27-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
hoist MCContext/MCStreamer up to AsmPrinter since we're going to start creating MCSections soon instead of Section for all targets, and we need something to own them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77252 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2b2954f00ba02ca1a902f47080cd9f06aebc0378 |
27-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
hoist MCContext/MCStreamer up to AsmPrinter since we're going to start creating MCSections soon instead of Section for all targets, and we need something to own them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77252 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d363a0e9b128db489f429405944607e672a7d92c |
27-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantFP construction back to the 2.5-ish API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
6f83c9c6ef0e7f79825a0a8f22941815e4b684c7 |
27-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantFP construction back to the 2.5-ish API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
ef4c04e4ac5e34bf75fc3a1444c1099fc2a253b8 |
27-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77239 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
|
42286562ef744d1737708852400432bd50878310 |
27-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77239 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
|
2be60acc1ae1d1556e865a865d6452e4f9cca7f3 |
27-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
add module identifier to the elf object file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77238 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
LFWriter.h
|
df0b6503d601c2150e3242b66f02fe906f838979 |
27-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
add module identifier to the elf object file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77238 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
LFWriter.h
|
5436d9fd39977adebc39b6c2fc31d93e038a5d8d |
27-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Handle external symbols for ELF and add some static methods to ELFSym git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77232 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
746e3bb3547d848af86c4d677dfdc2c4481c7518 |
27-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Handle external symbols for ELF and add some static methods to ELFSym git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77232 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
d8310520a75c10de2678e931f984e0c500e0ee43 |
27-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Eliminate SectionFlags, just embed a SectionKind into Section instead and drive things based off of that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77184 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LFWriter.h
|
5fe575ff4fdefc1b003a009b1b9282526a26c237 |
27-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Eliminate SectionFlags, just embed a SectionKind into Section instead and drive things based off of that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77184 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
LFWriter.h
|
060189a1adac5da66282926539fb02324bd355e6 |
27-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Reorganize code a bit to reduce indentation. No visible functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b101b0bdbd22fa1bef3502fd7521da60038ac333 |
27-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Reorganize code a bit to reduce indentation. No visible functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5d3ea9690f9045261c1e70c245fccc2b6b586aa6 |
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::getName{Start,End}, the last of the old Name APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77152 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadata.cpp
|
460f656475738d1a95a6be95346908ce1597df25 |
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::getName{Start,End}, the last of the old Name APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77152 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadata.cpp
|
0653dc6fadc3b459dd15e6a47a43f5b410130b14 |
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::getNameLen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f0443c1eb44d737d9bd78962932fc80f74c6113c |
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::getNameLen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
94d8a7600a9d3f4aba6189d67a6a3e80c79d806a |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove a densemap from TargetAsmInfo that was uniquing the targetflags strings, just use a smallstring instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77144 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f40761d5229322c08701049f89aa10f7f7b8b743 |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove a densemap from TargetAsmInfo that was uniquing the targetflags strings, just use a smallstring instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77144 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ed0c676d4ee8f25d06297caa81502efa3f65782e |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
make SectionKind know whether a symbol is weak or not in addition to its classification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77140 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
4c50922f6be96fdb1e9a924aeeecf91638e2c52b |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
make SectionKind know whether a symbol is weak or not in addition to its classification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77140 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
1c3792478d45063589e36f0523c66d4b2ec4a90f |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
rename Mergable -> Mergeable and Writable -> Writeable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77138 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
2ceb60a677065e08ec436dcb79a9d445e628a5c9 |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
rename Mergable -> Mergeable and Writable -> Writeable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77138 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
47399189c836d255a0b402a0ed5c36d775de5511 |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
two files I missed in the last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77137 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
94809c3b108606e287b0966476a381ec907d6c7a |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
two files I missed in the last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77137 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
fc60ba101e122dd74ee0a2aeafd80a620c6bbb47 |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
simplify getSectionForMergableConstant to take a SectionKind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
5c2f789952ff315021afb10381f141f2ac3b1a6b |
26-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
simplify getSectionForMergableConstant to take a SectionKind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
e03513b6e418341df9f2c18559c3e3557ac9b695 |
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::{isName, getNameRef}. Also, change MDString to use a StringRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77098 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
03d7651c3652e1f0cc86e79b26585d86818da9cf |
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::{isName, getNameRef}. Also, change MDString to use a StringRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77098 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4c530ee667b91ee9ffbe1d5614efa48c5bde903d |
25-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
this is (unfortunately) several changes mixed together: 1. Spell SectionFlags::Writeable as "Writable". 2. Add predicates for deriving SectionFlags from SectionKinds. 3. Sink ELF-specific getSectionPrefixForUniqueGlobal impl into ELFTargetAsmInfo. 4. Fix SectionFlagsForGlobal to know that BSS/ThreadBSS has the BSS bit set (the real fix for PR4619). 5. Fix isSuitableForBSS to not put globals with explicit sections set in BSS (which was the reason #4 wasn't fixed earlier). 6. Remove my previous hack for PR4619. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77085 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
b4fc419d83bc4afc8ce5a204dd226d5ae58f5896 |
25-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
this is (unfortunately) several changes mixed together: 1. Spell SectionFlags::Writeable as "Writable". 2. Add predicates for deriving SectionFlags from SectionKinds. 3. Sink ELF-specific getSectionPrefixForUniqueGlobal impl into ELFTargetAsmInfo. 4. Fix SectionFlagsForGlobal to know that BSS/ThreadBSS has the BSS bit set (the real fix for PR4619). 5. Fix isSuitableForBSS to not put globals with explicit sections set in BSS (which was the reason #4 wasn't fixed earlier). 6. Remove my previous hack for PR4619. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77085 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
0be10b0b53610b5c543713acf5d4f3ff68ed8319 |
25-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Convert a few more things to use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77039 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
fd87a544c00c2ca04ee23aae67bbcad4dc852a54 |
25-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Convert a few more things to use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77039 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
005975c04c5ffc4ee07107ad60dd7d465464e6f7 |
25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineFunction.cpp
achineLICM.cpp
achineVerifier.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAGISel.cpp
hrinkWrapping.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
ce63ffb52f249b62cdf2d250c128007b13f27e71 |
25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineFunction.cpp
achineLICM.cpp
achineVerifier.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAGISel.cpp
hrinkWrapping.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
eacb44d0bb89c608c4465b7900eea3afc0f0be0d |
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
hadowStackGC.cpp
|
eed707b1e6097aac2bb6b3d47271f6300ace7f2e |
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
hadowStackGC.cpp
|
ca037dfe5d198f134bc9c7866a8345a0056acb39 |
24-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add support for promoting SETCC operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
78d12644b905dc54cf6cf984af02a49d30d29744 |
24-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add support for promoting SETCC operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
8aafa1c4b64aa863823dbfc372aa7464257cabe6 |
24-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove a use of SectionFlagsForGlobal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76970 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d0418ce890ed94a233f69423afb0499a884ff4a9 |
24-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove a use of SectionFlagsForGlobal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76970 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ddea63b3a373bd0004d30ba797432749d06726d9 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More move to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76966 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
a717b7be8886c4c6ae261ee553c5cbcae29c1e52 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More move to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76966 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f55f61f8a105e225f3589cac07ae98c08c26b1f6 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move more to raw_ostream, provide support for writing MachineBasicBlock, LiveInterval, etc to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76965 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineBasicBlock.cpp
electionDAG/ScheduleDAGSDNodes.cpp
irtRegMap.cpp
irtRegMap.h
|
1cd1d98232c3c3a0bd3810c3bf6c2572ea02f208 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move more to raw_ostream, provide support for writing MachineBasicBlock, LiveInterval, etc to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76965 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineBasicBlock.cpp
electionDAG/ScheduleDAGSDNodes.cpp
irtRegMap.cpp
irtRegMap.h
|
c6ebd38219ab19934697d8d416095a5db6a6e181 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76963 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
cheduleDAG.cpp
|
3f0e83067d7938f742d21e14fc87c006d2fc3161 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76963 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
cheduleDAG.cpp
|
1e13b9756098b2d657c09fc2910dd66f255d9592 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch to getNameStr(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76962 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
f6ccee5a9d2b9573f679bca6266ade3eb8cd3f88 |
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch to getNameStr(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76962 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
978228189102b8c1d4f316bff684748f17a69320 |
24-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
document SectionFlags::Named better and make it more easily greppable by eliminating isNamed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76946 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
837f3323729f91be2d62b4074fedafd7fb1ce451 |
24-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
document SectionFlags::Named better and make it more easily greppable by eliminating isNamed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76946 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b8523fae98888e969edc2fd5452887c686a0477c |
23-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
"fix" PR4612, which is a crash on: %0 = malloc [3758096384 x i32] The "malloc" instruction doesn't support 64-bits correctly (see PR715), and should be removed. Victor is actively working on fixing this, in the meantime just don't crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
50340f666b5b1fceb2c781464779b4a0f583db9a |
23-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
"fix" PR4612, which is a crash on: %0 = malloc [3758096384 x i32] The "malloc" instruction doesn't support 64-bits correctly (see PR715), and should be removed. Victor is actively working on fixing this, in the meantime just don't crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4d10add69d4b366dacaa7bb0ceb7db4ac61b4d3d |
23-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Convert StringMap to using StringRef for its APIs. - Yay for '-'s and simplifications! - I kept StringMap::GetOrCreateValue for compatibility purposes, this can eventually go away. Likewise the StringMapEntry Create functions still follow the old style. - NIFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76888 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
|
6316fbcb04af00fe76b6526fab09f51484014b3e |
23-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Convert StringMap to using StringRef for its APIs. - Yay for '-'s and simplifications! - I kept StringMap::GetOrCreateValue for compatibility purposes, this can eventually go away. Likewise the StringMapEntry Create functions still follow the old style. - NIFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76888 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
|
0ef653ec28822038cc39aac52c7e6da4fb15900d |
23-Jul-2009 |
Lang Hames <lhames@gmail.com> |
For real this time: PHI Def & Kill tracking added to PHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76865 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
20354634ebb64023d322919633f8bd348a63891d |
23-Jul-2009 |
Lang Hames <lhames@gmail.com> |
For real this time: PHI Def & Kill tracking added to PHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76865 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
26a3c1b63523515afebd09a2b11e52130043a431 |
23-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Added PHI Def & Kill tracking to PHIElimination pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76849 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
287b8b0301bc6ec7eb70d23d242326a8766bb8eb |
23-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Added PHI Def & Kill tracking to PHIElimination pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76849 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
d7d71ae30947b79b3efd8e894ab9d06d56c52abe |
23-Jul-2009 |
David Greene <greened@obbligato.org> |
Reorder if-else branches as suggested by Bill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76808 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
92b78bbc7f2ee919a2d09ed00fd35d1eb7f5f548 |
23-Jul-2009 |
David Greene <greened@obbligato.org> |
Reorder if-else branches as suggested by Bill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76808 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
7b04db41721529da6367c37f2a8de20894f17869 |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Constify the key in Mi2IndexMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76801 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
340482dcc0060b10976b5ff13c44b6d4c8446b9b |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Constify the key in Mi2IndexMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76801 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
474088a63f84f19eed2687c74605de0f70c99469 |
22-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Ignore undef uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76799 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
1e0c1588b1b030a1402cf1865b63faf060e44a39 |
22-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Ignore undef uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76799 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e24a8e4421ca8db64fb11281753dddbb8d098f49 |
22-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch some clients to Value::getName(), and other getName() user simplification. - NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76789 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
|
3d5126fbad17647088b7335cd5fea178407211e2 |
22-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch some clients to Value::getName(), and other getName() user simplification. - NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76789 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
|
1fa359423e11cbbf671039d248c7b0212a962078 |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Put comment printing under asm-verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76780 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
67e59834fc1dca7e357c40af2e5144f3d62f5133 |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Put comment printing under asm-verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76780 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a7f6e089f1f77bbc9bc9daf2804b847ebba705c2 |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Make some changes suggested by Bill and Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76775 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
29ff37f39c305455752941fbf8a426b1f4d877fc |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Make some changes suggested by Bill and Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76775 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
680c6f69828e44b73f2dbea9922c35c8cd481f52 |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove the SelectSectionForMachineConst hook, replacing it with a new getSectionForMergableConstant hook. This removes one dependence of TAI on Type, and provides the hook with enough info to make the right decision based on whether the global has relocations etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
298414ec1891ce8d3a1b69e6019ad8765c8e69dc |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove the SelectSectionForMachineConst hook, replacing it with a new getSectionForMergableConstant hook. This removes one dependence of TAI on Type, and provides the hook with enough info to make the right decision based on whether the global has relocations etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76705 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
|
5454456ad84ec6080b09188456f27493d9ca4b87 |
22-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Let each target determines whether a machine instruction is dead. If true, that allows late codeine passes to delete it. This is considered a workaround. The problem is some targets are not modeling side effects correctly. PPC is apparently one of those. This patch allows ppc llvm-gcc to bootstrap on Darwin. Once we find out which instruction definitions are wrong, we can remove the PPCInstrInfo workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76703 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
fc6ad402fb267cba1625801444aad30da43d383a |
22-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Let each target determines whether a machine instruction is dead. If true, that allows late codeine passes to delete it. This is considered a workaround. The problem is some targets are not modeling side effects correctly. PPC is apparently one of those. This patch allows ppc llvm-gcc to bootstrap on Darwin. Once we find out which instruction definitions are wrong, we can remove the PPCInstrInfo workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76703 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
175b6540352920afd47979cecb8c2667a3f7fdd3 |
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
electionDAG/CallingConvLower.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
hadowStackGC.cpp
nreachableBlockElim.cpp
|
e922c0201916e0b980ab3cfe91e1413e68d55647 |
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
electionDAG/CallingConvLower.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
hadowStackGC.cpp
nreachableBlockElim.cpp
|
bdb23b3806e83737a67a023a729547caf03fc533 |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
reimplement Constant::ContainsRelocations as Constant::getRelocationInfo(), which has a much simpler to use API. It still should not be part of libvmcore, but is better than it was. Also teach it to be smart about hidden visibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76700 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
7cf12c7efd37dc12c3ed536a3f4c373dddac2b85 |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
reimplement Constant::ContainsRelocations as Constant::getRelocationInfo(), which has a much simpler to use API. It still should not be part of libvmcore, but is better than it was. Also teach it to be smart about hidden visibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76700 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
6ffaeb4deb991625622d120920c96ae47127a782 |
22-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Exposed PHIElimination pass within CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76688 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
fae02a2ab19abdf12854356e19aeb1da62a0b8ea |
22-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Exposed PHIElimination pass within CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76688 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
HIElimination.h
|
7e8c86d3f88e4b5e3977210dc2a76ae1946a157c |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Add some support for iterative coalescers to calculate a joined live range's weight properly. This is turned off right now in the sense that you'll get an assert if you get into a situation that can only be caused by an iterative coalescer. All other code paths operate exactly as before so there is no functional change with this patch. The asserts should be disabled if/when an iterative coalescer gets added to trunk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76680 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
80607c9b2bdb09993ac48e40c48852e124eb2c0b |
22-Jul-2009 |
David Greene <greened@obbligato.org> |
Add some support for iterative coalescers to calculate a joined live range's weight properly. This is turned off right now in the sense that you'll get an assert if you get into a situation that can only be caused by an iterative coalescer. All other code paths operate exactly as before so there is no functional change with this patch. The asserts should be disabled if/when an iterative coalescer gets added to trunk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76680 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
690b8d58190f71ff277f1f8b74a13ba35bedce4f |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
no really, I can spell! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76679 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
354c0165e755fd857bc89792243b82387ee3936d |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
no really, I can spell! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76679 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
8f3f851edb0f3339c8913f666492d3be9843e854 |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
add an API so target-independent codegen can determine if a constant pool entry will require relocations against it. I implemented this conservatively for ARM, someone who is knowledgable about it should see if this can be improved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76678 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
cb4596364369ea36ff5675eb12fc62d0c6f1f0dd |
22-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
add an API so target-independent codegen can determine if a constant pool entry will require relocations against it. I implemented this conservatively for ARM, someone who is knowledgable about it should see if this can be improved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76678 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
f2492c371544875f6fb195e083ba0c94326eeb1d |
22-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Change ELFCodeEmitter logic to emit the constant pool and jump tables to their appropriate sections before the code itself. They need to be emitted before the function because on some targets (x86 but not x86_64) the later may reference a JT or CP entry address git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76672 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
|
82a70ccb24a09dd38ab8eaf55428880781fe9006 |
22-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Change ELFCodeEmitter logic to emit the constant pool and jump tables to their appropriate sections before the code itself. They need to be emitted before the function because on some targets (x86 but not x86_64) the later may reference a JT or CP entry address git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76672 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
|
3f1d2c3a512eacb997c35e6f1277549b31c892cb |
21-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
revert r76602, 76603, and r76615, pending design discussions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76646 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
3380d5c4aaafc3d78d32f583d685d64a67ae5224 |
21-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
revert r76602, 76603, and r76615, pending design discussions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76646 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
ff45145136161b5399af8fcda61d1cc253703ebd |
21-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove shift amount flavor. It isn't actually complete enough to be useful, and it's currently unused. (Some issues: it isn't actually rich enough to capture the semantics on many architectures, and semantics can vary depending on the type being shifted.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76633 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b3e717192635873a0d8491fc45ddb64c0e4bda15 |
21-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove shift amount flavor. It isn't actually complete enough to be useful, and it's currently unused. (Some issues: it isn't actually rich enough to capture the semantics on many architectures, and semantics can vary depending on the type being shifted.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76633 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f498f7d323ac5db82ad9e3b56438de7fa13be971 |
21-Jul-2009 |
David Greene <greened@obbligato.org> |
Prefix IR dumps with LiveInterval indices when possible. This turns this: %ESI<def> = MOV32rr %EDI<kill> ADJCALLSTACKDOWN64 0, %RSP<imp-def>, %EFLAGS<imp-def,dead>, %RSP<imp-use> %reg1027<def> = MOVZX64rr32 %ESI %reg1027<def> = ADD64ri8 %reg1027, 15, %EFLAGS<imp-def,dead> %reg1027<def> = AND64ri8 %reg1027, -16, %EFLAGS<imp-def,dead> %RDI<def> = MOV64rr %RSP %RDI<def> = SUB64rr %RDI, %reg1027<kill>, %EFLAGS<imp-def,dead> %RSP<def> = MOV64rr %RDI into this: 4 %reg1024<def> = MOV32rr %EDI<kill> 12 ADJCALLSTACKDOWN64 0, %RSP<imp-def>, %EFLAGS<imp-def,dead>, %RSP<imp-use> 20 %reg1025<def> = MOVZX64rr32 %reg1024 28 %reg1026<def> = MOV64rr %reg1025<kill> 36 %reg1026<def> = ADD64ri8 %reg1026, 15, %EFLAGS<imp-def,dead> 44 %reg1027<def> = MOV64rr %reg1026<kill> 52 %reg1027<def> = AND64ri8 %reg1027, -16, %EFLAGS<imp-def,dead> 60 %reg1028<def> = MOV64rr %RSP 68 %reg1029<def> = MOV64rr %reg1028<kill> 76 %reg1029<def> = SUB64rr %reg1029, %reg1027<kill>, %EFLAGS<imp-def,dead> 84 %RSP<def> = MOV64rr %reg1029 This helps greatly when debugging register allocation and coalescing problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76615 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a358c1db5c744f7c524b18f2860c2d48613adbd1 |
21-Jul-2009 |
David Greene <greened@obbligato.org> |
Prefix IR dumps with LiveInterval indices when possible. This turns this: %ESI<def> = MOV32rr %EDI<kill> ADJCALLSTACKDOWN64 0, %RSP<imp-def>, %EFLAGS<imp-def,dead>, %RSP<imp-use> %reg1027<def> = MOVZX64rr32 %ESI %reg1027<def> = ADD64ri8 %reg1027, 15, %EFLAGS<imp-def,dead> %reg1027<def> = AND64ri8 %reg1027, -16, %EFLAGS<imp-def,dead> %RDI<def> = MOV64rr %RSP %RDI<def> = SUB64rr %RDI, %reg1027<kill>, %EFLAGS<imp-def,dead> %RSP<def> = MOV64rr %RDI into this: 4 %reg1024<def> = MOV32rr %EDI<kill> 12 ADJCALLSTACKDOWN64 0, %RSP<imp-def>, %EFLAGS<imp-def,dead>, %RSP<imp-use> 20 %reg1025<def> = MOVZX64rr32 %reg1024 28 %reg1026<def> = MOV64rr %reg1025<kill> 36 %reg1026<def> = ADD64ri8 %reg1026, 15, %EFLAGS<imp-def,dead> 44 %reg1027<def> = MOV64rr %reg1026<kill> 52 %reg1027<def> = AND64ri8 %reg1027, -16, %EFLAGS<imp-def,dead> 60 %reg1028<def> = MOV64rr %RSP 68 %reg1029<def> = MOV64rr %reg1028<kill> 76 %reg1029<def> = SUB64rr %reg1029, %reg1027<kill>, %EFLAGS<imp-def,dead> 84 %RSP<def> = MOV64rr %reg1029 This helps greatly when debugging register allocation and coalescing problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76615 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ae9822178ceb757bb0778146cf899bd715382f4f |
21-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
make AsmPrinter::doFinalization iterate over the global variables and call PrintGlobalVariable, allowing elimination and simplification of various targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76604 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
40bbebde9d250b875a47a688d0c6552834ada48f |
21-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
make AsmPrinter::doFinalization iterate over the global variables and call PrintGlobalVariable, allowing elimination and simplification of various targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76604 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b528d7627c5aa90478e8ae756fabc1d2a61f79d9 |
21-Jul-2009 |
David Greene <greened@obbligato.org> |
Add PrefixPrinter arguments to the dump routines for MachineFunction and MachineBasicBlock. We'll use these shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76603 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
|
4b938958bcc59586508bc9681e75c2e3f5164672 |
21-Jul-2009 |
David Greene <greened@obbligato.org> |
Add PrefixPrinter arguments to the dump routines for MachineFunction and MachineBasicBlock. We'll use these shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76603 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
|
71f286c68d892cd26eab145e9de034f3d5fa41d4 |
21-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Rename getConstantInt{True|False} to get{True|False} at Chris' behest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
b3056faa5554ded7ac1ac5865d10ef5839fb77d3 |
21-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Rename getConstantInt{True|False} to get{True|False} at Chris' behest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c889b3b87756ad1f7f077024f0bafc56bc2d883a |
21-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Rename LessPrivateGlobalPrefix -> LinkerPrivateGlobalPrefix to match the LLVM IR concept. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76590 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achOWriter.cpp
|
90f8b7073dd472afb21bc33be0f24391e7a4505b |
21-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Rename LessPrivateGlobalPrefix -> LinkerPrivateGlobalPrefix to match the LLVM IR concept. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76590 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achOWriter.cpp
|
f7e1206ae4478137e5926bde150106f3bdbc2a1f |
21-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another rewriter bug exposed by recent coalescer changes. ReuseInfo::GetRegForReload() should make sure the "switched" register is in the desired register class. I'm surprised this hasn't caused more failures in the past. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76558 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
5d885023feac777ac0bcf1b63ac8282ab76f3ec7 |
21-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Another rewriter bug exposed by recent coalescer changes. ReuseInfo::GetRegForReload() should make sure the "switched" register is in the desired register class. I'm surprised this hasn't caused more failures in the past. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76558 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
9198e93dc38dc6d0fdc4893cd43da4808dfc012f |
21-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Simplify / normalize some uses of Value::getName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fbee579ed46016166d88b4defb81a2e7e253062d |
21-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Simplify / normalize some uses of Value::getName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
88ac2e4b5bb5ce6863ae17b5e1233793b9424d2c |
21-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Support adding relocations for data sections, handling the cases where global declared symbols are initialized with references from other global symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76540 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
68491c12179f963b346aa4cb8e1b924184d79970 |
21-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Support adding relocations for data sections, handling the cases where global declared symbols are initialized with references from other global symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76540 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
3f8f2810f286608cd5f252354eeea26c99b53aa4 |
21-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a dagga combiner bug: avoid creating illegal constant. Is this really a winning transformation? fold (shl (srl x, c1), c2) -> (shl (and x, (shl -1, c1)), (sub c2, c1)) or (srl (and x, (shl -1, c1)), (sub c1, c2)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d101a72d79d910abf781e6573be0edac99061acc |
21-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a dagga combiner bug: avoid creating illegal constant. Is this really a winning transformation? fold (shl (srl x, c1), c2) -> (shl (and x, (shl -1, c1)), (sub c2, c1)) or (srl (and x, (shl -1, c1)), (sub c1, c2)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
153afcae9b32c19724f869327822a53535bbfab0 |
21-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a bit more state over to the LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f53c371983908f02678b0e12c5d18466dcc70ffd |
21-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a bit more state over to the LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4cdaee1ba79096421c9f1a2f84c3a6a96f9eb791 |
21-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Cross RC coalescing is now on by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76519 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c95be59371e0b9ed827076953fd7e1270e418ff8 |
21-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Cross RC coalescing is now on by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76519 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d3d20998946bc9067334debe57b79041b2bec722 |
21-Jul-2009 |
Dale Johannesen <dalej@apple.com> |
Move stripping of bitcasts in inline asm arguments to a place where it affects everything. Occurs only on calls AFAIK. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76502 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
5339c551b508d8231672b417d9df1629e42af89b |
21-Jul-2009 |
Dale Johannesen <dalej@apple.com> |
Move stripping of bitcasts in inline asm arguments to a place where it affects everything. Occurs only on calls AFAIK. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76502 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
fbefc075e49031064521dfd2a98bea4b168ba40c |
20-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify the code in DarwinTargetAsmInfo::emitUsedDirectiveFor so that humans can understand it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76480 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
ecc2da8efdc07cf01163b7ab6db1f6dc2f134b67 |
20-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify the code in DarwinTargetAsmInfo::emitUsedDirectiveFor so that humans can understand it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76480 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
4c5482bae6b8ff9a5b5bae9b13c17d86320cd3d9 |
20-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in the unfortunately named "LessPrivatePrefix" for the "LinkerPrivatePrefix". It seems to have been used in only one place before I started this "linker_private" business. I'm thinking that a rename is in order... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76479 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4cef584860acbde1d71157564e0d5f6f935b38a6 |
20-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in the unfortunately named "LessPrivatePrefix" for the "LinkerPrivatePrefix". It seems to have been used in only one place before I started this "linker_private" business. I'm thinking that a rename is in order... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76479 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cee787fc3c6b0e4043cebe2c16825f9d0da863a6 |
20-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Use TII->findCommutedOpIndices to find the commute operands (rather than guessing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76472 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
33d0474bf5d5783cf9690bcab3eabd513d918fc5 |
20-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Use TII->findCommutedOpIndices to find the commute operands (rather than guessing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76472 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
53ec6b7e82b1846bf326031326092ea2f3858ea8 |
20-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix some sub-reg coalescing bugs where the coalescer wasn't updating the resulting interval's register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76458 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
753480ad204c122dab5942ff40f7f5b10c7a891e |
20-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix some sub-reg coalescing bugs where the coalescer wasn't updating the resulting interval's register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76458 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c4d2dafd1427ec9835cb3896ddc2c2f7b178b920 |
20-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
For PC relative relocations where symbols are defined in the same section they are referenced, ignore the relocation entry and patch the relocatable field with the computed symbol offset directly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76414 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
0a38dc5fda9a22aceecccbad2f024b118ce1d5d8 |
20-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
For PC relative relocations where symbols are defined in the same section they are referenced, ignore the relocation entry and patch the relocatable field with the computed symbol offset directly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76414 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
1e0e0d15d2749d27af05086f860cc2204f1f828e |
20-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
implement a new magic global "llvm.compiler.used" which is like llvm.used, but doesn't cause ".no_dead_strip" to be emitted on darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76399 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
|
401e10c4fbfcdcfade5065093e2ca97f69a1d144 |
20-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
implement a new magic global "llvm.compiler.used" which is like llvm.used, but doesn't cause ".no_dead_strip" to be emitted on darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76399 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
achineModuleInfo.cpp
|
2616560b5e0c80cbdd78a100958d495bdd09a542 |
20-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
use stripPointerCasts to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76397 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
1d5c49327b81fe99295dc55d3be80a229f214da3 |
20-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
use stripPointerCasts to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76397 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
41a0785fdd228e1563e606f650cef9b3617ab29e |
20-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Add plumbing for the `linker_private' linkage type. This type is meant for "private" symbols which the assember shouldn't strip, but which the linker may remove after evaluation. This is mostly useful for Objective-C metadata. This is plumbing, so we don't have a use of it yet. More to come, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76385 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
3d10a5a75794356a0a568ce283713adc3a963200 |
20-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Add plumbing for the `linker_private' linkage type. This type is meant for "private" symbols which the assember shouldn't strip, but which the linker may remove after evaluation. This is mostly useful for Objective-C metadata. This is plumbing, so we don't have a use of it yet. More to come, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76385 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
458bbfb5aafd3b9e7ce1e2afcb7c8351a1093b7a |
19-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix http://llvm.org/bugs/show_bug.cgi?id=4583 Inline asm instructions may have additional <imp-def,kill> register operands. These operands are not marked with a flag like the normal asm operands, so we must not assert that there is a flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76373 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
45d34fe35846eed7019bdc2f7814025302849e0c |
19-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix http://llvm.org/bugs/show_bug.cgi?id=4583 Inline asm instructions may have additional <imp-def,kill> register operands. These operands are not marked with a flag like the normal asm operands, so we must not assert that there is a flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76373 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
43e3a62bc33eb3c0ba666041738247853fd0a4b7 |
19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some minor MSVC compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
piller.h
|
cfb8a1bea15f50e6609283c0e06f815a1448a14b |
19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some minor MSVC compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
piller.h
|
2c1fe1aac6032f17855607c46acacb18cf821fde |
19-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use R_X86_64_32S to handle Jump Table Index relocation entries. Hide TAI usage inside getSection* functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76347 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
e2b0ecd8be031685a4fe63633235eceae7f1c4fa |
19-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use R_X86_64_32S to handle Jump Table Index relocation entries. Hide TAI usage inside getSection* functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76347 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
530a2d30997c547140bc71ffa13eb427c297d314 |
18-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use a better name for the label relocations while emitting them for Jump Tables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76334 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
617dd7baa6dfd3a7b5ee72ace37f6b6aeaa6006b |
18-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use a better name for the label relocations while emitting them for Jump Tables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76334 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
8c20392d2b73d401000ce76959b2288e00f2d968 |
18-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add support to properly reference private symbols on relocation entries. Use proper relocation type to build relocations for JumpTables (rodata sections). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76326 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
171375f73a733edcd7a5f839491cc8da4fdeddfe |
18-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add support to properly reference private symbols on relocation entries. Use proper relocation type to build relocations for JumpTables (rodata sections). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76326 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
ae7e8fdb7373644a052e7561fe79f645fe9bc3a5 |
18-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Catch more coalescing opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76282 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
438d9900c0170699deaa3124e9b9a7902d7251b6 |
18-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Catch more coalescing opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76282 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
02bc74c0b4aa1e77f993b506f976baa8fdc5e1aa |
18-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable cross register class coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76281 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
5248468473f0488a652b545ad95f7abda302b7b5 |
18-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable cross register class coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76281 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
818e7f0efdacc1f64106897d574098ed78340735 |
18-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix pr4552. Stack slot coloring with register must take care not to generate illegal ams. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76258 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
59959cd96673c2452ad006dc392ef8b5a278609c |
18-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix pr4552. Stack slot coloring with register must take care not to generate illegal ams. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76258 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
3f621b34a4ad5326465a46ff73209384e0b0bd37 |
18-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove AsmPrinter::findGlobalValue, just use Value::stripPointerCasts instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76246 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
16fe990e56102a355f1e77aca93bf8c79d7b9eb2 |
18-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove AsmPrinter::findGlobalValue, just use Value::stripPointerCasts instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76246 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5361537e3d9a8fce60461856581e8e3f25b8fcb7 |
17-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Simplify some more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76239 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
0768f0eb7f5f3784e18c5c60abe83f758d9ded0d |
17-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Simplify some more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76239 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
8d971615480493288cf6f7365e9b1ce35708c36c |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Use more terse and precise linkage checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76237 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
3e0f60be46cb5363d4375f26a5e27d1dcd9867fb |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Use more terse and precise linkage checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76237 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
4dd585da7f48f0693efffc0c878b243cf1ef78b3 |
17-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate yet another copy of getOpcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76236 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
8906f950068fab18a5d1065ec11bd6563a46728d |
17-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate yet another copy of getOpcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76236 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
269e9519269b3f3fd5a43e4a1ac957f841901eb6 |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
these two pieces of code are the same because we always emit the EHFrame label next to the section_eh_frame and eh_frame_common labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76234 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
a4ff5e48fc6a4718d3a2af8654cfc06a17310aed |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
these two pieces of code are the same because we always emit the EHFrame label next to the section_eh_frame and eh_frame_common labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76234 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
5c3475ecd4d91b986d1d5b2facbf6618d2fd795a |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Untangle a snarl that I discovered when updating the mangler, starting in getCurrentFunctionEHName. Among other problems, we would try to privative a "foo.eh" label, but end up emitting the label as _Lfoo.eh instead of L_foo.eh on darwin. This is really bad, and the linker has always tolerated these labels existing. For now, just emit them as _foo.eh. This patch also fixes problems with ".eh" labels on unnamed functions and eliminates two strangely defined TargetAsmInfo hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76231 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
e2cf37b88c089a71727b3ecd466856f0cd638813 |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Untangle a snarl that I discovered when updating the mangler, starting in getCurrentFunctionEHName. Among other problems, we would try to privative a "foo.eh" label, but end up emitting the label as _Lfoo.eh instead of L_foo.eh on darwin. This is really bad, and the linker has always tolerated these labels existing. For now, just emit them as _foo.eh. This patch also fixes problems with ".eh" labels on unnamed functions and eliminates two strangely defined TargetAsmInfo hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76231 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfException.cpp
|
3d8214accfbf38af576dbfe4fe624ac3f22e5d59 |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
fix include guard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76228 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.h
|
6f37f8f9c3174f7a09344ed25e095b1d6b1ff024 |
17-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
fix include guard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76228 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.h
|
cb11cae299f9413e37930761e04090fe119acf2f |
17-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Simplify the coalescer (finally!) by making LiveIntervals::processImplicitDefs a little more aggressive and teaching liveintervals to make use of isUndef marker on MachineOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76223 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
d129d73b725e32d2fc0c87f392c239db8801e922 |
17-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Simplify the coalescer (finally!) by making LiveIntervals::processImplicitDefs a little more aggressive and teaching liveintervals to make use of isUndef marker on MachineOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76223 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
edd7d11690027b9ff9387d85b7c235cd7fd2cf20 |
17-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add support for naked functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76198 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c5ec8a78ea898087ad361e5b755f74a76150e5fd |
17-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add support for naked functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76198 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
65fe694ce3d0e0c8439f1ea696d2c2ad70f49994 |
17-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
revert one of the loops to use indicies over iterators because there are vector insertions inside the loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76195 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
b674dbe656984220c362acb7f336d10d890857fe |
17-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
revert one of the loops to use indicies over iterators because there are vector insertions inside the loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76195 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
e3fef569eb316d234212a49110e06bbfe96b0c5e |
17-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make promotion in operation legalization for SETCC work correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76153 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a64eb92fe305424ebde2e3de2b12160b8bf76047 |
17-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make promotion in operation legalization for SETCC work correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76153 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9fc2d69858c807adfa4828900f8b0e78cd473adc |
17-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix my brain cramp by inverting the assertion condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76131 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
c1b46f91f52ea838be6d67708a43ff661810fe6a |
17-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix my brain cramp by inverting the assertion condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76131 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
54ac4f0daee5c12e47a95fd74f6c279b6a8ce9ea |
17-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Disable this assert for now, it is firing on an llvm-gcc bootstrap. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76123 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
2df5e554e262c9c2b31b401387fee8678d16cec2 |
17-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Disable this assert for now, it is firing on an llvm-gcc bootstrap. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76123 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
e4db9c5ab0328530a125c80a43bfc3d46ac0155d |
17-Jul-2009 |
Dale Johannesen <dalej@apple.com> |
Assume an inline asm might be a call, so we get stack alignment right when it is. This is not ideal but conservatively correct. Adjust a test to compensate for changed stack offset value. gcc.apple/asm-block-57.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76120 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
423ccfe51daa699a969cd716ce3a69cb2ada6234 |
17-Jul-2009 |
Dale Johannesen <dalej@apple.com> |
Assume an inline asm might be a call, so we get stack alignment right when it is. This is not ideal but conservatively correct. Adjust a test to compensate for changed stack offset value. gcc.apple/asm-block-57.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76120 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4a37a69ef65bf725dd9a434b070d6f3b45fed42d |
17-Jul-2009 |
David Greene <greened@obbligato.org> |
Emit line numbers in asm comments when available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3ac1ab835caacdeebbd0d7b4d69160f283928d21 |
17-Jul-2009 |
David Greene <greened@obbligato.org> |
Emit line numbers in asm comments when available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9c69e28556a520f0fa6346ac0666445518e15970 |
17-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix inverted preprocessor conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76111 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
24cd3c4711333ca1e07cbdb34475bccfeb762bb6 |
17-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix inverted preprocessor conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76111 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
8ad296e39b8b51cd15ea1bfdad0993769762265d |
16-Jul-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Add line numbers to OProfile. To do this, I added a processDebugLoc() call to the MachineCodeEmitter interface and made copying the start line of a function not conditional on whether we're emitting Dwarf debug information. I'll propagate the processDebugLoc() calls to the non-X86 targets in a followup patch. In the long run, it'll probably be better to gather this information through the DwarfWriter, but the DwarfWriter currently depends on the AsmPrinter and TargetAsmInfo, and fixing that would be out of the way for this patch. There's a bug in OProfile 0.9.4 that makes it ignore line numbers for addresses above 4G, and a patch fixing it at http://thread.gmane.org/gmane.linux.oprofile/7634 Sample output: $ sudo opcontrol --reset; sudo opcontrol --start-daemon; sudo opcontrol --start; `pwd`/Debug/bin/lli fib.bc; sudo opcontrol --stop Signalling daemon... done Profiler running. fib(40) == 165580141 Stopping profiling. $ opreport -g -d -l `pwd`/Debug/bin/lli|head -60 Overflow stats not available CPU: Core 2, speed 1998 MHz (estimated) Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000 vma samples % linenr info image name symbol name 00007f67a30370b0 25489 61.2554 fib.c:24 10946.jo fib_left 00007f67a30370b0 1634 6.4106 fib.c:24 00007f67a30370b1 83 0.3256 fib.c:24 00007f67a30370b9 1997 7.8348 fib.c:24 00007f67a30370c6 2080 8.1604 fib.c:27 00007f67a30370c8 988 3.8762 fib.c:27 00007f67a30370cd 1315 5.1591 fib.c:27 00007f67a30370cf 251 0.9847 fib.c:27 00007f67a30370d3 1191 4.6726 fib.c:27 00007f67a30370d6 975 3.8252 fib.c:27 00007f67a30370db 1010 3.9625 fib.c:27 00007f67a30370dd 242 0.9494 fib.c:27 00007f67a30370e1 2782 10.9145 fib.c:28 00007f67a30370e5 3768 14.7828 fib.c:28 00007f67a30370eb 615 2.4128 (no location information) 00007f67a30370f3 6558 25.7287 (no location information) 00007f67a3037100 15603 37.4973 fib.c:29 10946.jo fib_right 00007f67a3037100 1646 10.5493 fib.c:29 00007f67a3037101 45 0.2884 fib.c:29 00007f67a3037109 2372 15.2022 fib.c:29 00007f67a3037116 2234 14.3178 fib.c:32 00007f67a3037118 612 3.9223 fib.c:32 00007f67a303711d 622 3.9864 fib.c:32 00007f67a303711f 385 2.4675 fib.c:32 00007f67a3037123 404 2.5892 fib.c:32 00007f67a3037126 634 4.0633 fib.c:32 00007f67a303712b 870 5.5759 fib.c:32 00007f67a303712d 62 0.3974 fib.c:32 00007f67a3037131 1848 11.8439 fib.c:33 00007f67a3037135 2840 18.2016 fib.c:33 00007f67a303713a 1 0.0064 fib.c:33 00007f67a303713b 1023 6.5564 (no location information) 00007f67a3037143 5 0.0320 (no location information) 000000000080c1e4 15 0.0360 MachineOperand.h:150 lli llvm::MachineOperand::isReg() const 000000000080c1e4 6 40.0000 MachineOperand.h:150 000000000080c1ec 2 13.3333 MachineOperand.h:150 ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
32360a7e21a4454aa7014992213823fb4319905a |
16-Jul-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Add line numbers to OProfile. To do this, I added a processDebugLoc() call to the MachineCodeEmitter interface and made copying the start line of a function not conditional on whether we're emitting Dwarf debug information. I'll propagate the processDebugLoc() calls to the non-X86 targets in a followup patch. In the long run, it'll probably be better to gather this information through the DwarfWriter, but the DwarfWriter currently depends on the AsmPrinter and TargetAsmInfo, and fixing that would be out of the way for this patch. There's a bug in OProfile 0.9.4 that makes it ignore line numbers for addresses above 4G, and a patch fixing it at http://thread.gmane.org/gmane.linux.oprofile/7634 Sample output: $ sudo opcontrol --reset; sudo opcontrol --start-daemon; sudo opcontrol --start; `pwd`/Debug/bin/lli fib.bc; sudo opcontrol --stop Signalling daemon... done Profiler running. fib(40) == 165580141 Stopping profiling. $ opreport -g -d -l `pwd`/Debug/bin/lli|head -60 Overflow stats not available CPU: Core 2, speed 1998 MHz (estimated) Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000 vma samples % linenr info image name symbol name 00007f67a30370b0 25489 61.2554 fib.c:24 10946.jo fib_left 00007f67a30370b0 1634 6.4106 fib.c:24 00007f67a30370b1 83 0.3256 fib.c:24 00007f67a30370b9 1997 7.8348 fib.c:24 00007f67a30370c6 2080 8.1604 fib.c:27 00007f67a30370c8 988 3.8762 fib.c:27 00007f67a30370cd 1315 5.1591 fib.c:27 00007f67a30370cf 251 0.9847 fib.c:27 00007f67a30370d3 1191 4.6726 fib.c:27 00007f67a30370d6 975 3.8252 fib.c:27 00007f67a30370db 1010 3.9625 fib.c:27 00007f67a30370dd 242 0.9494 fib.c:27 00007f67a30370e1 2782 10.9145 fib.c:28 00007f67a30370e5 3768 14.7828 fib.c:28 00007f67a30370eb 615 2.4128 (no location information) 00007f67a30370f3 6558 25.7287 (no location information) 00007f67a3037100 15603 37.4973 fib.c:29 10946.jo fib_right 00007f67a3037100 1646 10.5493 fib.c:29 00007f67a3037101 45 0.2884 fib.c:29 00007f67a3037109 2372 15.2022 fib.c:29 00007f67a3037116 2234 14.3178 fib.c:32 00007f67a3037118 612 3.9223 fib.c:32 00007f67a303711d 622 3.9864 fib.c:32 00007f67a303711f 385 2.4675 fib.c:32 00007f67a3037123 404 2.5892 fib.c:32 00007f67a3037126 634 4.0633 fib.c:32 00007f67a303712b 870 5.5759 fib.c:32 00007f67a303712d 62 0.3974 fib.c:32 00007f67a3037131 1848 11.8439 fib.c:33 00007f67a3037135 2840 18.2016 fib.c:33 00007f67a303713a 1 0.0064 fib.c:33 00007f67a303713b 1023 6.5564 (no location information) 00007f67a3037143 5 0.0320 (no location information) 000000000080c1e4 15 0.0360 MachineOperand.h:150 lli llvm::MachineOperand::isReg() const 000000000080c1e4 6 40.0000 MachineOperand.h:150 000000000080c1ec 2 13.3333 MachineOperand.h:150 ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4c769c3c06d763b4db82231211c80d5aa9be45b5 |
16-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands. The inline asm operands must be parsed from the first flag, you cannot assume that an immediate operand preceeding a register use operand is the flag. PowerPC "m" operands are represented as (flag, imm, reg) triples. isRegTiedToDefOperand() would incorrectly interpret the imm as the flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76101 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
57e599a46b7b1321f9af02d1cecb4fa6b34f8a52 |
16-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands. The inline asm operands must be parsed from the first flag, you cannot assume that an immediate operand preceeding a register use operand is the flag. PowerPC "m" operands are represented as (flag, imm, reg) triples. isRegTiedToDefOperand() would incorrectly interpret the imm as the flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76101 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6dbb7f62ad93f4034dff2825dd4d1f33c667cc5a |
16-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Changed my mind. We now allow remat of instructions whose defs have subreg indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76100 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegRewriter.cpp
|
5f15992b77f178f633e414603a732279997ae1e2 |
16-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Changed my mind. We now allow remat of instructions whose defs have subreg indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76100 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegRewriter.cpp
|
48db02d0d921faded40a05912717a380e0f62642 |
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Privatize the ConstantFP table. I'm on a roll! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
914e50c841bbc248ab94144c11813b5785b1292d |
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Privatize the ConstantFP table. I'm on a roll! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
e1f1f82a2c1506c57f77df09c0a86de6e59ff952 |
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a number of issues in our current context-passing stuff, which is also fixed here git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
001dbfebcbbded8c8e74b19e838b50da2b6c6fb5 |
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a number of issues in our current context-passing stuff, which is also fixed here git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
4484c98df5eab8501adbe0dfca508cec45003cb0 |
16-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Let RegisterInfo decide whether it can emit cross-class copy or not git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75955 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
d519756203868b1bb92f2be9a357850689886ee2 |
16-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Let RegisterInfo decide whether it can emit cross-class copy or not git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75955 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
49d780670d07fa86f61ab1cb006dcd9689983978 |
16-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Scan for presence of calls and determine max callframe size early. To allow ProcessFunctionBeforeCalleeSaveScan() use this information git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75942 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
33b350bf24be396a127c81af045468765731afc7 |
16-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Scan for presence of calls and determine max callframe size early. To allow ProcessFunctionBeforeCalleeSaveScan() use this information git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75942 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
rologEpilogInserter.h
|
3942ed7e05f362b0c45d309609fb7c96a336d93e |
16-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Propagate return result extension type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0692fabb4e681da2907361346ff984290dbb3e40 |
16-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Propagate return result extension type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
463a3e4dd8149ca3f4ab27a71f2a9f48e02c2726 |
16-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Let callers decide the sub-register index on the def operand of rematerialized instructions. Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75900 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
378445303b10b092a898a75131141a8259cff50b |
16-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Let callers decide the sub-register index on the def operand of rematerialized instructions. Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75900 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegRewriter.cpp
|
f4f4dcd25b5c068d47403a417b3b0fc01f56f520 |
16-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix coding style issues pointed by Bill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75898 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
LFWriter.h
|
115934eb57d02d4413aea1931a56ca9102d59f0b |
16-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix coding style issues pointed by Bill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75898 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
LFWriter.h
|
76031e84c67ec56a651dd274d2ac197eb03e41df |
16-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Skip special LLVM prefix '1' while emitting linknage name. This prefix is used by LLVM to inform the asm printer to not emit usual global symbol prefix before the symbol name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
53cb17dfbcf314e434e2826c8076a013f8f799b3 |
16-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Skip special LLVM prefix '1' while emitting linknage name. This prefix is used by LLVM to inform the asm printer to not emit usual global symbol prefix before the symbol name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
83b8c0ea92f42e25d6cb535907ed8353c59cc44c |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
We don't need to use llvm_report_error, this interface can deal with errors (although we don't get a very good error message). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75864 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
36129dba4f4134bc9cc83e3ea830e215754b1baf |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
We don't need to use llvm_report_error, this interface can deal with errors (although we don't get a very good error message). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75864 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
140166dfcd14dc05ebca646f41d1dfe155718182 |
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75863 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
tackProtector.cpp
|
50dead06ffc107edb7e84857baaeeb09039c631c |
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75863 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
tackProtector.cpp
|
f87b6fe74ebcdd70263889c697960ee7525e9b79 |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75862 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6d823cd39d8d16571682cd1bb4cbf2ecb4815d8e |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75862 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c8a017441ab0045e249fdf0463f8489c37c58a63 |
16-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that there is no kill flag on tied operands on two-address instructions. This extra check is not trigged when runnning "make check" on top-of-tree. Change error message to better match llvm_unreachable() grammar. Don't call llvm_unreachable() when writing error messages to a file, but keep going. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75860 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
f7d3e696a5f6e1f467ff107b6db75175887f4916 |
16-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that there is no kill flag on tied operands on two-address instructions. This extra check is not trigged when runnning "make check" on top-of-tree. Change error message to better match llvm_unreachable() grammar. Don't call llvm_unreachable() when writing error messages to a file, but keep going. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75860 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
f0cda48cf2490ed0212fc438beec5e803beb87f1 |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift addAssemblyEmitter into LLVMTargetMachine. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75859 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
5d77cad60bd82dfa2d00f78e26443d667922efbf |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift addAssemblyEmitter into LLVMTargetMachine. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75859 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
3e0ad8b5c033e9640473e7a274dbcd5d71dc4419 |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift DumpAsm / -print-emitted-asm functionality into LLVMTargetMachine. - No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75848 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
cfe9a605eea542d91e3db74289b69b7e317d90a6 |
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift DumpAsm / -print-emitted-asm functionality into LLVMTargetMachine. - No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75848 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
808e8e7ffdb5ac1f99cb9e4c563f2e6472499d32 |
16-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix bug in RegScavenger::scavengeRegister(). Reserved registers are not candidates for scavenging, and they were removed from the candidate list like this: CreateRegClassMask(RC, Candidates); Candidates ^= ReservedRegs; However, when there are reserved registers outside RC, this causes invalid bits to be set in Candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75847 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
72fbc3d9d260e061bdee07059fcd63772c714091 |
16-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix bug in RegScavenger::scavengeRegister(). Reserved registers are not candidates for scavenging, and they were removed from the candidate list like this: CreateRegClassMask(RC, Candidates); Candidates ^= ReservedRegs; However, when there are reserved registers outside RC, this causes invalid bits to be set in Candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75847 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
6361f97916fc9aa3fc9e983287bc69ca0570fde8 |
15-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a few more convenience factory functions from Constant to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
a90b3dc2f1f70ab7102ec3f1fc57f199fd56d7cc |
15-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a few more convenience factory functions from Constant to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
41d72e44851d7e2b674f20a9686988ed5a422c9b |
15-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
ShortenDeadCopySrcLiveRange needs to be more conservative in multi-kill situations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75838 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a499effd3b5ccdcbfd472f1f3c8a06f00056303d |
15-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
ShortenDeadCopySrcLiveRange needs to be more conservative in multi-kill situations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75838 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
129f8fea7b991a5a38ce147e6b2adcba475da817 |
15-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Lexically order files in CMakeLists.txt files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
193562982930fb7c094dbe2c8b10fd18a1fac1d6 |
15-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Lexically order files in CMakeLists.txt files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
a412a42b0f35568ee63d8f1d09d9327a55ce5f95 |
15-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
use std::vector instead of std::list for both Section and Symbol lists because we care more about random access than insertion/deletion of elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75828 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
4b70fab658114dbab81725f2a42db381bf6f031f |
15-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
use std::vector instead of std::list for both Section and Symbol lists because we care more about random access than insertion/deletion of elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75828 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
1ad1c1d327aa47a077ece9c0f49fc59200872b63 |
15-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove printSuffixedName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f1cfea2dbfd6ebc0008ecd2d37a1c91058bbfdd1 |
15-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove printSuffixedName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9f5b2aa7fba203469386acc413c23dd41a713bc9 |
15-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move EVER MORE stuff over to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75703 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
hadowStackGC.cpp
tackProtector.cpp
|
9adc0abad3c3ed40a268ccbcee0c74cb9e1359fe |
15-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move EVER MORE stuff over to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75703 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
hadowStackGC.cpp
tackProtector.cpp
|
302008dbeae03364ffffc1bcf77d2eb28897d98a |
14-Jul-2009 |
David Greene <greened@obbligato.org> |
Have asm printers use formatted_raw_ostream directly to avoid a dynamic_cast<>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75670 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
71847813bc419f7a0667468136a07429c6d9f164 |
14-Jul-2009 |
David Greene <greened@obbligato.org> |
Have asm printers use formatted_raw_ostream directly to avoid a dynamic_cast<>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75670 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LVMTargetMachine.cpp
|
b3cdde6d77eadb722aff894b1d90498ce70babc2 |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Reapply my previous asmprinter changes now with more testing and two additional bug fixes: 1. The bug that everyone hit was a problem in the asmprinter where it would remove $stub but keep the L prefix on a name when emitting the indirect symbol. This is easy to fix by keeping the name of the stub and the name of the symbol in a StringMap instead of just keeping a StringSet and trying to reconstruct it late. 2. There was a problem printing the personality function. The current logic to print out the personality function from the DWARF information is a bit of a cesspool right now that duplicates a bunch of other logic in the asm printer. The short version of it is that it depends on emitting both the L and _ prefix for symbols (at least on darwin) and until I can untangle it, it is best to switch the mangler back to emitting both prefixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOCodeEmitter.cpp
achOWriter.cpp
|
b8158acc23f5f0bf235fb1c6a8182a38ec9b00b2 |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Reapply my previous asmprinter changes now with more testing and two additional bug fixes: 1. The bug that everyone hit was a problem in the asmprinter where it would remove $stub but keep the L prefix on a name when emitting the indirect symbol. This is easy to fix by keeping the name of the stub and the name of the symbol in a StringMap instead of just keeping a StringSet and trying to reconstruct it late. 2. There was a problem printing the personality function. The current logic to print out the personality function from the DWARF information is a bit of a cesspool right now that duplicates a bunch of other logic in the asm printer. The short version of it is that it depends on emitting both the L and _ prefix for symbols (at least on darwin) and until I can untangle it, it is best to switch the mangler back to emitting both prefixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOCodeEmitter.cpp
achOWriter.cpp
|
bd448e3ca993226084d7f53445388fcd8e46b996 |
14-Jul-2009 |
Edwin Török <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfPrinter.cpp
ranchFolding.cpp
LFCodeEmitter.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achOCodeEmitter.cpp
achOWriter.cpp
achineInstr.cpp
achineModuleInfo.cpp
ostRASchedulerList.cpp
seudoSourceValue.cpp
egAllocLinearScan.cpp
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
c23197a26f34f559ea9797de51e187087c039c42 |
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfPrinter.cpp
ranchFolding.cpp
LFCodeEmitter.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achOCodeEmitter.cpp
achOWriter.cpp
achineInstr.cpp
achineModuleInfo.cpp
ostRASchedulerList.cpp
seudoSourceValue.cpp
egAllocLinearScan.cpp
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
aa2b53498c12c3972f87733108465b59f7cd02a5 |
14-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r7561{9,8,7,6}, which depend on r75610. --- Reverse-merging r75619 into '.': U lib/Target/DarwinTargetAsmInfo.cpp U lib/CodeGen/AsmPrinter/AsmPrinter.cpp --- Reverse-merging r75618 into '.': U lib/CodeGen/ELFWriter.cpp U lib/CodeGen/MachOCodeEmitter.cpp U lib/CodeGen/MachOWriter.cpp --- Reverse-merging r75617 into '.': U lib/Target/CBackend/CBackend.cpp --- Reverse-merging r75616 into '.': U tools/bugpoint/Miscompilation.cpp U tools/lto/LTOCodeGenerator.cpp U tools/lto/LTOModule.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOCodeEmitter.cpp
achOWriter.cpp
|
1f316e321a8f2fa0e193c5444584a67a8aabe9a8 |
14-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r7561{9,8,7,6}, which depend on r75610. --- Reverse-merging r75619 into '.': U lib/Target/DarwinTargetAsmInfo.cpp U lib/CodeGen/AsmPrinter/AsmPrinter.cpp --- Reverse-merging r75618 into '.': U lib/CodeGen/ELFWriter.cpp U lib/CodeGen/MachOCodeEmitter.cpp U lib/CodeGen/MachOWriter.cpp --- Reverse-merging r75617 into '.': U lib/Target/CBackend/CBackend.cpp --- Reverse-merging r75616 into '.': U tools/bugpoint/Miscompilation.cpp U tools/lto/LTOCodeGenerator.cpp U tools/lto/LTOModule.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOCodeEmitter.cpp
achOWriter.cpp
|
b2de05e42ea607956e52004d90d3ba84d127b6c8 |
14-Jul-2009 |
Edwin Török <edwintorok@gmail.com> |
eliminate extra space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75630 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
481d15a12289ec4d058b863da93794fd8be1e702 |
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
eliminate extra space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75630 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
d045bb4d1884b06db3d5421872eca83ac09e2ca5 |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
rename getValueName -> getMangledName. These two files have very dubious looking things that I need to investigate in more detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75619 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5dc72d2c9f759bf9aa901c1901da8d942a32e254 |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
rename getValueName -> getMangledName. These two files have very dubious looking things that I need to investigate in more detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75619 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4b9ebd386c1ac2f9df2fc1aef4d3c8f33658c059 |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Rename getValueName -> getMangledName git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75618 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOCodeEmitter.cpp
achOWriter.cpp
|
063af39f87eaefb5d602385f281c5eb3d34fbd70 |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Rename getValueName -> getMangledName git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75618 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOCodeEmitter.cpp
achOWriter.cpp
|
37db402da9462e27c0cd2704a11d8c0f28c52e8d |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Change the internal interface to makeNameProper to take a bool that indicates whether the label is private or not, instead of taking prefix stuff. One effect of this is that symbols will be generated with *just* the private prefix, instead of both the private prefix *and* the user-label-prefix, but this doesn't matter as long as it is consistent. For example we'll now get "Lfoo" instead of "L_foo". These are just assembler temporary labels anyway, so they never even make it into the .o file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
1cda87c3a07dc097f27e365f7f3ff4bcb31f5699 |
14-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Change the internal interface to makeNameProper to take a bool that indicates whether the label is private or not, instead of taking prefix stuff. One effect of this is that symbols will be generated with *just* the private prefix, instead of both the private prefix *and* the user-label-prefix, but this doesn't matter as long as it is consistent. For example we'll now get "Lfoo" instead of "L_foo". These are just assembler temporary labels anyway, so they never even make it into the .o file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfDebug.cpp
|
bd760a50153e3f543e5ccf0d5d6a34e3a33bd88e |
14-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Do not use Mangler to remove '1' from linkage name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75574 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1a8d2d2d4f9c019e3ace0053ce3f33449cf85c44 |
14-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Do not use Mangler to remove '1' from linkage name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75574 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
6a598fd56de58b403ebe295a2110f0aeee581489 |
14-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix pr4544. When remating, make sure the destination register fits the instruction definition. It may be mismatched due to sub-register coalescing. No test case yet because the code doesn't trigger until 75408 is re-applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75572 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5ad147281a2c95b662cbc76e879f340118c8bb19 |
14-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix pr4544. When remating, make sure the destination register fits the instruction definition. It may be mismatched due to sub-register coalescing. No test case yet because the code doesn't trigger until 75408 is re-applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75572 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
66c7e26156e67deb9dcf46a5697e70c9ebd112c2 |
14-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert an accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75553 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8799dbe5b7be2e959047caf88ce97a04a3526856 |
14-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert an accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75553 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1aad0d13d1c136923a2b32648108753faa620a18 |
14-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Use assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75540 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d84b41615e8a9844d0cc26527ec9ef316fdddb84 |
14-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Use assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75540 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
af939d83a0e1401f0219257327c0277c7fbd3753 |
14-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Cleanup the global emission and refactor some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75537 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
d291066879ea4e577572fdbb22ba142826c98ccd |
14-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Cleanup the global emission and refactor some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75537 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
62d0d31be23e51757d2877550864ded52e071a22 |
14-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Move isLCSSAForm, isLoopInvariant, getCanonicalInductionVariable, and related functions out of LoopBase and into Loop, since they are specific to BasicBlock-based loops. This also allows the code to be moved out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75523 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
16a2c927e95c29a316d0271c93e0490ce3bc06ce |
14-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Move isLCSSAForm, isLoopInvariant, getCanonicalInductionVariable, and related functions out of LoopBase and into Loop, since they are specific to BasicBlock-based loops. This also allows the code to be moved out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75523 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
42cf7cc6ace5157c359c6a5758c1d77d0cf0e236 |
13-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make Loop and MachineLoop be subclasses of LoopBase, rather than typedefs, using the Curiously Recurring Template Pattern with LoopBase. This will help further refactoring, and future functionality for Loop. Also, Headers can now foward-declare Loop, instead of pulling in LoopInfo.h or doing tricks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75519 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
c8d76d5afb023a1c6b439941be3b62789fcc0ed3 |
13-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make Loop and MachineLoop be subclasses of LoopBase, rather than typedefs, using the Curiously Recurring Template Pattern with LoopBase. This will help further refactoring, and future functionality for Loop. Also, Headers can now foward-declare Loop, instead of pulling in LoopInfo.h or doing tricks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75519 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
03cc004a76b1504ea0b11feaab1e026e77eaaf55 |
13-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Use AsmPrinter's Mangler to remove leading '1' from linkage names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
87370b8301fa39ee54bdcaae0618fd565e808466 |
13-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Use AsmPrinter's Mangler to remove leading '1' from linkage names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75515 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8d9397a582f963064c5a044543887336898e8ef8 |
13-Jul-2009 |
Owen Anderson <resistor@mac.com> |
As Chris pointed out, this doesn't actually need an LLVMContext to operate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75508 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
1ca29d318a6632c115b9f62c791077b575494e42 |
13-Jul-2009 |
Owen Anderson <resistor@mac.com> |
As Chris pointed out, this doesn't actually need an LLVMContext to operate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75508 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
714dd9b716dfb8625bd7f2ecb18c6c9660374b9e |
13-Jul-2009 |
Devang Patel <dpatel@apple.com> |
revert rev. 75503 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75507 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
43da8fbe524f4f1921209e6280678173393fb461 |
13-Jul-2009 |
Devang Patel <dpatel@apple.com> |
revert rev. 75503 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75507 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
aa219559b8feecd575d706a3c7ef6308f08b68af |
13-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Use Mangler to remove leading '1' from linkage names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75503 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
7597a6252b29f76c7e65351ef85918d1769713bb |
13-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Use Mangler to remove leading '1' from linkage names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75503 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
634861206ef715b330251026657b4261326007d9 |
13-Jul-2009 |
David Greene <greened@obbligato.org> |
Add infrastructure to allow post instruction printing action triggers. We'll eventually use this to print comments in asm files and do other fun things. This adds interfaces to the AsmPrinter and changes TableGen to invoke the postInstructionAction when appropriate. It also add parameters to TargetAsmInfo to control comment layout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75490 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
014700c1a8cba203fd21ff129426ba8a426ab244 |
13-Jul-2009 |
David Greene <greened@obbligato.org> |
Add infrastructure to allow post instruction printing action triggers. We'll eventually use this to print comments in asm files and do other fun things. This adds interfaces to the AsmPrinter and changes TableGen to invoke the postInstructionAction when appropriate. It also add parameters to TargetAsmInfo to control comment layout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75490 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
08edb60710e1272caa7e80e6c33d4fa3140040e3 |
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition (missed a few). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75456 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.h
|
7a80f5f825a037c6247509ecea82028a73028fc5 |
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition (missed a few). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75456 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.h
|
d653ac859ecb579af2aee79fc21adf95668a66fb |
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75454 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
achOWriter.h
|
89e12a1b2e3380c11be612b0c34751221e4a1c23 |
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75454 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
achOWriter.h
|
bd4ba8f7ab5f1697d63473ca674dbeb39befbc18 |
13-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Removed some junk code that snuck in to an earlier commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75450 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
fc1b75f7c8fa2f2974c476f99a55b2d006e5d14f |
13-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Removed some junk code that snuck in to an earlier commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75450 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
15b3932454f2777376ac500eae3999139a2c1f2e |
13-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75445 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
achOWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
hadowStackGC.cpp
nreachableBlockElim.cpp
|
0a5372ed3e8cda10d724feda3c1a1c998db05ca0 |
13-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75445 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
achOWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
hadowStackGC.cpp
nreachableBlockElim.cpp
|
238dcb7f78f7cd0950e6eca3a23aa53f4eadb1e7 |
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75440 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
deb052a3dd0227579f86d74b3c1d70384ea5c16b |
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75440 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
92a8198f9346913f3db6f35d97ba6bbd8ca1ff37 |
12-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove llvm.part.set.* and llvm.part.select.*. They have never been implemented in codegen, have no frontend to generate them, and are better implemented with pattern matching (like the ppc backend does to generate rlwimi/rlwinm etc). PR4543 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75430 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
eaff5246707cc620736e895c239ff78298b3d95e |
12-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove llvm.part.set.* and llvm.part.select.*. They have never been implemented in codegen, have no frontend to generate them, and are better implemented with pattern matching (like the ppc backend does to generate rlwimi/rlwinm etc). PR4543 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75430 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
280d15bd08f05838396f368f0de6ca63ab107f3f |
12-Jul-2009 |
Edwin Török <edwintorok@gmail.com> |
Fix assert(0) conversion, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75423 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
reAllocSplitting.cpp
egisterScavenging.cpp
electionDAG/SelectionDAGISel.cpp
|
f36892335b4919b9120e48a792e6b3630b9de978 |
12-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Fix assert(0) conversion, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75423 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
reAllocSplitting.cpp
egisterScavenging.cpp
electionDAG/SelectionDAGISel.cpp
|
635c9f0fbddb5aef75870f379522b9f279b77385 |
12-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement support for promotion of AND/OR/XOR on integer types. The blackfin processor has a legal i16 type, but only logic operations on i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c8ca3ae27b64fa785f944799a9bc133fac8f90d9 |
12-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement support for promotion of AND/OR/XOR on integer types. The blackfin processor has a legal i16 type, but only logic operations on i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f90244488d1e1ac608a9272ecb1d5950902234c6 |
12-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix types in PromoteNode handling of CTPOP and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75418 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9a4ba45f4cd0496c422f81e104adf6c03ebdd3ba |
12-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix types in PromoteNode handling of CTPOP and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75418 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
675d56222b6b98d2c22a17aaf69a036e57d5426a |
11-Jul-2009 |
Edwin Török <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfPrinter.cpp
ranchFolding.cpp
LFCodeEmitter.cpp
LFWriter.cpp
CMetadata.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achOCodeEmitter.cpp
achOWriter.cpp
achineInstr.cpp
achineModuleInfo.cpp
ostRASchedulerList.cpp
seudoSourceValue.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
c25e7581b9b8088910da31702d4ca21c4734c6d7 |
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DIE.cpp
smPrinter/DwarfPrinter.cpp
ranchFolding.cpp
LFCodeEmitter.cpp
LFWriter.cpp
CMetadata.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achOCodeEmitter.cpp
achOWriter.cpp
achineInstr.cpp
achineModuleInfo.cpp
ostRASchedulerList.cpp
seudoSourceValue.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
irtRegRewriter.cpp
|
ced9ff8ea2fac344da91d925294817ad51f51e06 |
11-Jul-2009 |
Edwin Török <edwintorok@gmail.com> |
Convert more assert(0)+abort() -> LLVM_UNREACHABLE, and abort()/exit() -> llvm_report_error(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achOWriter.cpp
achineVerifier.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egisterScavenging.cpp
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
7d696d80409aad20bb5da0fc4eccab941dd371d4 |
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Convert more assert(0)+abort() -> LLVM_UNREACHABLE, and abort()/exit() -> llvm_report_error(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75363 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
ntrinsicLowering.cpp
iveIntervalAnalysis.cpp
achOWriter.cpp
achineVerifier.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egisterScavenging.cpp
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
b5a5ab2df4bd8a61bac1be99f2e0a4b8493d964b |
11-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix up support for OptionalDefOperand when it defaults to an actual register def. I need this to get ready for major Thumb1 surgery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
8955e93b1ffa7645beea0b51e4b091b96063f613 |
11-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix up support for OptionalDefOperand when it defaults to an actual register def. I need this to get ready for major Thumb1 surgery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
23a154729df2ebd333211da7c184b123c945ca97 |
11-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Use CreateStackStoreLoad helper in more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
aad3460086a1b29c55f7490c6d8743ea4e53f07d |
11-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Use CreateStackStoreLoad helper in more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
8aa92df0b08cb2553cab7d3c9f23bd7e2b64f0c5 |
11-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Two-address pass should use findCommutedOpIndices to determine what registers are commuted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75317 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
ebfc177b59c0bda0c2cb54f3f64dce7ee0fa4df2 |
11-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Two-address pass should use findCommutedOpIndices to determine what registers are commuted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75317 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
66cf2c8bec33b88b452a6ca5b0a4a323762693d0 |
11-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Use findCommutedOpIndices to find the operands to commute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75312 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
34c75093f085c7958fa3bd31f3c4a50942d83505 |
11-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Use findCommutedOpIndices to find the operands to commute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75312 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
4c17de983f586bc85e7ee850dc4b6ad5b6e3420a |
10-Jul-2009 |
David Greene <greened@obbligato.org> |
Make changes suggested by Chris and eliminate newly-added raw_ostream hooks as they're no longer needed. The major change with this patch is to make formatted_raw_ostream usable by any client of raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75283 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
62fe47a33755719ab9c6e8c239e0dd01fc87e6f9 |
10-Jul-2009 |
David Greene <greened@obbligato.org> |
Make changes suggested by Chris and eliminate newly-added raw_ostream hooks as they're no longer needed. The major change with this patch is to make formatted_raw_ostream usable by any client of raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75283 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
e8dfcaece2b1f2f0ccfc99b3e63914a82cb0f834 |
10-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Avoid compiler warnings if assertions turned off. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75267 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
413a15ef0e5e727afeedf57e8b2f416acf3662c0 |
10-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Avoid compiler warnings if assertions turned off. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75267 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8a0ec3c9d93556ab03b25412560568410cbce001 |
10-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove TargetInstrInfo::CommuteChangesDestination and added findCommutedOpIndices which returns the operand indices which are swapped (when applicable). This allows for some code clean up and future enhancements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75264 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
261ce1d5f89155d2e6f914f281db2004c89ee839 |
10-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove TargetInstrInfo::CommuteChangesDestination and added findCommutedOpIndices which returns the operand indices which are swapped (when applicable). This allows for some code clean up and future enhancements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75264 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
irtRegRewriter.cpp
|
26a17a853b0c122fa18985d5f83877a0d4182cc3 |
10-Jul-2009 |
David Greene <greened@obbligato.org> |
Eliminate an unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75256 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
caf642a97661a34c32ab884261428e427d9bfbad |
10-Jul-2009 |
David Greene <greened@obbligato.org> |
Eliminate an unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75256 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
7869cae7ecb3aca600aa30d83ebcaa1d0af6c6aa |
10-Jul-2009 |
David Greene <greened@obbligato.org> |
Redesign this to avoid standard stream classes. This stream class provides pretty -printing of comments and other such things in asm files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75202 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
e7800be8f08da88e9916020bb770e22c0d98625b |
10-Jul-2009 |
David Greene <greened@obbligato.org> |
Redesign this to avoid standard stream classes. This stream class provides pretty -printing of comments and other such things in asm files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75202 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
6601fcdc38a21a39ac124f2bd8794846519b6455 |
10-Jul-2009 |
Owen Anderson <resistor@mac.com> |
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
333c40096561218bc3597cf153c0a3895274414c |
10-Jul-2009 |
Owen Anderson <resistor@mac.com> |
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
e8c3da9e64cffdc3b06832eef97b175561146cd0 |
10-Jul-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix an apparent copy-and-paste problem in an error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75197 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
22023607345b083907591c32152b2c59e48e0cd7 |
10-Jul-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix an apparent copy-and-paste problem in an error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75197 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f1896f2694f5bc4aa4d10c3007821e0772889f24 |
10-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned value. Adjust other code to deal with that correctly. Make DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of this new flexibility to simplify the code and make it deal with unusual vectors (like <4 x i1>) correctly. Fixes PR3037. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
c680ac90032bf455b2bba77de538fccea08eb267 |
10-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned value. Adjust other code to deal with that correctly. Make DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of this new flexibility to simplify the code and make it deal with unusual vectors (like <4 x i1>) correctly. Fixes PR3037. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
f3a4d6b841de386e5604f99005d3ed19493505c3 |
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
As Chris pointed out, we don't actually need to pass the context around here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5dcaceb0a6a7fcf508d9898547e10d374b0e4cd1 |
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
As Chris pointed out, we don't actually need to pass the context around here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f94fead99bc140adc6e61dc80e5faf36f85288f7 |
09-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
back out r75156 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75160 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
2a52c691403ef96d98f0c1013605e97d6aa99a6f |
09-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
back out r75156 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75160 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
426fee3741fbd612479f927aeaa4e042a53175f2 |
09-Jul-2009 |
David Greene <greened@obbligato.org> |
Add some classes to produce pretty-printed asm. We'll use these shortly to provide nicely printed comments and other goodies in asm files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75156 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
a63769187152931ed3939f49c9cfc8f6bb1dd7a5 |
09-Jul-2009 |
David Greene <greened@obbligato.org> |
Add some classes to produce pretty-printed asm. We'll use these shortly to provide nicely printed comments and other goodies in asm files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75156 91177308-0d34-0410-b5e6-96231b3b80d8
smStream.cpp
|
a0167020062bbcfe0558faa29dd705ca6f9a8e2a |
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through MVT and related parts of SDISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
d1474d09cbe5fdeec8ba0d6c6b52f316f3422532 |
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through MVT and related parts of SDISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
10b8d22fc08d063995b647eea82e5ab79d2aff4b |
09-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Targets sometimes assign fixed stack object to spill certain callee-saved registers based on dynamic conditions. For example, X86 EBP/RBP, when used as frame register has to be spilled in the first fixed object. It should inform PEI this so it doesn't get allocated another stack object. Also, it should not be spilled as other callee-saved registers but rather its spilling and restoring are being handled by emitPrologue and emitEpilogue. Avoid spilling it twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75116 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
910139f9ca53fc20a680d51ae61bb1e072095141 |
09-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Targets sometimes assign fixed stack object to spill certain callee-saved registers based on dynamic conditions. For example, X86 EBP/RBP, when used as frame register has to be spilled in the first fixed object. It should inform PEI this so it doesn't get allocated another stack object. Also, it should not be spilled as other callee-saved registers but rather its spilling and restoring are being handled by emitPrologue and emitEpilogue. Avoid spilling it twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75116 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d2bd8627d9bac9a1c4528ea19d76ac7740d52517 |
09-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Improved tracking of value number kills. VN kills are now represented as an (index,bool) pair. The bool flag records whether the kill is a PHI kill or not. This code will be used to enable splitting of live intervals containing PHI-kills. A slight change to live interval weights introduced an extra spill into lsr-code-insertion (outside the critical sections). The test condition has been updated to reflect this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75097 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
piller.cpp
trongPHIElimination.cpp
|
ffd1326ff8dfc652a8026c3faebf55bbba7c32c7 |
09-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Improved tracking of value number kills. VN kills are now represented as an (index,bool) pair. The bool flag records whether the kill is a PHI kill or not. This code will be used to enable splitting of live intervals containing PHI-kills. A slight change to live interval weights introduced an extra spill into lsr-code-insertion (outside the critical sections). The test condition has been updated to reflect this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75097 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
piller.cpp
trongPHIElimination.cpp
|
76a3e1ceae509c9918a92c643047e24c0a0aa67d |
09-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make SelectionDAG::getVectorShuffle work properly for VECTOR_SHUFFLE nodes with operand types that differ from the result type. (This doesn't normally happen right now, because SelectionDAGLowering::visitShuffleVector normalizes vector shuffles.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75081 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2e4284de53fb70686c5c135387006d033171da2e |
09-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make SelectionDAG::getVectorShuffle work properly for VECTOR_SHUFFLE nodes with operand types that differ from the result type. (This doesn't normally happen right now, because SelectionDAGLowering::visitShuffleVector normalizes vector shuffles.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75081 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4a8979320ced9b38019f6f2c074f2d3dbe1b189e |
09-Jul-2009 |
David Goodwin <david_goodwin@apple.com> |
Use common code for both ARM and Thumb-2 instruction and register info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f1daf7d8abebd6e0104a6b41a774ccbb19a51c60 |
09-Jul-2009 |
David Goodwin <david_goodwin@apple.com> |
Use common code for both ARM and Thumb-2 instruction and register info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
54b74335fe618e24bc4c39cdbe4495de437541d4 |
08-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Nowadays vectors are only split if they have an even number of elements. Make some simplifications based on this (in particular SplitVecRes_SETCC). Tighten up some checking while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
f2d754bb382cba0bad2774144ddac84be5354d16 |
08-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Nowadays vectors are only split if they have an even number of elements. Make some simplifications based on this (in particular SplitVecRes_SETCC). Tighten up some checking while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
b9d98eb3c918aca884e2c2e694b5287aea6d50ac |
08-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Use interators instead of counters for loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75046 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
058a024eb7265239d527680b0a448cdb48102a46 |
08-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Use interators instead of counters for loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75046 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
baf982b5cb66e22f492741ca30ea4e2d34399674 |
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContext _back_ through IRBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75040 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
hadowStackGC.cpp
|
d1fbd142945f5ef0c273c3d756431f8cb9d25ded |
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContext _back_ through IRBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75040 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
hadowStackGC.cpp
|
e17fc1d7a2bcc05efc0ebe943254b273c99d77fd |
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Switch GlobalVariable ctors to a sane API, where *either* a context or a module is required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75025 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
e9b11b431308f4766b73cda93e38ec930c912122 |
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Switch GlobalVariable ctors to a sane API, where *either* a context or a module is required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75025 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
568a8b0cb6eb7447707145b8d07fc778a98da09d |
08-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Remove trailing whitespace. Reorder some methods and cases alphabetically. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
8c899ee031481dbece5f111379a274c848cb5902 |
08-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Remove trailing whitespace. Reorder some methods and cases alphabetically. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
8f5253baafe027bb8939498d9eb1083febc7339a |
08-Jul-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove the vicmp and vfcmp instructions. Because we never had a release with these instructions, no autoupgrade or backwards compatibility support is provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
7f6aa2b162e5daaf7b9ccf05d749597d3d7cf460 |
08-Jul-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove the vicmp and vfcmp instructions. Because we never had a release with these instructions, no autoupgrade or backwards compatibility support is provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
e0f136d9637981bbc5096ca396e4df383c59eafe |
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContext through GlobalVariables and IRBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74985 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
3d29df3e8a203b167d8071ea6f805b21db18a5af |
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContext through GlobalVariables and IRBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74985 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackGC.cpp
|
bb30203c9e9f60a5695451ee91b51fc0e560a6e5 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
dag combine sext(setcc) -> vsetcc before legalize. To make this safe, VSETCC must define all bits, which is different than it was documented to before. Since all targets that implement VSETCC already have this behavior, and we don't optimize based on this, just change the documentation. We now get nice code for vec_compare.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2b7a271c713ff1db83990f691126bc33d6c59b52 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
dag combine sext(setcc) -> vsetcc before legalize. To make this safe, VSETCC must define all bits, which is different than it was documented to before. Since all targets that implement VSETCC already have this behavior, and we don't optimize based on this, just change the documentation. We now get nice code for vec_compare.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b9e009a19589e91a91f0bc99395aa57569fa4d62 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
SelectionDAG::SignBitIsZero doesn't work right for vectors, for now, conservatively return false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a4f73182450ad6d7197c9229f6396f2e54faefdf |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
SelectionDAG::SignBitIsZero doesn't work right for vectors, for now, conservatively return false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d438911f3eba133fcbb6f7df98bd3de7dca0f4eb |
08-Jul-2009 |
Dale Johannesen <dalej@apple.com> |
Operand of asm("call") (the callee function) is represented as "X" constraint and "P" modifier on x86. Make this work. (Change may not be sufficient to fix it for non-Darwin, but I'm pretty sure it won't break anything.) gcc.apple/asm-block-32.c gcc.apple/asm-block-33.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8ea5ec681bd4838c84e545f8a1226a62d3b2f089 |
08-Jul-2009 |
Dale Johannesen <dalej@apple.com> |
Operand of asm("call") (the callee function) is represented as "X" constraint and "P" modifier on x86. Make this work. (Change may not be sufficient to fix it for non-Darwin, but I'm pretty sure it won't break anything.) gcc.apple/asm-block-32.c gcc.apple/asm-block-33.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
42005c0c20aec31b53f6052585ed7ca9258560f8 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
add support for legalizing an icmp where the result is illegal (4xi1) but the input is legal (4 x i32) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
c2c27b3627cf7a8724f2e1ec6a93b1dceea09c25 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
add support for legalizing an icmp where the result is illegal (4xi1) but the input is legal (4 x i32) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
108801641f66c01031aa9062a8ece3bfbf0cff78 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
random code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
0a6c2d8deab5124198e8cd5fbb3c43509be3e511 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
random code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
8c5b707bc11ff73031e2e91bbeff5fc37c587a29 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
implement support for spliting and scalarizing vector setcc's. This finishes off enough support for vector compares to get the icmp/fcmp version of 2008-07-23-VSetCC.ll passing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
5962ed0a36bfad0fb591998964a0da7ddecda1f2 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
implement support for spliting and scalarizing vector setcc's. This finishes off enough support for vector compares to get the icmp/fcmp version of 2008-07-23-VSetCC.ll passing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
3937b129e61a03fc530011ffae9bbcc00d4cb3fa |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
lower vector icmp/fcmp to ICMP/FCMP nodes with the right result (vector of bool). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
9800e849c10fbcf9f6fcff3698165a01930b8ac2 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
lower vector icmp/fcmp to ICMP/FCMP nodes with the right result (vector of bool). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
75b460578ee242104d7e8483b4ff6e04f5a20894 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
ScalarizeVecRes_ShiftOp and ScalarizeVecRes_BinOp are the same, eliminate the former. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
87c411b5cc254a8d169b834f3487657a8dc1e17a |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
ScalarizeVecRes_ShiftOp and ScalarizeVecRes_BinOp are the same, eliminate the former. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
e53009f0f4d85d1e9c3a2f902bf7fc672765d5a8 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
add support for vector legalizing of *_EXTEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
64a3fa23f8bd02d5b5f44faec6e9cbc26a417c44 |
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
add support for vector legalizing of *_EXTEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
2eebf84c4a52ccf30e7328c9638e3f1fe6af826d |
07-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Accidently dropped this while removing dead code in previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74953 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
261cc194d7bf391913ea75617f19d7ad4880d7d2 |
07-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Accidently dropped this while removing dead code in previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74953 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b862f9d56e463e48c206dfe83b7873f2c499dd0f |
07-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74949 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0a4afb6caf08d38130bb867be2c455ffdc54f3ca |
07-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74949 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
be44bedb7fe330e36f5ed544aa48c59742a52185 |
07-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Have scoped mutexes take referenes instead of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a9d1f2c559ef4b2549e29288fe6944e68913ba0f |
07-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Have scoped mutexes take referenes instead of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a57b9e834f3862c8901d853dc1946e8defac2ad9 |
07-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 74898. It broke several tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74925 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
ddb03d831be02323e10b17328f715c0c5ffe3e02 |
07-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 74898. It broke several tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74925 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
73c96a7e95b084ec58ee4e0289066cf76dfbd2f7 |
07-Jul-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
if the terminator is a branch depending upon the side effects of a previous cmp; a copy can not be inserted here if the copy insn also has side effects. We don't have access to the attributes of copy insn here; so just play safe by finding a safe locations for branch terminators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74898 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
1dd35b4c35ef149a48c511283331f49c04351cae |
07-Jul-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
if the terminator is a branch depending upon the side effects of a previous cmp; a copy can not be inserted here if the copy insn also has side effects. We don't have access to the attributes of copy insn here; so just play safe by finding a safe locations for branch terminators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74898 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
2fe17a5352bb867efe10d4651b71cbaf68437071 |
06-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Avoid adding a duplicate def. This fixes PR4478. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74857 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
2c4d96dfe9c309cc6b206c7d2cf03fe9fbd8aa93 |
06-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Avoid adding a duplicate def. This fixes PR4478. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74857 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
8895e1d95e4e1c9cc34e4dddcdd162f4e5a207ae |
06-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Fix the cmake build - patch by Xerxes RÃ¥nby. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74825 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
08b7daf3ffa029c742e38bba6ced2b94b1367792 |
06-Jul-2009 |
Duncan Sands <baldrick@free.fr> |
Fix the cmake build - patch by Xerxes RÃ¥nby. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74825 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
2bcbd2e4b520c7bd24d846c4c4f1d618ab57f0fb |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Changed ELFCodeEmitter to inherit from ObjectCodeEmitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74821 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
6933d3eff8e47a64803ece18b5a78748a674dc43 |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Changed ELFCodeEmitter to inherit from ObjectCodeEmitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74821 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
3290ac97ef4a0c02a48987bb6ce094cc191ef98f |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Cleanup MachO writer and code emitter. Fix 80 cols problems, remove extra spaces, shrink down includes and move some methods out-of-line git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74817 91177308-0d34-0410-b5e6-96231b3b80d8
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
752e928e6b87a2988588fed9cc224fd6ec02c5f6 |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Cleanup MachO writer and code emitter. Fix 80 cols problems, remove extra spaces, shrink down includes and move some methods out-of-line git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74817 91177308-0d34-0410-b5e6-96231b3b80d8
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
1b3e155ef255aaff9e07760d39a18414841e8e58 |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Just forgot to include the two new files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74814 91177308-0d34-0410-b5e6-96231b3b80d8
bjectCodeEmitter.cpp
|
8ae058a815d41d73965832cf3d190e27a48de5f6 |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Just forgot to include the two new files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74814 91177308-0d34-0410-b5e6-96231b3b80d8
bjectCodeEmitter.cpp
|
aabb9a5359cbb0bf9d25bfb917ecb09c086d034b |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add the Object Code Emitter class. Original patch by Aaron Gray, I did some cleanup, removed some #includes and moved Object Code Emitter out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74813 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
ac57e6e498abccb117e0d61c2fa0f733845e50cb |
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add the Object Code Emitter class. Original patch by Aaron Gray, I did some cleanup, removed some #includes and moved Object Code Emitter out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74813 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
a09d234e773549eaf50a8b724dfd7c6471b58e98 |
06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
More LLVMContext-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74807 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
0a205a459884ec745df1c529396dd921f029dafd |
06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
More LLVMContext-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74807 91177308-0d34-0410-b5e6-96231b3b80d8
warfEHPrepare.cpp
|
71c697382e6165ab1b601866a52c8f6628517e42 |
03-Jul-2009 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Add NumFixedArgs attribute to CallSDNode which indicates the number of fixed arguments in a vararg call. With the SVR4 ABI on PowerPC, vector arguments for vararg calls are passed differently depending on whether they are a fixed or a variable argument. Variable vector arguments always go into memory, fixed vector arguments are put into vector registers. If there are no free vector registers available, fixed vector arguments are put on the stack. The NumFixedArgs attribute allows to decide for an argument in a vararg call whether it belongs to the fixed or variable portion of the parameter list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
6b61cd185eeb90bec93f042535594132ae1f0f41 |
03-Jul-2009 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Add NumFixedArgs attribute to CallSDNode which indicates the number of fixed arguments in a vararg call. With the SVR4 ABI on PowerPC, vector arguments for vararg calls are passed differently depending on whether they are a fixed or a variable argument. Variable vector arguments always go into memory, fixed vector arguments are put into vector registers. If there are no free vector registers available, fixed vector arguments are put on the stack. The NumFixedArgs attribute allows to decide for an argument in a vararg call whether it belongs to the fixed or variable portion of the parameter list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
79ed671be2e693d376f9f64ba2db8bba582ced1c |
03-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Factor some code out and support for Jump Table relocations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74760 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
0b1308f18998344aa707594839a5b7c4618f4762 |
03-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Factor some code out and support for Jump Table relocations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74760 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
1540fd690f40c4771c411d89adeb142613064dbd |
03-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify debug info intrisinc lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
7e1e31f467d87c834d8baf673929865907901313 |
03-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify debug info intrisinc lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
d097aa0cb5d160031b01d8831904cecbabc5ef81 |
02-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
CMake build fixes, from Xerxes Ranby git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74720 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
electionDAG/CMakeLists.txt
|
033080cf6a6f6ca94f20c410204405471c19c535 |
02-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
CMake build fixes, from Xerxes Ranby git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74720 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
electionDAG/CMakeLists.txt
|
9dcbc8603c33622ae21421318a2543c3166169d8 |
02-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
shrinking down #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74718 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
45f5d6417bfe9941ba58777865e00098ffff5793 |
02-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
shrinking down #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74718 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
32b6dff32616d6d17b36ccc85cf883fa8021faef |
02-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove getFunctionAlignment from TargetELFInfo and use new MachineFunction alignment method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74686 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
3d62a412fbe517fbbbf5661ef1a748a39f382aa3 |
02-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove getFunctionAlignment from TargetELFInfo and use new MachineFunction alignment method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74686 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
|
f151969c988d7bebf22ded9bde88a860cd59878c |
02-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
6d8f1263f40e6b8fc2cd5cce3dfd9ce99fe09226 |
02-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
4fecd7e121ec5b2993b6ff05488f3068f7f1e4d6 |
02-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. No intentional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74673 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
07b0ec0927e145458b2e49598b1bbe32262cda6f |
02-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. No intentional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74673 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
1ad58170e3d570da9a7892a572ecdc18881af332 |
02-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Refactor. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74659 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ceddbe8e30a46f99a98033c4618c807bf058499a |
02-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Refactor. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74659 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
39bd365ee957d1ebb886dc77c4a251610bf3b83d |
01-Jul-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.declare is always used for local variable's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
30d7b650aa443b78cfa1e918bb0d5eaf288b0a2f |
01-Jul-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.declare is always used for local variable's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0563297ed9360fc554a56d89046c4959f1ff4ca6 |
01-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
CommuteChangesDestination() should check if to-be-commuted instruction defines any register. Also teaches the default commuteInstruction() to commute instruction without definitions (e.g. X86::test / ARM::tsp). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74602 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
498c2903e28b56b73b8056335ad7f1eb6347b8ed |
01-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
CommuteChangesDestination() should check if to-be-commuted instruction defines any register. Also teaches the default commuteInstruction() to commute instruction without definitions (e.g. X86::test / ARM::tsp). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74602 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
cea5378b2cc082fed3071b7fec6e58bff8c752ac |
01-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove special handling of implicit_def. Fix a couple more bugs in liveintervalanalysis and coalescer handling of implicit_def. Note, isUndef marker must be placed even on implicit_def def operand or else the scavenger will not ignore it. This is necessary because -O0 path does not use liveintervalanalysis, it treats implicit_def just like any other def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74601 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
|
459a7c6b6ad9c4fcb9f119aa6eaaf2769b00d9b1 |
01-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove special handling of implicit_def. Fix a couple more bugs in liveintervalanalysis and coalescer handling of implicit_def. Note, isUndef marker must be placed even on implicit_def def operand or else the scavenger will not ignore it. This is necessary because -O0 path does not use liveintervalanalysis, it treats implicit_def just like any other def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74601 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
|
6521982510e67c23441d94dd4c4a7167527356cb |
01-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74580 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
egisterScavenging.cpp
irtRegRewriter.cpp
|
2578ba26e72e36dde64be0f52a2788480aad3378 |
01-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74580 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
egisterScavenging.cpp
irtRegRewriter.cpp
|
b10d22209eac7e43d917ef2194e7a159b9b1c689 |
01-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unused AsmPrinter OptLevel argument, and propogate. - This more or less amounts to a revert of r65379. I'm curious to know what happened that caused this variable to become unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74579 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5bcc8bd0c60cfe583ee47852950aad9e532c932e |
01-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unused AsmPrinter OptLevel argument, and propogate. - This more or less amounts to a revert of r65379. I'm curious to know what happened that caused this variable to become unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74579 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
25a8ae3f10965b47ecaa9eda5e997f16fe1d9414 |
01-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Add an "alignment" field to the MachineFunction object. It makes more sense to have the alignment be calculated up front, and have the back-ends obey whatever alignment is decided upon. This allows for future work that would allow for precise no-op placement and the like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74564 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
20c568f366be211323eeaf0e45ef053278ec9ddc |
01-Jul-2009 |
Bill Wendling <isanbard@gmail.com> |
Add an "alignment" field to the MachineFunction object. It makes more sense to have the alignment be calculated up front, and have the back-ends obey whatever alignment is decided upon. This allows for future work that would allow for precise no-op placement and the like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74564 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
73b76f9c5b76385a4d2202b6d1ac9b09794b8eb8 |
30-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily restore the scavenger implicit_def checking code. MachineOperand isUndef mark is not being put on implicit_def of physical registers (created for parameter passing, etc.). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74519 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
50564ebc9e3d7ff806062023e6511e91065df0d2 |
30-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily restore the scavenger implicit_def checking code. MachineOperand isUndef mark is not being put on implicit_def of physical registers (created for parameter passing, etc.). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74519 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
9c73db1e61c42e4d658753ad2046af51e3bcbd5a |
30-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them. The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing. This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74518 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLinearScan.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
irtRegRewriter.cpp
|
4784f1fc73abf6005b7b7262d395af71b57b1255 |
30-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them. The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing. This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74518 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLinearScan.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
irtRegRewriter.cpp
|
20683bf7d820c16f1d1b7b384a8fcd8cb5ca7884 |
30-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Struct types are described using field types only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74477 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
93a65b2fe1cef7eac1473b6f47ddbfdc4a362616 |
30-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Struct types are described using field types only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74477 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
5a3d37fcb637e71373beb16f1d35e76612a5815b |
29-Jun-2009 |
Devang Patel <dpatel@apple.com> |
s/MainCU/ModuleCU/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74452 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1dbc771a837818ee077a7c287ef8cdd254b13d3c |
29-Jun-2009 |
Devang Patel <dpatel@apple.com> |
s/MainCU/ModuleCU/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74452 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f97a05a660127943c74fa508a1acda357bb20cec |
29-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Multiple DW_TAG_compile_unit is not used, afaict, on any target. Update dwarf writer to only emit one DW_TAG_compile_unit per .o file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74449 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
70f44267501412662ca8fb716812df0f3d48191d |
29-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Multiple DW_TAG_compile_unit is not used, afaict, on any target. Update dwarf writer to only emit one DW_TAG_compile_unit per .o file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74449 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9b0abfe769b6e8ebddba457ac2d1631df204c8ad |
27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate a layer of indirection in LoopInfo and MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74394 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
9d59d9f8495b0361c9ffd1dc82888d8e7ba5070e |
27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate a layer of indirection in LoopInfo and MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74394 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
be5f2c6841611251b1a8d2145645e6ca6cd2d15e |
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
When doing remat, don't consider uses of non-allocatable physregs. Patch by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74370 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1873d0c2257b18451c5bb35577f929d0723433a0 |
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
When doing remat, don't consider uses of non-allocatable physregs. Patch by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74370 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
093adbb08652b7b6179629f5c184f8a9e3b85792 |
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix a typo that GCC should have caught that causes crashes with -view-*-dags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5b93ea1ca3cf55a750e58abee7ed845b210d14c8 |
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix a typo that GCC should have caught that causes crashes with -view-*-dags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b31fb964f42d4b51d0a4c1e04a343741857d91cb |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix a really subtle bug in the cross section of aliases and TLS: the SelectionDAG::getGlobalAddress function properly looks through aliases to determine thread-localness, but then passes the GV* down to GlobalAddressSDNode::GlobalAddressSDNode which does not. Instead of passing down isTarget, just pass down the predetermined node opcode. This fixes some assertions with out of tree changes I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
505e982040fe7482e5f3c09b0c899c4e09393b69 |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix a really subtle bug in the cross section of aliases and TLS: the SelectionDAG::getGlobalAddress function properly looks through aliases to determine thread-localness, but then passes the GV* down to GlobalAddressSDNode::GlobalAddressSDNode which does not. Instead of passing down isTarget, just pass down the predetermined node opcode. This fixes some assertions with out of tree changes I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
41d6d6cb406b62505e52f2c14c524fd5a509742f |
26-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of these cache variables, which are a holdover from the days when we had multiple type planes and these lookups were expensive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74319 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
b41b5e0b2d865f9dcb8cc868b28929daf3a11207 |
26-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of these cache variables, which are a holdover from the days when we had multiple type planes and these lookups were expensive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74319 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
367c851c0ad52339e6ada06a837fabbdac8e062f |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
implement DOTGraphTraits<SelectionDAG*>::getNodeLabel in terms of SDNode::print_details to eliminate a ton of near-duplicate code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
d212bb8ef2b36628eb3b41d882472814d0aad509 |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
implement DOTGraphTraits<SelectionDAG*>::getNodeLabel in terms of SDNode::print_details to eliminate a ton of near-duplicate code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
deb5adead1c7ccad508b3de9fc528fc0e08980ad |
26-Jun-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Fix linking of llvm-ld and lli with CMake, from Xerxes RÃ¥nby git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74285 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
894788144493f0621f2821dc730f11a2bd7eaaf5 |
26-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix linking of llvm-ld and lli with CMake, from Xerxes RÃ¥nby git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74285 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
0075855025ee9bd75b7901163fddcfc54af31846 |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
dot graph viewing is apparently not using SDNode::print_details, this is bad, but in the meantime lets print targetflags on node labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
7bea038b3e24772b1a89634836aa79cb99c68bd9 |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
dot graph viewing is apparently not using SDNode::print_details, this is bad, but in the meantime lets print targetflags on node labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
97b4ec7b1556b37d51bd5bf649ee6b9641e12ac5 |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
propagate target operand flags from dag nodes into MachineOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
6ec66dba123a46a4006e0169d9edb8f5d9e1fbdc |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
propagate target operand flags from dag nodes into MachineOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
b7a6de3cf2722676d4226e2b7c49f8b821ce7844 |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fit in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
5202312d2ed5078b0451838ee2661f4eb5ff2ef9 |
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fit in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
166f843a9f6913e1699b343b8adeecce568274d7 |
26-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Remove debug info anchors - llvm.dbg.compile_units, llvm.dbg.subprograms and llvm.dbg.global_variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74251 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
13e16b65ddd679d6edb5f182d683701fdea37b85 |
26-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Remove debug info anchors - llvm.dbg.compile_units, llvm.dbg.subprograms and llvm.dbg.global_variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74251 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
59a1d424d0bda8d6355ef1036136e26542abc390 |
26-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
smPrinter/DwarfWriter.cpp
|
208622db8a3f1d796bfaf61f8d4f41b6613a71bd |
26-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
smPrinter/DwarfWriter.cpp
|
583c796287dad07f7b4a979af3515bf93d7a65a4 |
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
add targetflags to jump tables and constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f5a5546f435a261c93078defb41ed18d9cafd7d3 |
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
add targetflags to jump tables and constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7123ef7585122d114673a67b8c0fdc86f6e0f901 |
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
allow setting target operand flags on TargetGlobalAddress nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2a4ed82ce2ba4a02f2a02eb4ed8ce5186f3f93da |
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
allow setting target operand flags on TargetGlobalAddress nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8430a2950c737eef2d6c6d098e265f4ff6e4723b |
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
start bringing targetoperand flags into isel, first up, ExternalSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1af2231da64a14d638406d133c7912bfc1c8a9ce |
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
start bringing targetoperand flags into isel, first up, ExternalSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ef31ae3dfca1e5a2262f35d7b71419ac69ca1411 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Provide guards for this shared structure. I'm not sure this actually needs to be shared, but how/where to privatize it is not immediately clear to me. If any SelectionDAG experts see a better solution, please share! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b4459088d62670b0f0333eab1b260622955ec3e5 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Provide guards for this shared structure. I'm not sure this actually needs to be shared, but how/where to privatize it is not immediately clear to me. If any SelectionDAG experts see a better solution, please share! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c82bd82aed933fa52a52b3b5d440fdf49fc85d88 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Privatize some more debug-related static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74179 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a8dbf36f3f88917b101d7ab9d253ba2fe6e396b4 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Privatize some more debug-related static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74179 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
179f3a329b3dad9954a8cf10f5339cb9fdf7bf89 |
25-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Support Constant Pool Sections Add section symbols to the symbol table git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74170 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
a5e0abd0d454ffdb22f8647f4319b178901b08be |
25-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Support Constant Pool Sections Add section symbols to the symbol table git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74170 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
9624c615169fec3957e38ea181d634d51859a195 |
25-Jun-2009 |
Bill Wendling <isanbard@gmail.com> |
My guess is that RegInfo should only call the Allocator.Deallocator if it's not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74147 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
dd37b360d7ecc95b4a077bb64cca22b764788751 |
25-Jun-2009 |
Bill Wendling <isanbard@gmail.com> |
My guess is that RegInfo should only call the Allocator.Deallocator if it's not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74147 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
512bedb6016f75bd764c823aaaf1e41b1ba0d593 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Now with EVEN FEWER statics! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74143 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
6279cd85e9e59c93d43877bf2cf7d116e51ce021 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Now with EVEN FEWER statics! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74143 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
03f2a7b881ceb3220222eac4747abf271a6ec973 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Fewer static variables, part 3 of many. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74140 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
13bbe4bb9af9cd0789d81374bd5779d546936aad |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Fewer static variables, part 3 of many. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74140 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
9f765d178aec597dce6cc16b0d08db159498c87e |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Down with _even more_ statics! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74137 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
|
d5509f2e027a4bc97b84a8ff5d706b4d6f4ba8a0 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Down with _even more_ statics! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74137 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
|
696d486e629cb3747d0641d03fd63dbf37a0b18f |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Down with statics! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
04c05f7630f33e092ae268a19de1b1a76d31785f |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Down with statics! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
da3388bae6b9085bfa0c04e039b5d35b32f60047 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Move local statics to per-instance variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74132 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
bd58edf59128d2acb5ae48c76ef8a108fd587db2 |
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Move local statics to per-instance variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74132 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
9f97faf21676977b25550aa4fd87e4735b08328f |
24-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Completed basic intra block split implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74114 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
6bbc73d3fd274e15297eb2c3e4172e43ce7bc8f8 |
24-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Completed basic intra block split implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74114 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
8dea566175b014b144637cf098e5e03c68685e7e |
24-Jun-2009 |
David Greene <greened@obbligato.org> |
This increases the maximum for MVT::LAST_VALUETYPE This change doubles the allowable value for MVT::LAST_VALUETYPE. It does this by doing several things. 1. Introduces MVT::MAX_ALLOWED_LAST_VALUETYPE which in this change has a value of 64. This value contains the current maximum for the MVT::LAST_VALUETYPE. 2. Instead of checking "MVT::LAST_VALUETYPE <= 32", all of those uses now become "MVT::LAST_VALUETYPE <= MVT::MAX_ALLOWED_LAST_VALUETYPE" 3. Changes the dimension of the ValueTypeActions from 2 elements to four elements and adds comments ahead of the declaration indicating the it is "(MVT::MAX_ALLOWED_LAST_VALUETYPE/32) * 2". This at least lets us find what is affected if and when MVT::MAX_ALLOWED_LAST_VALUETYPE gets changed. 4. Adds initializers for the new elements of ValueTypeActions. This does NOT add any types in MVT. That would be done separately. This doubles the size of ValueTypeActions from 64 bits to 128 bits and gives us the freedom to add more types for AVX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
f2e19d5dcfa13472493bb18339555686182b7df9 |
24-Jun-2009 |
David Greene <greened@obbligato.org> |
This increases the maximum for MVT::LAST_VALUETYPE This change doubles the allowable value for MVT::LAST_VALUETYPE. It does this by doing several things. 1. Introduces MVT::MAX_ALLOWED_LAST_VALUETYPE which in this change has a value of 64. This value contains the current maximum for the MVT::LAST_VALUETYPE. 2. Instead of checking "MVT::LAST_VALUETYPE <= 32", all of those uses now become "MVT::LAST_VALUETYPE <= MVT::MAX_ALLOWED_LAST_VALUETYPE" 3. Changes the dimension of the ValueTypeActions from 2 elements to four elements and adds comments ahead of the declaration indicating the it is "(MVT::MAX_ALLOWED_LAST_VALUETYPE/32) * 2". This at least lets us find what is affected if and when MVT::MAX_ALLOWED_LAST_VALUETYPE gets changed. 4. Adds initializers for the new elements of ValueTypeActions. This does NOT add any types in MVT. That would be done separately. This doubles the size of ValueTypeActions from 64 bits to 128 bits and gives us the freedom to add more types for AVX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
2424eace0a0ac7914790d00dc28a8841ec673edc |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
sink management of DwarfWriter & MachineModuleInfo into the AsmPrinter base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74101 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0de1fc4f416b3e94749ca84cdaede55b040a8b60 |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
sink management of DwarfWriter & MachineModuleInfo into the AsmPrinter base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74101 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e1225cc5cd22b797c702bcdf4663c6a7bad707b9 |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
sink dwarf finalization out of each target into AsmPrinter::doFinalization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1f522feabf25134249bc7894e04f5b89fa071b7f |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
sink dwarf finalization out of each target into AsmPrinter::doFinalization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74097 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
db191f09eb4c5cc1e8b38a377896750cc6361e83 |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the ExtWeakSymbols set from AsmPrinter. This eliminates a bunch of code from all the targets, and eliminates nondeterministic ordering of directives being emitted in the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0a7befa8bd56621f51eaf9196417b866962bf7b1 |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the ExtWeakSymbols set from AsmPrinter. This eliminates a bunch of code from all the targets, and eliminates nondeterministic ordering of directives being emitted in the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f29b6dc928aa3c59e29393f5a6564cd64cba2018 |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Rearrange some stuff in MachineOperand and add a new TargetFlags field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74087 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
31530617dd206c3ac549e98508d8f98e91bf8275 |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Rearrange some stuff in MachineOperand and add a new TargetFlags field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74087 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f4a1546148d94d9dd8f7561ab4b9516398281476 |
24-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the global CFGOnly flag by threading a ShortNames parameters through the GraphViz rendering code. Update other uses in the codebase for this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74084 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
8cbc94afb71fd2da72d8f1284f7f53e39019fdec |
24-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the global CFGOnly flag by threading a ShortNames parameters through the GraphViz rendering code. Update other uses in the codebase for this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74084 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
cheduleDAGPrinter.cpp
electionDAG/SelectionDAGPrinter.cpp
|
6933df972036a610d499a3d00512fae64087d86e |
24-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Rewrite 73900 per Duncan's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74082 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8539cfd30e6058e605ed2f38fb29523ea42e17a1 |
24-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Rewrite 73900 per Duncan's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74082 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
017511b99fcd1c192b62e45f3166f83b6466f063 |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
remove dead makefile flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74065 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
electionDAG/Makefile
|
929a49356e2b95ac5a054bb53697e67f2a0bc43e |
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
remove dead makefile flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74065 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
electionDAG/Makefile
|
9d331725a787e00f73bcece2318430b587e16e29 |
24-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Fixed a bug in LiveInterval scaling (failure to scale VNI defs correctly), removed old TODO comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74054 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
irtRegRewriter.h
|
98d5982e0020e0c18d2847798ba2f40c4711af5a |
24-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Fixed a bug in LiveInterval scaling (failure to scale VNI defs correctly), removed old TODO comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74054 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
irtRegRewriter.h
|
3df52f7fd990931d84d3a0e359535c9d97544663 |
24-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix support for inline asm input / output operand tying when operand spans across multiple registers (e.g. two i64 operands in 32-bit mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74053 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ef5d070bbe55d7165fc84778ca7757c3cfeea491 |
24-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix support for inline asm input / output operand tying when operand spans across multiple registers (e.g. two i64 operands in 32-bit mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74053 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b53d5c039853331f36ffd05e54454fe884189408 |
23-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use a default alignment for data and bss sections. Only pad when the section size > 0 and move the code that deals with globals initializers to a place we know for sure the global is initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73944 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
e39493eb1bb867f8c4e4cdb59952576b52201bbf |
23-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use a default alignment for data and bss sections. Only pad when the section size > 0 and move the code that deals with globals initializers to a place we know for sure the global is initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73944 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
5ebb9308d8bec5fdc2fd0e1cfd556a86ced3eff2 |
22-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Fix memcpy expansion so it won't generate invalid types for the target (I think). This was breaking the PPC32 calling sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
08bc98e3cc1c6859ee78f304c0182098b580b56f |
22-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Fix memcpy expansion so it won't generate invalid types for the target (I think). This was breaking the PPC32 calling sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
28ff725202cdd0162e4343ee6f2dd832b7fbbc95 |
22-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix another register coalescer crash: forgot to check if the instruction being updated has already been coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73898 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
81909b74231b816e9c3ae589b8e112377be30cd0 |
22-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix another register coalescer crash: forgot to check if the instruction being updated has already been coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73898 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5d7a1ebd9e3cf17f7416e3fcf9e8bc7c56cb731b |
22-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use different functions to emit the string and symbol tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73895 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
c236a345c754aa27c95a037ad517271ac73d2456 |
22-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use different functions to emit the string and symbol tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73895 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LFWriter.h
|
6d4086b26be256cbb72598f1a3cc57733f6be1b8 |
22-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add more methods to gather target specific elf stuff Support for .text relocations, implementing TargetELFWriter overloaded methods for x86/x86_64. Use a map to track global values to their symbol table indexes Code cleanup and small fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73894 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
0d3193ef3ce7377eeaa1d38ca08f8a62ebcd5f63 |
22-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add more methods to gather target specific elf stuff Support for .text relocations, implementing TargetELFWriter overloaded methods for x86/x86_64. Use a map to track global values to their symbol table indexes Code cleanup and small fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73894 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
b8fabe260483cfb16ea12b872c7f9fa2ffaf1433 |
20-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4419: handle defs of partial uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73816 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
694f6c81e885818840d374c855cd0c91ed3f2f15 |
20-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4419: handle defs of partial uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73816 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
4f25cfbf68a546010da73707896a2b799056fe65 |
20-Jun-2009 |
Devang Patel <dpatel@apple.com> |
mv CodeGen/DebugLoc.h Support/DebugLoc.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1e86a66b00b94adc4ad6977ef6b47c516ac62cec |
20-Jun-2009 |
Devang Patel <dpatel@apple.com> |
mv CodeGen/DebugLoc.h Support/DebugLoc.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1a45484151060a9c0190e5d1674709eab72cbd14 |
19-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Move up dwarf writer initialization in common AsmPrinter class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
14a55d952cf238fff42da53a75f39cf06dab184b |
19-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Move up dwarf writer initialization in common AsmPrinter class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
12cdf5033f0a22e3639e82b69c9e3b98831d8442 |
19-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Minor cleanup; fixes review comments for a previous patch. Sorry for taking so long to get to this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
2fb070bf5a34f3fae89beb8609c92abc1b1a2551 |
19-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Minor cleanup; fixes review comments for a previous patch. Sorry for taking so long to get to this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
7c3765da747832befd9a57fa96c6f56ac2838c2a |
19-Jun-2009 |
Lang Hames <lhames@gmail.com> |
More VNInfo tweaking, plus a little progress on intra-block splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73750 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
piller.cpp
piller.h
|
10382fb71d8306f320ecbeb7049d25354c0e5457 |
19-Jun-2009 |
Lang Hames <lhames@gmail.com> |
More VNInfo tweaking, plus a little progress on intra-block splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73750 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
piller.cpp
piller.h
|
690b02cc2be75f878ab189295690484f25e98b26 |
19-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
move mangler quote handling from asm printers to TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73738 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a93ca92379129e87e0130609ac78422fcf6dd21e |
19-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
move mangler quote handling from asm printers to TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73738 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ecbf73b8ff55100f416aabbb19000b7e5f647b5a |
19-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
simplify macro debug info directive handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
b839c3f577e03467bce8904eb2a02b124ec19ec8 |
19-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
simplify macro debug info directive handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cc6643230f348250657dba4e7667432aa4d16401 |
19-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Improved PHI def marking, replaced some gotos with breaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73727 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d21c31610c4a10e9e638f4221b5df89ea932e258 |
19-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Improved PHI def marking, replaced some gotos with breaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73727 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ccca6f7493b4a8db815cc2746ea50152ddc97c25 |
18-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
On Darwin, ams printer should output a second label before a jump table so the linker knows it's a new atom. But this is only needed if the jump table is put in a separate section from the function body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73720 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b13bafe5c12dd908b55c559c93adaeb1627ed096 |
18-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
On Darwin, ams printer should output a second label before a jump table so the linker knows it's a new atom. But this is only needed if the jump table is put in a separate section from the function body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73720 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a3cc1a05c52f029d479ae8379725d199ac2162d5 |
18-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Update register allocation hint after coalescing. This is done by the target since the hint is target dependent. This is important for ARM register pair hints. - Register allocator should resolve the second part of the hint (register number) before passing it to the target since it knows virtual register to physical register mapping. - More fixes to get ARM load / store double word working. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73671 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
f9f1da17f8bd6ffb2df62ce3cb933f0ee63f8da4 |
18-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Update register allocation hint after coalescing. This is done by the target since the hint is target dependent. This is important for ARM register pair hints. - Register allocator should resolve the second part of the hint (register number) before passing it to the target since it knows virtual register to physical register mapping. - More fixes to get ARM load / store double word working. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73671 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
4eb8fc810fa14930119df9adbde2d92da08fb98c |
17-Jun-2009 |
Lang Hames <lhames@gmail.com> |
VNInfo cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73634 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
piller.cpp
piller.h
trongPHIElimination.cpp
|
857c4e01f85601cf2084adb860616256ee47c177 |
17-Jun-2009 |
Lang Hames <lhames@gmail.com> |
VNInfo cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73634 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
piller.cpp
piller.h
trongPHIElimination.cpp
|
78842787afbcc1925497e524fb8e4accc71007ac |
16-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fixed names of libcalls checked in r73480. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73483 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7d8d36a69f4089d1829797aae90d276c9fb5b260 |
16-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fixed names of libcalls checked in r73480. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73483 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a5790f9a25cb1ef8e43f6113e62df18492540413 |
16-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Added required libcalls for PIC16 (mostly floating points to integer casting operations). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8aa207ee306b6a5ce753511a5f811fc1cd2468e2 |
16-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Added required libcalls for PIC16 (mostly floating points to integer casting operations). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
3396618a81aef52d88650d984ce1f77c659bbf76 |
16-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename RemoveCopiesFromValNo to TurnCopiesFromValNoToImpDefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73479 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
7b11365787555b0836cce9e507bf993d1b51fbbc |
16-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename RemoveCopiesFromValNo to TurnCopiesFromValNoToImpDefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73479 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
7ca124cb276fbeeb0f12904497f1cc4ed55ce977 |
16-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead. TurnCopyIntoImpDef turns a copy into implicit_def and remove the val# defined by it. This causes an scavenger assertion later if the def reaches other blocks. Disable the transformation if the value live interval extends beyond its def block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73478 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
67fcf56ac48f5fea50cd8a1573a2ff348c597190 |
16-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead. TurnCopyIntoImpDef turns a copy into implicit_def and remove the val# defined by it. This causes an scavenger assertion later if the def reaches other blocks. Disable the transformation if the value live interval extends beyond its def block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73478 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
43bc4d665fc60c113ba5a78268b97b223e970c68 |
16-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add some generic expansion logic for SMULO and UMULO. Fixes UMULO support for x86, and UMULO/SMULO for many architectures, including PPC (PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's not bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
db3c169f3a3102d40352ba63fd14a75c819c7adc |
16-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add some generic expansion logic for SMULO and UMULO. Fixes UMULO support for x86, and UMULO/SMULO for many architectures, including PPC (PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's not bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
41fea9c87a7b5dcb35f0ea318d3695e41c443f70 |
16-Jun-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73464 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
05b5e03ec8526e95c2a7059aef1d2cf8f87d5c1d |
16-Jun-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73464 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfPrinter.cpp
|
330856b3e250da95e328092f04b3ee186429a3e3 |
16-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Use MainCU if it is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73457 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
c2230821a6ad04ab2c1c1c71212d99b56b783fa8 |
16-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Use MainCU if it is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73457 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
4afb8afb6eb800052c8f2ac2357a2ddffadeead1 |
16-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Owen Anderson 2009-06-15: Use a SmallPtrSet here, for speed and to match df_iterator. Owen Anderson 2009-06-15: Remember to clear out our maps to prevent crashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73438 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
be24f1b7fb093380f9bac489f4b70a7e133be7b5 |
16-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Owen Anderson 2009-06-15: Use a SmallPtrSet here, for speed and to match df_iterator. Owen Anderson 2009-06-15: Remember to clear out our maps to prevent crashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73438 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
97ecc8b8f4ab1c3f1d9fe9ef94cf86297aea3532 |
16-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Change this from an assert to a cerr+exit, since it's diagnosing an unsupported inline asm construct, rather than verifying a code invariant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
15480bd1747eeef5eb36b46743cba50fa4791c01 |
16-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Change this from an assert to a cerr+exit, since it's diagnosing an unsupported inline asm construct, rather than verifying a code invariant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e0406af64fb0083eedff8f208b20d5e67d9c2879 |
15-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Gracefully handle imbalanced inline function begin and end markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73426 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FastISel.cpp
|
11a407f43fc0fb21df3156350175eaeeffaf7085 |
15-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Gracefully handle imbalanced inline function begin and end markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73426 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
electionDAG/FastISel.cpp
|
4eb66e6a71dd207cf94332c93804265bfef49e03 |
15-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
ifcvt should ignore cfg where true and false successors are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73423 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2077e18caf1425f83ce549913a1cffa0a4de192e |
15-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
ifcvt should ignore cfg where true and false successors are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73423 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
dd48b7096e38a82fe84fefdc45cf0aa1a69ea380 |
15-Jun-2009 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
CheckTailCallReturnConstraints is missing a check on the incomming chain of the RETURN node. The incomming chain must be the outgoing chain of the CALL node. This causes the backend to identify tail calls that are not tail calls. This patch fixes this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5d2c01e48afba59be7bd0eaa10db784bf2073c20 |
15-Jun-2009 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
CheckTailCallReturnConstraints is missing a check on the incomming chain of the RETURN node. The incomming chain must be the outgoing chain of the CALL node. This causes the backend to identify tail calls that are not tail calls. This patch fixes this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
41169551d59e9aee3d9dcd043013d65ee6e33759 |
15-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Part 1. - Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. - Allow targets to specify alternative register allocation orders based on allocation hint. Part 2. - Use the register allocation hint system to implement more aggressive load / store multiple formation. - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g. v1025 = LDR v1024, 0 v1026 = LDR v1024, 0 => v1025,v1026 = LDRD v1024, 0 If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair. - Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions. This is work in progress, not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73381 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineRegisterInfo.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
358dec51804ee52e47ea3a47c9248086e458ad7c |
15-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Part 1. - Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. - Allow targets to specify alternative register allocation orders based on allocation hint. Part 2. - Use the register allocation hint system to implement more aggressive load / store multiple formation. - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g. v1025 = LDR v1024, 0 v1026 = LDR v1024, 0 => v1025,v1026 = LDRD v1024, 0 If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair. - Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions. This is work in progress, not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73381 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineRegisterInfo.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
9e1657f79a7cf86a12be2c0a2b4ae4a2600266c6 |
15-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix old-style type names in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a119de86a064414622562cfe32953de7f9b0ee40 |
15-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix old-style type names in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d78907d459b73c041725a7ca254c00a8d92b3ae9 |
14-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73346 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineRegisterInfo.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
90f95f88c6ce09c6744777dc9d140c3c77203b92 |
14-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73346 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineRegisterInfo.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
fee73a317c4fe5fce68c9296bba2f4e103254524 |
14-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Introduce new BinaryObject (blob) class, ELF Writer modified to use it. BinaryObject.h by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73333 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
ae9163f0e24d032f99b978d31ea810a1d441f7e2 |
14-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Introduce new BinaryObject (blob) class, ELF Writer modified to use it. BinaryObject.h by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73333 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
54353c9810ad1b79cf9dc865277f16a750abc079 |
13-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a ARM specific pre-allocation pass that re-schedule loads / stores from consecutive addresses togther. This makes it easier for the post-allocation pass to form ldm / stm. This is step 1. We are still missing a lot of ldm / stm opportunities because of register allocation are not done in the desired order. More enhancements coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73291 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e7d6df73530a98a5cc5f69ddfd17073b464caa57 |
13-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a ARM specific pre-allocation pass that re-schedule loads / stores from consecutive addresses togther. This makes it easier for the post-allocation pass to form ldm / stm. This is step 1. We are still missing a lot of ldm / stm opportunities because of register allocation are not done in the desired order. More enhancements coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73291 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a17c65ba24aa8ffb248751ddea9795342d63801c |
13-Jun-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.region.end() intrinsic is not required to be in _last_ basic block in a function. If that happens then any basic block that follows (lexically) the block with regin.end will not have scope info available. LexicalScopeStack relies on processing basic block in CFG order, but this processing order is not guaranteed. Things get complicated when the optimizer gets a chance to optimizer IR with dbg intrinsics. Apply defensive patch to preserve at least one lexical scope till the end of function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73282 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
daf9e02893e7e17ca2267ffd5e994f824adbb624 |
13-Jun-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.region.end() intrinsic is not required to be in _last_ basic block in a function. If that happens then any basic block that follows (lexically) the block with regin.end will not have scope info available. LexicalScopeStack relies on processing basic block in CFG order, but this processing order is not guaranteed. Things get complicated when the optimizer gets a chance to optimizer IR with dbg intrinsics. Apply defensive patch to preserve at least one lexical scope till the end of function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73282 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
d0e823987e07b867285e5d8f9fe6dbea1849674b |
13-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Improve style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73258 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
a21f31bca5716438e63b8028ec07ad073652de72 |
13-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Improve style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73258 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
725aaed9a7b0a99ae5779c6b061acb87c6660b5e |
12-Jun-2009 |
Owen Anderson <resistor@mac.com> |
This is supposed to be a preorder numbering of the dominator tree, not the CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73257 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
5b6139a4d10c7c892518570bf3c18707b600c232 |
12-Jun-2009 |
Owen Anderson <resistor@mac.com> |
This is supposed to be a preorder numbering of the dominator tree, not the CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73257 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
21443db042a97ea48a96804e9cc378bec852ccbf |
12-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Now with less iterator invalidation, and other forms of crashing! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73256 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
fdf72c660774538cb29adb2b6a1bd66e766c2b53 |
12-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Now with less iterator invalidation, and other forms of crashing! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73256 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
86b8a0b1014f32fb8da595a8c3c27cda14a54100 |
12-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
If killed register is defined by implicit_def, do not clear it since it's live range may overlap another def of same register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73255 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
4a274e573dbbd4a6085de0d3c738c801b9d000c5 |
12-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
If killed register is defined by implicit_def, do not clear it since it's live range may overlap another def of same register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73255 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
03bf53d5c787142c004bf237b52f1bbaf71345c9 |
12-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Clear AbstractInstanceRootMap at the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73244 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
9217f793bf5d1fa0900f87ba96348da093409106 |
12-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Clear AbstractInstanceRootMap at the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73244 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8c25df1f6c84ee5bf27b6d64ac3bd8b2ca986e4e |
11-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Support for ELF Visibility Emission for globals, using the correct data sections Function alignment can be computed for each target using TargetELFWriterInfo Some small fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73201 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
c997d45ae5d2e25643d3ccc2c4ae44dcca6cdf5b |
11-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Support for ELF Visibility Emission for globals, using the correct data sections Function alignment can be computed for each target using TargetELFWriterInfo Some small fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73201 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFWriter.cpp
LFWriter.h
|
c351d6136ff86fb5ccec2b40754859e99c0af0fe |
11-Jun-2009 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Updated list of files on lib/CodeGen/CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73174 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
89456cecb3bd3b85f3b909b6e43fbf1f457540ed |
11-Jun-2009 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Updated list of files on lib/CodeGen/CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73174 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
0f4a0bc61a9fbcb021108901bbb4e73d9402dc69 |
10-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Remove warnings: no newline at end of file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73156 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
cb597c9cc457ee0bb9c6ab3195b90da6d0049caf |
10-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Remove warnings: no newline at end of file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73156 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
863a90137742ddea249024522824b2649a3ab466 |
09-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Add the beginnings of an implementatation of lazy liveness analysis, based on "Fast Liveness Checking for SSA-form Programs" by Boissinot, et al. This is still very early, hasn't been tested, and is not yet well documented. More to come soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73141 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
6cbd8da86ed602fd85807e82ead0bcec3d8739de |
09-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Add the beginnings of an implementatation of lazy liveness analysis, based on "Fast Liveness Checking for SSA-form Programs" by Boissinot, et al. This is still very early, hasn't been tested, and is not yet well documented. More to come soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73141 91177308-0d34-0410-b5e6-96231b3b80d8
azyLiveness.cpp
|
875462e8c3f6716d7f743345274ea28a6f58baea |
07-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Delete comment and fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73040 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
|
06bfa33eefd6c7b56fc354ab640a9175e82bf890 |
07-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Delete comment and fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73040 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFWriter.cpp
|
59b1415cf361612f68b4226ed915bea535f07db1 |
07-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix wrong elf class and byte order initializations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73039 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
|
24f14f16fd2992adf7f422251a328d09c88f5a0a |
07-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix wrong elf class and byte order initializations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73039 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
|
6b5788edb17bad161bbe7a21f38a45f92bba892f |
07-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Simple ELF32/64 binary files can now be emitted for x86 and x86_64 without relocation sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73038 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
a029a27fae25628fa7805aba6d7ae3216a4e026b |
07-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Simple ELF32/64 binary files can now be emitted for x86 and x86_64 without relocation sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73038 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
a2caab9866b62cc33c90aa819a82a9f802feea39 |
07-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Tweak the expansion code for BIT_CONVERT to generate better code converting from an MMX vector to an i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73024 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
f10d3a7bcda97d28f9d325cb58cec7e17d7ed101 |
07-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Tweak the expansion code for BIT_CONVERT to generate better code converting from an MMX vector to an i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73024 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
e6bb1e57c7e9e84d6ad12baa89e7f6119b6c46a7 |
07-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Slightly generalize the code that handles shuffles of consecutive loads on x86 to handle more cases. Fix a bug in said code that would cause it to read past the end of an object. Rewrite the code in SelectionDAGLegalize::ExpandBUILD_VECTOR to be a bit more general. Remove PerformBuildVectorCombine, which is no longer necessary with these changes. In addition to simplifying the code, with this change, we can now catch a few more cases of consecutive loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7a5e55509b99d579d56d126a7b503ec6fe153a8f |
07-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Slightly generalize the code that handles shuffles of consecutive loads on x86 to handle more cases. Fix a bug in said code that would cause it to read past the end of an object. Rewrite the code in SelectionDAGLegalize::ExpandBUILD_VECTOR to be a bit more general. Remove PerformBuildVectorCombine, which is no longer necessary with these changes. In addition to simplifying the code, with this change, we can now catch a few more cases of consecutive loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b8427d805310c8a2ebab03b9082622e74d9cdd33 |
06-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix the expansion for CONCAT_VECTORS so that it doesn't create illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5257106c4d396b5d932f7b282c3ba255c4605195 |
06-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix the expansion for CONCAT_VECTORS so that it doesn't create illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a188a97e440525a0a6650cebb48175b5aec721f3 |
06-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Factor out a couple of helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7ef3d178660b82d1571757e49f44b004d772a116 |
06-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Factor out a couple of helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
04066de38f4d0b750fdb8de446f14b813c202ff5 |
06-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove elf specific info from ELFWriter.h to Elf.h. Code cleanup and more comments added git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72982 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
f5b0c5a1c735dd2a6027edcca83cddc6d755bdc2 |
06-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Remove elf specific info from ELFWriter.h to Elf.h. Code cleanup and more comments added git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72982 91177308-0d34-0410-b5e6-96231b3b80d8
LF.h
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
LFWriter.h
|
42b0e36979d7d385b6d5002bad5ac2d6f00fbd0d |
06-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make SINT_TO_FP/UINT_TO_FP vector legalization queries query on the integer type to be consistent with normal operation legalization. No visible change because nothing is actually using this at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
556929a84bb8842cb07bebf4df67810d17be096e |
06-Jun-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make SINT_TO_FP/UINT_TO_FP vector legalization queries query on the integer type to be consistent with normal operation legalization. No visible change because nothing is actually using this at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
c386c848cead46ecd3e94764aa5ea39749db2671 |
05-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Add new function attribute - noimplicitfloat Update code generator to use this attribute and remove NoImplicitFloat target option. Update llc to set this attribute when -no-implicit-float command line option is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
578efa920abd218ba75a0fb3c9b8398f4c0a774b |
05-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Add new function attribute - noimplicitfloat Update code generator to use this attribute and remove NoImplicitFloat target option. Update llc to set this attribute when -no-implicit-float command line option is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
65e800308932871350c3512e5a4861bfdc839126 |
05-Jun-2009 |
Nate Begeman <natebegeman@mac.com> |
Adapt the x86 build_vector dagcombine to the current state of the legalizer. build vectors with i64 elements will only appear on 32b x86 before legalize. Since vector widening occurs during legalize, and produces i64 build_vector elements, the dag combiner is never run on these before legalize splits them into 32b elements. Teach the build_vector dag combine in x86 back end to recognize consecutive loads producing the low part of the vector. Convert the two uses of TLI's consecutive load recognizer to pass LoadSDNodes since that was required implicitly. Add a testcase for the transform. Old: subl $28, %esp movl 32(%esp), %eax movl 4(%eax), %ecx movl %ecx, 4(%esp) movl (%eax), %eax movl %eax, (%esp) movaps (%esp), %xmm0 pmovzxwd %xmm0, %xmm0 movl 36(%esp), %eax movaps %xmm0, (%eax) addl $28, %esp ret New: movl 4(%esp), %eax pmovzxwd (%eax), %xmm0 movl 8(%esp), %eax movaps %xmm0, (%eax) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
abc019968067736a499467f7db7fb758a425ca06 |
05-Jun-2009 |
Nate Begeman <natebegeman@mac.com> |
Adapt the x86 build_vector dagcombine to the current state of the legalizer. build vectors with i64 elements will only appear on 32b x86 before legalize. Since vector widening occurs during legalize, and produces i64 build_vector elements, the dag combiner is never run on these before legalize splits them into 32b elements. Teach the build_vector dag combine in x86 back end to recognize consecutive loads producing the low part of the vector. Convert the two uses of TLI's consecutive load recognizer to pass LoadSDNodes since that was required implicitly. Add a testcase for the transform. Old: subl $28, %esp movl 32(%esp), %eax movl 4(%eax), %ecx movl %ecx, 4(%esp) movl (%eax), %eax movl %eax, (%esp) movaps (%esp), %xmm0 pmovzxwd %xmm0, %xmm0 movl 36(%esp), %eax movaps %xmm0, (%eax) addl $28, %esp ret New: movl 4(%esp), %eax pmovzxwd (%eax), %xmm0 movl 8(%esp), %eax movaps %xmm0, (%eax) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
27c2daf02027f431d63995f947294e71b9ba384b |
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove some unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72948 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
achineInstr.cpp
|
c965ee223c6077250525048106726e12b59072ac |
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove some unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72948 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfPrinter.cpp
achineInstr.cpp
|
170d69e3148e4d96f68a3b5ac8834d03ec346913 |
05-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow libcalls for i16 sdiv/udiv/rem operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
a43a7aefd753fe7d6005cbebc9619268db4ae139 |
05-Jun-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow libcalls for i16 sdiv/udiv/rem operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
23dfc8fe42781e17c5b5bb326273d8fbdd46b746 |
05-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
ELF Code Emitter now uses CurBufferPtr, BufferBegin and BufferEnd, as do JIT and MachO Writer. This will change with the arrival of ObjectCodeEmitter and BinaryObject git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72906 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.h
|
5d4191039645f2eeb90148d7359199ad21c75347 |
05-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
ELF Code Emitter now uses CurBufferPtr, BufferBegin and BufferEnd, as do JIT and MachO Writer. This will change with the arrival of ObjectCodeEmitter and BinaryObject git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72906 91177308-0d34-0410-b5e6-96231b3b80d8
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.h
|
7ce405e7aa026ef683da9eb8cc39cce87fcfa1d6 |
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Split the Add, Sub, and Mul instruction opcodes into separate integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
ae3a0be92e33bc716722aa600983fc1535acb122 |
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Split the Add, Sub, and Mul instruction opcodes into separate integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
d87cf08c273a278afbd9583e25bd9c2c1755bf7b |
04-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Fix FP_TO_UINT->i32 on ppc32 -mcpu=g5. This was using Promote which won't work because i64 isn't a legal type. It's easy enough to use Custom, but then we have the problem that when the type legalizer is promoting FP_TO_UINT->i16, it has no way of telling it should prefer FP_TO_SINT->i32 to FP_TO_UINT->i32. I have uncomfortably hacked this by making the type legalizer choose FP_TO_SINT when both are Custom. This fixes several regressions in the testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72891 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
4c9369df57a52cec5e1fc735e61a979766288074 |
04-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Fix FP_TO_UINT->i32 on ppc32 -mcpu=g5. This was using Promote which won't work because i64 isn't a legal type. It's easy enough to use Custom, but then we have the problem that when the type legalizer is promoting FP_TO_UINT->i16, it has no way of telling it should prefer FP_TO_SINT->i32 to FP_TO_UINT->i32. I have uncomfortably hacked this by making the type legalizer choose FP_TO_SINT when both are Custom. This fixes several regressions in the testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72891 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
785d81ea5236df535d7718de53ad6fa7488118ac |
04-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
RALinScan::attemptTrivialCoalescing() was returning a virtual register instead of the physical register it is allocated to. This resulted in virtual register(s) being added the live-in sets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72890 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
073e7e5807991a9f614569426fdd6536728c01ca |
04-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
RALinScan::attemptTrivialCoalescing() was returning a virtual register instead of the physical register it is allocated to. This resulted in virtual register(s) being added the live-in sets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72890 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9be391da176dc1e378746d273f291c74ee17f970 |
04-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
A value defined by an implicit_def can be liven to a use BB. This is unfortunate. But register allocator still has to add it to the live-in set of the use BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72889 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
550aacb978a8391f605c6ec1feca7d797415d38b |
04-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
A value defined by an implicit_def can be liven to a use BB. This is unfortunate. But register allocator still has to add it to the live-in set of the use BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72889 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
775e7713e930743ae3d908e4820b5a589dc15723 |
04-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Removed SimpleRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72880 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
ac2764040f9617e50688d336d99f504da8cdc35e |
04-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Removed SimpleRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72880 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
a22a840c2c561f5cee6691c3ae13dfcf230b7e45 |
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Don't do the X * 0.0 -> 0.0 transformation in instcombine, because instcombine doesn't know when it's safe. To partially compensate for this, introduce new code to do this transformation in dagcombine, which can use UnsafeFPMath. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
77b81fe487de709d41dfcc97bbb2941ae1bb80af |
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Don't do the X * 0.0 -> 0.0 transformation in instcombine, because instcombine doesn't know when it's safe. To partially compensate for this, introduce new code to do this transformation in dagcombine, which can use UnsafeFPMath. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
2ac69f6a48cf68cfb33bb37b310b088120b4084b |
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72870 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
68f32cbb1f9e62d5e6047b048c0d7d217b8717e1 |
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72870 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1dac13f580f31bc3f605200ea9a65bcd43775f6e |
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove a #include of <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72828 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
e5eb6d2fdb9c8cb1d0ddc89759bb6c6d43dd75ec |
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove a #include of <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72828 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
95a39c040b70ffd3b924640b7648ec79626a594e |
04-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Removed more testing code that snuck in earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72825 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
fcad1720066fe88c33c1d6007f36e57a82894302 |
04-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Removed more testing code that snuck in earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72825 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
14582c8a8c925940177296b0e0a9b8931fa4a204 |
03-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Move ELFCodeEmiter stuff to new files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72785 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
|
4cb31436bd90ace0e41c6aad801371538996d8c7 |
03-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Move ELFCodeEmiter stuff to new files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72785 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LFCodeEmitter.cpp
LFCodeEmitter.h
LFWriter.cpp
|
157886a77f0cfc03066e066d3e940b6ae29af773 |
03-Jun-2009 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Added missing source file to lib/CodeGen/CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72775 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
030019f113114184266910625b9074c4f1e1d97c |
03-Jun-2009 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Added missing source file to lib/CodeGen/CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72775 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
8312e2965612848d57f8f15e70f258c3075df2f3 |
03-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR4225: When rewriter reuse a value in a physical register , it clear the register kill operand marker and its kill ops information. However, the cleared operand may be a def of a super-register. Clear the kill ops info for the super-register's sub-registers as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72758 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
2c48fe6757284e363248ea725ceedca8dd7ee272 |
03-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR4225: When rewriter reuse a value in a physical register , it clear the register kill operand marker and its kill ops information. However, the cleared operand may be a def of a super-register. Clear the kill ops info for the super-register's sub-registers as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72758 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
9ae8c88986f34b761dd52fccf7e21346e62ec17d |
03-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g. EAX = ..., AX<imp-def> ... = AX This creates a double-def. Apparently this used to be necessary but is no longer needed. Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72755 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
95299c194d4f852d17554779117c4125c3fae73d |
03-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g. EAX = ..., AX<imp-def> ... = AX This creates a double-def. Apparently this used to be necessary but is no longer needed. Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72755 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
f42e3eb5690368cd421840fb03568265d239cc22 |
03-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Move structures and classes into header files, providing two new headers and one new .cpp file, in preparation for merging in the Direct Object Emission changes we're working on. No functional changes. Fixed coding style issues on the original patch. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72754 91177308-0d34-0410-b5e6-96231b3b80d8
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
a321dcd38d2bdafa06537515de97787aa0e83974 |
03-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Move structures and classes into header files, providing two new headers and one new .cpp file, in preparation for merging in the Direct Object Emission changes we're working on. No functional changes. Fixed coding style issues on the original patch. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72754 91177308-0d34-0410-b5e6-96231b3b80d8
achO.h
achOCodeEmitter.cpp
achOCodeEmitter.h
achOWriter.cpp
achOWriter.h
|
76b7bec6d15634372f2becd033cc55eb8efdd3b8 |
02-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Fixed warning, removed some temporary validation code that snuck in during my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72735 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
7ccf4a05e8452feffd5ae90b68d700f113e83923 |
02-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Fixed warning, removed some temporary validation code that snuck in during my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72735 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
86f6afb2fcf72c987aa2cfc01f5b4044dda349bd |
02-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Update to in-place spilling framework. Includes live interval scaling and trivial rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72729 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
piller.cpp
piller.h
trongPHIElimination.cpp
irtRegRewriter.cpp
|
f41538d1b54f55e8900394929b50f7ce3e61125f |
02-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Update to in-place spilling framework. Includes live interval scaling and trivial rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72729 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
piller.cpp
piller.h
trongPHIElimination.cpp
irtRegRewriter.cpp
|
747fe522899b2cdc0366b3c125341745ef99f2ba |
02-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Revert 72707 and 72709, for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
874ae251c317788391f9c3f113957802d390a063 |
02-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Revert 72707 and 72709, for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
d6758f98bfa1f02e5218ed484002ea120a691a44 |
02-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Make the implicit inputs and outputs of target-independent ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-independent code to use this format. Most targets will still produce a Flag-setting target-dependent version when selection is done. X86 is converted to use i32 instead, which means TableGen needs to produce different code in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit in xxxInstrInfo, currently set only for X86; in principle this is temporary and should go away when all other targets have been converted. All relevant X86 instruction patterns are modified to represent setting and using EFLAGS explicitly. The same can be done on other targets. The immediate behavior change is that an ADC/ADD pair are no longer tightly coupled in the X86 scheduler; they can be separated by instructions that don't clobber the flags (MOV). I will soon add some peephole optimizations based on using other instructions that set the flags to feed into ADC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
4150d83abe90a5da4ddf86433b7bf4329acfa57c |
02-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Make the implicit inputs and outputs of target-independent ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-independent code to use this format. Most targets will still produce a Flag-setting target-dependent version when selection is done. X86 is converted to use i32 instead, which means TableGen needs to produce different code in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit in xxxInstrInfo, currently set only for X86; in principle this is temporary and should go away when all other targets have been converted. All relevant X86 instruction patterns are modified to represent setting and using EFLAGS explicitly. The same can be done on other targets. The immediate behavior change is that an ADC/ADD pair are no longer tightly coupled in the X86 scheduler; they can be separated by instructions that don't clobber the flags (MOV). I will soon add some peephole optimizations based on using other instructions that set the flags to feed into ADC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/SelectionDAG.cpp
|
caa5a11d3ed679347488cdcd4ed9be5c65d9b671 |
01-Jun-2009 |
Bill Wendling <isanbard@gmail.com> |
Accidental commit. This isn't ready for prime time just yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72699 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8fff19ba556b8a61545fa52fdac9f04fbbe74e11 |
01-Jun-2009 |
Bill Wendling <isanbard@gmail.com> |
Accidental commit. This isn't ready for prime time just yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72699 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
bb7b585dbc0b6b4ead10e89399c444faa8d5c04a |
31-May-2009 |
Duncan Sands <baldrick@free.fr> |
Rename CustomLowerResults to CustomLowerNode, since it is used both when a result is illegal and when an operand is illegal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72658 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
f43071beddb7ed5b2fd7d2f06c4130460616a13d |
31-May-2009 |
Duncan Sands <baldrick@free.fr> |
Rename CustomLowerResults to CustomLowerNode, since it is used both when a result is illegal and when an operand is illegal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72658 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
60a367021993b49edc317d8dddedcb23a28ca5c2 |
31-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use uint8_t and int32_t in {JIT,Machine}CodeEmiters git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72650 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
achOWriter.h
|
af90a1cd2647909623758078540abb1a81495e32 |
31-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use uint8_t and int32_t in {JIT,Machine}CodeEmiters git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72650 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
achOWriter.h
|
1ea31ff434f7966f3d8b2c158b4f20950e94e80d |
30-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
First patch in the direction of splitting MachineCodeEmitter in two subclasses: JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72631 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a3f99f90338d89354384ca25f53ca4450a1a9d18 |
30-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
First patch in the direction of splitting MachineCodeEmitter in two subclasses: JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72631 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
c19467424889a76b42eb17134180e42ff528c55b |
30-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Untabification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72604 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAG.cpp
|
51b16f473759c1546acbf308a5d3f3e7bf3ea23c |
30-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Untabification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72604 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAG.cpp
|
cad47c045c8b01585e3302e51a23ade4c26dbfb2 |
29-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not try to create a MVT type of width 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72557 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d3c76bb6fc3c066286850e91b8bf03484ea2a56e |
29-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not try to create a MVT type of width 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72557 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5281c2132e2f0fd0219a7a9ab8d3ef2a3f80a310 |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Re-commit r72514 and r72516 with a fixed version of BR_CC lowering. This patch removes some special cases for opcodes and does a bit of cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bbdd903c52897df78750aa0caf2fc34d55b5ead0 |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Re-commit r72514 and r72516 with a fixed version of BR_CC lowering. This patch removes some special cases for opcodes and does a bit of cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f98ca6bcea7231a1cea2f2b7f7d04211d605d4f6 |
28-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Incorporate patch feedbacks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cdcecc03ce7d3cece0ef2a0d93fade05506849c1 |
28-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Incorporate patch feedbacks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
724bd8f55345d8c58beba7b98472258ce945cf79 |
28-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r72514 (and dependent patch r72516). It was causing this failure during llvm-gcc bootstrap: Assertion failed: (!Tmp2.getNode() && "Can't legalize BR_CC with legal condition!"), function ExpandNode, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 2923. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:1727: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72530 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
43b41273f3e56f49449992436cc39b406c9a6350 |
28-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r72514 (and dependent patch r72516). It was causing this failure during llvm-gcc bootstrap: Assertion failed: (!Tmp2.getNode() && "Can't legalize BR_CC with legal condition!"), function ExpandNode, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 2923. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:1727: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72530 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
11108da1594427115f3f7d002e0d6dd487357abc |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove a couple of useless functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e727d7a08406265acb10d0c52943ef92859710f2 |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove a couple of useless functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9140bd22cf5936f73c51193ee94cde5c10220c07 |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove special cases for more opcodes. This is basically the end of this series of patches for LegalizeDAG; the remaining special cases can't be removed without more infrastructure work. There's a FIXME for each relevant opcode near the beginning of SelectionDAGLegalize::LegalizeOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1c39965342453ce33a3b3f9a863c38fdb45fd6ef |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove special cases for more opcodes. This is basically the end of this series of patches for LegalizeDAG; the remaining special cases can't be removed without more infrastructure work. There's a FIXME for each relevant opcode near the beginning of SelectionDAGLegalize::LegalizeOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b303fbab66223a5ca43d23022a49bef5ae5adbe0 |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove special case for SETCC opcode; add some comments explaining why some special cases are necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ad75460e30aab135057355fa0712141bf2cb08fc |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove special case for SETCC opcode; add some comments explaining why some special cases are necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
36607b0dacdd0ea9c99caacdbfa8dace07329f42 |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Some minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72509 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3be2e514c9e7b20135be5b9df3e9aa1cb08cb374 |
28-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Some minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72509 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2f5d3a50b3d4206d83f7ccc4e95c3c0465d6e460 |
28-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added optimization that narrow load / op / store and the 'op' is a bit twiddling instruction and its second operand is an immediate. If bits that are touched by 'op' can be done with a narrower instruction, reduce the width of the load and store as well. This happens a lot with bitfield manipulation code. e.g. orl $65536, 8(%rax) => orb $1, 10(%rax) Since narrowing is not always a win, e.g. i32 -> i16 is a loss on x86, dag combiner consults with the target before performing the optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72507 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8b944d39b356135676459152385f05c496951f6c |
28-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added optimization that narrow load / op / store and the 'op' is a bit twiddling instruction and its second operand is an immediate. If bits that are touched by 'op' can be done with a narrower instruction, reduce the width of the load and store as well. This happens a lot with bitfield manipulation code. e.g. orl $65536, 8(%rax) => orb $1, 10(%rax) Since narrowing is not always a win, e.g. i32 -> i16 is a loss on x86, dag combiner consults with the target before performing the optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72507 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e7fde9f81755b2d2b71146cc99f2a1d44342c65b |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Minor cleanups; add a better explanation for the issue with BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b5da3f6f98b28afc0c62572c164ffccb4004827f |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Minor cleanups; add a better explanation for the issue with BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ed053c0a914befdd1a83b5fe18e46eda1a9b3c48 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove more special cases for opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4bc8c718218159fe410462f6e3670e7cb76c0c04 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove more special cases for opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cad61b8f7471149e0ed5de0506dd782ea7bf8006 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove special cases for more opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
|
509150f973ae650a57b79010a3ec36e60e40f41d |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove special cases for more opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorOps.cpp
|
375652ba013c714e580a68f6c2d61ecdc65b556b |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Removing more special cases from LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f6f20a7779c5308ccb3e4306552d749091a77a60 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Removing more special cases from LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ddb45ea7c3b1b064b732f37ae4fea58e9299058d |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Eliminate more special cases for opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
26ea8f982fb58245d3735b80ce04bc8050348a19 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Eliminate more special cases for opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0f7deb53c06791d05298505531800497e027deed |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove more special cases from LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72456 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f6b23bfc79cf9f605a2e74942c90799ff4f1a17e |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove more special cases from LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72456 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
98cace6d4c701959b388a98e920c0214ce598412 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove unused argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
47b41f7e20b6af7aaaf0e050200102d55d038b9d |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove unused argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3404c523fe86ff6c82a9aafe7dfb33bb6f4dc028 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove more opcode special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3f727d6c1b68e90a3ab2d95ec2229f8b2c40b84b |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove more opcode special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
26cc99330bbab98aba15514fb37384fcf1e0a0d5 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Start of refactoring LegalizeDAG so that we don't need specialized handling for every single opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72447 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8c377c7296d8a8104231442c3f6c27296249ec5f |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Start of refactoring LegalizeDAG so that we don't need specialized handling for every single opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72447 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
02d392b4b8dbbc83fb98fba9b6116289ca70f4e8 |
26-May-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many entries as there are basic blocks in the function. LiveVariables::getVarInfo creates a VarInfo struct for every register in the function, leading to quadratic space use. This patch changes the BitVector to a SparseBitVector, which doesn't help the worst-case memory use but does reduce the actual use in very long functions with short-lived variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72426 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
|
493a3d015cbb2bcc18d9293a4dec3b35c7493818 |
26-May-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many entries as there are basic blocks in the function. LiveVariables::getVarInfo creates a VarInfo struct for every register in the function, leading to quadratic space use. This patch changes the BitVector to a SparseBitVector, which doesn't help the worst-case memory use but does reduce the actual use in very long functions with short-lived variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72426 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
|
0e88384d97a20d105270b8a070bde02a74290f14 |
26-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Delete a bunch of dead code from LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
74807f2520715056be399a2bc59dfc8b6f8f3eb2 |
26-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Delete a bunch of dead code from LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b99b9cb3c54e21676021c02c7cf1ddb14b5b3c47 |
26-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate VarInfo::UsedBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72411 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
aed4a430f4f6cc0e3ff06d458e68e5d195bbed7c |
26-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate VarInfo::UsedBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72411 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
63f7ac9eed9bded6e344bd5f31fff35a9ba990a0 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a comment which should hopefully make the purpose of this method a bit clearer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
c046c00d0a1f65483a8c69f26c66fc74f5228332 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a comment which should hopefully make the purpose of this method a bit clearer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
|
66c5365caa055fbb305f16cc7e27149f21f84ea0 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Minor improvement to FCOPYSIGN to use BIT_CONVERT in cases where the corresponding integer type is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
57f1a4bc40e9103cd41cf541b9d6a73b92f0acba |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Minor improvement to FCOPYSIGN to use BIT_CONVERT in cases where the corresponding integer type is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
57e542700d20f066920d4f0430b797990ec2661e |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Rewrite ISD::FCOPYSIGN lowering to never use i64. Not really ideal, but it's late, and I don't have any better ideas at the moment. Fixes PR4257. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72363 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ed2f8c557a86612ee14fea25e7be2d3c1445951a |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Rewrite ISD::FCOPYSIGN lowering to never use i64. Not really ideal, but it's late, and I don't have any better ideas at the moment. Fixes PR4257. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72363 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
69eb9c201cbe6a289bb42973e00bf79bc545fbc6 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Update for CMakeLists; untested, so tell me if there are issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
7d869fb062aee8a3de7dad23eb48d7a5d2d64190 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Update for CMakeLists; untested, so tell me if there are issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
|
32874522768f22dd3f55dc5e1c2cff13715378d3 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove checks of getTypeAction from LegalizeOp; we already assert that all results and all operands are legal, so this change shouldn't affect behavior at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
957bffaeca6a0e2ccc684d753df1d87e8e053fe2 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove checks of getTypeAction from LegalizeOp; we already assert that all results and all operands are legal, so this change shouldn't affect behavior at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
65d41930c0358f7488100a740087e7ef29e4ac88 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Disable type legalization in LegalizeDAG. This leaves around 4000 lines of dead code; I'll clean that up in subsequent commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1fde9c5f771922f12fefc903850c4eca303297d9 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Disable type legalization in LegalizeDAG. This leaves around 4000 lines of dead code; I'll clean that up in subsequent commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4421bc828d03a462864519150a96c51b6c989f9c |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a bug in the expansion of EXTRACT_SUBVECTOR in ExpandExtractFromVectorThroughStack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2a35b1c54ba55a917e01e0043efcf67e20505953 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a bug in the expansion of EXTRACT_SUBVECTOR in ExpandExtractFromVectorThroughStack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ed3d4b1c5cc683d7026c39cc76f2645bd436ed20 |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a proper implementation of EXTRACT_SUBVECTOR legalization that doesn't split legal vector operands. This is necessary because the type legalization (and therefore, vector splitting) code will be going away soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3d43b3f6d7e1d3516052f20bf2d14727ebddb8ff |
24-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a proper implementation of EXTRACT_SUBVECTOR legalization that doesn't split legal vector operands. This is necessary because the type legalization (and therefore, vector splitting) code will be going away soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a9bb5d91c0090d8492df3314237c97cbbccfc02e |
23-May-2009 |
Edwin Török <edwintorok@gmail.com> |
Fix PR4254. The DAGCombiner created a negative shiftamount, stored in an unsigned variable. Later the optimizer eliminated the shift entirely as being undefined. Example: (srl (shl X, 56) 48). ShiftAmt is 4294967288. Fix it by checking that the shiftamount is positive, and storing in a signed variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6bb4958543e2b7ff412b3dac3ebf01a184193ad7 |
23-May-2009 |
Torok Edwin <edwintorok@gmail.com> |
Fix PR4254. The DAGCombiner created a negative shiftamount, stored in an unsigned variable. Later the optimizer eliminated the shift entirely as being undefined. Example: (srl (shl X, 56) 48). ShiftAmt is 4294967288. Fix it by checking that the shiftamount is positive, and storing in a signed variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e7cf6a8ec347079c178290e279b63451c4d633ea |
23-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a new step to legalization to legalize vector math operations. This will allow simplifying LegalizeDAG to eliminate type legalization. (I have a patch to do that, but it's not quite finished; I'll commit it once it's finished and I've fixed any review comments for this patch.) See the comment at the beginning of lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp for more details on the motivation for this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAGISel.cpp
|
5c22c8074404797f1313b1334757254fb5c6487a |
23-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a new step to legalization to legalize vector math operations. This will allow simplifying LegalizeDAG to eliminate type legalization. (I have a patch to do that, but it's not quite finished; I'll commit it once it's finished and I've fixed any review comments for this patch.) See the comment at the beginning of lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp for more details on the motivation for this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorOps.cpp
electionDAG/SelectionDAGISel.cpp
|
f325c4808b01ed9a5230faec3be5a8fbddf18c76 |
22-May-2009 |
Duncan Sands <baldrick@free.fr> |
Add a new codegen pass that normalizes dwarf exception handling code in preparation for code generation. The main thing it does is handle the case when eh.exception calls (and, in a future patch, eh.selector calls) are far away from landing pads. Right now in practice you only find eh.exception calls close to landing pads: either in a landing pad (the common case) or in a landing pad successor, due to loop passes shifting them about. However future exception handling improvements will result in calls far from landing pads: (1) Inlining of rewinds. Consider the following case: In function @f: ... invoke @g to label %normal unwind label %unwinds ... unwinds: %ex = call i8* @llvm.eh.exception() ... In function @g: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... "rethrow exception" Now inline @g into @f. Currently this is turned into: In function @f: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... invoke "rethrow exception" to label %normal unwind label %unwinds unwinds: %ex = call i8* @llvm.eh.exception() ... However we would like to simplify invoke of "rethrow exception" into a branch to the %unwinds label. Then %unwinds is no longer a landing pad, and the eh.exception call there is then far away from any landing pads. (2) Using the unwind instruction for cleanups. It would be nice to have codegen handle the following case: invoke @something to label %continue unwind label %run_cleanups ... handler: ... perform cleanups ... unwind This requires turning "unwind" into a library call, which necessarily takes a pointer to the exception as an argument (this patch also does this unwind lowering). But that means you are using eh.exception again far from a landing pad. (3) Bugpoint simplifications. When bugpoint is simplifying exception handling code it often generates eh.exception calls far from a landing pad, which then causes codegen to assert. Bugpoint then latches on to this assertion and loses sight of the original problem. Note that it is currently rare for this pass to actually do anything. And in fact it normally shouldn't do anything at all given the code coming out of llvm-gcc! But it does fire a few times in the testsuite. As far as I can see this is almost always due to the LoopStrengthReduce codegen pass introducing pointless loop preheader blocks which are landing pads and only contain a branch to another block. This other block contains an eh.exception call. So probably by tweaking LoopStrengthReduce a bit this can be avoided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72276 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
warfEHPrepare.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
b0f1e1780c736c62fb99e5824825d2a60a53b53b |
22-May-2009 |
Duncan Sands <baldrick@free.fr> |
Add a new codegen pass that normalizes dwarf exception handling code in preparation for code generation. The main thing it does is handle the case when eh.exception calls (and, in a future patch, eh.selector calls) are far away from landing pads. Right now in practice you only find eh.exception calls close to landing pads: either in a landing pad (the common case) or in a landing pad successor, due to loop passes shifting them about. However future exception handling improvements will result in calls far from landing pads: (1) Inlining of rewinds. Consider the following case: In function @f: ... invoke @g to label %normal unwind label %unwinds ... unwinds: %ex = call i8* @llvm.eh.exception() ... In function @g: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... "rethrow exception" Now inline @g into @f. Currently this is turned into: In function @f: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... invoke "rethrow exception" to label %normal unwind label %unwinds unwinds: %ex = call i8* @llvm.eh.exception() ... However we would like to simplify invoke of "rethrow exception" into a branch to the %unwinds label. Then %unwinds is no longer a landing pad, and the eh.exception call there is then far away from any landing pads. (2) Using the unwind instruction for cleanups. It would be nice to have codegen handle the following case: invoke @something to label %continue unwind label %run_cleanups ... handler: ... perform cleanups ... unwind This requires turning "unwind" into a library call, which necessarily takes a pointer to the exception as an argument (this patch also does this unwind lowering). But that means you are using eh.exception again far from a landing pad. (3) Bugpoint simplifications. When bugpoint is simplifying exception handling code it often generates eh.exception calls far from a landing pad, which then causes codegen to assert. Bugpoint then latches on to this assertion and loses sight of the original problem. Note that it is currently rare for this pass to actually do anything. And in fact it normally shouldn't do anything at all given the code coming out of llvm-gcc! But it does fire a few times in the testsuite. As far as I can see this is almost always due to the LoopStrengthReduce codegen pass introducing pointless loop preheader blocks which are landing pads and only contain a branch to another block. This other block contains an eh.exception call. So probably by tweaking LoopStrengthReduce a bit this can be avoided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72276 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
warfEHPrepare.cpp
LVMTargetMachine.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
2d9b3cbe342bca2e2ec06f74e90a949c43b89fce |
21-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Use v.data() instead of &v[0] when SmallVector v might be empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e3e51c0038bd6ba2add82e2246e97edec0ab2204 |
21-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Use v.data() instead of &v[0] when SmallVector v might be empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bc121cc257b82165c7e476cd627e6236375f4dc9 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r72191. It was causing an assert during llvm-gcc bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72200 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ebugLoc.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
df7d5d317096c342ee1c459139914965008fbcd7 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r72191. It was causing an assert during llvm-gcc bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72200 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ebugLoc.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
4ca8dfde22e09e0ce39c6625f3da3e3241911ae9 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Minor code cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72198 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
39dd6962821ee48c334ac1240ecb231c18c17e40 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Minor code cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72198 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
065d8473bc3b511dd90e8f551d9ffe6a14dfd9e2 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Merge 'ConstructFunctionDbgScope' and 'ConstructAbstractDbgScope'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72197 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
1795616930543c8156b2414482b2f811c87bb375 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Merge 'ConstructFunctionDbgScope' and 'ConstructAbstractDbgScope'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72197 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0d3db8b07e2638cb8a0e005ff08dd824e851d1c7 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Rename 'New*' methods to 'Create*' to be consistent. 'NewString' isn't used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
995f80ad5fa835b51f0db4566b7edc3d5b126625 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Rename 'New*' methods to 'Create*' to be consistent. 'NewString' isn't used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72196 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
e1a5bbb8a43196d3eb44e943bef4ea0d268dd253 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Add comment for emit section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72195 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
829e67b5ec955760733e67dc6d41a09cd73a084f |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Add comment for emit section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72195 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
55fccda5744a6362673dbbf5de184b91a88ab93f |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Move 'Emit' methods down to their own place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
94d04b8f808bc3ea9de0120c3a7da593771a438a |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Move 'Emit' methods down to their own place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
f5839195e511f635057cd92dbb09b5ecbb078fe9 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r72192. It was causing a build failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72193 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
f0fb987903d0885e7da456e3d6f4a094efaccdc2 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r72192. It was causing a build failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72193 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
53f5ba4a7a80b2a36984be67fd146eb819b14dff |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Do some mechanical changes. Combine the 'construct abastract dbg thingy' in with the 'constract function dbg thingy'. Rename some methods to make them consistent with the rest of the methods. Move the 'Emit' methods to the end of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72192 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
63ad10c004a559dce2dd3179fb851ad5fa6fbbe9 |
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Do some mechanical changes. Combine the 'construct abastract dbg thingy' in with the 'constract function dbg thingy'. Rename some methods to make them consistent with the rest of the methods. Move the 'Emit' methods to the end of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72192 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
0c41264d8ca7e8bd4bab0413891e7fb1aa22d864 |
21-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Introduce DebugScope which gets embedded into the machine instructions' DebugLoc. DebugScope refers to a debug region, function or block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72191 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ebugLoc.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
a3437647dc6996499db4823c31242184c93e6e2e |
21-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce DebugScope which gets embedded into the machine instructions' DebugLoc. DebugScope refers to a debug region, function or block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72191 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ebugLoc.cpp
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
f4e4613beefe9956dc2254f7d553a82db7296f3a |
20-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR4235: to build a floating-point value from integer parts, build an integer and cast that to a float. This fixes a crash caused by trying to split an f32 into two f16's. This changes the behavior in test/CodeGen/XCore/fneg.ll because that testcase now triggers a DAGCombine which converts the fneg into an integer operation. If someone is interested, it's probably possible to tweak the test to generate an actual fneg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72162 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2ac8b324eb4de4507858dcd33ce03ef9973bf1f3 |
20-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR4235: to build a floating-point value from integer parts, build an integer and cast that to a float. This fixes a crash caused by trying to split an f32 into two f16's. This changes the behavior in test/CodeGen/XCore/fneg.ll because that testcase now triggers a DAGCombine which converts the fneg into an integer operation. If someone is interested, it's probably possible to tweak the test to generate an actual fneg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72162 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
40ac86f6b7bc1b60e66a29a29d292bf5d97ed611 |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Forward decls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72114 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
cd35ed5153963c92333aa8d82692f1344d3ec911 |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Forward decls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72114 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
cebe3125ac8382d7a35b40430862a88ce70dc56f |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove 'class' specifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72113 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
0bde89e4555b726104dff26b90378a17fa919648 |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove 'class' specifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72113 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
5dc3a43c393db620b59a8bcbdbe1d483eaca9aa2 |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix to compile on VS2008. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72112 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
7683806ea3a16e14e8b7c0c9878f5211b4c8baa5 |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix to compile on VS2008. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72112 91177308-0d34-0410-b5e6-96231b3b80d8
piller.h
|
1e1d610788e281a17a9073d86825d89d7358501d |
19-May-2009 |
Dan Gohman <gohman@apple.com> |
Remove the #ifndef NDEBUG from the FastISel debugging options. This fixes dejagnu tests that use these options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72094 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dea4085da04e2e3993f9357ce5049a7fbe05e924 |
19-May-2009 |
Dan Gohman <gohman@apple.com> |
Remove the #ifndef NDEBUG from the FastISel debugging options. This fixes dejagnu tests that use these options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72094 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
128f89418404c66ea5e2481baba36c48204f89f0 |
19-May-2009 |
Mike Stump <mrs@apple.com> |
Fix cmake builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
|
1d4c73860339f8eccf876635a0409e01e7062d8c |
19-May-2009 |
Mike Stump <mrs@apple.com> |
Fix cmake builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
|
5221372e265d4c911707589c8967d2b8e1880aa1 |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't set the "location" information for inlined functions' variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72064 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
1180c7899ca101bdb96cf36a0101bf161e510fcb |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't set the "location" information for inlined functions' variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72064 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
35d02263362b2a3e7188a75bc7ae8c327ba48ffb |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Small code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72057 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
cde5d63d909c2c3b9c2a30cef107f77a7a556deb |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Small code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72057 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
|
8730786d9d61ca07337168703d6d489bcccfceca |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
RecordVariable is called each time a DECLARE node is encountered. For an inlined function, this could be many, many times. We don't want to re-add variables to that DIE for each time. We just want to add them once. Check to make sure that we haven't added them already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72047 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
6679ee4e805f606264ed4e03449b957c9212cfb6 |
19-May-2009 |
Bill Wendling <isanbard@gmail.com> |
RecordVariable is called each time a DECLARE node is encountered. For an inlined function, this could be many, many times. We don't want to re-add variables to that DIE for each time. We just want to add them once. Check to make sure that we haven't added them already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72047 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
|
dd7395fca55493963842a17017fde4e683b546f6 |
18-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix CodePlacementOpt::OptimizeIntraLoopEdges so that its return value correctly indicates whether it changed the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72038 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
8ad05c4bdf2739742131adbab247e5c8ee0df857 |
18-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix CodePlacementOpt::OptimizeIntraLoopEdges so that its return value correctly indicates whether it changed the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72038 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
8d4e3038f1a00e63afb589dcfc17213f37aebfd8 |
18-May-2009 |
Lang Hames <lhames@gmail.com> |
New Spiller interface and trivial implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72030 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
e2b201bac382464496758d789cddefa50690fbe3 |
18-May-2009 |
Lang Hames <lhames@gmail.com> |
New Spiller interface and trivial implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72030 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
piller.cpp
piller.h
|
7fb88bf0d090098142480431583a1f5d0c5bfdc1 |
18-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert last commit. It was wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
805da894cf7976e85ed001633fcaafbb5842dcf8 |
18-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert last commit. It was wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
087f6072c6c518c7693465989498d131af84619e |
18-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't call RegionInlinedFnEnd if our optimization level isn't -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72024 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
15ffc0826782bb498f4ea2722aa15f28cffd04ec |
18-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't call RegionInlinedFnEnd if our optimization level isn't -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72024 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a95d96c283d767f95b122f8064a3497ffb7ced07 |
18-May-2009 |
Daniel Dunbar <daniel@zuster.org> |
Silence Release-Asserts warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
8c562e2d25d319f8bde7a1a60142203f316a2883 |
18-May-2009 |
Daniel Dunbar <daniel@zuster.org> |
Silence Release-Asserts warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
1ba46a17e1b0ca9289352bfd658eaf341637e8b3 |
18-May-2009 |
Lang Hames <lhames@gmail.com> |
Prevented reg0 from being added to MBB live-in set, which was causing issues for PostRAScheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71991 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
b0e519f2bf201d96d304cb9fd330a5e1b38536fe |
18-May-2009 |
Lang Hames <lhames@gmail.com> |
Prevented reg0 from being added to MBB live-in set, which was causing issues for PostRAScheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71991 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
3040aa83ec24bd920c00225ae7070501286eb57f |
17-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename MachineVerifier pass to avoid command line collision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71987 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
de67a51b66964e95df05cd2192c05c77dccfa4c9 |
17-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename MachineVerifier pass to avoid command line collision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71987 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
cfc790a3d3fa9013ffc76c7103969a1e2a65093a |
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that explicit definitions in the TargetInstrDesc are matched by explicit register define operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71933 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
44b27e5c7522e0e2e1a48efefceab8508db711b9 |
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify that explicit definitions in the TargetInstrDesc are matched by explicit register define operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71933 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
b71109bf98ce1ad178e9ff322072390743352c0b |
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow redefinition of reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71932 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
d6fb97761e65fd0db19cd48e22dd05d211822d47 |
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow redefinition of reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71932 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
de74b17e55b3d9511ae5cd0ebf4c2c34f26a42f5 |
16-May-2009 |
Duncan Sands <baldrick@free.fr> |
Put back a bit of expensive checking logic that was overenthusiastically deleted in r70234. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
0394c4fb3d271b3a6736f167b812bbe445ddb5e9 |
16-May-2009 |
Duncan Sands <baldrick@free.fr> |
Put back a bit of expensive checking logic that was overenthusiastically deleted in r70234. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
6609dfae0187909b5d35c3139d995297f8ff4529 |
16-May-2009 |
Duncan Sands <baldrick@free.fr> |
Pacify gcc-4.3, which suggests explicit braces here to avoid an ambiguous else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71924 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
e556720ea8d60581c95d3ca3f9175a3688150d95 |
16-May-2009 |
Duncan Sands <baldrick@free.fr> |
Pacify gcc-4.3, which suggests explicit braces here to avoid an ambiguous else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71924 91177308-0d34-0410-b5e6-96231b3b80d8
achineVerifier.cpp
|
ac32dd9c5f1c6c6dab23a47068498c30b1d087f0 |
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass to verify generated machine code. The following is checked: * Operand counts: All explicit operands must be present. * Register classes: All physical and virtual register operands must be compatible with the register class required by the instruction descriptor. * Register live intervals: Registers must be defined only once, and must be defined before use. The machine code verifier is enabled with the command-line option '-verify-machineinstrs', or by defining the environment variable LLVM_VERIFY_MACHINEINSTRS to the name of a file that will receive all the verifier errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71918 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LVMTargetMachine.cpp
achineVerifier.cpp
|
48872e0d84b47769be6c13ae98bf88468b59d921 |
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass to verify generated machine code. The following is checked: * Operand counts: All explicit operands must be present. * Register classes: All physical and virtual register operands must be compatible with the register class required by the instruction descriptor. * Register live intervals: Registers must be defined only once, and must be defined before use. The machine code verifier is enabled with the command-line option '-verify-machineinstrs', or by defining the environment variable LLVM_VERIFY_MACHINEINSTRS to the name of a file that will receive all the verifier errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71918 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
LVMTargetMachine.cpp
achineVerifier.cpp
|
b12b3d77fc304842357a7fa909d8bf553e8f9674 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out the DwarfDebug module from the DwarfWriter module. Again, no intendtional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71854 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
0310d768a1e267935729fdeee0d677ebf7095cb3 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out the DwarfDebug module from the DwarfWriter module. Again, no intendtional functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71854 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
smPrinter/DwarfDebug.cpp
smPrinter/DwarfDebug.h
smPrinter/DwarfException.h
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
a8990a148db19a4d8aab0f3f03515f9159e98666 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Mark class as hidden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71850 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
e428e21033e7a5d9b88c5607c77583ca7a4e2b3d |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Mark class as hidden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71850 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.h
|
e339dcbc8fcbf9448183f671522b5abf5fc56e3c |
15-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4210. Rewritter should track and update kills of sub-registers as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71848 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
427a6b666bce6069b0578ce75b63d80dc684b09d |
15-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4210. Rewritter should track and update kills of sub-registers as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71848 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegRewriter.cpp
|
0530f42b442cdcca775f7163b95b5b0d99a4a9b4 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Move c'tor/d'tor to top of file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
bc0d23afae781c45f92865c1c27bed0ce51fe545 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Move c'tor/d'tor to top of file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
|
1b43db78c5c5354f666bce235202615398cd49d0 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out the DwarfException class into its own file. No functionality change, though the classes have been marked with "VISIBILITY_HIDDEN". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71827 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfWriter.cpp
|
eb9072195ca7d777a71194dcaaaa369d82f24f53 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out the DwarfException class into its own file. No functionality change, though the classes have been marked with "VISIBILITY_HIDDEN". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71827 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfException.cpp
smPrinter/DwarfException.h
smPrinter/DwarfWriter.cpp
|
bbee8c925518db5831184ea13fa5abb7b4292561 |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out the Dwarf writer stuff into separate files. This is a much more logical/sane approach to organizing all of the stuff that goes into writing out DWARF information. Honestly? even this is too complex for what it's supposed to be doing. Trivia: It *looks* like there would be functionality changes, however there aren't! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71821 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
88423eecd0f16d3cfa89bdf92abdb72a5dc0616a |
15-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Split out the Dwarf writer stuff into separate files. This is a much more logical/sane approach to organizing all of the stuff that goes into writing out DWARF information. Honestly? even this is too complex for what it's supposed to be doing. Trivia: It *looks* like there would be functionality changes, however there aren't! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71821 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DIE.cpp
smPrinter/DIE.h
smPrinter/DwarfLabel.cpp
smPrinter/DwarfLabel.h
smPrinter/DwarfPrinter.cpp
smPrinter/DwarfPrinter.h
smPrinter/DwarfWriter.cpp
|
f60642422fcb0e79d00f323b8f649f17de36cf91 |
14-May-2009 |
Owen Anderson <resistor@mac.com> |
Down with static variables! Part one of many. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71785 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
2b2c0d716a6a6ebdf5fdb805d9a639dcc057d83a |
14-May-2009 |
Owen Anderson <resistor@mac.com> |
Down with static variables! Part one of many. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71785 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
ae6cc68b932414b5f2cbe054fe4b04f5fe71e271 |
14-May-2009 |
Mike Stump <mrs@apple.com> |
Tag blocks with DW_AT_APPLE_block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a681515ee695b9209f49998588e27a33f40a8881 |
14-May-2009 |
Mike Stump <mrs@apple.com> |
Tag blocks with DW_AT_APPLE_block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71784 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f3dc37daa7bab1dc018aedb9937a560c75e4e5bb |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r71744. I must not have understood this correctly, because the assertion is failing for some tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71779 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
4bb3374b6d11a8a4ec1b174f0404bd6cbd2d00b9 |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r71744. I must not have understood this correctly, because the assertion is failing for some tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71779 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
61885d7c56da33282dd5b62093b0e59bd8761807 |
14-May-2009 |
Lang Hames <lhames@gmail.com> |
Fix for PR4124. Make TwoAddressFormPass::FindLastUseInMBB return the real last use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71769 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
a7c9deaa2b1df30808db376bdfcba7f2e54e59d1 |
14-May-2009 |
Lang Hames <lhames@gmail.com> |
Fix for PR4124. Make TwoAddressFormPass::FindLastUseInMBB return the real last use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71769 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b875cf55f4406d6ad2f82001e992ce403673cf25 |
14-May-2009 |
Dan Gohman <gohman@apple.com> |
Add an assert to turn a segfault on an unsupported inline asm construct into an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e340e84196af8618b623d499a040150373ae5da4 |
14-May-2009 |
Dan Gohman <gohman@apple.com> |
Add an assert to turn a segfault on an unsupported inline asm construct into an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
66e789edc2eba97b56b7f7c13b38f09f617e4c1b |
14-May-2009 |
Bill Wendling <isanbard@gmail.com> |
There's yet more ugliness (surprise!) in DebugInfo. This needs major reworking. Basically, there was a situation where it was getting an empty vector and doing a .back() on that. Which isn't cool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71746 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f59d10f1bc7167db39b65ecf6eee95a1ca7562e4 |
14-May-2009 |
Bill Wendling <isanbard@gmail.com> |
There's yet more ugliness (surprise!) in DebugInfo. This needs major reworking. Basically, there was a situation where it was getting an empty vector and doing a .back() on that. Which isn't cool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71746 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
bf13a45a412e64ca3a5ead06fa425a90bcbe749f |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
The IfConverter::MergeBlocks method appears to be used only to merge a basic block with its unique predecessor. Change the code to assert if that is not the case, instead of trying to handle situations where the block has multiple predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71744 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
df1ed678904e65192ecdee9bd695f803c550ed68 |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
The IfConverter::MergeBlocks method appears to be used only to merge a basic block with its unique predecessor. Change the code to assert if that is not the case, instead of trying to handle situations where the block has multiple predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71744 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a0929a18ae6341fa1fcc786965cf3d5190ef4d2a |
14-May-2009 |
Jim Grosbach <grosbach@apple.com> |
Removing the HasBuiltinSetjmp flag and associated bits. Flagging the presence of exception handling builtin sjlj targets in functions turns out not to be necessary. Marking the intrinsic implementation in the .td file as defining all registers is sufficient to get the context saved properly by the containing function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71743 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
|
2afb3b7251dbcfadef7a8126e9516bde78fc13bb |
14-May-2009 |
Jim Grosbach <grosbach@apple.com> |
Removing the HasBuiltinSetjmp flag and associated bits. Flagging the presence of exception handling builtin sjlj targets in functions turns out not to be necessary. Marking the intrinsic implementation in the .td file as defining all registers is sufficient to get the context saved properly by the containing function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71743 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
|
58c9e3ca46ee2d0decc713dfac032b0dda4f7e6b |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert a portion of Dan's change r71018 that I'm convinced is wrong. Dan was trying to catch the case where a basic block ends with a conditional branch to the fall-through block. In this case, all the instructions have been moved out of FromBBI, leaving it empty. It cannot end with a conditional branch. As the existing comment indicates, it will always fall through to the next block. If the block already had the next block (NBB) listed as a successor, the preceding loop has a check for that and does not remove it. Thus, we need to check and add the successor only when it is not already listed. With Dan's change, the empty block often ends up with the fall-through successor listed twice. This exposed the problem in pr4195, where CodePlacementOpt did not handle the same predecessor listed more than once. It is also at least partially responsible for pr4202 and probably a similar issue with Thumb branches being out of range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71742 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
8308e8fae0dad2dff22f0cedbfb5e1be3a146375 |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert a portion of Dan's change r71018 that I'm convinced is wrong. Dan was trying to catch the case where a basic block ends with a conditional branch to the fall-through block. In this case, all the instructions have been moved out of FromBBI, leaving it empty. It cannot end with a conditional branch. As the existing comment indicates, it will always fall through to the next block. If the block already had the next block (NBB) listed as a successor, the preceding loop has a check for that and does not remove it. Thus, we need to check and add the successor only when it is not already listed. With Dan's change, the empty block often ends up with the fall-through successor listed twice. This exposed the problem in pr4195, where CodePlacementOpt did not handle the same predecessor listed more than once. It is also at least partially responsible for pr4202 and probably a similar issue with Thumb branches being out of range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71742 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
5ef3c8b6bdc59c96aecacd1a86a475ac5861118d |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Merge adjacent conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71741 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
596e22e2b3a1375bad678eb1c5e95b3188a0532b |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Merge adjacent conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71741 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
36c1b67f28b29174019bdbcbe65c61af8d9e2bc0 |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71740 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e19fb7de631acc4e50653926fe023d35be0293e2 |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71740 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
4a2f20d18bce69674e96a05bfd0044b0eff2c199 |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix some typos and spelling and grammar, mostly in comments, but also one field name. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71739 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
9c4856a4cf90155312181bf85e47f6149ba15034 |
14-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix some typos and spelling and grammar, mostly in comments, but also one field name. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71739 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
79566823f83e7dc1719c5212404acf8995c1c4a0 |
13-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Run code placement optimization for targets that want it (arm and x86 for now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71726 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
electionDAG/TargetLowering.cpp
|
6ebf7bc7405ee79d27d50b70f0c1a474cbea820d |
13-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Run code placement optimization for targets that want it (arm and x86 for now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71726 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
electionDAG/TargetLowering.cpp
|
2b739762c5444433753e4d3a141ff20f40636611 |
13-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Change MachineInstrBuilder::addReg() to take a flag instead of a list of booleans. This gives a better indication of what the "addReg()" is doing. Remembering what all of those booleans mean isn't easy, especially if you aren't spending all of your time in that code. I took Jakob's suggestion and made it illegal to pass in "true" for the flag. This should hopefully prevent any unintended misuse of this (by reverting to the old way of using addReg()). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71722 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
587daedce2d6c2b2d380b6a5843a6f8b6cfc79e4 |
13-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Change MachineInstrBuilder::addReg() to take a flag instead of a list of booleans. This gives a better indication of what the "addReg()" is doing. Remembering what all of those booleans mean isn't easy, especially if you aren't spending all of your time in that code. I took Jakob's suggestion and made it illegal to pass in "true" for the flag. This should hopefully prevent any unintended misuse of this (by reverting to the old way of using addReg()). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71722 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
496eea903bf7d198e5bb676f8c60d1c24b2bacdb |
13-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Move the bookkeeping of the debug scopes back to the place where it belonged. The variable declaration stuff wasn't happy with it where it was. Sorry that the testcase is so big. Bugpoint wasn't able to reduce it successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f3cc96e1f3645aa4c4cae37f87d2ece3b9d35f80 |
13-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Move the bookkeeping of the debug scopes back to the place where it belonged. The variable declaration stuff wasn't happy with it where it was. Sorry that the testcase is so big. Bugpoint wasn't able to reduce it successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
aa5e7c20341f9c0e8210e065dba9b85e7e5dc960 |
13-May-2009 |
John Mosby <ojomojo@gmail.com> |
PEI: rename PEI.h to PrologEpilogInserter.h to adhere to file naming standard git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71678 91177308-0d34-0410-b5e6-96231b3b80d8
EI.h
rologEpilogInserter.cpp
rologEpilogInserter.h
hrinkWrapping.cpp
|
752c1df73949438ef6fa86a86363ee7091aa2532 |
13-May-2009 |
John Mosby <ojomojo@gmail.com> |
PEI: rename PEI.h to PrologEpilogInserter.h to adhere to file naming standard git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71678 91177308-0d34-0410-b5e6-96231b3b80d8
EI.h
rologEpilogInserter.cpp
rologEpilogInserter.h
hrinkWrapping.cpp
|
a28251d927079e8aca6fe3f8748126a616d7ef60 |
13-May-2009 |
Chris Lattner <sabre@nondot.org> |
add ShrinkWrapping.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71645 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
9422e01a63758de4be2acb85d41d5d4676c1c749 |
13-May-2009 |
Chris Lattner <sabre@nondot.org> |
add ShrinkWrapping.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71645 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
52f7e149c0ba489dad202e2f21f1846380ec52cf |
13-May-2009 |
Lang Hames <lhames@gmail.com> |
Fix for PR4121. If TwoAddressInstructionPass removes a dead def, and the regB operand was killed, the kill needs to be removed from regB's VarInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71635 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
60dc7345eb1543546064a35c7c2c4ea08b40f9c0 |
13-May-2009 |
Lang Hames <lhames@gmail.com> |
Fix for PR4121. If TwoAddressInstructionPass removes a dead def, and the regB operand was killed, the kill needs to be removed from regB's VarInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71635 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c10915b85165887e1886179338c7d14925f95c52 |
13-May-2009 |
Jim Grosbach <grosbach@apple.com> |
Add support for GCC compatible builtin setjmp and longjmp intrinsics. This is a supporting preliminary patch for GCC-compatible SjLJ exception handling. Note that these intrinsics are not designed to be invoked directly by the user, but rather used by the front-end as target hooks for exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71610 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
|
0e0da734bbdfa1d3f55cd04db31d83b97e4556f7 |
13-May-2009 |
Jim Grosbach <grosbach@apple.com> |
Add support for GCC compatible builtin setjmp and longjmp intrinsics. This is a supporting preliminary patch for GCC-compatible SjLJ exception handling. Note that these intrinsics are not designed to be invoked directly by the user, but rather used by the front-end as target hooks for exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71610 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
|
c4ee366f3ae6c503cbd09b1d25cd964bd5c800bc |
13-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
If header of inner loop is aligned, do not align the outer loop header. We don't want to add nops in the outer loop for the sake of aligning the inner loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71609 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
9d3094b38e51c85e93fc5a9c8ab23c95b73f78d4 |
13-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
If header of inner loop is aligned, do not align the outer loop header. We don't want to add nops in the outer loop for the sake of aligning the inner loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71609 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
5f35694aaf02377dbccf3f86264a99c252a7ebf1 |
13-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach TransferDeadness to delete truly dead instructions if they do not produce side effects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71606 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegRewriter.cpp
|
eca24fba3fccb08ed822827601a0da32bf1d508d |
13-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach TransferDeadness to delete truly dead instructions if they do not produce side effects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71606 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegRewriter.cpp
|
b6052aad4af9b3e8762889468d44937e118dc827 |
12-May-2009 |
John Mosby <ojomojo@gmail.com> |
Restructure PEI code: - moved shrink wrapping code from PrologEpilogInserter.cpp to new file ShrinkWrapping.cpp. - moved PEI pass definition into new shared header PEI.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71588 91177308-0d34-0410-b5e6-96231b3b80d8
EI.h
rologEpilogInserter.cpp
hrinkWrapping.cpp
|
378553cb079aba2b8dee5d52b5166316d4132d5a |
12-May-2009 |
John Mosby <ojomojo@gmail.com> |
Restructure PEI code: - moved shrink wrapping code from PrologEpilogInserter.cpp to new file ShrinkWrapping.cpp. - moved PEI pass definition into new shared header PEI.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71588 91177308-0d34-0410-b5e6-96231b3b80d8
EI.h
rologEpilogInserter.cpp
hrinkWrapping.cpp
|
e409488573ad1a2a0da98278ebe081ad5d71f655 |
12-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Switch to using IRBuilder throughout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71587 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
e1e201416ae8ab40d31d223c5d560ee0f635e05a |
12-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Switch to using IRBuilder throughout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71587 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
4f2dfd2cc9494af61eed8c1498fbf1039ceeda0b |
12-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a stack slot coloring with reg bug: do not update implicit use / def when doing forward / backward propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71574 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
1ea7327845bcd0996425c9892730bf9b1f123f20 |
12-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a stack slot coloring with reg bug: do not update implicit use / def when doing forward / backward propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71574 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
7cf4d88dcdc127b26f5e29fafbc4f751fa9a0841 |
12-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr4195: When iterating through predecessor blocks, break out of the loop after finding the (unique) layout predecessor. Sometimes a block may be listed more than once, and processing it more than once in this loop can lead to inconsistent values for FtTBB/FtFBB, since the AnalyzeBranch method does not clear these values. There's no point in continuing the loop regardless. The testcase for this is reduced from the 2003-05-02-DependentPHI SingleSource test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71536 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
74b0ccc577062a25b8b3ab99b13cd1efa6e3a75a |
12-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr4195: When iterating through predecessor blocks, break out of the loop after finding the (unique) layout predecessor. Sometimes a block may be listed more than once, and processing it more than once in this loop can lead to inconsistent values for FtTBB/FtFBB, since the AnalyzeBranch method does not clear these values. There's no point in continuing the loop regardless. The testcase for this is reduced from the 2003-05-02-DependentPHI SingleSource test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71536 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
dea0ec265e17840423c49ee1608bc8d9d3205037 |
12-May-2009 |
Bill Wendling <isanbard@gmail.com> |
- Record that the debug info is actually used so that the label folder doesn't blast it away. - Move InlineInfo bookkeeping to bookkeep the correct debug info object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71519 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
bc12c2be1822af07c1737cdb1c2dc9b117bb6a28 |
12-May-2009 |
Bill Wendling <isanbard@gmail.com> |
- Record that the debug info is actually used so that the label folder doesn't blast it away. - Move InlineInfo bookkeeping to bookkeep the correct debug info object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71519 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
36bec3239dced2c84f447b4e6bc78c67d2c11779 |
12-May-2009 |
Lang Hames <lhames@gmail.com> |
Fixed PR4090. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71495 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9c992f1141ac2c440f7e3016b0d5ac841fbc0c4e |
12-May-2009 |
Lang Hames <lhames@gmail.com> |
Fixed PR4090. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71495 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f80313754347ecd52f7240afd80a6b1bc1d9bc7e |
11-May-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR4188. TailMerging can't tolerate inexact sucessor info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71478 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
bf06f6a6f1be0802ad7b761138ecba568814008a |
11-May-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR4188. TailMerging can't tolerate inexact sucessor info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71478 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
e8a03eb18b8b0dd1b2b97871d773d839e9cb0550 |
11-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Apply patch review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71472 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
fb3bd472a1a987a97754137914016dbd78c7d5c7 |
11-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Apply patch review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71472 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
714cea3af986b10a529df5d8f370530b25cbaaab |
11-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak non-debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71457 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
6afd198fd8bb3b1985182ea990a3b98f50ef7b79 |
11-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak non-debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71457 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
6c0889b77574915a0a749892c6bdba45c871ff29 |
11-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71456 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
ec51b58b1c9b58087e74eff7717205f277e3013b |
11-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71456 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
c13b734801e96c20256f0659c5ead91ba95caea3 |
11-May-2009 |
Dan Gohman <gohman@apple.com> |
When scalarizing a vector BITCAST, check whether the operand has vector type, rather than assume that it does. If the operand is not vector, it shouldn't be run through ScalarizeVectorOp. This fixes one of the testcases in PR3886. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4e3fdf2c0fc58af9b3b52924708a6d162a52ba5f |
11-May-2009 |
Dan Gohman <gohman@apple.com> |
When scalarizing a vector BITCAST, check whether the operand has vector type, rather than assume that it does. If the operand is not vector, it shouldn't be run through ScalarizeVectorOp. This fixes one of the testcases in PR3886. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e5497d83bb451d19e4651c0bc257ccbcbb87fb10 |
11-May-2009 |
John Mosby <ojomojo@gmail.com> |
Shrink wrapping in PEI: - reduces _static_ callee saved register spills and restores similar to Chow's original algorithm. - iterative implementation with simple heuristic limits to mitigate compile time impact. - handles placing spills/restores for multi-entry, multi-exit regions in the Machine CFG without splitting edges. - passes test-suite in LLCBETA mode. Added contains() method to ADT/SparseBitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71438 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b9cfbd94abb23ec8646b9b10aa4ac3d1cbf4461e |
11-May-2009 |
John Mosby <ojomojo@gmail.com> |
Shrink wrapping in PEI: - reduces _static_ callee saved register spills and restores similar to Chow's original algorithm. - iterative implementation with simple heuristic limits to mitigate compile time impact. - handles placing spills/restores for multi-entry, multi-exit regions in the Machine CFG without splitting edges. - passes test-suite in LLCBETA mode. Added contains() method to ADT/SparseBitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71438 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4c4839d12ca71438a1e51e7e8faa0f3d7868ef8f |
11-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Don't generate redundant casts of constant values when lowering calls to memcpy, memmove and memset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71427 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
589b1efe1b83a43cf89a41841664ce0b4ae3e838 |
11-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Don't generate redundant casts of constant values when lowering calls to memcpy, memmove and memset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71427 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
a89e67d2c564284dd49e806956d424db15a1e576 |
11-May-2009 |
Bill Wendling <isanbard@gmail.com> |
This is a large rewrite of how Dwarf info for inlined functions is handled. The DwarfWriter expects DbgScopes and DIEs to behave themselves according to DwarfWriter's rules. However, inlined functions violate these rules. There are two different types of DIEs associated with an inlined function: an abstract instance, which has information about the original source code for the function being inlined; and concrete instances, which are created for each place the function was inlined and point back to the abstract instance. This patch tries to stay true to this schema. It bypasses how regular DbgScopes and DIEs are created and used when necessary. It provides special handling for DIEs of abstract and concrete instances. This doesn't take care of all of the problems with debug info for inlined functions, but it's a step in the right direction. For one thing, llvm-gcc generates wrong IR (it's missing some llvm.dbg intrinsics at the point where the function's inlined) for this example: #include <stdio.h> static __inline__ __attribute__((always_inline)) int bar(int x) { return 4; } void foo() { long long b = 1; int Y = bar(4); printf("%d\n", Y); } while clang generates correct IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a5c8a4e4e6b2478675bf55007a3adc34dceb74ea |
11-May-2009 |
Bill Wendling <isanbard@gmail.com> |
This is a large rewrite of how Dwarf info for inlined functions is handled. The DwarfWriter expects DbgScopes and DIEs to behave themselves according to DwarfWriter's rules. However, inlined functions violate these rules. There are two different types of DIEs associated with an inlined function: an abstract instance, which has information about the original source code for the function being inlined; and concrete instances, which are created for each place the function was inlined and point back to the abstract instance. This patch tries to stay true to this schema. It bypasses how regular DbgScopes and DIEs are created and used when necessary. It provides special handling for DIEs of abstract and concrete instances. This doesn't take care of all of the problems with debug info for inlined functions, but it's a step in the right direction. For one thing, llvm-gcc generates wrong IR (it's missing some llvm.dbg intrinsics at the point where the function's inlined) for this example: #include <stdio.h> static __inline__ __attribute__((always_inline)) int bar(int x) { return 4; } void foo() { long long b = 1; int Y = bar(4); printf("%d\n", Y); } while clang generates correct IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
9f5cd6ac683b552c750e10741d654b5c75dd61a7 |
10-May-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging r71370 into '.': U lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp Revert r71370. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c677fe5abaf903a3a5cb8fbd8e515c46e9e7a537 |
10-May-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging r71370 into '.': U lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp Revert r71370. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ff1fe04ab0bf21cd4e91bc13ad181bf5e5fdbee9 |
10-May-2009 |
Bill Wendling <isanbard@gmail.com> |
A debug function start was not being recorded when the optimization level wasn't None. However, we were always recording the region end. There's no longer a good reason for this code to be separated out between the different opt levels, as it was doing pretty much the same thing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e34b723d3ef31463210dcc538b3873d3841133f3 |
10-May-2009 |
Bill Wendling <isanbard@gmail.com> |
A debug function start was not being recorded when the optimization level wasn't None. However, we were always recording the region end. There's no longer a good reason for this code to be separated out between the different opt levels, as it was doing pretty much the same thing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ae8fc330f0b16d4453c66a4445d2ebc340532772 |
09-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Don't forget to align single bb loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71363 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
5374405dc12673e6c07869132faf7b837e95dc79 |
09-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Don't forget to align single bb loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71363 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
ec4f97dd91023f63e05e94a333cdd2d4c57efedf |
09-May-2009 |
Duncan Sands <baldrick@free.fr> |
Rename PaddedSize to AllocSize, in the hope that this will make it more obvious what it represents, and stop it being confused with the StoreSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOWriter.cpp
achOWriter.h
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
777d2306b36816a53bc1ae1244c0dc7d998ae691 |
09-May-2009 |
Duncan Sands <baldrick@free.fr> |
Rename PaddedSize to AllocSize, in the hope that this will make it more obvious what it represents, and stop it being confused with the StoreSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOWriter.cpp
achOWriter.h
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
5cae0f2f762a1d620879f332a79803cc2fc8f0e7 |
09-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable loop bb placement optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71291 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
f045f80ba9af29fc8e0409201ad66c8f2e1a527c |
09-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable loop bb placement optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71291 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
c28dd52a62a4b92eeb825cff3bec28e4f66df7e0 |
09-May-2009 |
Mike Stump <mrs@apple.com> |
Avoid warning in release-asserts build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71275 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
1e8f072f1948de43a0c1c71e00e83e7bb192d7cb |
09-May-2009 |
Mike Stump <mrs@apple.com> |
Avoid warning in release-asserts build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71275 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
06b55d4444a31f816fb2ee27c5811a7382c0f9ab |
08-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Mirror how Fast ISel determines if a region.end intrinsic is the end of an inlined function or the end of a function. Before, this was never executing the "inlined" version of the Record method. This will become important once the inlined Dwarf writer patch lands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6c4311dddbb57b0e4cdd30c37863706efe70cf9d |
08-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Mirror how Fast ISel determines if a region.end intrinsic is the end of an inlined function or the end of a function. Before, this was never executing the "inlined" version of the Record method. This will become important once the inlined Dwarf writer patch lands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f7e625587a1af7c6d27133644fa80e205473d41e |
08-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Compute the offsets of the compile units. We need this so that when we emit a concrete instance of an inlined function, we can get the actual address of the abstract instance inside of the compile unit. This isn't currently used, but will be by a future check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71263 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e688fafd3802aabab827293a520f18ec27d00fd7 |
08-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Compute the offsets of the compile units. We need this so that when we emit a concrete instance of an inlined function, we can get the actual address of the abstract instance inside of the compile unit. This isn't currently used, but will be by a future check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71263 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c2f701adef998a9673140708a1b9525cc9e676f8 |
08-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Minor clean ups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71256 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a9519579b7134343b9b9520f8b1862baf8d872d5 |
08-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Minor clean ups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71256 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
460fd7c9b0fa2e9e722164d77e4d542b1f3e11c1 |
08-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't align loop header unless the loop back edge is below the header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71242 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
0269d3cbf37227c48b7ce0f9710f0c6a15ff6fa9 |
08-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't align loop header unless the loop back edge is below the header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71242 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
da76d3224301c785aa971e60c20a75dd1bd8f52b |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out cycle-finder code and make it generic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71241 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c1c6ef8f74fc550f29cfec1f2fb699dd8c2fb94e |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out cycle-finder code and make it generic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71241 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3dfbdffbcff49319156b0f5c8910cfbb9c926ca8 |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Do not emit bit tests if target does not support natively left shift git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
d34167a4abbe576bef7dbe1b88771f09afc82a72 |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Do not emit bit tests if target does not support natively left shift git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
5ee420258bca87825efaad969a5441f9367b231d |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly expand libcalls for urem / srem. Also make code more straightforward. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71238 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
58c04e149629956185cdaa3b021793189008c0d2 |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly expand libcalls for urem / srem. Also make code more straightforward. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71238 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ba8652dbb02911c1e43c3dd6ad21813021a2f4ed |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71237 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
fb3f84fe16219467cef4ed181530e846177cb4df |
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71237 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6e7ac420dfc4c65af9f5deb8f7280e8164144bfe |
08-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Reverse branch condition only when there is a conditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71214 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
4b7f7a6e1f3eacf116472c1b0d0eaddf01fa4495 |
08-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Reverse branch condition only when there is a conditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71214 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
c6368b6c0d6cb635be3a12698af0e97609f30fe5 |
08-May-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Add explicit braces to disambiguate nested if/else. Removes a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71211 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
0ab2dcee5bf751211ca1fc49decb1540b4cb427c |
08-May-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Add explicit braces to disambiguate nested if/else. Removes a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71211 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
67bf8e2b3944b74e0a0c483c54b12f2c02a4b758 |
08-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Optimize code placement in loop to eliminate unconditional branches or move unconditional branch to the outside of the loop. e.g. /// A: /// ... /// <fallthrough to B> /// /// B: --> loop header /// ... /// jcc <cond> C, [exit] /// /// C: /// ... /// jmp B /// /// ==> /// /// A: /// ... /// jmp B /// /// C: --> new loop header /// ... /// <fallthough to B> /// /// B: /// ... /// jcc <cond> C, [exit] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71209 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
45e0010e14d419ebeca9266b9b705867fd251b83 |
08-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Optimize code placement in loop to eliminate unconditional branches or move unconditional branch to the outside of the loop. e.g. /// A: /// ... /// <fallthrough to B> /// /// B: --> loop header /// ... /// jcc <cond> C, [exit] /// /// C: /// ... /// jmp B /// /// ==> /// /// A: /// ... /// jmp B /// /// C: --> new loop header /// ... /// <fallthough to B> /// /// B: /// ... /// jcc <cond> C, [exit] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71209 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
a43eb6bb7064b0fe2d441a05e9d13bc811bd729b |
08-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr4100. Do not remove no-op copies when they are dead. The register scavenger gets confused about register liveness if it doesn't see them. I'm not thrilled with this solution, but it only comes up when there are dead copies in the code, which is something that hopefully doesn't happen much. Here is what happens in pr4100: As shown in the following excerpt from the debug output of llc, the source of a move gets reloaded from the stack, inserting a new load instruction before the move. Since that source operand is a kill, the physical register is free to be reused for the destination of the move. The move ends up being a no-op, copying R3 to R3, so it is deleted. But, it leaves behind the load to reload %reg1028 into R3, and that load is not updated to show that it's destination operand (R3) is dead. The scavenger gets confused by that load because it thinks that R3 is live. Starting RegAlloc of: %reg1025<def,dead> = MOVr %reg1028<kill>, 14, %reg0, %reg0 Regs have values: Reloading %reg1028 into R3 Last use of R3[%reg1028], removing it from live set Assigning R3 to %reg1025 Register R3 [%reg1025] is never used, removing it from live set Alternative solutions might be either marking the load as dead, or zapping the load along with the no-op copy. I couldn't see an easy way to do either of those, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71196 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
9d928c223fce575edb67273823f6d76ae05166f2 |
08-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr4100. Do not remove no-op copies when they are dead. The register scavenger gets confused about register liveness if it doesn't see them. I'm not thrilled with this solution, but it only comes up when there are dead copies in the code, which is something that hopefully doesn't happen much. Here is what happens in pr4100: As shown in the following excerpt from the debug output of llc, the source of a move gets reloaded from the stack, inserting a new load instruction before the move. Since that source operand is a kill, the physical register is free to be reused for the destination of the move. The move ends up being a no-op, copying R3 to R3, so it is deleted. But, it leaves behind the load to reload %reg1028 into R3, and that load is not updated to show that it's destination operand (R3) is dead. The scavenger gets confused by that load because it thinks that R3 is live. Starting RegAlloc of: %reg1025<def,dead> = MOVr %reg1028<kill>, 14, %reg0, %reg0 Regs have values: Reloading %reg1028 into R3 Last use of R3[%reg1028], removing it from live set Assigning R3 to %reg1025 Register R3 [%reg1025] is never used, removing it from live set Alternative solutions might be either marking the load as dead, or zapping the load along with the no-op copy. I couldn't see an easy way to do either of those, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71196 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
219866c4588318c77387bb64eb2a91f728cd183a |
07-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment (again). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71180 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
8d24f4124ea7478fa289f581681c9dff61368c8f |
07-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment (again). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71180 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
d983fb418f8ba28824a7c0632460ac5513800d34 |
07-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71179 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e0f745b54e1e54f67e3419ea976736817b61e1ed |
07-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71179 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
d46dc02a07aa1fe353174d8b73aa1541bb0c1ec6 |
07-May-2009 |
Dan Gohman <gohman@apple.com> |
Revert 71165. It did more than just revert 71158 and it introduced several regressions. The problem due to 71158 is now fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71176 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
9a38e3e3991ea443e555d8060f91202a786acdd4 |
07-May-2009 |
Dan Gohman <gohman@apple.com> |
Revert 71165. It did more than just revert 71158 and it introduced several regressions. The problem due to 71158 is now fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71176 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
d32c972780409e0415302847e3969acbb9ed9ad9 |
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71158. It was causing a failure during a full bootstrap: checking for bcopy... no checking for getc_unlocked... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decUtility.c:360: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decUtility.o] Error 1 make[4]: *** Waiting for unfinished jobs.... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decNumber.c:5591: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decNumber.o] Error 1 make[3]: *** [all-stage2-libdecnumber] Error 2 make[3]: *** Waiting for unfinished jobs.... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
5b8479c38532a28d86dea8ded09a30ff68f26912 |
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71158. It was causing a failure during a full bootstrap: checking for bcopy... no checking for getc_unlocked... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decUtility.c:360: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decUtility.o] Error 1 make[4]: *** Waiting for unfinished jobs.... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decNumber.c:5591: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decNumber.o] Error 1 make[3]: *** [all-stage2-libdecnumber] Error 2 make[3]: *** Waiting for unfinished jobs.... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71165 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
3f997f8f132bb391d17ac2bf2db4009338783c07 |
07-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Move the tablegen-produced DebugLoc handling into a AsmWriter::processDebugLoc function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cd76240f3d0f6c5f8c80e4762a8fe3a4de22e059 |
07-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Move the tablegen-produced DebugLoc handling into a AsmWriter::processDebugLoc function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6cc194500cc0f5c8c7b3072eda7004981dc35bf7 |
07-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71151 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
7132e12ee5658aa2b8ba6cdd81adb7944ddcb33e |
07-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71151 91177308-0d34-0410-b5e6-96231b3b80d8
odePlacementOpt.cpp
|
02482c89f1293a98133573bed5f1c3d48be94021 |
07-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename "loop aligner" pass to "code placement optimization" pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71150 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odePlacementOpt.cpp
LVMTargetMachine.cpp
oopAligner.cpp
|
bbf1db72133e9cf986e4da6260736335533067db |
07-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename "loop aligner" pass to "code placement optimization" pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71150 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odePlacementOpt.cpp
LVMTargetMachine.cpp
oopAligner.cpp
|
b1de00511ca998864d4277a998b0b27a8cf0aa1b |
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Just turn aggressive stack coloring off at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71140 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
2c1d7726f25b6b219a1518b411351b99d25c1a02 |
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Just turn aggressive stack coloring off at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71140 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
c42b73dd10fdcd8f42c13502073ae2d0d89b780e |
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71010. It was causing massive failures during self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71138 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
d0c1f9c932e9da29ea4c6e9a863f1567c6e61477 |
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71010. It was causing massive failures during self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71138 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
f4510c09b01ed377583bd9ce57756f5a45fba00b |
07-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Make DwarfWriter::RecordInlinedFnStart more like the other DwarfWriter's methods: -Have it return a label ID -Remove the unused Instruction parameter No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71132 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
116b27444a206a2831d88fea5ce34ced8184ceca |
07-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make DwarfWriter::RecordInlinedFnStart more like the other DwarfWriter's methods: -Have it return a label ID -Remove the unused Instruction parameter No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71132 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
74940d1b6928655713f4b56f33e682b950eaf81e |
06-May-2009 |
Bill Wendling <isanbard@gmail.com> |
- Move some debug fields to coincide with how GCC emits them. No functionality change. - Reformatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71118 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
3f500d935884332f23e9a1a10689aef12e332f9e |
06-May-2009 |
Bill Wendling <isanbard@gmail.com> |
- Move some debug fields to coincide with how GCC emits them. No functionality change. - Reformatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71118 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
427a8cc209def787169e2b2d7f54cdbdfab2d8ee |
06-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not use register as base ptr of pre- and post- inc/dec load / store nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
caab129cd19441817906ea5ca69e341e81c598e3 |
06-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not use register as base ptr of pre- and post- inc/dec load / store nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
053276c6a5b3011f0114ce41e0ae0dc415b99c59 |
06-May-2009 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Updated lib/CodeGen/CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71085 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
5dcf50bd03008804a7af3089e8f494f0bd8bf547 |
06-May-2009 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Updated lib/CodeGen/CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71085 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
cad542c6e68d975a35847b2a85f233ad34a004f5 |
06-May-2009 |
Duncan Sands <baldrick@free.fr> |
Add generic expansion of SUB when ADD and XOR are legal. Based on a patch by Micah Villmow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71078 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a9cad0e7e09e6d34de2fccb4f1294b7f0b8f3b68 |
06-May-2009 |
Duncan Sands <baldrick@free.fr> |
Add generic expansion of SUB when ADD and XOR are legal. Based on a patch by Micah Villmow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71078 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7cf0bfd61f42c892f1f47f731ace51a9edfc0f80 |
06-May-2009 |
Lang Hames <lhames@gmail.com> |
Renamed Spiller classes (plus uses and related files) to VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71057 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocPBQP.cpp
piller.cpp
piller.h
irtRegRewriter.cpp
irtRegRewriter.h
|
87e3bcab736e5af501b1cfbf880563d3d2244497 |
06-May-2009 |
Lang Hames <lhames@gmail.com> |
Renamed Spiller classes (plus uses and related files) to VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71057 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocPBQP.cpp
piller.cpp
piller.h
irtRegRewriter.cpp
irtRegRewriter.h
|
710011c102a0d72b1db25fa3bf49d4848bfc64a5 |
05-May-2009 |
Dan Gohman <gohman@apple.com> |
If a MachineBasicBlock has multiple ways of reaching another block, allow it to have multiple CFG edges to that block. This is needed to allow MachineBasicBlock::isOnlyReachableByFallthrough to work correctly. This fixes PR4126. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71018 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
achineBasicBlock.cpp
|
5412d06e9c352c9795f4a71b91c4f869585866eb |
05-May-2009 |
Dan Gohman <gohman@apple.com> |
If a MachineBasicBlock has multiple ways of reaching another block, allow it to have multiple CFG edges to that block. This is needed to allow MachineBasicBlock::isOnlyReachableByFallthrough to work correctly. This fixes PR4126. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71018 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
achineBasicBlock.cpp
|
b4093593a76c81520893762e237f55d86f6b5191 |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable stack coloring with regs at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71010 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
f9a9b51429b284ad85f1162592a10918c5665733 |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable stack coloring with regs at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71010 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackSlotColoring.cpp
|
88ab97408d8c4041d8bf4a2a5a8c10cae0cd565c |
05-May-2009 |
Chris Lattner <sabre@nondot.org> |
Do not require variable debug info nodes to have a compile unit. For implicit decls like "self" and "_cmd" in ObjC, these decls should not have a location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70964 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e3f6cea9e9fc65e3429a28812460841c93fd75a5 |
05-May-2009 |
Chris Lattner <sabre@nondot.org> |
Do not require variable debug info nodes to have a compile unit. For implicit decls like "self" and "_cmd" in ObjC, these decls should not have a location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70964 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
4669f7d6ee8f83e171df13736a54eca7a5f0776f |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not substitute if the new register isn't in the register class of the operand being updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70953 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
bef60d38045dbde1971f3721e0787eaa5f1d511f |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not substitute if the new register isn't in the register class of the operand being updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70953 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
8058d70a45ea6f2da3ce0b8bae81a30acfe83395 |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move getInstrOperandRegClass from the scheduler to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70950 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
d923fc621ff5b5e500977edf9236c9e34e8d7ebc |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move getInstrOperandRegClass from the scheduler to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70950 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
f7e8339e6f44a7ebec84cf2a5916cc74144cd070 |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do forward and backward substitution to eliminate loads and stores when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70937 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
c3806ea3bc3718d1f72de60e791c771c602189dc |
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do forward and backward substitution to eliminate loads and stores when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70937 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
d4c82b7b89758e475f5dedcf488deed0b0e531e9 |
05-May-2009 |
Chris Lattner <sabre@nondot.org> |
Make DBG_STOPPOINT nodes, and therefore DBG_LABEL labels, get a DebugLoc, so that it shows up in -print-machineinstrs. This doesn't appear to affect anything, but it was weird for some DBG_LABELs to have DebugLocs but not all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
af29a5235d3a1a09e9fc2989a5d504f00fa9aaf3 |
05-May-2009 |
Chris Lattner <sabre@nondot.org> |
Make DBG_STOPPOINT nodes, and therefore DBG_LABEL labels, get a DebugLoc, so that it shows up in -print-machineinstrs. This doesn't appear to affect anything, but it was weird for some DBG_LABELs to have DebugLocs but not all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
8cac493bc70438232671b5821e31aa0f086af8b9 |
04-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Restore a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70900 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
28f1412c97fc0740d6743c5226a4ddd65b72c891 |
04-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Restore a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70900 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7a969d8c47d8916099ff7a2dcb87cf42137e03c4 |
04-May-2009 |
asl <asl@91177308-0d34-0410-b5e6-96231b3b80d8> |
Fix code emission for conditional branches. Patch by Collin Winter! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70898 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
fe095f39e7009c51d1c86769792ccbcad8cdd2ec |
04-May-2009 |
Mike Stump <mrs@apple.com> |
Restore minor deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70892 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
tackSlotColoring.cpp
irtRegMap.cpp
irtRegMap.h
|
5277da7e316ea656c2b18f5f0d7b2e72bcda4a1a |
04-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make sure to color with only allocatable registers for the specific register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70821 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
59a6e9b905b4843174cebe31324fad97926d74d5 |
04-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
The stack slots which share the same stack slot after coloring can, but do not have to, use the same register. In fact, they each may have different register class requirements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70815 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
5e3ef11e85fa7208d4b08dea296680f93a46fbe0 |
04-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Revert r70803 for now, it causes a regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70811 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
1d783f9f34d2bef7772a07fe69e6d65e49182a7e |
04-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
-Remove the DwarfWriter::RecordSourceLine calls from the instruction selectors. -Depend on DebugLocs for source line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70803 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
04fa35ab13afbbc5b2f12437a256db84a27485d2 |
03-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70792 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
f102719b65afb422e9fefca3e1934e7a62be7a52 |
03-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70792 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
c781a243a3d17e7e763515794168d8fa6043f565 |
03-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all. VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants. Not yet enabled. This is part 1. More coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70787 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
tackSlotColoring.cpp
irtRegMap.cpp
irtRegMap.h
|
97c5f1ff450a19fe244fb62a35c8e36ed590670f |
03-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all. VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants. Not yet enabled. This is part 1. More coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70787 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
tackSlotColoring.cpp
irtRegMap.cpp
irtRegMap.h
|
9fe9c8ec7d7d1e260927cb66e91d5e69db8a6feb |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70770 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6e8496f2a174ad9bcd0fa147a22e8e4e9ef3a583 |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70770 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
813090cf891325c715b9f6fb1546e6ce67fa8c8b |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly handle sdiv / udiv / srem / urem libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
38da80d0f58caa6b1a4709b1c614494360c1273c |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly handle sdiv / udiv / srem / urem libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
c31642f7af64bfaed36064b52a5cb2366fd01064 |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Proper name 16 bit libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70750 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
eaef815cbd29e458410cac3ab0a3cd0811a13fa6 |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Proper name 16 bit libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70750 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2f25c2c63fdc46c3b5b093b5cbdc6729f12a413a |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add libcall expansion for 16 and 128 bit muls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
55e0249a9e49c060a94ace9c6bd36546ff24620f |
03-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add libcall expansion for 16 and 128 bit muls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
77eaa6880b8209acc05de733ebaba5d146c321a0 |
03-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
-Move the DwarfWriter::ValidDebugInfo check to a static DIDescriptor::ValidDebugInfo -Create DebugLocs without the need to have a DwarfWriter around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70682 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
2565734a60b19b69d83ca44e4a07d14e9ecb59b7 |
03-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
-Move the DwarfWriter::ValidDebugInfo check to a static DIDescriptor::ValidDebugInfo -Create DebugLocs without the need to have a DwarfWriter around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70682 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
5ee24e54d76ab86279fe196c03d6e03f5b4b3b3b |
01-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Allow CONCAT_VECTORS nodes to be legal or have custom lowering for some targets. Changes to take advantage of this will come later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
7bc6b7a57b1252c6b79b32f331bc78bf01262b58 |
01-May-2009 |
Bob Wilson <bob.wilson@apple.com> |
Allow CONCAT_VECTORS nodes to be legal or have custom lowering for some targets. Changes to take advantage of this will come later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
d5a6381195c392d41bf8084213f8fe6b308a00b6 |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify more code and add timer stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70539 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b183d0c46a9ed38cf6e7ebf608492b7c35f9ae84 |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify more code and add timer stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70539 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ff86ef33e215e833efbdb04858b716e61020cb17 |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify more code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70537 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
86c053ca375fb4ee8d60983fccb37cbf37af7601 |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify more code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70537 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ef956fc784dc43ba58c8d68df64c9f68e662a22e |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70534 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
0cfbd9b927ac4d133bbc092e28a141a844c59138 |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70534 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7fa8162f08e299744c2fc381eb83465d21b9cf69 |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix whitespace. It was confusing me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
821048d4c31954e832de1eecbfe70569f65e07e9 |
01-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix whitespace. It was confusing me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70533 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5b16cd2cdd6ed607dbd5051d4452503bc0238d60 |
01-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. Bye bye PhysRegTracker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70524 91177308-0d34-0410-b5e6-96231b3b80d8
hysRegTracker.h
egAllocLinearScan.cpp
|
99aece70efb73bd7ab08ab11c7401f8cbaa33e8c |
01-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. Bye bye PhysRegTracker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70524 91177308-0d34-0410-b5e6-96231b3b80d8
hysRegTracker.h
egAllocLinearScan.cpp
|
a26eae64ddf607549f9e47046d46ea5b9ec648b4 |
01-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make DebugLoc independent of DwarfWriter. -Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70520 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineFunction.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
5b02f4c65921e7f0f0cc997aa6f0b614259e4aea |
01-May-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Make DebugLoc independent of DwarfWriter. -Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70520 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineFunction.cpp
achineInstr.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
3a155f0e34f3d33920b6a9308ae3464f5c506438 |
30-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Join cross class copies using getCommonSubClass() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70513 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
52576a32cf2601973d93ba48f7e4e3131d1df51c |
30-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Join cross class copies using getCommonSubClass() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70513 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0490dcb1b73f2668ad12b7f45962500aaa3fc471 |
30-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a smarter heuristic to determine when to coalesce a virtual register with a physical one. More specifically, it avoid tying a virtual register in the loop with a physical register defined / used outside the loop. When it determines it's not profitable, it will use the physical register as the allocation preference instead. This is *not* turned on by default. Testing indicates this is just as likely to pessimize code. The main issue seems to be allocation preference doesn't work effectively. That will change once I've taught register allocator "swapping". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70503 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
3aa6d9c41bb389f6d5e973d94ef5280daea68523 |
30-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a smarter heuristic to determine when to coalesce a virtual register with a physical one. More specifically, it avoid tying a virtual register in the loop with a physical register defined / used outside the loop. When it determines it's not profitable, it will use the physical register as the allocation preference instead. This is *not* turned on by default. Testing indicates this is just as likely to pessimize code. The main issue seems to be allocation preference doesn't work effectively. That will change once I've taught register allocator "swapping". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70503 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
4e5ea553d055512b0b8aa098e363ae17bafda957 |
30-Apr-2009 |
Jay Foad <jay.foad@gmail.com> |
Move helper functions for optimizing division by constant into the APInt class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70488 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
56b11f9f93622a04dffaa9ac1697ef92ca3469dc |
30-Apr-2009 |
Jay Foad <jay.foad@gmail.com> |
Move helper functions for optimizing division by constant into the APInt class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70488 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6c147293d63e836e3677eb933ff0513c7cad1e6a |
30-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix a regression handling indirect results: these need to be considered memory operands otherwise the writebacks get lost when the inline asm doesn't otherwise have side effects. This fixes rdar://6839427, though clang really shouldn't generate these anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7bf555c9b91af340207cfe4581b61cc983d40b52 |
30-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix a regression handling indirect results: these need to be considered memory operands otherwise the writebacks get lost when the inline asm doesn't otherwise have side effects. This fixes rdar://6839427, though clang really shouldn't generate these anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
98a366d547772010e94609e4584489b3e5ce0043 |
30-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Instead of passing in an unsigned value for the optimization level, use an enum, which better identifies what the optimization is doing. And is more flexible for future uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
5ed22ac54c2530a1d0d140d259f881f3b2040e56 |
30-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Instead of passing in an unsigned value for the optimization level, use an enum, which better identifies what the optimization is doing. And is more flexible for future uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70440 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
ec8eee2d3a402dd001daae3865bc5c10b41c323e |
30-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix infinite recursion in the C++ code which handles movddup by making it unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b44aad7c75421736354c1f04cd7f824d4720e6ae |
30-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix infinite recursion in the C++ code which handles movddup by making it unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ce9be2cf5dc84865f6b819bd3f9be16944426268 |
29-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MachineInstr::isRegTiedTo{Use,Def}Operand can safely be made const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70408 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
cb9f5b5de94fbc70e20943731bceb29095025722 |
29-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MachineInstr::isRegTiedTo{Use,Def}Operand can safely be made const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70408 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a641575828192c741531d431fbf191e6c1ba17c5 |
29-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Update comment, replace theoretically impossible check with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4da7620a38a361d4a28e3a5e267c8cfe13c8873f |
29-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Update comment, replace theoretically impossible check with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
96f3fd9a7fa709bc1ae738f6f6f82b73d4a93628 |
29-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in fixed_ IntervalPtrs. Reset them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70378 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
70c67fd7f30d0bed83191d07bbec8def4e12a260 |
29-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in fixed_ IntervalPtrs. Reset them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70378 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
5a5ca1519e04310f585197c20e7ae584b7f2d11f |
29-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Implement review feedback for vector shuffle work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
e8f61cb78f84e6fd82dabd4a5ab85691e70a7e88 |
29-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Implement review feedback for vector shuffle work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
a3518a1d6a6a9a7519d3a8d434cde51617c1dc22 |
29-Apr-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Add a public method called getAddressSpace() to the GlobalAddressSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
babc5c414464598c321c9889ad4cfa35581cbd53 |
29-Apr-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Add a public method called getAddressSpace() to the GlobalAddressSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
672452d5a0dace689d7f9df9837c03afe3a74281 |
29-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Disable the load-shrinking optimization from looking at anything larger than 64-bits, avoiding a crash. This should really be fixed to use APInts, though type legalization happens to help us out and we get good code on the attached testcase at least. This fixes rdar://6836460 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
fc447d9b3b0d8ddfbc4b39e2932baa1327e4eece |
29-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Disable the load-shrinking optimization from looking at anything larger than 64-bits, avoiding a crash. This should really be fixed to use APInts, though type legalization happens to help us out and we get good code on the attached testcase at least. This fixes rdar://6836460 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1c2f6da3319ed97f5a0927970f656295c0c22632 |
29-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Determine allocation 'preference' with right register class. I haven't seen this changing codegen so no test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70351 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
b10cd051c0c00bac2eee2744bdc5de42a5ef8842 |
29-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Determine allocation 'preference' with right register class. I haven't seen this changing codegen so no test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70351 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
be8cc2a3dedeb7685f07e68cdc4b9502eb97eb2b |
29-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Second attempt: Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
58ed5d27258df9688ac2694cf5e3d31f7dbdeef6 |
29-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Second attempt: Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70343 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
8a8a0dfc3b200e193db14ea1e6f1a18bf4187866 |
28-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move getMatchingSuperReg() out of coalescer and into TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70309 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b92e64548514e9f9d7588d7e0bcd216a8431d96f |
28-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move getMatchingSuperReg() out of coalescer and into TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70309 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
08e791fdb301d3a4c6c9fa6b7f5c3e33921f38a6 |
28-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't coalesce a physical register with an incompatible virtual register. If the physical register does not belong to the virtual register's regclass, don't coalesce. The physical register could be an invalid operand for an instruction using the vreg. The regclass matching is done after determining the actual subregisters being copied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70298 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f78c6fadc28652a0e28507765a34173d23789591 |
28-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't coalesce a physical register with an incompatible virtual register. If the physical register does not belong to the virtual register's regclass, don't coalesce. The physical register could be an invalid operand for an instruction using the vreg. The regclass matching is done after determining the actual subregisters being copied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70298 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d3d965714b89c5d5aeb65fb5ce06e081f0b3c049 |
28-Apr-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Initialized arrays can be in any address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c1f8d9caa22135f3f56b2dd4a6e76fcc88f83b42 |
28-Apr-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Initialized arrays can be in any address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70297 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fa4677b483b85217ac216f7e8d401c40cbe348aa |
28-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move getSubRegisterRegClass from ScheduleDagSDNodesEmit.cpp to a TargetRegisterClass method. Also make the method non-asserting. It will return NULL when given an invalid subreg index. The method is needed by an upcoming patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
016eb210814b38d998775c26672e23dc84401f5d |
28-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move getSubRegisterRegClass from ScheduleDagSDNodesEmit.cpp to a TargetRegisterClass method. Also make the method non-asserting. It will return NULL when given an invalid subreg index. The method is needed by an upcoming patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
30590f502325321958b35bec7295159e3948291a |
28-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4034. Bug in LiveInterval::join when it's compacting new valno's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70291 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
ffba3de0f51e0d93dcc692e9af3853de8ede9dd8 |
28-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4034. Bug in LiveInterval::join when it's compacting new valno's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70291 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
e9ccb3a7d43009de0b40b445db71d53177d88ff2 |
28-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR4051. When 2address pass delete an instruction, update kill info when necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70279 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
71bd038f3d8cfb675bdfd83a25109110056b5159 |
28-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR4051. When 2address pass delete an instruction, update kill info when necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70279 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c69d56f1154342a57c9bdd4c17a10333e3520127 |
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
r70270 isn't ready yet. Back this out. Sorry for the noise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70275 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
f4d0c73cc3d9ae305b162f336dc14fbe7972e2e8 |
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
r70270 isn't ready yet. Back this out. Sorry for the noise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70275 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
2e9d5f912a9841d3685ba0241abe1131943fed29 |
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70270 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
11a01bfa097cfe006de022154709b545ee125523 |
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70270 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
electionDAG/DAGCombiner.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
c45288e06bfe7d0b0e74eff350d280fa6c944373 |
27-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4076. Correctly create live interval of physical register with two-address update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70245 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3be003c0423fc3a064d43891d7221b461fc205f0 |
27-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4076. Correctly create live interval of physical register with two-address update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70245 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
82fd3f3d3ad44b7e3d0e7efc51a6498731746f79 |
27-Apr-2009 |
Owen Anderson <resistor@mac.com> |
Don't skip the CopyMI when removing kill markers. This should have no effect on generated code, but makes the intermediate state of the coalescer more sane. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70238 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f352b9b4eccb35e0bef0539a1dcb3b0aa544eb3b |
27-Apr-2009 |
Owen Anderson <resistor@mac.com> |
Don't skip the CopyMI when removing kill markers. This should have no effect on generated code, but makes the intermediate state of the coalescer more sane. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70238 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9771b91c2b4ce3baefdb9ba4ddfd9a9dd5077004 |
27-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Now that PR2957 is resolved, remove a bunch of no-longer needed workarounds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70234 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
a52554e58e82a1e43ddf41ac96706b7c817b5dcc |
27-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Now that PR2957 is resolved, remove a bunch of no-longer needed workarounds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70234 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
9008ca6b6b4f638cfafccb593cbc5b1d3f5ab877 |
27-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
2nd attempt, fixing SSE4.1 issues and implementing feedback from duncan. PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
543d214c596c7c0f186038ddfe00462563b75ca8 |
27-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
2nd attempt, fixing SSE4.1 issues and implementing feedback from duncan. PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
d521bc983b32da71b85d42dd30da87079afa5728 |
27-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4056. It's possible a physical register def is dead if its implicit use is deleted by two-address pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70213 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5431d9ca8b642dcbc0f5cb05ac10782a7b17ff8b |
27-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4056. It's possible a physical register def is dead if its implicit use is deleted by two-address pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70213 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
27e4666c20650f2b10d93b98b7a0625a363df9df |
27-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Also delete last unused val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70212 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
a6458fede5fee9d0f761249c48f537496f7b5356 |
27-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Also delete last unused val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70212 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
c7b3444095f9aa5398d134c780e327a187cda231 |
27-Apr-2009 |
Dan Gohman <gohman@apple.com> |
When transforming sext(trunc(load(x))) into sext(smaller load(x)), the trunc is directly replaced with the smaller load, so don't try to create a new sext node. This fixes PR4050. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
66f593ebed83919f2884d0cf5e200d0f4cbdd005 |
27-Apr-2009 |
Dan Gohman <gohman@apple.com> |
When transforming sext(trunc(load(x))) into sext(smaller load(x)), the trunc is directly replaced with the smaller load, so don't try to create a new sext node. This fixes PR4050. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a4b2bab23313b1d45e1f3e6c9610a1e83fce4005 |
25-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Reuse unused val#'s to avoid running out of memory in extreme cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70069 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
4cc387ffb2420301155c6df1fa4abc5d7bc52c9c |
25-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Reuse unused val#'s to avoid running out of memory in extreme cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70069 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
2bee0afb7d023e029975abf7d3157759fa797d37 |
25-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Refactor the code to grab the low and high parts of a value using EXTRACT_ELEMENT into a utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70056 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
ee7b6098003f3c61bd233b0ce99e7e95e6539cf7 |
25-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Refactor the code to grab the low and high parts of a value using EXTRACT_ELEMENT into a utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70056 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
4128700ab11d0db62e5ba7ed8a8fc301c7aaa8b1 |
25-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add a top-level comment about DAGCombiner's role in the compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70052 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a0754aca17517c539c61408d6cc0c4facf165cd4 |
25-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add a top-level comment about DAGCombiner's role in the compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70052 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0adb527d169e1f557676fda35bc9abb735e5c912 |
25-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not share a single unknown val# for all the live ranges merged into a physical sub-register live interval. When coalescer is merging in clobbered virtaul register live interval into a physical register live interval, give each virtual register val# a separate val# in the physical register live interval. Otherwise, the coalescer would have lost track of the definitions information it needs to make correct coalescing decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70026 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
1068b72ec6c6d7ec5634c4998e654d04d4d4418f |
25-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not share a single unknown val# for all the live ranges merged into a physical sub-register live interval. When coalescer is merging in clobbered virtaul register live interval into a physical register live interval, give each virtual register val# a separate val# in the physical register live interval. Otherwise, the coalescer would have lost track of the definitions information it needs to make correct coalescing decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70026 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
2f91f30b932ad56cd82398d872d4874facf84220 |
24-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR 4057, a crash doing float->char const folding. This particular one is undefined behavior (although this isn't related to the crash), so it will no longer do it at compile time, which seems better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
63d4503dc11f83298c82a64d21214b481a967e3f |
24-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR 4057, a crash doing float->char const folding. This particular one is undefined behavior (although this isn't related to the crash), so it will no longer do it at compile time, which seems better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
15684b29552393553524171bff1913e750f390f8 |
24-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 69952. Causes testsuite failures on linux x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
37f8e8ace433a675e90a9c45ded7827a4d06f21b |
24-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 69952. Causes testsuite failures on linux x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
b706d29f9c5ed3ed9acc82f7ab46205ba56b92dc |
24-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
da17a81c88162e6dfc070f18b14e34f194697407 |
24-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
98d07102d67971118c73e7db84d8a05d58dcf3df |
24-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Instead of requiring TLI.LowerCallTo to return an ISD::BUILD_PAIR, use ISD::EXTRACT_ELEMENT. SelectionDAG has a special fast-path for the cast of an EXTRACT_ELEMENT with a BUILD_PAIR operand, for the common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
bbb69ba45e6b90251bebed4f3a76456d9d51f903 |
24-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Instead of requiring TLI.LowerCallTo to return an ISD::BUILD_PAIR, use ISD::EXTRACT_ELEMENT. SelectionDAG has a special fast-path for the cast of an EXTRACT_ELEMENT with a BUILD_PAIR operand, for the common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
ad62f53795ac3da0353afba7e83464679c91ce5c |
24-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Factor out a bit of code that appears in several places into a utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
d4760a5133c4c5547d1656035cd5c32ec53f0b28 |
24-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Factor out a bit of code that appears in several places into a utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
5e5558bc66d593605ece81502bc310b7cf9e87f0 |
24-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Handle Void types in ComputeValueVTs. This doesn't currently occur, but this change makes the code more general and easier to adapt for new purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69935 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a9e5bc4df356b074e280ad444ffd5364272d37ec |
24-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Handle Void types in ComputeValueVTs. This doesn't currently occur, but this change makes the code more general and easier to adapt for new purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69935 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
aa809fbde12dda27943bafb631fbad22130814e2 |
23-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69919 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1a0de0ea46e8e5b6d256aa6ecf42625201179430 |
23-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69919 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c2cee14a8c30201696dc340be36ea0ed66783062 |
23-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69918 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8c82047aa5a8070bb5691b02c4f7b4729ca8a3e8 |
23-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69918 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5b69ebac857104770b1a751bf7a463fda4330a62 |
22-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
It has finally happened. Spiller is now using live interval info. This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69743 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
piller.cpp
piller.h
|
047e9d1fa34f28a3db20f841eec1d194abf2a1da |
22-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
It has finally happened. Spiller is now using live interval info. This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69743 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
egAllocPBQP.cpp
piller.cpp
piller.h
|
3e3702d00b2ce4c9c1fed41c05f9968414ff5819 |
21-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Fix Visual Studio 2008 build failure. Patch by Marius Wachtler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
da96ca5d8a194b702da0e44ddfa80c654048c122 |
21-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Fix Visual Studio 2008 build failure. Patch by Marius Wachtler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69637 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
70bc17dbf5a991ce8f8f5285f61c352fb55b533d |
21-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Make X86's copyRegToReg able to handle copies to and from subclasses. This makes the extra copyRegToReg calls in ScheduleDAGSDNodesEmit.cpp unnecessary. Derived from a patch by Jakob Stoklund Olesen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
d4df625c05d6c54e623ed32aa75b90c35f116624 |
21-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Make X86's copyRegToReg able to handle copies to and from subclasses. This makes the extra copyRegToReg calls in ScheduleDAGSDNodesEmit.cpp unnecessary. Derived from a patch by Jakob Stoklund Olesen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
bd209ab9bc0f6ad667c15df4453955c2ed4c2434 |
21-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code. getConstant knows how to make broadcasted vector constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0b8972d71412db2496153ec28ed06ec43697b8ad |
21-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code. getConstant knows how to make broadcasted vector constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
998e125a87d49f28c714d8223a37746850401057 |
20-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Move duplicated AddLiveIn function from X86 and ARM backends to be a method in the MachineFunction class, renaming it to addLiveIn for consistency with the same method in MachineBasicBlock. Thanks for Anton for suggesting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69615 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
b6737aa5c91184d77e9569d5fe829674a358b90d |
20-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Move duplicated AddLiveIn function from X86 and ARM backends to be a method in the MachineFunction class, renaming it to addLiveIn for consistency with the same method in MachineBasicBlock. Thanks for Anton for suggesting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69615 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c885165e664f3b465403e1b6ce57ba63f57c5f0c |
20-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revise my previous change 68996 as suggested by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69607 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
|
c21b202ac837dfeaf8de89fc9c930c47bd4501ae |
20-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revise my previous change 68996 as suggested by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69607 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
|
c4f718a3a7990a13888836902ecac034a9d6a235 |
20-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Remove an arbitrary spill weight tweak that should not have been there. - Find more reloads from SS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69606 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
355ac07119849b25ee5b062822f22c46e9d8e62d |
20-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Remove an arbitrary spill weight tweak that should not have been there. - Find more reloads from SS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69606 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
206d1856ad80e58a3a9e01b7c0d3fef66b3cacc2 |
20-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added a linearscan register allocation optimization. When the register allocator spill an interval with multiple uses in the same basic block, it creates a different virtual register for each of the reloads. e.g. %reg1498<def> = MOV32rm %reg1024, 1, %reg0, 12, %reg0, Mem:LD(4,4) [sunkaddr39 + 0] %reg1506<def> = MOV32rm %reg1024, 1, %reg0, 8, %reg0, Mem:LD(4,4) [sunkaddr42 + 0] %reg1486<def> = MOV32rr %reg1506 %reg1486<def> = XOR32rr %reg1486, %reg1498, %EFLAGS<imp-def,dead> %reg1510<def> = MOV32rm %reg1024, 1, %reg0, 4, %reg0, Mem:LD(4,4) [sunkaddr45 + 0] => %reg1498<def> = MOV32rm %reg2036, 1, %reg0, 12, %reg0, Mem:LD(4,4) [sunkaddr39 + 0] %reg1506<def> = MOV32rm %reg2037, 1, %reg0, 8, %reg0, Mem:LD(4,4) [sunkaddr42 + 0] %reg1486<def> = MOV32rr %reg1506 %reg1486<def> = XOR32rr %reg1486, %reg1498, %EFLAGS<imp-def,dead> %reg1510<def> = MOV32rm %reg2038, 1, %reg0, 4, %reg0, Mem:LD(4,4) [sunkaddr45 + 0] From linearscan's point of view, each of reg2036, 2037, and 2038 are separate registers, each is "killed" after a single use. The reloaded register is available and it's often clobbered right away. e.g. In thise case reg1498 is allocated EAX while reg2036 is allocated RAX. This means we end up with multiple reloads from the same stack slot in the same basic block. Now linearscan recognize there are other reloads from same SS in the same BB. So it'll "downgrade" RAX (and its aliases) after reg2036 is allocated until the next reload (reg2037) is done. This greatly increase the likihood reloads from SS are reused. This speeds up sha1 from OpenSSL by 5.8%. It is also an across the board win for SPEC2000 and 2006. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69585 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
29b4cf635b5fe0b9f9641539fd7361bed60ad155 |
20-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added a linearscan register allocation optimization. When the register allocator spill an interval with multiple uses in the same basic block, it creates a different virtual register for each of the reloads. e.g. %reg1498<def> = MOV32rm %reg1024, 1, %reg0, 12, %reg0, Mem:LD(4,4) [sunkaddr39 + 0] %reg1506<def> = MOV32rm %reg1024, 1, %reg0, 8, %reg0, Mem:LD(4,4) [sunkaddr42 + 0] %reg1486<def> = MOV32rr %reg1506 %reg1486<def> = XOR32rr %reg1486, %reg1498, %EFLAGS<imp-def,dead> %reg1510<def> = MOV32rm %reg1024, 1, %reg0, 4, %reg0, Mem:LD(4,4) [sunkaddr45 + 0] => %reg1498<def> = MOV32rm %reg2036, 1, %reg0, 12, %reg0, Mem:LD(4,4) [sunkaddr39 + 0] %reg1506<def> = MOV32rm %reg2037, 1, %reg0, 8, %reg0, Mem:LD(4,4) [sunkaddr42 + 0] %reg1486<def> = MOV32rr %reg1506 %reg1486<def> = XOR32rr %reg1486, %reg1498, %EFLAGS<imp-def,dead> %reg1510<def> = MOV32rm %reg2038, 1, %reg0, 4, %reg0, Mem:LD(4,4) [sunkaddr45 + 0] From linearscan's point of view, each of reg2036, 2037, and 2038 are separate registers, each is "killed" after a single use. The reloaded register is available and it's often clobbered right away. e.g. In thise case reg1498 is allocated EAX while reg2036 is allocated RAX. This means we end up with multiple reloads from the same stack slot in the same basic block. Now linearscan recognize there are other reloads from same SS in the same BB. So it'll "downgrade" RAX (and its aliases) after reg2036 is allocated until the next reload (reg2037) is done. This greatly increase the likihood reloads from SS are reused. This speeds up sha1 from OpenSSL by 5.8%. It is also an across the board win for SPEC2000 and 2006. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69585 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
a507e5538f7fe999b18fd0403c5806cc5ae0b64f |
19-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Now that BUILD_VECTOR operands are allowed to be bigger than the vector element type, turn checking of the operand type back on again, appropriately adjusted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
66f891e387a22d184ddb5e2b2ef0810dc923675d |
19-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Now that BUILD_VECTOR operands are allowed to be bigger than the vector element type, turn checking of the operand type back on again, appropriately adjusted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2f992d13ea0ccfe3f9ce359b4c534d9b34b0e7cd |
18-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3898, which manifests as failures on are an Xcore, patch by Jakob Stoklund Olesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
abbee9c4f6195e670775cb2fe3a0decbe626e1db |
18-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3898, which manifests as failures on are an Xcore, patch by Jakob Stoklund Olesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b10b5ac8d9da43ca2db61401a20af6b676c98438 |
18-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Don't try to make BUILD_VECTOR operands have the same type as the vector element type: allow them to be of a wider integer type than the element type all the way through the system, and not just as far as LegalizeDAG. This should be safe because it used to be this way (the old type legalizer would produce such nodes), so backends should be able to handle it. In fact only targets which have legal vector types with an illegal promoted element type will ever see this (eg: <4 x i16> on ppc). This fixes a regression with the new type legalizer (vec_splat.ll). Also, treat SCALAR_TO_VECTOR the same as BUILD_VECTOR. After all, it is just a special case of BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
6a3a01eb07a391628766d95b3c4baeb3802b5b96 |
18-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Don't try to make BUILD_VECTOR operands have the same type as the vector element type: allow them to be of a wider integer type than the element type all the way through the system, and not just as far as LegalizeDAG. This should be safe because it used to be this way (the old type legalizer would produce such nodes), so backends should be able to handle it. In fact only targets which have legal vector types with an illegal promoted element type will ever see this (eg: <4 x i16> on ppc). This fixes a regression with the new type legalizer (vec_splat.ll). Also, treat SCALAR_TO_VECTOR the same as BUILD_VECTOR. After all, it is just a special case of BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
cccdb2b602cf421d8890130308945163620ebc68 |
18-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a new LiveInterval::overlaps(). It checks if the live interval overlaps a range specified by [Start, End). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69434 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
60c15e5295626797de6c2ba7f566c87e751485b0 |
18-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a new LiveInterval::overlaps(). It checks if the live interval overlaps a range specified by [Start, End). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69434 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
97d14fcb6aa54b66e8513fccea0d0470afa4056a |
18-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Inline asm's were still introducing bogus dependencies; my earlier patch to this code only fixed half of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ac68b7b4ed36c550398bae5be995b2ea0296119c |
18-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Inline asm's were still introducing bogus dependencies; my earlier patch to this code only fixed half of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
276b77e66c538264d79b78c00bbad9f890f58011 |
17-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach spiller to unfold instructions which modref spill slot when a scratch register is available and when it's profitable. e.g. xorq %r12<kill>, %r13 addq %rax, -184(%rbp) addq %r13, -184(%rbp) ==> xorq %r12<kill>, %r13 movq -184(%rbp), %r12 addq %rax, %r12 addq %r13, %r12 movq %r12, -184(%rbp) Two more instructions, but fewer memory accesses. It can also open up opportunities for more optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69341 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
|
5d01be39fd1e900dd65e60a20c481f95c8c7f3f4 |
17-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach spiller to unfold instructions which modref spill slot when a scratch register is available and when it's profitable. e.g. xorq %r12<kill>, %r13 addq %rax, -184(%rbp) addq %r13, -184(%rbp) ==> xorq %r12<kill>, %r13 movq -184(%rbp), %r12 addq %rax, %r12 addq %r13, %r12 movq %r12, -184(%rbp) Two more instructions, but fewer memory accesses. It can also open up opportunities for more optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69341 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
|
0e4042d30b2b47329166f5f784ef3c70f6b408cc |
16-Apr-2009 |
Dan Gohman <gohman@apple.com> |
In the list-burr's pseudo two-addr dependency heuristics, don't add dependencies on nodes with exactly one successor which is a COPY_TO_REGCLASS node. In the case that the copy is coalesced away, the dependence should be on the user of the copy, rather than the copy itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69309 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
ba6a6125f561d92163491c8756c816d5a3666452 |
16-Apr-2009 |
Dan Gohman <gohman@apple.com> |
In the list-burr's pseudo two-addr dependency heuristics, don't add dependencies on nodes with exactly one successor which is a COPY_TO_REGCLASS node. In the case that the copy is coalesced away, the dependence should be on the user of the copy, rather than the copy itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69309 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8af808a3d64dfdcc5d126e6ad762f57b1483671c |
16-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Handle SUBREG_TO_REG instructions with the same heuristics as INSERT_SUBREG instructions in the list-burr scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0b33cd55d1cfaa98fe4571d48caae4946a5e3a54 |
16-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Handle SUBREG_TO_REG instructions with the same heuristics as INSERT_SUBREG instructions in the list-burr scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
02f8c410148ba3b6009ed67df41e2c97c1c07c3a |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Do not treat beginning of inlined scope as beginning of normal function scope if the location info is missing. Insetad of doing ... if (inlined_subroutine && known_location) DW_TAG_inline_subroutine else DW_TAG_subprogram do if (inlined_subroutine) { if (known_location) DW_TAG_inline_subroutine } else { DW_TAG_subprogram } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
ee9a58a24345acba20ecf8762bfcabf8840c20fd |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Do not treat beginning of inlined scope as beginning of normal function scope if the location info is missing. Insetad of doing ... if (inlined_subroutine && known_location) DW_TAG_inline_subroutine else DW_TAG_subprogram do if (inlined_subroutine) { if (known_location) DW_TAG_inline_subroutine } else { DW_TAG_subprogram } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
906caf2ae45455a12696bb950429da28d7d63422 |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Record line number at the beginning of a func.start. This line was accidently lost yesterday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
faa55f17b8fd2071b69b1104f5921f02d2f31ecc |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Record line number at the beginning of a func.start. This line was accidently lost yesterday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
16f2ffd1580a168a7fdd78bf48b26f0995e1c109 |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
In -fast mode do what FastISel does. This code could use some refactoring help! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
b519081460eba4406b23f69c9b41d565910b7af5 |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
In -fast mode do what FastISel does. This code could use some refactoring help! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
390f3ace34855a3d4c9e0adf468976375f8c6dc1 |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If FastISel is run and it has known DebugLoc then use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
6bfb20561180e71214d12edd65c768829759b222 |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If FastISel is run and it has known DebugLoc then use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
682e0e6a72af42f31e6fcf329c7bb5cfaff7459d |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If location where the function was inlined is not know then do not emit debug info describing inlinied region. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
9205f3870d58064a1c9f5d38fc3e35d8e05fa19c |
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If location where the function was inlined is not know then do not emit debug info describing inlinied region. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7d2f972f596b671586365d17cdadb44e5eb03574 |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
s/RootDbgScope/FunctionDbgScope/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69216 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7b60d5545d671ec46bf6419762520e3659fb1c45 |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
s/RootDbgScope/FunctionDbgScope/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69216 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
8818b8f4437a56fc8f75a134f015c3b807e61f10 |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Add DISubprogram is not null check. This fixes test/CodeGen//2009-01-21-invalid-debug-info.m test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
12e528beb5b91114ccdc12e7ff1b6e6597202321 |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Add DISubprogram is not null check. This fixes test/CodeGen//2009-01-21-invalid-debug-info.m test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c23e4968790395053f3f52aeb3342637fcaafdbf |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Generalize one of the SelectionDAG::ReplaceAllUsesWith overloads to support replacing a node with another that has a superset of the result types. Use this instead of calling ReplaceAllUsesOfValueWith for each value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69209 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
3209ac36502042636679ef030d609964891ccf57 |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Generalize one of the SelectionDAG::ReplaceAllUsesWith overloads to support replacing a node with another that has a superset of the result types. Use this instead of calling ReplaceAllUsesOfValueWith for each value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69209 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
c782ad055e7d1ed11bf0b7cbd17b5a8b6efdde7e |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Check isInlinedSubroutine() before creating DW_TAG_inlined_subroutine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
88bcc9edae209d39c4ca646406af5c5879d729c0 |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Check isInlinedSubroutine() before creating DW_TAG_inlined_subroutine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69202 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
9407cd4ede3e2c090b958778d0fdbdac8b2dbec4 |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Fix MachineInstr::getNumExplicitOperands to count variadic operands correctly. Patch by Jakob Stoklund Olesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69190 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3d88001b45157c4fe9c5ada554e7ddd7fe6fbce8 |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Fix MachineInstr::getNumExplicitOperands to count variadic operands correctly. Patch by Jakob Stoklund Olesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69190 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
33f1c68cba4e905fdd2bf7d2848c52052d46fbff |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineRegisterInfo::setRegClass out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69126 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
6cfe4b03398e3eacf83c1e24f0382d9093b85aca |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineRegisterInfo::setRegClass out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69126 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
593ea05957b98472a916278d64229ceda223c50b |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineJumpTableInfo::ReplaceMBBInJumpTables out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69125 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
352406d8db90a602b5a2b24126903e7b464bcbf9 |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineJumpTableInfo::ReplaceMBBInJumpTables out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69125 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
3bc1a3735f216f4a122fe4a05d39f63888ab205a |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Give RemoveRegOperandFromRegInfo a comment and move the code out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69124 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8ff914cdcac983c8d6a38095db2949aabe15ea46 |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Give RemoveRegOperandFromRegInfo a comment and move the code out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69124 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1be3eccecbd2fa50ed9008ffee01f6351df5d8f7 |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Construct and emit DW_TAG_inlined_subroutine DIEs for inlined subroutine scopes (only in FastISel mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
|
8a9a7dc7ad2516b37f9d947a6b97ad62c24ff9b5 |
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Construct and emit DW_TAG_inlined_subroutine DIEs for inlined subroutine scopes (only in FastISel mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
|
5ec3b427c850d8c61aaa29e3421019bdff9b77f1 |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
When the result of an EXTRACT_SUBREG, INSERT_SUBREG, or SUBREG_TO_REG operator is used by a CopyToReg to export the value to a different block, don't reuse the CopyToReg's register for the subreg operation result if the register isn't precisely the right class for the subreg operation. Also, rename the h-registers.ll test, now that there are more than one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
31faeea6af95895a3a2d643e89dba18781a564a9 |
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
When the result of an EXTRACT_SUBREG, INSERT_SUBREG, or SUBREG_TO_REG operator is used by a CopyToReg to export the value to a different block, don't reuse the CopyToReg's register for the subreg operation result if the register isn't precisely the right class for the subreg operation. Also, rename the h-registers.ll test, now that there are more than one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
ec65a7d89b3c23183433c69f43220a93f3573551 |
14-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Do not force asm's to be chained if they don't touch memory and aren't volatile. This was interfering with good scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
49fb89488e691cd78643d19bee08d7f617317332 |
14-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Do not force asm's to be chained if they don't touch memory and aren't volatile. This was interfering with good scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
87d696a4d2f0b43a0e927bffb13ceb4c67cc0f3b |
14-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3934 part 2. findOnlyInterestingUse() was not setting IsCopy and IsDstPhys which are returned by value and used by callee. This happened to work on the earlier test cases because of a logic error in the caller side. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69006 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
e65047a0975b4a0e0df7e1ef9ac3ed3427a9575d |
14-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3934 part 2. findOnlyInterestingUse() was not setting IsCopy and IsDstPhys which are returned by value and used by callee. This happened to work on the earlier test cases because of a logic error in the caller side. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69006 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4cbb173d6cbf0196f3d2c817186fe6b599e68cf4 |
14-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Make these errors more noticable in build logs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68998 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
74da6f45b8fedb879ff11b66af6db79260cb18b8 |
14-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Make these errors more noticable in build logs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68998 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
b1303d05a89972195de023fda432cc621375a27c |
14-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Change SelectionDAG type legalization to allow BUILD_VECTOR operands to be promoted to legal types without changing the type of the vector. This is following a suggestion from Duncan (http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-February/019923.html). The transformation that used to be done during type legalization is now postponed to DAG legalization. This allows the BUILD_VECTORs to be optimized and potentially handled specially by target-specific code. It turns out that this is also consistent with an optimization done by the DAG combiner: a BUILD_VECTOR and INSERT_VECTOR_ELT may be combined by replacing one of the BUILD_VECTOR operands with the newly inserted element; but INSERT_VECTOR_ELT allows its scalar operand to be larger than the element type, with any extra high bits being implicitly truncated. The result is a BUILD_VECTOR where one of the operands has a type larger the the vector element type. Any code that operates on BUILD_VECTORs may now need to be aware of the potential type discrepancy between the vector element type and the BUILD_VECTOR operands. This patch updates all of the places that I could find to handle that case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAG.cpp
|
2b570bb741732deda2e9d7fdbf0a4ba72033942b |
14-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Change SelectionDAG type legalization to allow BUILD_VECTOR operands to be promoted to legal types without changing the type of the vector. This is following a suggestion from Duncan (http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-February/019923.html). The transformation that used to be done during type legalization is now postponed to DAG legalization. This allows the BUILD_VECTORs to be optimized and potentially handled specially by target-specific code. It turns out that this is also consistent with an optimization done by the DAG combiner: a BUILD_VECTOR and INSERT_VECTOR_ELT may be combined by replacing one of the BUILD_VECTOR operands with the newly inserted element; but INSERT_VECTOR_ELT allows its scalar operand to be larger than the element type, with any extra high bits being implicitly truncated. The result is a BUILD_VECTOR where one of the operands has a type larger the the vector element type. Any code that operates on BUILD_VECTORs may now need to be aware of the potential type discrepancy between the vector element type and the BUILD_VECTOR operands. This patch updates all of the places that I could find to handle that case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAG.cpp
|
88c7af096b09ad26cbcebfdf40151e04094b7460 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Rename COPY_TO_SUBCLASS to COPY_TO_REGCLASS, and generalize it accordingly. Thanks to Jakob Stoklund Olesen for pointing out how this might be useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
4c10fc7e94c9dc543db53c319a83de95896340b0 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Rename COPY_TO_SUBCLASS to COPY_TO_REGCLASS, and generalize it accordingly. Thanks to Jakob Stoklund Olesen for pointing out how this might be useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
26cbf9eb99c779b8992f4865c6cf308318d39723 |
13-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor some code in SelectionDAGLegalize::ExpandBUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
27b4133f65fbea82ecc520035bafcb1559a4bbe4 |
13-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Refactor some code in SelectionDAGLegalize::ExpandBUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3005ed604835834534b61ea4a8f8be29f6868627 |
13-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
PR3934: Fix a bogus two-address pass assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68979 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4bdceb841063ac3a8f5050a92f7b0feba094f4cc |
13-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
PR3934: Fix a bogus two-address pass assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68979 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
48c7fa21a3b5e491bdf0ffc41fe7aa9687450c5f |
13-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Right now, Debugging information to encode scopes (DW_TAG_lexical_block) relies on DBG_LABEL. Unfortunately this intefers with the quality of optimized code. This patch updates dwarf writer to encode scoping information in DWARF only in FastISel mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68973 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
1899292055e88f11ae05c2e22e01b1b9e1485bf9 |
13-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Right now, Debugging information to encode scopes (DW_TAG_lexical_block) relies on DBG_LABEL. Unfortunately this intefers with the quality of optimized code. This patch updates dwarf writer to encode scoping information in DWARF only in FastISel mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68973 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
0f7fef3872a37d09c806f52f1d03d74ebc73c171 |
13-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 68847. Now debug_inlined section is covered by TAI->doesDwarfUsesInlineInfoSection(), which is false by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68964 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
88bf96e5db9d7fa999ad190277610595540dc3e0 |
13-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 68847. Now debug_inlined section is covered by TAI->doesDwarfUsesInlineInfoSection(), which is false by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68964 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
f8c7394781f7cf27ac52ca087e289436d36844da |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add a new TargetInstrInfo MachineInstr opcode, COPY_TO_SUBCLASS. This will be used to replace things like X86's MOV32to32_. Enhance ScheduleDAGSDNodesEmit to be more flexible and robust in the presense of subregister superclasses and subclasses. It can now cope with the definition of a virtual register being in a subclass of a use. Re-introduce the code for recording register superreg classes and subreg classes. This is needed because when subreg extracts and inserts get coalesced away, the virtual registers are left in the correct subclass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
1aeb5dbe7ba14a4684f65f85f15f7d312c2eeeaf |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add a new TargetInstrInfo MachineInstr opcode, COPY_TO_SUBCLASS. This will be used to replace things like X86's MOV32to32_. Enhance ScheduleDAGSDNodesEmit to be more flexible and robust in the presense of subregister superclasses and subclasses. It can now cope with the definition of a virtual register being in a subclass of a use. Re-introduce the code for recording register superreg classes and subreg classes. This is needed because when subreg extracts and inserts get coalesced away, the virtual registers are left in the correct subclass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
70f2f65aacdbc96fe158b2860b5f0bad075ee548 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Don't abort on an aliasing physical register that does not have a live interval. This is needed for some upcoming subreg changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68956 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
86a85d666feabdd3355acea01e0ef1e3fcd8a629 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Don't abort on an aliasing physical register that does not have a live interval. This is needed for some upcoming subreg changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68956 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9a77a92859b609a767d65b91ac7eb86a1a3ae680 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
When assigning a physical register to a MachineOperand, set the subreg field to 0, since the subreg field is only used for virtual register subregs. This doesn't change current functionality; it just eliminates bogus noise from debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68955 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
3126db2d78656ab6358080b25eee10f877343410 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
When assigning a physical register to a MachineOperand, set the subreg field to 0, since the subreg field is only used for virtual register subregs. This doesn't change current functionality; it just eliminates bogus noise from debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68955 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
6ed0e20eb2dee4b08d33917ba569ad448aa0f047 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add an assertion to verify that a copy was actually emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68953 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
6082c7ef89a9411194eb3f2a1f0338755d23ce06 |
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add an assertion to verify that a copy was actually emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68953 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
266c7bbbbcc4b326dea82e577de1a415d6acc23e |
13-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Add a new "available_externally" linkage type. This is intended to support C99 inline, GNU extern inline, etc. Related bugzilla's include PR3517, PR3100, & PR2933. Nothing uses this yet, but it appears to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68940 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
achineFunction.cpp
|
6843344e1399eee254f39c3660e2b227c2511a9e |
13-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Add a new "available_externally" linkage type. This is intended to support C99 inline, GNU extern inline, etc. Related bugzilla's include PR3517, PR3100, & PR2933. Nothing uses this yet, but it appears to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68940 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
achineFunction.cpp
|
36e3946ac2f30a0bda66538ef2b974b1c8fbdc97 |
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
make UpdateValueMap handle the possiblity that we could be copying into the right register, avoiding a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f0e7da2b3b5dd42770791b7f30d105c08321a93f |
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
make UpdateValueMap handle the possiblity that we could be copying into the right register, avoiding a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c5040ab6065d5c569a1af0848b6e672b22b174b7 |
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
optimize FastISel::UpdateValueMap to avoid duplicate map lookups, and make it return the assigned register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
bc846230e533883273d3a6d44b303ce421b6ba02 |
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
optimize FastISel::UpdateValueMap to avoid duplicate map lookups, and make it return the assigned register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c6fa3ff0bddca92e443ef9ff454d2a74cac867bd |
11-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Revert r68847. It breaks the build on non-Darwin targets, with this message from the assembler: Error: unknown pseudo-op: `.debug_inlined' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68863 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
a82ffb5c9866520ace26792d8d15094c3ea520e9 |
11-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Revert r68847. It breaks the build on non-Darwin targets, with this message from the assembler: Error: unknown pseudo-op: `.debug_inlined' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68863 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
2057532679fc1045cfeb38b477ac9e749e6b1dd8 |
11-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Keep track of inlined functions and their locations. This information is collected when nested llvm.dbg.func.start intrinsics are seen. (Right now, inliner removes nested llvm.dbg.func.start intrinisics during inlining.) Create debug_inlined dwarf section using these information. This info is used by gdb, at least on Darwin, to enable better experience debugging inlined functions. See DwarfWriter.cpp for more information on structure of debug_inlined section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68847 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
962aaafe60b3a60b3bd5b97a82a48da0fe4d41b9 |
11-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Keep track of inlined functions and their locations. This information is collected when nested llvm.dbg.func.start intrinsics are seen. (Right now, inliner removes nested llvm.dbg.func.start intrinisics during inlining.) Create debug_inlined dwarf section using these information. This info is used by gdb, at least on Darwin, to enable better experience debugging inlined functions. See DwarfWriter.cpp for more information on structure of debug_inlined section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68847 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
03f0a2fba0e0ad80db4cebb977ec331c493637b7 |
10-Apr-2009 |
Devang Patel <dpatel@apple.com> |
DebugLabelFolder ruthlessly deletes redundant labels. However, sometimes the redundant labels is referenced by debug info somewhere else. This patch provies a way so that dwarf writer can mark labels as used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68813 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
9a72741914cb4717b53f5106f6a06fdd446a63ec |
10-Apr-2009 |
Devang Patel <dpatel@apple.com> |
DebugLabelFolder ruthlessly deletes redundant labels. However, sometimes the redundant labels is referenced by debug info somewhere else. This patch provies a way so that dwarf writer can mark labels as used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68813 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
ec15bbfd2f8a3667313dcfa0f9a11497ae6732b8 |
10-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Clean up a bunch of whitespace issues and fix a comment typo. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2e958a4285feeac673a3837ea2fd36bd9402cbcf |
10-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Clean up a bunch of whitespace issues and fix a comment typo. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
296185c264a47cadd52c8d3290a54837cc32cbe5 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix two problems with machine sinking: 1. Sinking would crash when the first instruction of a block was sunk due to iterator problems. 2. Instructions could be sunk to their current block, causing an infinite loop. This fixes PR3968 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68787 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
d990f57a4171a26b5c1b4e3b63581fe54fa11ad7 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix two problems with machine sinking: 1. Sinking would crash when the first instruction of a block was sunk due to iterator problems. 2. Instructions could be sunk to their current block, causing an infinite loop. This fixes PR3968 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68787 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
0355862f712ce23ebb82e9e9378e92ef3b34027b |
10-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Now that register classes have names, include the name in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
b646b51e9fb0d5faf8f3705cc1d0eab54afb782f |
10-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Now that register classes have names, include the name in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
7d16e85bfc2c6423c81ce87a177bf3b1b1012a04 |
10-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in the std::string parameter instead of returning it by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68747 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
26a8ab932b9a48bf21af71cabbfe695d1554f1e4 |
10-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in the std::string parameter instead of returning it by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68747 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
a6f02fbb7523535da75d27c113a0e308cb05ac8c |
10-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Constify getter methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68745 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
4226f4f0f9da548c575e6b7a423429627262529f |
10-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Constify getter methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68745 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
fc1665793e62eb4f26d24b8a19eecf59cd872e2a |
10-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Remove the obsolete SelectionDAG::getNodeValueTypes and simplify code that uses it by using SelectionDAG::getVTList instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
ee03628d9fad683197b1839e23f23057e506de99 |
10-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Remove the obsolete SelectionDAG::getNodeValueTypes and simplify code that uses it by using SelectionDAG::getVTList instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
f34be827ac3bb257939e31575fcfc9ef27b94306 |
10-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
StringMap<DIE*>::iterator::first() returns a pointer to the first character of the key. This will cause it to create a new std::string, which isn't wanted. Instead, pass back the "const char*". Modify the EmitString() method to take a "const char*". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68741 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
3f94b4106c44640306f2448ffad7a69aea665734 |
10-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
StringMap<DIE*>::iterator::first() returns a pointer to the first character of the key. This will cause it to create a new std::string, which isn't wanted. Instead, pass back the "const char*". Modify the EmitString() method to take a "const char*". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68741 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
923838533a005154c3a30271aa3186a633102a9c |
10-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Silence unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
18dbad8536b3f4407f40fd71e937922337ac550e |
10-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Silence unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c30aa7b3de0ce8c37e9630e8e7a73cb83c808c62 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
ignore register zero in isRegTiedToUseOperand, following the example of isRegTiedToDefOperand. Thanks to Bob for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68734 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b1e84233e04bf86e8421be1502cb38b9822cf5a8 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
ignore register zero in isRegTiedToUseOperand, following the example of isRegTiedToDefOperand. Thanks to Bob for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68734 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
972bbac789d1ca00c39b258a6262286a3551da13 |
09-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Use a StringMap instead of std::map for storing std::string->DIE* maps. This gives a micro speedup in the Dwarf writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68728 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e06da4494b282d63bb488d83443a6628e1dd567d |
09-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Use a StringMap instead of std::map for storing std::string->DIE* maps. This gives a micro speedup in the Dwarf writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68728 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b396992f68711e473d0cae2ac9c04569f20147b4 |
09-Apr-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.func_start also defines beginning of function scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
212307165fb4a13be73ca36f6487dd43770127f1 |
09-Apr-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.func_start also defines beginning of function scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d9df5017040489303acb57bdd8697ef0f8bafc08 |
09-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr3954. The register scavenger asserts for inline assembly with register destinations that are tied to source operands. The TargetInstrDescr::findTiedToSrcOperand method silently fails for inline assembly. The existing MachineInstr::isRegReDefinedByTwoAddr was very close to doing what is needed, so this revision makes a few changes to that method and also renames it to isRegTiedToUseOperand (for consistency with the very similar isRegTiedToDefOperand and because it handles both two-address instructions and inline assembly with tied registers). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68714 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
piller.cpp
|
aded995fd1ea26db2191622c7c1d352662c06b8d |
09-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr3954. The register scavenger asserts for inline assembly with register destinations that are tied to source operands. The TargetInstrDescr::findTiedToSrcOperand method silently fails for inline assembly. The existing MachineInstr::isRegReDefinedByTwoAddr was very close to doing what is needed, so this revision makes a few changes to that method and also renames it to isRegTiedToUseOperand (for consistency with the very similar isRegTiedToDefOperand and because it handles both two-address instructions and inline assembly with tied registers). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68714 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
ostRASchedulerList.cpp
reAllocSplitting.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
piller.cpp
|
0c8382ce9a96e36325b17d242fd1af16564d8a85 |
09-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
reg0 references are not real registers. This fixes a crash on the attached testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68712 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0d0e8a9831d6f4c9ea7cf329749ffa151e877789 |
09-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
reg0 references are not real registers. This fixes a crash on the attached testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68712 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
57fc82d409022e793446c1c5d7d6d8b0d7579f83 |
09-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Generalize ExtendUsesToFormExtLoad to be usable for ANY_EXTEND, in addition to ZERO_EXTEND and SIGN_EXTEND. Fix a bug in the way it checked for live-out values, and simplify the way it find users by using SDNode::use_iterator's (relatively) new features. Also, make it slightly more permissive on targets with free truncates. In SelectionDAGBuild, avoid creating ANY_EXTEND nodes that are larger than necessary. If the target's SwitchAmountTy has enough bits, use it. This exposes the truncate to optimization early, enabling more optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGBuild.cpp
|
2eaea5996426c98d09fbd200c756587abce1a11a |
09-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Generalize ExtendUsesToFormExtLoad to be usable for ANY_EXTEND, in addition to ZERO_EXTEND and SIGN_EXTEND. Fix a bug in the way it checked for live-out values, and simplify the way it find users by using SDNode::use_iterator's (relatively) new features. Also, make it slightly more permissive on targets with free truncates. In SelectionDAGBuild, avoid creating ANY_EXTEND nodes that are larger than necessary. If the target's SwitchAmountTy has enough bits, use it. This exposes the truncate to optimization early, enabling more optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGBuild.cpp
|
8e5c0da84892649254def8782dc041539209d4db |
09-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Don't copy the operand of a SwitchInst into virtual registers as eagerly. This helps avoid CopyToReg nodes in some cases where they aren't needed, and also helps subsequent optimizer heuristics in cases where the extra nodes would cause the node to appear to have multiple results. This doesn't have a significant impact currently; it'll help an upcoming change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ecb0ece7f75d85f3dd2a952fed979131534f9ebc |
09-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Don't copy the operand of a SwitchInst into virtual registers as eagerly. This helps avoid CopyToReg nodes in some cases where they aren't needed, and also helps subsequent optimizer heuristics in cases where the extra nodes would cause the node to appear to have multiple results. This doesn't have a significant impact currently; it'll help an upcoming change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
75b2738d7397639490e6dca231335925f74b8fac |
09-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If subprogram type is not tagged as DW_TAG_subroutine_type then use it directly as a return value type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68647 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6e199966ef24f2e79a85572b91303a371c76f071 |
09-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If subprogram type is not tagged as DW_TAG_subroutine_type then use it directly as a return value type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68647 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
3d0355b825fa707f76dda05bd19730c096ae743c |
08-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Soft float support for FREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
05bb215cb10fab8a4da75fc78ff04623ccd0f688 |
08-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Soft float support for FREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
7beb1ec2988d6d223714c6bcc239fb2a89db7f67 |
08-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Soft float support for undef. Reported by Xerxes RÃ¥nby. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68607 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
cf3ce0867ab1a6de36bbd59f5a9220c745a778f5 |
08-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Soft float support for undef. Reported by Xerxes RÃ¥nby. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68607 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
a118c2ee89842346ef2fd332c0fea6b931d79483 |
08-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
change printStringChar to emit characters as unsigned char instead of char, avoiding sign extension for the top octet. For "negative" chars, we'd print stuff like: .asciz "\702... now we print: .asciz "\302... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e2d4bf7738f0b4af58de7283543f600d1ca8bfc3 |
08-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
change printStringChar to emit characters as unsigned char instead of char, avoiding sign extension for the top octet. For "negative" chars, we'd print stuff like: .asciz "\702... now we print: .asciz "\302... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
97121ba2afb8d566ff1bf5c4e8fc5d4077940a7f |
08-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Implement support for using modeling implicit-zero-extension on x86-64 with SUBREG_TO_REG, teach SimpleRegisterCoalescing to coalesce SUBREG_TO_REG instructions (which are similar to INSERT_SUBREG instructions), and teach the DAGCombiner to take advantage of this on targets which support it. This eliminates many redundant zero-extension operations on x86-64. This adds a new TargetLowering hook, isZExtFree. It's similar to isTruncateFree, except it only applies to actual definitions, and not no-op truncates which may not zero the high bits. Also, this adds a new optimization to SimplifyDemandedBits: transform operations like x+y into (zext (add (trunc x), (trunc y))) on targets where all the casts are no-ops. In contexts where the high part of the add is explicitly masked off, this allows the mask operation to be eliminated. Fix the DAGCombiner to avoid undoing these transformations to eliminate casts on targets where the casts are no-ops. Also, this adds a new two-address lowering heuristic. Since two-address lowering runs before coalescing, it helps to be able to look through copies when deciding whether commuting and/or three-address conversion are profitable. Also, fix a bug in LiveInterval::MergeInClobberRanges. It didn't handle the case that a clobber range extended both before and beyond an existing live range. In that case, multiple live ranges need to be added. This was exposed by the new subreg coalescing code. Remove 2008-05-06-SpillerBug.ll. It was bugpoint-reduced, and the spiller behavior it was looking for no longer occurrs with the new instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68576 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
4cedb1c3efcf949dd5c719a282a2ffadda9af200 |
08-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Implement support for using modeling implicit-zero-extension on x86-64 with SUBREG_TO_REG, teach SimpleRegisterCoalescing to coalesce SUBREG_TO_REG instructions (which are similar to INSERT_SUBREG instructions), and teach the DAGCombiner to take advantage of this on targets which support it. This eliminates many redundant zero-extension operations on x86-64. This adds a new TargetLowering hook, isZExtFree. It's similar to isTruncateFree, except it only applies to actual definitions, and not no-op truncates which may not zero the high bits. Also, this adds a new optimization to SimplifyDemandedBits: transform operations like x+y into (zext (add (trunc x), (trunc y))) on targets where all the casts are no-ops. In contexts where the high part of the add is explicitly masked off, this allows the mask operation to be eliminated. Fix the DAGCombiner to avoid undoing these transformations to eliminate casts on targets where the casts are no-ops. Also, this adds a new two-address lowering heuristic. Since two-address lowering runs before coalescing, it helps to be able to look through copies when deciding whether commuting and/or three-address conversion are profitable. Also, fix a bug in LiveInterval::MergeInClobberRanges. It didn't handle the case that a clobber range extended both before and beyond an existing live range. In that case, multiple live ranges need to be added. This was exposed by the new subreg coalescing code. Remove 2008-05-06-SpillerBug.ll. It was bugpoint-reduced, and the spiller behavior it was looking for no longer occurrs with the new instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68576 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
a49a671efe24aa6e2e9e2280cf714ef97a40f177 |
08-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Revert prev. patch for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6d3db037bbc4aaa6631f4b001e644238b71d24e6 |
08-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Revert prev. patch for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
caf6129aba729cc6b085e3271c94af6fb33baf4d |
08-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Right now DBG_LABEL are required for llvm.dbg.region_start and llvm.dbg.region_end in non-fast mode also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4e1bcaaa9f36fdc2563733e37df516cf14479240 |
08-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Right now DBG_LABEL are required for llvm.dbg.region_start and llvm.dbg.region_end in non-fast mode also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4fd552880c9f42f117bd79929ea0179f99bd6bb7 |
07-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Don't attempt to handle aggregate argument values in FastISel; let SelectionDAG do those. This fixes PR3955. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
09532df84390ed3a68f551033f38b3bee755d349 |
07-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Don't attempt to handle aggregate argument values in FastISel; let SelectionDAG do those. This fixes PR3955. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f50c7981ae9b81f1212d72a06d1c05e20d0559af |
03-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Fix a TargetLowering optimization so that it doesn't duplicate loads when an input node has multiple uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
563db99a7e374e4498c62cc7705bd57f269c3878 |
03-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Fix a TargetLowering optimization so that it doesn't duplicate loads when an input node has multiple uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8f9643f0f768d5dcff0ffea1de6191dba1b5b083 |
03-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Delete ISD::INSERT_SUBREG and ISD::EXTRACT_SUBREG, which are unused. Note that these are distinct from TargetInstrInfo::INSERT_SUBREG and TargetInstrInfo::EXTRACT_SUBREG, which are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
dc7c052506a20c64e2d5f8eff6478ff1370063e8 |
03-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Delete ISD::INSERT_SUBREG and ISD::EXTRACT_SUBREG, which are unused. Note that these are distinct from TargetInstrInfo::INSERT_SUBREG and TargetInstrInfo::EXTRACT_SUBREG, which are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
5274a4afb720858bf1ab927fc90068f1a8f12eb2 |
02-Apr-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
To convert the StopPoint insn into an assembler directive by ISel, we need to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ec7cef48d6cfd4b864b5b815f0773806d6ac15dc |
02-Apr-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
To convert the StopPoint insn into an assembler directive by ISel, we need to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6fb2168aaed06e4685d064b6f63dc4c668b42728 |
31-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fully general expansion of integer shift of any size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68134 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
dd72a3fc2a15a0e8e2fec286ff97ac5c9e349542 |
31-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fully general expansion of integer shift of any size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68134 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
968dc7a2077d5c4a0b2fca9810b0fdf9cd62991b |
31-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Reapply 68073, with fixes. EH Landing-pad basic blocks are not entered via fall-through. Don't miss fallthroughs from blocks terminated by conditional branches. Also, move isOnlyReachableByFallthrough out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68129 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
d38f8766fa87a60c59fa28877702d0e733d70fa9 |
31-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Reapply 68073, with fixes. EH Landing-pad basic blocks are not entered via fall-through. Don't miss fallthroughs from blocks terminated by conditional branches. Also, move isOnlyReachableByFallthrough out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68129 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
456e281c11914034558f9878f88688ab7873647a |
31-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Minor top-level comment fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68113 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
f17684ec1e0a48745c7f5dc5b5192d490f743399 |
31-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Minor top-level comment fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68113 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
e67f5e42734199a1f4771773417699262491eb86 |
31-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Oy! When reverting r68073, I added in experimental code. Sorry... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68099 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
irtRegMap.cpp
irtRegMap.h
|
fbdad53f9e2f40ef0624390eef0ea3ccef782f71 |
31-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Oy! When reverting r68073, I added in experimental code. Sorry... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68099 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
irtRegMap.cpp
irtRegMap.h
|
696a1307ba5e98fe813d21cecb9dbfd72be8562c |
31-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Remove the "fast" cases for spill and restore point determination, as these were subtlely wrong in obscure cases. Patch the testcase to account for this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68093 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
99a19b6314ac11b77e643309e57150d5a38c1e40 |
31-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Remove the "fast" cases for spill and restore point determination, as these were subtlely wrong in obscure cases. Patch the testcase to account for this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68093 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
8fe00540fc6e1531d909d0688cc75a77b7dfa330 |
31-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r68073. It's causing a failure in the Apple-style builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68092 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
irtRegMap.cpp
irtRegMap.h
|
9193518e774925af5b64215b71d939337db5b1fb |
31-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r68073. It's causing a failure in the Apple-style builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68092 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
irtRegMap.cpp
irtRegMap.h
|
07c26ee87e4060f487867f1e283801bd8ced62d1 |
31-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix live-out reg logic to not insert over-aggressive AssertZExt instructions. This fixes lua. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
133762779dc3727a80f73f2d03eebe3bc0853695 |
31-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix live-out reg logic to not insert over-aggressive AssertZExt instructions. This fixes lua. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e6f350d7558f2db6c39c0a9fc8beafb796d9919a |
30-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turn a 2-address instruction into a 3-address one when it's profitable even if the two-address operand is killed. e.g. %reg1024<def> = MOV r1 %reg1025<def> = ADD %reg1024, %reg1026 r0 = MOV %reg1025 If it's not possible / profitable to commute ADD, then turning ADD into a LEA saves a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68065 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
dd21b3f323e45e7729a09840637c418d3470111b |
30-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turn a 2-address instruction into a 3-address one when it's profitable even if the two-address operand is killed. e.g. %reg1024<def> = MOV r1 %reg1025<def> = ADD %reg1024, %reg1026 r0 = MOV %reg1025 If it's not possible / profitable to commute ADD, then turning ADD into a LEA saves a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68065 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
fd302b7056b9fab0b54f2fcad8e942500de2a50e |
30-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Balance out quote in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68059 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
a5f5ea9e330283b0a31925eba368a550d5eef1fb |
30-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Balance out quote in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68059 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
430d423e4b85ab6bd008874e8db3c12adabfc39f |
30-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix grammar-o in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68057 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0e151d2dab8d38113b62a089c2b101f80d7ebd4f |
30-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Fix grammar-o in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68057 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6d1b89e74f98470d05666ca9f59a8ec5d04b5eb4 |
30-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Constify arguments in isSuccessor and isLayoutSuccessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68054 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
bca75228dacc438232f07241753249fe79cd21c9 |
30-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Constify arguments in isSuccessor and isLayoutSuccessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68054 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
004e27cc1bba070f013589cc8e434b03589c3c22 |
29-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3899: add support for extracting floats from vectors when using -soft-float. Based on a patch by Jakob Stoklund Olesen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
754fad1088715119c7a5b404548582bde7d8419e |
29-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3899: add support for extracting floats from vectors when using -soft-float. Based on a patch by Jakob Stoklund Olesen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
11ff97801b93af0d36244fd5877b1552cdfa0a86 |
28-Mar-2009 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Make check in CheckTailCallReturnConstraints for ignorable instructions between a CALL and a RET node more generic. Add a test for tail calls with a void return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e46f5508dcf45c7f4833913a49dfa3cd95ea74b3 |
28-Mar-2009 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Make check in CheckTailCallReturnConstraints for ignorable instructions between a CALL and a RET node more generic. Add a test for tail calls with a void return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e75fd69f15dc1b35d20b12d0e765ea6f2b9ffe0b |
28-Mar-2009 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Enable tail call optimization for functions that return a struct (bug 3664) and for functions that return types that need extending (e.g i1). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
219f13d4d668ce168c20767ce52793359ad2e3f9 |
28-Mar-2009 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Enable tail call optimization for functions that return a struct (bug 3664) and for functions that return types that need extending (e.g i1). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0b0cd9113af42c422c829563c3b12e6e52bd2d79 |
28-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Optimize some 64-bit multiplication by constants into two lea's or one lea + shl since imulq is slow (latency 5). e.g. x * 40 => shlq $3, %rdi leaq (%rdi,%rdi,4), %rax This has the added benefit of allowing more multiply to be folded into addressing mode. e.g. a * 24 + b => leaq (%rdi,%rdi,2), %rax leaq (%rsi,%rax,8), %rax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
04ecee185c120cc4a5bcdcbef9c66ba3f017e136 |
28-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Optimize some 64-bit multiplication by constants into two lea's or one lea + shl since imulq is slow (latency 5). e.g. x * 40 => shlq $3, %rdi leaq (%rdi,%rdi,4), %rax This has the added benefit of allowing more multiply to be folded into addressing mode. e.g. a * 24 + b => leaq (%rdi,%rdi,2), %rax leaq (%rsi,%rax,8), %rax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a80efceb93211a22e13dfc68198da4a25c1a7762 |
28-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix what surely must be a copy+pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67881 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d38e97f8f5604a6e487633e94b489647c49ad733 |
28-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix what surely must be a copy+pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67881 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
84d08db733f64d9c3da4d534a3c9b553e0f77ed8 |
28-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Initialize LiveOutInfo's APInt members to zero, as APInt's default constructor produces an uninitialized APInt. This fixes PR3896. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.h
|
c6a39145b11356be3fcc21f17b4f2e7e27b41408 |
28-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Initialize LiveOutInfo's APInt members to zero, as APInt's default constructor produces an uninitialized APInt. This fixes PR3896. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.h
|
ea4d351fc690bd6558fe9ca61db88ee809f0572f |
27-Mar-2009 |
John Mosby <ojomojo@gmail.com> |
Shrink wrapping in PEI: initial release. Finishing development, enable with --shrink-wrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67828 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d629ccf4289831de1ae354f8ec1cce0c201a4853 |
27-Mar-2009 |
John Mosby <ojomojo@gmail.com> |
Shrink wrapping in PEI: initial release. Finishing development, enable with --shrink-wrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67828 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b98bbb7597495fb401b020679a94389298175506 |
26-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Don't assign a new stack slot if the pre-alloc splitter already assigned one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67764 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5bfe6e8673cc52383c0184fe08bdb39a70625630 |
26-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Don't assign a new stack slot if the pre-alloc splitter already assigned one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67764 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a02a3dda5652995afaaf11148c11d98c9b9d908f |
26-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Pull transform from target-dependent code into target-independent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6ee0c45ef81ed447d4624f2dbc5b36c9f729f2e2 |
26-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Pull transform from target-dependent code into target-independent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3927f438b5a9fdadc17257802b09430b16d225f9 |
25-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 67132. This is breaking some objective-c apps. Also fixes SDISel so it *does not* force promote return value if the function is not marked signext / zeroext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
025098e3b1305b511b9d8b5286996c68e52b4dde |
25-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 67132. This is breaking some objective-c apps. Also fixes SDISel so it *does not* force promote return value if the function is not marked signext / zeroext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
beaec4cbf6cfd756084eff1ee2ad18ee17c33284 |
25-Mar-2009 |
Dale Johannesen <dalej@apple.com> |
When optimizing with debug info, don't keep the stoppoint nodes around until Legalize; doing this imposed an ordering on a sequence of loads that came from different lines, interfering with scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
db7b8a14081487faf549a0bf112d379ff8d8a664 |
25-Mar-2009 |
Dale Johannesen <dalej@apple.com> |
When optimizing with debug info, don't keep the stoppoint nodes around until Legalize; doing this imposed an ordering on a sequence of loads that came from different lines, interfering with scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
42bf74be1402df7409efbea089310d4c276fde37 |
25-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
CodeGen still defaults to non-verbose asm, but llc now overrides it and default to verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67668 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
|
42ceb47150b2d423f9668c7b128b90927ac22cb0 |
25-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
CodeGen still defaults to non-verbose asm, but llc now overrides it and default to verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67668 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LVMTargetMachine.cpp
|
86bda4174a90eff1305e51b0407a47a8dcecbe7b |
25-Mar-2009 |
Devang Patel <dpatel@apple.com> |
Do not ignore DW_TAG_class_type! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67661 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
093536027f0958cae15fde9db70042826cb6f718 |
25-Mar-2009 |
Devang Patel <dpatel@apple.com> |
Do not ignore DW_TAG_class_type! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67661 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
78a5bd5dbd4d99d916c69d89ceaabd83c0e52469 |
24-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3845: Avoid stale MachineInstruction pointer reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67649 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
834b8776328d456574642e7cc6657aa57931fc9f |
24-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3845: Avoid stale MachineInstruction pointer reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67649 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e2f7bf8e2d273e94487f06094e3619250a485b51 |
24-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
more tidying: name the components of PhysReg in the case when the target constraint specifies a specific physreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67618 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2c723b76a8813224c31d1e66c690ca2c4736afe6 |
24-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
more tidying: name the components of PhysReg in the case when the target constraint specifies a specific physreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67618 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
b3b4484e3d9e36c4c24a5409f2272a806b7af908 |
24-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Tidy a bit more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67617 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2cfec3239cbf4f7c18d8ffe3a29450e3d1740d7d |
24-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Tidy a bit more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67617 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
fc9d161f16933498d572463edf952c03bc5b1ec0 |
24-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
simplify this code a bit now that "allocation to a vreg class" can never fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
94b006b29b6e3ebf6b12f44cb944e061bdadfab4 |
24-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
simplify this code a bit now that "allocation to a vreg class" can never fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8f4aa333d02d0f48f90f4604d894a73ee53edcb5 |
24-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Minor compile-time optimization; don't bother checking canClobberPhysRegDefs if the successor node doesn't clobber any physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8d14eecb05cad7ac34eb6661546af4d5de88be4f |
24-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Minor compile-time optimization; don't bother checking canClobberPhysRegDefs if the successor node doesn't clobber any physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
002b44f1d7c0b301b78dec1f24d406d4b351fdaa |
24-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Add a pre-pass to the burr-list scheduler which makes adjustments to help out the register pressure reduction heuristics in the case of nodes with multiple uses. Currently this uses very conservative heuristics, so it doesn't have a broad impact, but in cases where it does help it can make a big difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
190f233ef60b1dba27124bcc839cdb107926e74a |
24-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Add a pre-pass to the burr-list scheduler which makes adjustments to help out the register pressure reduction heuristics in the case of nodes with multiple uses. Currently this uses very conservative heuristics, so it doesn't have a broad impact, but in cases where it does help it can make a big difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f1c0ae9de5365a578fbdfebe4625fb281b0be592 |
24-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not emit comments unless -asm-verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67580 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
11db8142e9de9bec53cf8dda1a2ac5eb85796805 |
24-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not emit comments unless -asm-verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67580 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5d088fee7cf20309669f85d2027e2b010b40025b |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in spill weight computation. If the alias is a super-register, and the super-register is in the register class we are trying to allocate. Then add the weight to all sub-registers of the super-register even if they are not aliases. e.g. allocating for GR32, bh is not used, updating bl spill weight. bl should get the same spill weight otherwise it will be choosen as a spill candidate since spilling bh doesn't make ebx available. This fix PR2866. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67574 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
c8a4a885604902d9372df1d64421a8a547ddddc6 |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in spill weight computation. If the alias is a super-register, and the super-register is in the register class we are trying to allocate. Then add the weight to all sub-registers of the super-register even if they are not aliases. e.g. allocating for GR32, bh is not used, updating bl spill weight. bl should get the same spill weight otherwise it will be choosen as a spill candidate since spilling bh doesn't make ebx available. This fix PR2866. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67574 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
1b25cb2416c46a6cebf2a6c52235e9fe46a10d11 |
23-Mar-2009 |
Dale Johannesen <dalej@apple.com> |
Fix internal representation of fp80 to be the same as a normal i80 {low64, high16} rather than its own {high64, low16}. A depressing number of places know about this; I think I got them all. Bitcode readers and writers convert back to the old form to avoid breaking compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67562 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0a92eac9ca4726f6abae09da011f6b6c708efb42 |
23-Mar-2009 |
Dale Johannesen <dalej@apple.com> |
Fix internal representation of fp80 to be the same as a normal i80 {low64, high16} rather than its own {high64, low16}. A depressing number of places know about this; I think I got them all. Bitcode readers and writers convert back to the old form to avoid breaking compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67562 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
fa9afef7eaa0865fb9f3489a68a04332b232ed82 |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
When unfolding a load during scheduling, the new operator node has a data dependency on the load node, so it really needs a data-dependence edge to the load node, even if the load previously existed. And add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f30c6d266f1b764cc54d81a9233fca50a16436cc |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
When unfolding a load during scheduling, the new operator node has a data dependency on the load node, so it really needs a data-dependence edge to the load node, even if the load previously existed. And add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2824a655509577127d221eecd1425de196f80320 |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3391 and PR3864. Reg allocator infinite looping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67544 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
973473b30002b407cea635e0a44029265490496a |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3391 and PR3864. Reg allocator infinite looping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67544 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
8cccf0ef0ced7f4d75ca574b596036a9b6cd4315 |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Don't set SUnit::hasPhysRegDefs to true unless the defs are actually have uses, which reflects the way it's used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67540 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
945014267f0187b7921472ab05e576b1354c07fb |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Don't set SUnit::hasPhysRegDefs to true unless the defs are actually have uses, which reflects the way it's used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67540 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
a5c8ae233ebaef270b8fa96565ca7bf4fdcb3e15 |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix canClobberPhysRegDefs to check all SDNodes grouped together in an SUnit, instead of just the first one. This fix is needed by some upcoming scheduler changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c205518ef378865564b65ed216f27eb74763b5dc |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix canClobberPhysRegDefs to check all SDNodes grouped together in an SUnit, instead of just the first one. This fix is needed by some upcoming scheduler changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3974667c1a6d48686e92f85bc4463bb239af7442 |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Add a new bit to SUnit to record whether a node has implicit physreg defs, regardless of whether they are actually used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67528 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
b872c7c9784c3b9a6c965379ed3ed2115c55f5b3 |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Add a new bit to SUnit to record whether a node has implicit physreg defs, regardless of whether they are actually used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67528 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
f871ccb853a2ccbe8675c912330c041b318be8cd |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Now that errs() is properly non-buffered, there's no need to explicitly flush it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67526 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
seudoSourceValue.cpp
electionDAG/SelectionDAG.cpp
|
e7d7b0fd48792ea131995c5d55002ee14fdb6bc5 |
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Now that errs() is properly non-buffered, there's no need to explicitly flush it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67526 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
seudoSourceValue.cpp
electionDAG/SelectionDAG.cpp
|
fb11288109329cb736d9f49769581a0d0c23fe19 |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Model inline asm constraint which ties an input to an output register as machine operand TIED_TO constraint. This eliminated the need to pre-allocate registers for these. This also allows register allocator can eliminate the unneeded copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67512 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
electionDAG/SelectionDAGBuild.cpp
woAddressInstructionPass.cpp
|
2682ea07a439718636fb7f2d841dc1095331244f |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Model inline asm constraint which ties an input to an output register as machine operand TIED_TO constraint. This eliminated the need to pre-allocate registers for these. This also allows register allocator can eliminate the unneeded copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67512 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
electionDAG/SelectionDAGBuild.cpp
woAddressInstructionPass.cpp
|
7d6d4b360fb8c1895b57eeb1284e792f953ea7ee |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not fold away subreg_to_reg if the source register has a sub-register index. That means the source register is taking a sub-register of a larger register. e.g. On x86 %RAX<def> = ... %RAX<def> = SUBREG_TO_REG 0, %EAX:3<kill>, 3 The first def is defining RAX, not EAX so the top bits were not zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67511 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
e8746322b19a60d50897ea85943a13a6ce8758e7 |
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Do not fold away subreg_to_reg if the source register has a sub-register index. That means the source register is taking a sub-register of a larger register. e.g. On x86 %RAX<def> = ... %RAX<def> = SUBREG_TO_REG 0, %EAX:3<kill>, 3 The first def is defining RAX, not EAX so the top bits were not zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67511 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
db95fa131a229652f925794ca7a5b84e9490050b |
20-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code; use a while instead of an if and a do-while. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
8c8d09e7eb3e6ea2276d24ba009831d11bb62a9d |
20-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code; use a while instead of an if and a do-while. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
697cbbfb00c318f98d6eb51945f077e2bfe8781e |
20-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
For inline asm output operand that matches an input. Encode the input operand index in the high bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67387 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
9216740fcc17e9442241a19034e9c1ad9cd65bc2 |
20-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
For inline asm output operand that matches an input. Encode the input operand index in the high bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67387 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
91520ea5854d3506b95a3d7a9a2b1f7cbb9a1c87 |
20-Mar-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fixed build warnings for unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67372 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
3178133b59294f53b19d2c4ff487ba56d72802dd |
20-Mar-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fixed build warnings for unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67372 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
|
b169426272b85ce28a9a56d13154e61b158fc47a |
20-Mar-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fixed the comment. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
dd5d7fe66802b6687af835c57b17a06c37d5f315 |
20-Mar-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Fixed the comment. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
8fc2d0ee8dd4e077ee90a1fcc36fd0101c2947a2 |
20-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Apply the patch requested in PR3846. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67364 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
1af9ebc6907e9c7fe66263bc7e4ff0a7609270fa |
20-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Apply the patch requested in PR3846. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67364 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
48fe63526e35ddaee7e98879596a569911f41319 |
20-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Fix the Win32 VS2008 build: - Make type declarations match the struct/class keyword of the definition. - Move AddSignalHandler into the namespace where it belongs. - Correctly call functions from template base. - Some other small changes. With this patch, LLVM and Clang should build properly and with far less noise under VS2008. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67347 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2aa4c4e0b21990367ef15cd6d42ab9f9dd9ff29f |
20-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Fix the Win32 VS2008 build: - Make type declarations match the struct/class keyword of the definition. - Move AddSignalHandler into the namespace where it belongs. - Correctly call functions from template base. - Some other small changes. With this patch, LLVM and Clang should build properly and with far less noise under VS2008. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67347 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a24752ff43dc1ad8c18c5d9e78549c45f62b980e |
19-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added MachineInstr::isRegTiedToDefOperand to check for two-addressness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67335 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLocal.cpp
piller.cpp
woAddressInstructionPass.cpp
|
48555e87376e895bb596dd3f4879c6eb3f46ce4a |
19-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added MachineInstr::isRegTiedToDefOperand to check for two-addressness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67335 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLocal.cpp
piller.cpp
woAddressInstructionPass.cpp
|
5e6345bde0f3a6405ec1ea852f1e5e5df8642f9c |
19-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PEI to not walk off the start of a block when an updated instruction is the first in its block. This is PR3842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67304 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
10a9d0cf6a5549593899e683a3644954a62530d3 |
19-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PEI to not walk off the start of a block when an updated instruction is the first in its block. This is PR3842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67304 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
aa9df0b0c3cef33514095bde2eedead986677955 |
18-Mar-2009 |
Mon P Wang <wangmp@apple.com> |
Added missing support for widening when splitting an unary op (PR3683) and expanding a bit convert (PR3711). In both cases, we extract the valid part of the widen vector and then do the conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
1b127eaad4867eb33176b5d65c0f043cf015e365 |
18-Mar-2009 |
Mon P Wang <wangmp@apple.com> |
Added missing support for widening when splitting an unary op (PR3683) and expanding a bit convert (PR3711). In both cases, we extract the valid part of the widen vector and then do the conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
152932b71c488a6522c541f847eb3081cffb3793 |
18-Mar-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't force promotion of return arguments on the callee. Some architectures (like x86) don't require it. This fixes bug 3779. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67132 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0c9872bc2ab82f4f3f105962da546679be3f2eb7 |
18-Mar-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't force promotion of return arguments on the callee. Some architectures (like x86) don't require it. This fixes bug 3779. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67132 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0b18e59336dcb18e036540dd667fed8d17c3cc09 |
17-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix codegen to compute the size of an allocation by multiplying the size by the array amount as an i32 value instead of promoting from i32 to i64 then doing the multiply. Not doing this broke wrap-around assumptions that the optimizers (validly) made. The ultimate real fix for this is to introduce i64 version of alloca and remove mallocinst. This fixes PR3829 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67093 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6ccad3bf0602e4771d53bb7d81ad26f37a6ea285 |
17-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix codegen to compute the size of an allocation by multiplying the size by the array amount as an i32 value instead of promoting from i32 to i64 then doing the multiply. Not doing this broke wrap-around assumptions that the optimizers (validly) made. The ultimate real fix for this is to introduce i64 version of alloca and remove mallocinst. This fixes PR3829 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67093 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
12a9dc8c14301ae199f2c2d6ab55cc5c995101cd |
17-Mar-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
r66870 missed this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67082 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
78224b1f53d916863f4882c5c1a5fe2a6c57c700 |
17-Mar-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
r66870 missed this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67082 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
a5fec0dba34206274041543b5924d2565fb10f9b |
17-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Reapply r67049, with the test adjusted for darwin (which produces "call L_f$stub" rather than "call f"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67079 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
5ce58d008f2f60dd51f2ad353db0fba856068254 |
17-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Reapply r67049, with the test adjusted for darwin (which produces "call L_f$stub" rather than "call f"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67079 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
93b7415f4cc9a83126f1d89b2d2f51a204b09dd6 |
17-Mar-2009 |
Mon P Wang <wangmp@apple.com> |
Fix a problem with DAGCombine where we were building an illegal build vector shuffle mask. Forced the mask to be built using i32. Note: this will be irrelevant once vector_shuffle no longer takes a build vector for the shuffle mask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c9f167263d9a4e1a9b71497593b3c9bc42280eb5 |
17-Mar-2009 |
Mon P Wang <wangmp@apple.com> |
Fix a problem with DAGCombine where we were building an illegal build vector shuffle mask. Forced the mask to be built using i32. Note: this will be irrelevant once vector_shuffle no longer takes a build vector for the shuffle mask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e47b0089d92497e7726516610ff6f925d6828569 |
17-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Spiller may unfold load / mod / store instructions as an optimization when the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67068 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
|
b6add9bb73de38c021bebe858f088382396831df |
17-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Spiller may unfold load / mod / store instructions as an optimization when the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67068 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
|
db14d63ceac6d667dc1669d199c01a8d3246203c |
16-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging (from foreign repository) r67049 into '.': U test/CodeGen/X86/2009-03-13-PHIElimBug.ll D test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll U lib/CodeGen/PHIElimination.cpp r67049 was causing this failure: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll for PR3784 Failed with exit(1) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll | llc -march=x86 | /usr/bin/grep -A 2 {call f} | /usr/bin/grep movl child process exited abnormally git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67051 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
a5c9c245bc37529d3e58c4a2557dc570dc981bbc |
16-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Reverse-merging (from foreign repository) r67049 into '.': U test/CodeGen/X86/2009-03-13-PHIElimBug.ll D test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll U lib/CodeGen/PHIElimination.cpp r67049 was causing this failure: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll for PR3784 Failed with exit(1) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll | llc -march=x86 | /usr/bin/grep -A 2 {call f} | /usr/bin/grep movl child process exited abnormally git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67051 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
dfec24c87711bac1564465742012d47bd5984c30 |
16-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Tweak the fix for PR3784: be less sensitive about just how invokes are set up. The fix could be disturbed by register copies coming after the EH_LABEL, and also didn't behave quite right when it was the invoke result that was used in a phi node. Also (see new testcase) fix another phi elimination bug while there: register copies in the landing pad need to come after the EH_LABEL, because that's where execution branches to when unwinding. If they come before the EH_LABEL then they will never be executed... Also tweak the original testcase so it doesn't use a no-longer existing counter. The accumulated phi elimination changes fix two of seven Ada testsuite failures that turned up after landing pad critical edge splitting was turned off. So there's probably more to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67049 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
02ef9cad0f37ca0ebfbcd6fa810ab97165039edf |
16-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Tweak the fix for PR3784: be less sensitive about just how invokes are set up. The fix could be disturbed by register copies coming after the EH_LABEL, and also didn't behave quite right when it was the invoke result that was used in a phi node. Also (see new testcase) fix another phi elimination bug while there: register copies in the landing pad need to come after the EH_LABEL, because that's where execution branches to when unwinding. If they come before the EH_LABEL then they will never be executed... Also tweak the original testcase so it doesn't use a no-longer existing counter. The accumulated phi elimination changes fix two of seven Ada testsuite failures that turned up after landing pad critical edge splitting was turned off. So there's probably more to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67049 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
420dd3732633986267996e76650422c0fa6f4993 |
14-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Give the pre-alloc splitter access to the VirtRegMap. It doesn't do anything useful with it at the moment, but it will in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67012 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
14579cc542e52439b1768244822eb241938104c6 |
14-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Give the pre-alloc splitter access to the VirtRegMap. It doesn't do anything useful with it at the moment, but it will in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67012 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
cfbf05ef03806e6b11520b95eb33adda27241c47 |
14-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add newlines at end of file (this can annoy gcov) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67000 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
irtRegMap.cpp
|
c863a614daecc1f092407143d8064a4c94680b6b |
14-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add newlines at end of file (this can annoy gcov) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67000 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
irtRegMap.cpp
|
0b7a786842fd6601b99b1073e5393ebc928c1e6c |
14-Mar-2009 |
Mon P Wang <wangmp@apple.com> |
Avoid doing the transformation c ? 1.0 : 2.0 as load { 2.0, 1.0 } + c*4 if FPConstant is legal because if the FPConstant doesn't need to be stored in a constant pool, the transformation is unlikely to be profitable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b9491a9aa3966c3be969284f4e92f4a087061505 |
14-Mar-2009 |
Mon P Wang <wangmp@apple.com> |
Avoid doing the transformation c ? 1.0 : 2.0 as load { 2.0, 1.0 } + c*4 if FPConstant is legal because if the FPConstant doesn't need to be stored in a constant pool, the transformation is unlikely to be profitable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
474d3b3f40e117a66946e9fb9d2016b4c05caef0 |
14-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Improve FastISel's handling of truncates to i1, and implement ptrtoint and inttoptr in X86FastISel. These casts aren't always handled in the generic FastISel code because X86 sometimes needs custom code to do truncation and zero-extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
94fc47afe6e708020394a53e7f435583e97b75db |
14-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Improve FastISel's handling of truncates to i1, and implement ptrtoint and inttoptr in X86FastISel. These casts aren't always handled in the generic FastISel code because X86 sometimes needs custom code to do truncation and zero-extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
fc0b80d9746e5fd4b45057ab814c67371fb0f9ea |
13-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3784: If the source of a phi comes from a bb ended with an invoke, make sure the copy is inserted before the try range (unless it's used as an input to the invoke, then insert it after the last use), not at the end of the bb. Also re-apply r66140 which was disabled as a workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66976 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
81b4435c4f05f7248cfcf2ac178dfd0b75ece3b5 |
13-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3784: If the source of a phi comes from a bb ended with an invoke, make sure the copy is inserted before the try range (unless it's used as an input to the invoke, then insert it after the last use), not at the end of the bb. Also re-apply r66140 which was disabled as a workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66976 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
14ea1ec2324cb595f2e035bbf54ddcd483f17c11 |
13-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix FastISel's assumption that i1 values are always zero-extended by inserting explicit zero extensions where necessary. Included is a testcase where SelectionDAG produces a virtual register holding an i1 value which FastISel previously mistakenly assumed to be zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
01648d9b73e596f3620e6177db7c1783547a74e4 |
13-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix FastISel's assumption that i1 values are always zero-extended by inserting explicit zero extensions where necessary. Included is a testcase where SelectionDAG produces a virtual register holding an i1 value which FastISel previously mistakenly assumed to be zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1606e8e4cd937e6de6681f686c266cf61722d972 |
13-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues. 1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants. 2. MachineConstantPool alignment field is also a log2 value. 3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values. 4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries. 5. Asm printer uses expensive data structure multimap to track constant pool entries by sections. 6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic. Solutions: 1. ConstantPoolSDNode alignment field is changed to keep non-log2 value. 2. MachineConstantPool alignment field is also changed to keep non-log2 value. 3. Functions that create ConstantPool nodes are passing in non-log2 alignments. 4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT. 5. Asm printer uses cheaper data structure to group constant pool entries. 6. Asm printer compute entry offsets after grouping is done. 7. Change JIT code to compute entry offsets on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
68c1868c4bdc04cd319ea92662aa5aaccf6ac378 |
13-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues. 1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants. 2. MachineConstantPool alignment field is also a log2 value. 3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values. 4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries. 5. Asm printer uses expensive data structure multimap to track constant pool entries by sections. 6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic. Solutions: 1. ConstantPoolSDNode alignment field is changed to keep non-log2 value. 2. MachineConstantPool alignment field is also changed to keep non-log2 value. 3. Functions that create ConstantPool nodes are passing in non-log2 alignments. 4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT. 5. Asm printer uses cheaper data structure to group constant pool entries. 6. Asm printer compute entry offsets after grouping is done. 7. Change JIT code to compute entry offsets on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achineFunction.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
49c8aa0d8b2824c70d178c5d55cda64d6613c0d8 |
13-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Convert VirtRegMap to a MachineFunctionPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66870 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocPBQP.cpp
irtRegMap.cpp
irtRegMap.h
|
dd56ab74dc5d05c3eb05814f2009e41b34e1a095 |
13-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Convert VirtRegMap to a MachineFunctionPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66870 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocPBQP.cpp
irtRegMap.cpp
irtRegMap.h
|
0582ae99ba75a556d6ff63b254da327d32ba036f |
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Oops...I committed too much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66867 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
f3f16e873f4ab3369a996f2c07c84df94dca2d82 |
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Oops...I committed too much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66867 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
c7a09ab3110b9462ad9646cb60c22c8527491ad9 |
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily XFAIL this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66866 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
ec6ffc713f5f6e584debda7c55e1b37652e63617 |
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily XFAIL this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66866 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
b398fca15bcca895526699f20336fa6c6a624013 |
13-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e68e538c04032fa0dfba8d59456b48281be12091 |
13-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0ff4e2105ba0d8e378cbd01bf9f4db935d1bf39f |
12-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Reorganize some #include's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66780 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
|
205ff2900080635cdf37084a548cc3ae0e75a0a2 |
12-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Reorganize some #include's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66780 91177308-0d34-0410-b5e6-96231b3b80d8
piller.cpp
piller.h
|
d1980a5acd8509ea34ee2dec5e13de5dbe16af2d |
12-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Move 3 "(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))" related transformations out of target-specific dag combine into the ARM backend. These were added by Evan in r37685 with no testcases and only seems to help ARM (e.g. test/CodeGen/ARM/select_xform.ll). Add some simple X86-specific (for now) DAG combines that turn things like cond ? 8 : 0 -> (zext(cond) << 3). This happens frequently with the recently added cp constant select optimization, but is a very general xform. For example, we now compile the second example in const-select.ll to: _test: movsd LCPI2_0, %xmm0 ucomisd 8(%esp), %xmm0 seta %al movzbl %al, %eax movl 4(%esp), %ecx movsbl (%ecx,%eax,4), %eax ret instead of: _test: movl 4(%esp), %eax leal 4(%eax), %ecx movsd LCPI2_0, %xmm0 ucomisd 8(%esp), %xmm0 cmovbe %eax, %ecx movsbl (%ecx), %eax ret This passes multisource and dejagnu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e4577dcdb3554eb8306dff4731eda1fd695eee4b |
12-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Move 3 "(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))" related transformations out of target-specific dag combine into the ARM backend. These were added by Evan in r37685 with no testcases and only seems to help ARM (e.g. test/CodeGen/ARM/select_xform.ll). Add some simple X86-specific (for now) DAG combines that turn things like cond ? 8 : 0 -> (zext(cond) << 3). This happens frequently with the recently added cp constant select optimization, but is a very general xform. For example, we now compile the second example in const-select.ll to: _test: movsd LCPI2_0, %xmm0 ucomisd 8(%esp), %xmm0 seta %al movzbl %al, %eax movl 4(%esp), %ecx movsbl (%ecx,%eax,4), %eax ret instead of: _test: movl 4(%esp), %eax leal 4(%eax), %ecx movsd LCPI2_0, %xmm0 ucomisd 8(%esp), %xmm0 cmovbe %eax, %ecx movsbl (%ecx), %eax ret This passes multisource and dejagnu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8042255118ddaf49ac940805b95f77eddecc70e5 |
12-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable Chris' value propagation change. It make available known sign, zero, one bits information for values that are live out of basic blocks. The goal is to eliminate unnecessary sext, zext, truncate of values that are live-in to blocks. This does not handle PHI nodes yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66777 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
48d23f62f30393c0a0226b91b7ddcfe40cf84a65 |
12-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable Chris' value propagation change. It make available known sign, zero, one bits information for values that are live out of basic blocks. The goal is to eliminate unnecessary sext, zext, truncate of values that are live-in to blocks. This does not handle PHI nodes yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66777 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c40d4f85ddd6f822480f91dacd9646eec055c4ca |
11-Mar-2009 |
Gabor Greif <ggreif@gmail.com> |
update git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66733 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
fff4f8deefdc5fd9f991866427bc02afc0f5cf18 |
11-Mar-2009 |
Gabor Greif <ggreif@gmail.com> |
update git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66733 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
1ed5b714f1c98b370145fdebb6c21bbc7caa52d5 |
11-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. No (intended) functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66720 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocPBQP.cpp
piller.cpp
piller.h
irtRegMap.cpp
irtRegMap.h
|
860d482b5940d0e7fff09f50f2df409de4b989ff |
11-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. No (intended) functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66720 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocPBQP.cpp
piller.cpp
piller.h
irtRegMap.cpp
irtRegMap.h
|
a597a9761845652807c311e6622d6d727a5f1725 |
11-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
My last coalescer fix introduced a subtler one. It's aborting a commuting optimization too late and left the live intervals to be out of sync with instructions. This fixes 8b10b. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66715 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
fcb6ccae9bec2676af2a6b126a0a2ff32176fa16 |
11-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
My last coalescer fix introduced a subtler one. It's aborting a commuting optimization too late and left the live intervals to be out of sync with instructions. This fixes 8b10b. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66715 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4dc2b39bf89d7c87868008ef8a0f807e0419aca6 |
11-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
It makes no sense to have a ODR version of common linkage, so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66690 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
b95df796a8a89e5817148cf229fb0152bff9d105 |
11-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
It makes no sense to have a ODR version of common linkage, so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66690 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
9e8bd0b362c034e629b9ee1f32e4e1adf037f529 |
11-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Add parentheses to pacify gcc-4.3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66653 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
344685446a17406b82c41daac8daa8b5c4306b6c |
11-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Add parentheses to pacify gcc-4.3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66653 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
600fec3cea2d1d894496cdb8dd4ae280a2395179 |
11-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
reapply my previous patch (r66358) with a tweak to set the alignment of the generated constant pool entry to the desired alignment of a type. If we don't do this, we end up trying to do movsd from 4-byte alignment memory. This fixes 450.soplex and 456.hmmer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
00fc17c744dfddfc6b9a41029024f262e49c2b17 |
11-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
reapply my previous patch (r66358) with a tweak to set the alignment of the generated constant pool entry to the desired alignment of a type. If we don't do this, we end up trying to do movsd from 4-byte alignment memory. This fixes 450.soplex and 456.hmmer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1362f97018a81f169f7b3a78236c0da6700bdbba |
11-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Put the assignment back at the top of this method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66611 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c1d211d9a99f24a7b810af03cbaf1cef9196e302 |
11-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Put the assignment back at the top of this method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66611 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a2e6435e483f30e00382a5758f6dcc67e213b57a |
11-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Two coalescer fixes in one. 1. Use the same value# to represent unknown values being merged into sub-registers. 2. When coalescer commute an instruction and the destination is a physical register, update its sub-registers by merging in the extended ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66610 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
ed642cb0cc7a046d2e7f0ef5d49627b4434ac6d8 |
11-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Two coalescer fixes in one. 1. Use the same value# to represent unknown values being merged into sub-registers. 2. When coalescer commute an instruction and the destination is a physical register, update its sub-registers by merging in the extended ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66610 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
dd446324982c1b54d6ecc756d2eff9ce37e6e5c1 |
11-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Make ivars private. Other cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
15afa0070717e7319d7e5eaf246bf7bfca5baf90 |
11-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Make ivars private. Other cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66607 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
68edf5f68a9e25120f06ab30e064a869eb83018e |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Just make the Dwarf timer group static inside of the getter function. No need to alloc/dealloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66591 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
148ecc436873b2226d15f5a51a2428819c0f65d4 |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Just make the Dwarf timer group static inside of the getter function. No need to alloc/dealloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66591 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
fc232b08f348f778e34e98e70168cf2dd1074f63 |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't put static functions in anonymous namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e0e2df4cc3f9f31920640c6992396b7296bc2fa6 |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't put static functions in anonymous namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7b69720ff42cad9b3eabe273a21948d23e220caf |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
These should *stop* the timer, not start it again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
0be24759002b31127bd7a6004d2275925cad28c9 |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
These should *stop* the timer, not start it again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66586 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e9e960ff55594d503d59b3ccc002d2cd5e4ffa67 |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
- Fix misspelled method name. - Remove unused method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66585 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
df25fd6da2e09fd625995ac4cb912e04485b8a9c |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
- Fix misspelled method name. - Remove unused method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66585 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c8615e4d3955dc14f78fc426dbfe3e9e9dc8c009 |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
- Create GetOrCreateSourceID from getOrCreateSourceID. GetOrCreateSourceID is the untimed version of getOrCreateSourceID. getOrCreateSourceID calls GetOrCreateSourceID, of course. - Move some methods into the "private" section. Constify at least one method. - General clean-ups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66582 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
278a392595eebca8a7252e52bf771eb443bd2f6a |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
- Create GetOrCreateSourceID from getOrCreateSourceID. GetOrCreateSourceID is the untimed version of getOrCreateSourceID. getOrCreateSourceID calls GetOrCreateSourceID, of course. - Move some methods into the "private" section. Constify at least one method. - General clean-ups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66582 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
163ba3fa39f015b694f43915e829df7c03fe9a5c |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Refine the Dwarf writer timers so that they measure exception writing and debug writing individually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d9308a66615a9d3f2a1cc829885f8fb31493a19e |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Refine the Dwarf writer timers so that they measure exception writing and debug writing individually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66577 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
41d88d2ac07d1ccbb3c0d1430d57102aada89390 |
10-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 66358 for now. It's breaking povray, 450.soplex, and 456.hmmer on x86 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c34b4449be37df98eaf09e4c88e5648cb2a1f2c6 |
10-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 66358 for now. It's breaking povray, 450.soplex, and 456.hmmer on x86 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
91b8b8010a55ca2969f379e6a110420afbbac12e |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Add a timer to the DwarfWriter pass that measures the total time it takes to emit exception and debug Dwarf info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66571 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
cb3661fd9d448bfd7b7e7e10a8cd01d3acf8c2a7 |
10-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Add a timer to the DwarfWriter pass that measures the total time it takes to emit exception and debug Dwarf info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66571 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
1274ced8a3f0fd1e9a6f7c7e17d69368c4f78b90 |
10-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix a post-RA scheduling liveness bug. When a basic block is being scheduled in multiple regions, liveness data used by the anti-dependence breaker is carried from one region to the next, however the information reflects the state of the instructions before scheduling. After scheduling, there may be new live range overlaps. Handle this by pessimizing the liveness data carried between regions to the point where it will be conservatively correct now matter how the earlier region is scheduled. This fixes a miscompilation in 176.gcc with the post-RA scheduler enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66558 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
68ade7b4321ef3210f94ccf6a5802ef3f70280ac |
10-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix a post-RA scheduling liveness bug. When a basic block is being scheduled in multiple regions, liveness data used by the anti-dependence breaker is carried from one region to the next, however the information reflects the state of the instructions before scheduling. After scheduling, there may be new live range overlaps. Handle this by pessimizing the liveness data carried between regions to the point where it will be conservatively correct now matter how the earlier region is scheduled. This fixes a miscompilation in 176.gcc with the post-RA scheduler enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66558 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
3e0cc2634e861b789850b5103efcc8898bf14c4c |
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
wire up support for emitting "special" values from inline asm format strings with the standard ${:foo} syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66527 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
6af4803b03c1af7c326678d4af641f76a4ffbed6 |
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
wire up support for emitting "special" values from inline asm format strings with the standard ${:foo} syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66527 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
66b8bc3289b872cd4b7480710a530f718cc536de |
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3763 by using proper APInt methods instead of uint64_t's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
12e5aa81e6d5fed4ec2a96f0fe69d42699139133 |
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3763 by using proper APInt methods instead of uint64_t's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0d8fc52ed37af612dae62868727b840b8936efb2 |
09-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Yet another case where the spiller marked two uses of the same register on the same instruction as kill. This fixes PR3706. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66428 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
19119ac4939178efefbd5abc6e3fe7ba776aef8c |
09-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Yet another case where the spiller marked two uses of the same register on the same instruction as kill. This fixes PR3706. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66428 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ea3a9ff53d699bc22fcff52dbbce8aab6578a020 |
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
just remove the use_empty() check entirely, the only reason it existed was for llvm-gcc 3.4 (which used the __main hack) which is really really long dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66417 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1e0e4896a635b3a82eab996f58e77e0a5ba537bd |
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
just remove the use_empty() check entirely, the only reason it existed was for llvm-gcc 3.4 (which used the __main hack) which is really really long dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66417 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f231c07228deb75b6cd5ae7c9c057bc8303c6998 |
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Make the code generator rip of dead constant expr uses before deciding whether a global is dead or not. This should fix PR3749 - linker adds spurious use to appending globals. I can't reasonably add a testcase for this, because the bc writer/reader strip dead constant users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66404 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0c433e93020a7c1ab9edfcae3073a9322daa7225 |
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Make the code generator rip of dead constant expr uses before deciding whether a global is dead or not. This should fix PR3749 - linker adds spurious use to appending globals. I can't reasonably add a testcase for this, because the bc writer/reader strip dead constant users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66404 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ccbdc7ab82792ac5d7863ef086f11fb010d88073 |
09-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in a std::string when getting the names of debugging things. This cuts down on the number of times a std::string is created and copied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
1c5842ba9921d6e1360ad6c859da81186545473a |
09-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in a std::string when getting the names of debugging things. This cuts down on the number of times a std::string is created and copied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66396 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
821b8560e735613dfcf7670866f9142e4845037e |
08-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
If a MI uses the same register more than once, only mark one of them as 'kill'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66363 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
0ba746f9630d53f7b06bb6fd12225352ef91b24d |
08-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
If a MI uses the same register more than once, only mark one of them as 'kill'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66363 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
476769498e9d2f406a9f9f64218f513636734422 |
08-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
implement an optimization to codegen c ? 1.0 : 2.0 as load { 2.0, 1.0 } + c*4. For 2009-03-07-FPConstSelect.ll we now produce: _f: xorl %eax, %eax testl %edi, %edi movl $4, %ecx cmovne %rax, %rcx leaq LCPI1_0(%rip), %rax movss (%rcx,%rax), %xmm0 ret previously we produced: _f: subl $4, %esp cmpl $0, 8(%esp) movss LCPI1_0, %xmm0 je LBB1_2 ## entry LBB1_1: ## entry movss LCPI1_1, %xmm0 LBB1_2: ## entry movss %xmm0, (%esp) flds (%esp) addl $4, %esp ret on PPC the code also improves to: _f: cntlzw r2, r3 srwi r2, r2, 5 li r3, lo16(LCPI1_0) slwi r2, r2, 2 addis r3, r3, ha16(LCPI1_0) lfsx f1, r3, r2 blr from: _f: li r2, lo16(LCPI1_1) cmplwi cr0, r3, 0 addis r2, r2, ha16(LCPI1_1) beq cr0, LBB1_2 ; entry LBB1_1: ; entry li r2, lo16(LCPI1_0) addis r2, r2, ha16(LCPI1_0) LBB1_2: ; entry lfs f1, 0(r2) blr This also improves the existing pic-cpool case from: foo: subl $12, %esp call .Lllvm$1.$piclabel .Lllvm$1.$piclabel: popl %eax addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax cmpl $0, 16(%esp) movsd .LCPI1_0@GOTOFF(%eax), %xmm0 je .LBB1_2 # entry .LBB1_1: # entry movsd .LCPI1_1@GOTOFF(%eax), %xmm0 .LBB1_2: # entry movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret to: foo: call .Lllvm$1.$piclabel .Lllvm$1.$piclabel: popl %eax addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax xorl %ecx, %ecx cmpl $0, 4(%esp) movl $8, %edx cmovne %ecx, %edx fldl .LCPI1_0@GOTOFF(%eax,%edx) ret This triggers a few dozen times in spec FP 2000. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2a4a70ad09a0328888ad0b014c7f2361eb90d284 |
08-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
implement an optimization to codegen c ? 1.0 : 2.0 as load { 2.0, 1.0 } + c*4. For 2009-03-07-FPConstSelect.ll we now produce: _f: xorl %eax, %eax testl %edi, %edi movl $4, %ecx cmovne %rax, %rcx leaq LCPI1_0(%rip), %rax movss (%rcx,%rax), %xmm0 ret previously we produced: _f: subl $4, %esp cmpl $0, 8(%esp) movss LCPI1_0, %xmm0 je LBB1_2 ## entry LBB1_1: ## entry movss LCPI1_1, %xmm0 LBB1_2: ## entry movss %xmm0, (%esp) flds (%esp) addl $4, %esp ret on PPC the code also improves to: _f: cntlzw r2, r3 srwi r2, r2, 5 li r3, lo16(LCPI1_0) slwi r2, r2, 2 addis r3, r3, ha16(LCPI1_0) lfsx f1, r3, r2 blr from: _f: li r2, lo16(LCPI1_1) cmplwi cr0, r3, 0 addis r2, r2, ha16(LCPI1_1) beq cr0, LBB1_2 ; entry LBB1_1: ; entry li r2, lo16(LCPI1_0) addis r2, r2, ha16(LCPI1_0) LBB1_2: ; entry lfs f1, 0(r2) blr This also improves the existing pic-cpool case from: foo: subl $12, %esp call .Lllvm$1.$piclabel .Lllvm$1.$piclabel: popl %eax addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax cmpl $0, 16(%esp) movsd .LCPI1_0@GOTOFF(%eax), %xmm0 je .LBB1_2 # entry .LBB1_1: # entry movsd .LCPI1_1@GOTOFF(%eax), %xmm0 .LBB1_2: # entry movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret to: foo: call .Lllvm$1.$piclabel .Lllvm$1.$piclabel: popl %eax addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax xorl %ecx, %ecx cmpl $0, 4(%esp) movl $8, %edx cmovne %ecx, %edx fldl .LCPI1_0@GOTOFF(%eax,%edx) ret This triggers a few dozen times in spec FP 2000. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d2e936a513b01b2c5df91a9c0d80070e8c752ace |
08-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
random cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
50ce834a58fc70fe5755ee147f02a2bdee936190 |
08-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
random cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
667d4b8de6dea70195ff12ef39a4deebffa2f5c7 |
07-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce new linkage types linkonce_odr, weak_odr, common_odr and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
LFWriter.cpp
ntrinsicLowering.cpp
achOWriter.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
|
19d161f714b83cd850fe489aa3fdaa3d3744157b |
07-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce new linkage types linkonce_odr, weak_odr, common_odr and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66339 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
LFWriter.cpp
ntrinsicLowering.cpp
achOWriter.cpp
electionDAG/TargetLowering.cpp
hadowStackGC.cpp
|
16e8eda4b8b0825d38ba37d31c99edba0fb25482 |
06-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix ScheduleDAGRRList::CopyAndMoveSuccessors' handling of nodes with multiple chain operands. This can occur when the scheduler has added chain operands to a node that already has a chain operand, in order to handle physical register dependencies. This fixes an llvm-gcc bootstrap failure on x86-64 introduced in r66058. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
4e1187fbc7e8f8046311487c0801a010f3c20a75 |
06-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix ScheduleDAGRRList::CopyAndMoveSuccessors' handling of nodes with multiple chain operands. This can occur when the scheduler has added chain operands to a node that already has a chain operand, in order to handle physical register dependencies. This fixes an llvm-gcc bootstrap failure on x86-64 introduced in r66058. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
5601699d7c36b819179a7d89270100c34b3d0a32 |
06-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
When we split a basic block, there's a default branch to the newly created BB. Delete this default branch, because we're going to generate our own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66234 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
4e14b6588e441534f2b2fc806261a9fe126ae520 |
06-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
When we split a basic block, there's a default branch to the newly created BB. Delete this default branch, because we're going to generate our own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66234 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
a2bfb54e4dd671c5f9ef32cd91b7133d424d9ee4 |
05-Mar-2009 |
Owen Anderson <resistor@mac.com> |
(Hopefully) silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66158 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
d6e3f9b8faebdd8b6d23b94adda3a867b30672aa |
05-Mar-2009 |
Owen Anderson <resistor@mac.com> |
(Hopefully) silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66158 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
323c58d862cca19e45d07996a5abacd0667f264d |
05-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Be more careful about choosing restore points when doing restore folding. This fixes some subtle miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66147 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
170e4990c3eca3ac77f6ba50ab7732c70d0aff2c |
05-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Be more careful about choosing restore points when doing restore folding. This fixes some subtle miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66147 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
0076c616e8abc2ecf36600a7ac20ec784420cdc4 |
05-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix how livein live intervals are handled. Previously it could end at MBB start. Sorry, no small test case possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66129 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1e16ae4713d647ab8fe267d1ab3c2028f9a19fbf |
05-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix how livein live intervals are handled. Previously it could end at MBB start. Sorry, no small test case possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66129 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d344b884dd6e1fde91c631f99413b9553f3c5c59 |
04-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix BuildVectorSDNode::isConstantSplat to handle one-element vectors. It is an error to call APInt::zext with a size that is equal to the value's current size, so use zextOrTrunc instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66039 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0e94e91f8140a123512e7a658fcd9f54c7758c48 |
04-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix BuildVectorSDNode::isConstantSplat to handle one-element vectors. It is an error to call APInt::zext with a size that is equal to the value's current size, so use zextOrTrunc instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66039 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c93023a89e9f3c4937a4b23db13f974afac94e50 |
04-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Add a restore folder, which shaves a dozen or so machineinstrs off oggenc. Update a testcase to check this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66029 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
060d65ef50888e0cd3504830cb6612d9b1130387 |
04-Mar-2009 |
Owen Anderson <resistor@mac.com> |
Add a restore folder, which shaves a dozen or so machineinstrs off oggenc. Update a testcase to check this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66029 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
27759f41ca1c930e2860275c9ba2567a5890d7d2 |
04-Mar-2009 |
Eli Friedman <eli.friedman@gmail.com> |
PR3686: make the legalizer handle bitcast from i80 to x86 long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
360dc9c99f00f7e767fbedfe022c135ce6b117c4 |
04-Mar-2009 |
Eli Friedman <eli.friedman@gmail.com> |
PR3686: make the legalizer handle bitcast from i80 to x86 long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
599a6a88ce1925a6349ac7af9a9638aad1d832cc |
04-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3701. 1. X86 target renamed eflags register to flags. This matches what llvm-gcc generates so codegen knows flags register is being clobbered by inline asm. 2. BURR scheduler should also check if inline asm nodes can clobber "live" physical registers. Previously it was only checking target nodes with implicit defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
45be09ac15f81d34999bb276a24021d8fb91bca1 |
04-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3701. 1. X86 target renamed eflags register to flags. This matches what llvm-gcc generates so codegen knows flags register is being clobbered by inline asm. 2. BURR scheduler should also check if inline asm nodes can clobber "live" physical registers. Previously it was only checking target nodes with implicit defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65996 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
36ae6c182759871a4af71d9af85f970b29a669f1 |
04-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
The DAG combiner was performing a BT combine. The BT combine had a value of -1, so it changed it into a 31 via the TLO.ShrinkDemandedConstant() call. Then it would go through the DAG combiner again. This time it had a value of 31, which was turned into a -1 by TLI.SimplifyDemandedBits(). This would ping pong forever. Teach the TLO.ShrinkDemandedConstant() call not to lower a value if the demanded value is an XOR of all ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65985 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e16c4334eec988ae3573f48fd8fe1a748316eb46 |
04-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
The DAG combiner was performing a BT combine. The BT combine had a value of -1, so it changed it into a 31 via the TLO.ShrinkDemandedConstant() call. Then it would go through the DAG combiner again. This time it had a value of 31, which was turned into a -1 by TLI.SimplifyDemandedBits(). This would ping pong forever. Teach the TLO.ShrinkDemandedConstant() call not to lower a value if the demanded value is an XOR of all ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65985 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
24e338e8a3dab2923db30fe63d77a5ac95456ff9 |
03-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Generalize BuildVectorSDNode::isConstantSplat to use APInts and handle arbitrary vector sizes. Add an optional MinSplatBits parameter to specify a minimum for the splat element size. Update the PPC target to use the revised interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e653968fa9cb34ee29cee7abb82607fe28608daf |
03-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Generalize BuildVectorSDNode::isConstantSplat to use APInts and handle arbitrary vector sizes. Add an optional MinSplatBits parameter to specify a minimum for the splat element size. Update the PPC target to use the revised interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cbd88adea66261a2f4372906fe1e08c2093d8718 |
02-Mar-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix a problem with DAGCombine on 64b targets where folding extracts + build_vector into a shuffle would fail, because the type of the new build_vector would not be legal. Try harder to create a legal build_vector type. Note: this will be totally irrelevant once vector_shuffle no longer takes a build_vector for shuffle mask. New: _foo: xorps %xmm0, %xmm0 xorps %xmm1, %xmm1 subps %xmm1, %xmm1 mulps %xmm0, %xmm1 addps %xmm0, %xmm1 movaps %xmm1, 0 Old: _foo: xorps %xmm0, %xmm0 movss %xmm0, %xmm1 xorps %xmm2, %xmm2 unpcklps %xmm1, %xmm2 pshufd $80, %xmm1, %xmm1 unpcklps %xmm1, %xmm2 pslldq $16, %xmm2 pshufd $57, %xmm2, %xmm1 subps %xmm0, %xmm1 mulps %xmm0, %xmm1 addps %xmm0, %xmm1 movaps %xmm1, 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1e06eca05d16f2776c9da8f48e198b986b331a75 |
02-Mar-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix a problem with DAGCombine on 64b targets where folding extracts + build_vector into a shuffle would fail, because the type of the new build_vector would not be legal. Try harder to create a legal build_vector type. Note: this will be totally irrelevant once vector_shuffle no longer takes a build_vector for shuffle mask. New: _foo: xorps %xmm0, %xmm0 xorps %xmm1, %xmm1 subps %xmm1, %xmm1 mulps %xmm0, %xmm1 addps %xmm0, %xmm1 movaps %xmm1, 0 Old: _foo: xorps %xmm0, %xmm0 movss %xmm0, %xmm1 xorps %xmm2, %xmm2 unpcklps %xmm1, %xmm2 pshufd $80, %xmm1, %xmm1 unpcklps %xmm1, %xmm2 pslldq $16, %xmm2 pshufd $57, %xmm2, %xmm1 subps %xmm0, %xmm1 mulps %xmm0, %xmm1 addps %xmm0, %xmm1 movaps %xmm1, 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65791 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
870b80722f7ce3232dd45e95cff663d177e0acc0 |
01-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Minor optimization: Look for situations like this: %reg1024<def> = MOV r1 %reg1025<def> = MOV r0 %reg1026<def> = ADD %reg1024, %reg1025 r0 = MOV %reg1026 Commute the ADD to hopefully eliminate an otherwise unavoidable copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65752 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
819200f486405544088935ffd281beb78357db47 |
01-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Minor optimization: Look for situations like this: %reg1024<def> = MOV r1 %reg1025<def> = MOV r0 %reg1026<def> = ADD %reg1024, %reg1025 r0 = MOV %reg1026 Commute the ADD to hopefully eliminate an otherwise unavoidable copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65752 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
a27ea9e89f38e9bcca4d67defb0bae887a16d72c |
01-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Combine PPC's GetConstantBuildVectorBits and isConstantSplat functions to a new method in a BuildVectorSDNode "pseudo-class". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b6fc1fb5613d4ba9b41a74e9b86b9c4d0d395bb3 |
01-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Combine PPC's GetConstantBuildVectorBits and isConstantSplat functions to a new method in a BuildVectorSDNode "pseudo-class". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c8bb37a50a7f5e5627523d2eab3e4860d1796dcc |
28-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Last commit accidentially deleted this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65679 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
18a46c348777c36a8fc49e2b40b0a5a8afe2f129 |
28-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Last commit accidentially deleted this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65679 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
9ac08d6a67a66c4f5deea23f152629756defcaf1 |
27-Feb-2009 |
Devang Patel <dpatel@apple.com> |
It is possible that subprgoram definition is only encoding return value directly, instsad of an DIArray of all argument types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65643 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
688a19fa3d7f9b5d746d402408a97de51af00b27 |
27-Feb-2009 |
Devang Patel <dpatel@apple.com> |
It is possible that subprgoram definition is only encoding return value directly, instsad of an DIArray of all argument types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65643 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
9a58023c6ce1e77447a21d07a3de4c1ac98a3d24 |
27-Feb-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Refactor TLS code and add some tests. The tests and expected results are: pic | declaration | linkage | visibility | !pic | declaration | external | default | tls1.ll tls2.ll | local exec pic | declaration | external | default | tls1-pic.ll tls2-pic.ll | general dynamic !pic | !declaration | external | default | tls3.ll tls4.ll | initial exec pic | !declaration | external | default | tls3-pic.ll tls4-pic.ll | general dynamic !pic | declaration | external | hidden | tls7.ll tls8.ll | local exec pic | declaration | external | hidden | X | local dynamic !pic | !declaration | external | hidden | tls9.ll tls10.ll | local exec pic | !declaration | external | hidden | X | local dynamic !pic | declaration | internal | default | tls5.ll tls6.ll | local exec pic | declaration | internal | default | X | local dynamic The ones marked with an X have not been implemented since local dynamic is not implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7b620afb60382e26ea0c974175b50414f19fc0ff |
27-Feb-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Refactor TLS code and add some tests. The tests and expected results are: pic | declaration | linkage | visibility | !pic | declaration | external | default | tls1.ll tls2.ll | local exec pic | declaration | external | default | tls1-pic.ll tls2-pic.ll | general dynamic !pic | !declaration | external | default | tls3.ll tls4.ll | initial exec pic | !declaration | external | default | tls3-pic.ll tls4-pic.ll | general dynamic !pic | declaration | external | hidden | tls7.ll tls8.ll | local exec pic | declaration | external | hidden | X | local dynamic !pic | !declaration | external | hidden | tls9.ll tls10.ll | local exec pic | !declaration | external | hidden | X | local dynamic !pic | declaration | internal | default | tls5.ll tls6.ll | local exec pic | declaration | internal | default | X | local dynamic The ones marked with an X have not been implemented since local dynamic is not implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
efc783951c0ab801601aeaeae07ef2a7305d37b0 |
27-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
MachineLICM CSE should match destination register classes; avoid hoisting implicit_def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65592 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
7795d0bb4b82069f986e8fd5cbfad246f8fe2053 |
27-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
MachineLICM CSE should match destination register classes; avoid hoisting implicit_def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65592 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
130abb29cc9306a9d447d0e46041e242583e01fd |
26-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Enable stack slot coloring DCE. Evan's spiller fixes were needed before this could happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65501 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
02352c49a3527ae24045fb91ff28cc371c2df8ca |
26-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Enable stack slot coloring DCE. Evan's spiller fixes were needed before this could happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65501 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
04cf3e39f3895434c75dd9fbe9070cd33fe6cbc0 |
26-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
The last commit was overly conservative. It's ok to reuse value that's already marked livein. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65498 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
de5f09b0d6ede4066134f767630df52c418d5ab7 |
26-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
The last commit was overly conservative. It's ok to reuse value that's already marked livein. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65498 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
f792352c25880ee0c61b2da2d03927b9356b77e8 |
26-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If an available register falls through to a succ block, unset the last kill. Sorry, it's impossible to reduce a sensible test case. It basically requires the moon and stars to align in order to cause a failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65497 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a51e838d36b571c779425464529d1b4555652989 |
26-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If an available register falls through to a succ block, unset the last kill. Sorry, it's impossible to reduce a sensible test case. It basically requires the moon and stars to align in order to cause a failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65497 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a87008d90b7d894cfca53d407642acfd7be2af3c |
25-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert BuildVectorSDNode related patches: 65426, 65427, and 65296. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
907a2d20d36fb0bee4fb5e0cd1b37d4a94d6ec06 |
25-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert BuildVectorSDNode related patches: 65426, 65427, and 65296. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
8a36f509cd0fd4c503c8564000f77713e1676c56 |
25-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fix big-endian codegen bug. We're splitting up overly long ints, e.g. i96, into pieces at PHIs and the nodes that feed into them; however big-endian reverses the order of the pieces (for some reason), and wasn't doing it the same way on both sides, so the pieces didn't match and runtime failures ensued. Fixes 188.ammp and sqlite3 on ppc32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2a4f1714597272e1369a16deb6025ffed3bab7e6 |
25-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fix big-endian codegen bug. We're splitting up overly long ints, e.g. i96, into pieces at PHIs and the nodes that feed into them; however big-endian reverses the order of the pieces (for some reason), and wasn't doing it the same way on both sides, so the pieces didn't match and runtime failures ensued. Fixes 188.ammp and sqlite3 on ppc32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
053372dc3c25c5442b7349c612104e15c41233e8 |
25-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Print variable's display name in dwarf DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65468 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
906baaff77cc9fe453b986d63887a308f322fc24 |
25-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Print variable's display name in dwarf DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65468 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e3d423244ae288b2c9021dbb3cd7fb973d1cfc31 |
25-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up dwarf writer, part 1. This eliminated the horrible recursive getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior. This is a very minor compile time win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65438 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
3e2889135e4b11ec59744f6aae9d8f4ed64a28bb |
25-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up dwarf writer, part 1. This eliminated the horrible recursive getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior. This is a very minor compile time win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65438 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
8f1579aedca03f089e239552ba7f1398e657c6f5 |
25-Feb-2009 |
Scott Michel <scottm@aero.org> |
Expand tabs to spaces (overlooked in previous commit) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
aef14ab1f83f6095eb2026b5ff4c5fbc35e008dd |
25-Feb-2009 |
Scott Michel <scottm@aero.org> |
Expand tabs to spaces (overlooked in previous commit) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
df38043a46b873acb98e7ce0c700d82c1d888772 |
25-Feb-2009 |
Scott Michel <scottm@aero.org> |
Remove all "cached" data from BuildVectorSDNode, preferring to retrieve results via reference parameters. This patch also appears to fix Evan's reported problem supplied as a reduced bugpoint test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0f73ff6a4a8cc66baf9c504b8a99953f3448fb55 |
25-Feb-2009 |
Scott Michel <scottm@aero.org> |
Remove all "cached" data from BuildVectorSDNode, preferring to retrieve results via reference parameters. This patch also appears to fix Evan's reported problem supplied as a reduced bugpoint test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
57f0db833dc30404f1f5d28b23df326e520698ec |
24-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Overhaul my earlier submission due to feedback. It's a large patch, but most of them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
4f40531823c2b995149ff3a1b721171ad6942363 |
24-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Overhaul my earlier submission due to feedback. It's a large patch, but most of them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65379 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
3d8bde8dfb2177dabbc6225a451889305d3756dd |
24-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Add a debugging option for SSC DCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65375 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
a8b04a1f436ca87663de0be701ba9b998ad3ad8c |
24-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Add a debugging option for SSC DCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65375 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
5aa4977fba97e816b5735f0bc53f16a46b24de63 |
24-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
- Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emit a DBG_LABEL or not. We want to fall back to the original way of emitting debug info when we're in -O0/-fast mode. - Add plumbing in to pass the "Fast" flag to places that need it. - XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I need to investigate still. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
123374a4e21a05824aaf8535c5a59987818a18e5 |
24-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
- Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emit a DBG_LABEL or not. We want to fall back to the original way of emitting debug info when we're in -O0/-fast mode. - Add plumbing in to pass the "Fast" flag to places that need it. - XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I need to investigate still. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
0001e56f15215ae4bc5fffb82eec5c4828b888f0 |
24-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple ashr instcombine to help expose this code. And apply the fix to SelectionDAG's copy of this code too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
843649e3c242c13a5710e7eb4c7d8da5b3965fb9 |
24-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple ashr instcombine to help expose this code. And apply the fix to SelectionDAG's copy of this code too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
002ec1482c83003c6aef841395271aa5993d916a |
24-Feb-2009 |
Devang Patel <dpatel@apple.com> |
gdb uses DW_AT_prototyped to identify K&R style in C based languages. This fixes objc.dg/dwarf-prototypes.m scan-assembler DW_AT_prototyped from llvmgcc42 test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65357 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e075e070412587f083cdca3cb2708a61ab87eaa5 |
24-Feb-2009 |
Devang Patel <dpatel@apple.com> |
gdb uses DW_AT_prototyped to identify K&R style in C based languages. This fixes objc.dg/dwarf-prototypes.m scan-assembler DW_AT_prototyped from llvmgcc42 test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65357 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
53cac18cca61265304056de670cea39870f28315 |
24-Feb-2009 |
Devang Patel <dpatel@apple.com> |
If there is not any debug info available for any global variables and any subprograms then there is not any debug info to emit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65352 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a9169c3c829dbafa8fe0a95efafa9e26791f3e57 |
24-Feb-2009 |
Devang Patel <dpatel@apple.com> |
If there is not any debug info available for any global variables and any subprograms then there is not any debug info to emit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65352 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
4214a5531cdbe538a358033f1847e55c4436be1b |
23-Feb-2009 |
Scott Michel <scottm@aero.org> |
Introduce the BuildVectorSDNode class that encapsulates the ISD::BUILD_VECTOR instruction. The class also consolidates the code for detecting constant splats that's shared across PowerPC and the CellSPU backends (and might be useful for other backends.) Also introduces SelectionDAG::getBUID_VECTOR() for generating new BUILD_VECTOR nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
78c70a063ae08cf2bae5a8316cb607ceb57defad |
23-Feb-2009 |
Scott Michel <scottm@aero.org> |
Introduce the BuildVectorSDNode class that encapsulates the ISD::BUILD_VECTOR instruction. The class also consolidates the code for detecting constant splats that's shared across PowerPC and the CellSPU backends (and might be useful for other backends.) Also introduces SelectionDAG::getBUID_VECTOR() for generating new BUILD_VECTOR nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
58207f12eefcb9cbfb6d9dc05a4efc6fa68fce28 |
22-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If a use operand is marked isKill, don't forget to add kill to its live interval as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65279 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d3b26864fa8f1d0e8bbc69cf8ba87f119745337a |
22-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If a use operand is marked isKill, don't forget to add kill to its live interval as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65279 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
278f83daebd1d2072a4ce6892fa3481db5cdefbe |
21-Feb-2009 |
Richard Pennington <rich@pennware.com> |
bug 3610: Floating point vaarg not softened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
53e6b892e6db27ee44d65f1e740fe9adbcc37297 |
21-Feb-2009 |
Richard Pennington <rich@pennware.com> |
bug 3610: Floating point vaarg not softened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
b5bd026a756d8650f2a94607c9b1dc34cf1c024a |
21-Feb-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Drop bunch of half-working stuff in the ext_weak linkage support. Now we're using one gross, but quite robust hack :) (previous ones did not work, for example, when ext_weak symbol was used deep inside constant expression in the initializer). The proper fix of this problem will require some quite huge asmprinter changes and that's why was postponed. This fixes PR3629 by the way :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65230 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
480218b6bdd0a22638a7ff7d9db757753f1c2dc4 |
21-Feb-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Drop bunch of half-working stuff in the ext_weak linkage support. Now we're using one gross, but quite robust hack :) (previous ones did not work, for example, when ext_weak symbol was used deep inside constant expression in the initializer). The proper fix of this problem will require some quite huge asmprinter changes and that's why was postponed. This fixes PR3629 by the way :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65230 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
28c7ce3fd44143b595f05436edbaebea9e5d47c3 |
21-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If two-address def is dead and the instruction does not define other registers, and it doesn't produce side effects, just delete the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65218 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
6f856b9d7c01dba2399a6681ba9a875d5ccece70 |
21-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If two-address def is dead and the instruction does not define other registers, and it doesn't produce side effects, just delete the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65218 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
1ba519b7265397ab5a1f8d87ef5f573f7a2e6b83 |
21-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug that David Greene found in the DAGCombiner's logic that checks whether it's safe to transform a store of a bitcast value into a store of the original value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4e06178d99a68d447d3a64400b5342ee54a10aa8 |
21-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug that David Greene found in the DAGCombiner's logic that checks whether it's safe to transform a store of a bitcast value into a store of the original value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9a65cfe7dd7662558b45bcba46b11ee52c4bbf6c |
20-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
- Early exit a nested block. - Correct comment. - Whitespace changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65149 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e0f3a26a0e0ada020daa3eab30022116d96c691e |
20-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
- Early exit a nested block. - Correct comment. - Whitespace changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65149 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
4cafbb58e2c54138f05b9857db4a098a15e914ca |
20-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Fix a crash in the pre-alloc splitter exposed by recent codegen changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65121 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
83ecf4f7e96d2e76b8e135a06176054ec8575483 |
20-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Fix a crash in the pre-alloc splitter exposed by recent codegen changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65121 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
3b2c01723c2f7270e357f3b8502bb80572b3e644 |
20-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Add a quick pass to the stack slot colorer to eliminate some trivially redundant spills after coloring. Ideally these would never get created in the first place, but until we enhance the spiller to have a more global picture of what's happening, this is necessary for code quality in some circumstances. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65120 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
1edf7ee80259c8a99c5544405cb2746443fab832 |
20-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Add a quick pass to the stack slot colorer to eliminate some trivially redundant spills after coloring. Ideally these would never get created in the first place, but until we enhance the spiller to have a more global picture of what's happening, this is necessary for code quality in some circumstances. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65120 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
4ed0c5fb07a2a4db3dd1e6a266ba961429aba2ec |
20-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Add an accessor method to DwarfWriter to tell of debugging info should be emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65092 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
50db0795c6592773206fbbda4d8cd73f7ecd9eb7 |
20-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Add an accessor method to DwarfWriter to tell of debugging info should be emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65092 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
14a2e1eda01367d7f28cc39e59fb71822d32222f |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r65065. It was causing test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a3d6d9ccd2116ba27b25feaec0a8490d798adb73 |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r65065. It was causing test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
b5ef27375731ece13a8ae0102b3f3233351036af |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Print out debug info when printing the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65067 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b7596d2b13212e23f89e47a8fd508a6fffd186c1 |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Print out debug info when printing the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65067 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
490359d6879a903a9d496cda317c0d21ff1deacf |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Check for -fast here too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65065 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4f68d2f17ded55c56dece65671425e974859effb |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Check for -fast here too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65065 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
dfdacee2abd53d71a5b9a9f4d38c7973cc722663 |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Generate these labels when we're in "fast" mode, not simply when we're no in "optimize-for-size" mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
9a48eb0c5cfd820a8eb3d0edb5b989ba2d26d7b0 |
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Generate these labels when we're in "fast" mode, not simply when we're no in "optimize-for-size" mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65064 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
f2ec7e4a20c1d3b0cd84943f1b37af196f15667b |
18-Feb-2009 |
Devang Patel <dpatel@apple.com> |
The subprogram die may not exist while creating "default" scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7f3f1983980c71b854821c3f27cf8e71eb3a2810 |
18-Feb-2009 |
Devang Patel <dpatel@apple.com> |
The subprogram die may not exist while creating "default" scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64920 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d6b7a242d345fd79a337afd384bb586c5619cfe7 |
18-Feb-2009 |
Nate Begeman <natebegeman@mac.com> |
Add support to the JIT for true non-lazy operation. When a call to a function that has not been JIT'd yet, the callee is put on a list of pending functions to JIT. The call is directed through a stub, which is updated with the address of the function after it has been JIT'd. A new interface for allocating and updating empty stubs is provided. Add support for removing the ModuleProvider the JIT was created with, which would otherwise invalidate the JIT's PassManager, which is initialized with the ModuleProvider's Module. Add support under a new ExecutionEngine flag for emitting the infomration necessary to update Function and GlobalVariable stubs after JITing them, by recording the address of the stub and the name of the GlobalValue. This allows code to be copied from one address space to another, where libraries may live at different virtual addresses, and have the stubs updated with their new correct target addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64906 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
7b1a847006d1bae5bfc8e44a2e352a0a3d302e00 |
18-Feb-2009 |
Nate Begeman <natebegeman@mac.com> |
Add support to the JIT for true non-lazy operation. When a call to a function that has not been JIT'd yet, the callee is put on a list of pending functions to JIT. The call is directed through a stub, which is updated with the address of the function after it has been JIT'd. A new interface for allocating and updating empty stubs is provided. Add support for removing the ModuleProvider the JIT was created with, which would otherwise invalidate the JIT's PassManager, which is initialized with the ModuleProvider's Module. Add support under a new ExecutionEngine flag for emitting the infomration necessary to update Function and GlobalVariable stubs after JITing them, by recording the address of the stub and the name of the GlobalValue. This allows code to be copied from one address space to another, where libraries may live at different virtual addresses, and have the stubs updated with their new correct target addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64906 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
865f006bb45a609e1cb6acb653af3fe5442ee4dc |
18-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate several more unnecessary intptr_t casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64888 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
CStrategy.cpp
achineDominators.cpp
|
c74a197153dae0577209a2e12b9bc984f9f4df45 |
18-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate several more unnecessary intptr_t casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64888 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
CStrategy.cpp
achineDominators.cpp
|
13319ceffdd99d153e62011c5dda08b95e3279e3 |
17-Feb-2009 |
Devang Patel <dpatel@apple.com> |
The debugger sometimes lookup dynamically in the runtime to find ivar info of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF. Add support for two additional DWARF attributes to encode Objective-C runtime version number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64834 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
74193d7985574276506f66644ae06ab2f8db1484 |
17-Feb-2009 |
Devang Patel <dpatel@apple.com> |
The debugger sometimes lookup dynamically in the runtime to find ivar info of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF. Add support for two additional DWARF attributes to encode Objective-C runtime version number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64834 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
fdc40a0a696c658d550d894ea03772e5f8af2c94 |
17-Feb-2009 |
Scott Michel <scottm@aero.org> |
Remove trailing whitespace to reduce later commit patch noise. (Note: Eventually, commits like this will be handled via a pre-commit hook that does this automagically, as well as expand tabs to spaces and look for 80-col violations.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
91099d69c3f33ae818f27ae0f8f7f499b94ff95a |
17-Feb-2009 |
Scott Michel <scottm@aero.org> |
Remove trailing whitespace to reduce later commit patch noise. (Note: Eventually, commits like this will be handled via a pre-commit hook that does this automagically, as well as expand tabs to spaces and look for 80-col violations.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
36375ee7a584343fabaf20630326f1848263bce6 |
17-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Emit debug info for bitfields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64815 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f1f30d4f47a32392c93f4d00e47af7519f331fa7 |
17-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Emit debug info for bitfields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64815 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
bf18939180afcd8d0c8c422f86b170e036544be6 |
17-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
A couple of places where reused use operands should be marked kill. This is exposed by recent availability fallthrough changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64745 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
19fb06e74b84acd238aec9e48c6c9a8f476d1ee8 |
17-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
A couple of places where reused use operands should be marked kill. This is exposed by recent availability fallthrough changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64745 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
86e6cb924b85e7a288a4d8bfde5d1a8fb9810c88 |
17-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Merging (from foreign repository) r64714 into '.': U include/llvm/CodeGen/DebugLoc.h U lib/CodeGen/SelectionDAG/LegalizeDAG.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp Enable debug location generation at -Os. This goes with the reapplication of the r63639 patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
e3f43e53315441b0598d3ba528dd6ea62e1fa60a |
17-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
--- Merging (from foreign repository) r64714 into '.': U include/llvm/CodeGen/DebugLoc.h U lib/CodeGen/SelectionDAG/LegalizeDAG.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp Enable debug location generation at -Os. This goes with the reapplication of the r63639 patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
97d116346cdf47ce0c8536a69ff6c606309cb4c0 |
16-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Don't assume that a left-shift of a value with one bit set will have one bit set, because the bit may be shifted off the end. Instead, just check for a constant 1 being shifted. This is still sufficient to handle all the cases in test/CodeGen/X86/bt.ll. This fixes PR3583. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
faab1fb9432740e076dff915265c30dacdc4c3f2 |
16-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Don't assume that a left-shift of a value with one bit set will have one bit set, because the bit may be shifted off the end. Instead, just check for a constant 1 being shifted. This is still sufficient to handle all the cases in test/CodeGen/X86/bt.ll. This fixes PR3583. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b599979ab591a6f4557337a4190153094725ef45 |
15-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3522. It's not safe to sink into landing pad BB's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64582 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
4d025f3f7031613b2fc7cd0ac30b8dd1bfaa1591 |
15-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3522. It's not safe to sink into landing pad BB's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64582 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
aff9c270de8de7d1a0bc138d391bc67136bad58e |
14-Feb-2009 |
Cedric Venet <cedric.venet@laposte.net> |
Unbreak the build on win32. Cleanup some warning. Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync. Only tested with VS2008. hope it does not break anything. feel free to revert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ee2a3eb01b2d0f66b49bfb7d705ef36751bfc5ff |
14-Feb-2009 |
Cédric Venet <cedric.venet@laposte.net> |
Unbreak the build on win32. Cleanup some warning. Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync. Only tested with VS2008. hope it does not break anything. feel free to revert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
92c1e126473dfa93eeb4c9a124af4fedb40f0d5b |
13-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert this. It was breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
irtRegMap.cpp
|
b094016854943591284b7230d466cecc9bcce9ef |
13-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert this. It was breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
irtRegMap.cpp
|
54fc7d67146b2b95ae2d1c93ed59008d4338d8c8 |
13-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Turn off the old way of handling debug information in the code generator. Use the new way, where all of the information is passed on SDNodes and machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
irtRegMap.cpp
|
2ca91b1efb155855e8a02b7db90301c90394128b |
13-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Turn off the old way of handling debug information in the code generator. Use the new way, where all of the information is passed on SDNodes and machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
irtRegMap.cpp
|
78e3e521cd90e5f6382c14b6e4d809fb59610ed6 |
12-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Arrange to print constants that match "n" and "i" constraints in inline asm as signed (what gcc does). Add partial support for x86-specific "e" and "Z" constraints, with appropriate signedness for printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f190a030835622ec1d15e32f30939f9495827e39 |
12-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Arrange to print constants that match "n" and "i" constraints in inline asm as signed (what gcc does). Add partial support for x86-specific "e" and "Z" constraints, with appropriate signedness for printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
4ed76e76bb3d9a7504b22ae3952b541ff68925d3 |
12-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Adjust the sizes for a few SmallVectors to reflect their usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64381 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
irtRegMap.cpp
|
f8d52f2c23e2bfec7d6ec4f4ed63fa6a1fed5086 |
12-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Adjust the sizes for a few SmallVectors to reflect their usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64381 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
irtRegMap.cpp
|
14c4c1ec0eca7f2f91957571288b4d918ed8c394 |
12-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
make fast isel fall back to selectiondags for VLA llvm.declare intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64379 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d369addb615472147c45d6fe30509e7da9fc7246 |
12-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
make fast isel fall back to selectiondags for VLA llvm.declare intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64379 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8679119f4b686d141462bf6d18f4ae0eb0bd0841 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
It's (currently) not safe to keep certain physical registers live across basic blocks, e.g. x86 fp stack registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64374 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
249c428fad8699369263e57054c8d52de86c2032 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
It's (currently) not safe to keep certain physical registers live across basic blocks, e.g. x86 fp stack registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64374 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
f2b14715d11e52adbb17a5860d1ce42f82f85a0c |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Last second clean up messed things up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f11f9578e0e34d42ba884472968c5a649b9e3918 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Last second clean up messed things up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6d209c413e3be5640f14af136e8b112e85c79cab |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If availability info is kept when fallthrough into a bb, add the available registers to live-in set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64372 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
1eff330f5672b44a6aa94f36c0803e7002970193 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If availability info is kept when fallthrough into a bb, add the available registers to live-in set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64372 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
8182347d70413174f2e80ea429801e887aee5cc3 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Replace one of burr scheduling heuristic with something more sensible. Now calcMaxScratches simply compute the number of true data dependencies. This actually improve a couple of tests in dejagnu suite as many tests in llvm nightly test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
1c71ffb3d277087f53e44cc81e270b9d85a36557 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Replace one of burr scheduling heuristic with something more sensible. Now calcMaxScratches simply compute the number of true data dependencies. This actually improve a couple of tests in dejagnu suite as many tests in llvm nightly test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f412f7c417eb4836ce875b0d214ee91026eba894 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Apparently some MachineBasicBlock's don't have corresponding llvm basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64340 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
|
0f1ac09fd99095e2b3aac887a876467af08408de |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Apparently some MachineBasicBlock's don't have corresponding llvm basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64340 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
|
ce7f5a1e50fa312ce27e41030dd1b2e02ba8d604 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove a bogus assertion. It's possible a live-in available value is used by a previous instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64339 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
e8ca4595895a4de02a0ae8027db41072b53e24e4 |
12-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove a bogus assertion. It's possible a live-in available value is used by a previous instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64339 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c7fa16f782b0ef1d51bff0f88bffbbe37d03adf5 |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
b3eeffe7ee7dc62c5d9fed323567b797184addb0 |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c8db34cb07fea88c4b8f3e0f095fd8aed568b28e |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Don't use special heuristics for nodes with no data predecessors unless they actually have data successors, and likewise for nodes with no data successors unless they actually have data precessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64327 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
58e1af36a2e7e0e6ab0edc6a21f8105983ffd969 |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Don't use special heuristics for nodes with no data predecessors unless they actually have data successors, and likewise for nodes with no data successors unless they actually have data precessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64327 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
cc994ea36bd6f501334d8be4219fc23caff025d9 |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Delete the heuristic for non-livein CopyFromReg nodes. Non-liveinness is determined by whether the node has a Flag operand. However, if the node does have a Flag operand, it will be glued to its register's def, so the heuristic would end up spuriously applying to whatever node is the def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64319 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3ea665c6357708b34e5fcacf7b882de1bd51a3c6 |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Delete the heuristic for non-livein CopyFromReg nodes. Non-liveinness is determined by whether the node has a Flag operand. However, if the node does have a Flag operand, it will be glued to its register's def, so the heuristic would end up spuriously applying to whatever node is the def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64319 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
85b0edec4672f6ac6c15f757b119d04232a61861 |
11-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Make a transformation added in 63266 a bit less aggressive. It was transforming (x&y)==y to (x&y)!=0 in the case where y is variable and known to have at most one bit set (e.g. z&1). This is not correct; the expressions are not equivalent when y==0. I believe this patch salvages what can be salvaged, including all the cases in bt.ll. Dan, please review. Fixes gcc.c-torture/execute/20040709-[12].c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64314 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0ca3f130fadb912319a80c849ffa0eae16f0ecb4 |
11-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Make a transformation added in 63266 a bit less aggressive. It was transforming (x&y)==y to (x&y)!=0 in the case where y is variable and known to have at most one bit set (e.g. z&1). This is not correct; the expressions are not equivalent when y==0. I believe this patch salvages what can be salvaged, including all the cases in bt.ll. Dan, please review. Fixes gcc.c-torture/execute/20040709-[12].c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64314 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
752272a5e553313f7b0397a06a23b4fe8ac013c4 |
11-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Implement PR3495: local spiller optimization. The local spiller can now keep availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64298 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
fc201f33dd4e18edd9675ed7cd36579ccead6f71 |
11-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Implement PR3495: local spiller optimization. The local spiller can now keep availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64298 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
47ac0f0c7c39289f5970688154e385be22b7f293 |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
When scheduling a block in parts, keep track of the overall instruction index across each part. Instruction indices are used to make live range queries, and live ranges can extend beyond scheduling region boundaries. Refactor the ScheduleDAGSDNodes class some more so that it doesn't have to worry about this additional information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64288 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
7c968a8b1f4168e54fda5f3c418be83d86dcc68f |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
When scheduling a block in parts, keep track of the overall instruction index across each part. Instruction indices are used to make live range queries, and live ranges can extend beyond scheduling region boundaries. Refactor the ScheduleDAGSDNodes class some more so that it doesn't have to worry about this additional information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64288 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
5cffa6fe271351a8fd80e7767b5d61a999acfa9b |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Use iterators to iterate through the Preds array instead of an index. This code is on the hot-path because the current way SDep edges are uniqued has quadratic complexity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64262 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
b8f1ff3969e9d194f51f4905e8ca80ef75fb827f |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Use iterators to iterate through the Preds array instead of an index. This code is on the hot-path because the current way SDep edges are uniqued has quadratic complexity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64262 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
bed353d0163a6b17beecc20c23b67de9b06e7b5c |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Consider any instruction that modifies the stack pointer to be a scheduling region boundary. This isn't necessary for correctness; it helps with compile time, as it avoids the need for data- and anti-dependencies from all spills and reloads on the stack-pointer modification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64255 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
75cc17f713d324005aff947361c1115370f047ec |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Consider any instruction that modifies the stack pointer to be a scheduling region boundary. This isn't necessary for correctness; it helps with compile time, as it avoids the need for data- and anti-dependencies from all spills and reloads on the stack-pointer modification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64255 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9e64bbb322417c09f27afdf08e3946287c9df5aa |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Factor out more code for computing register live-range informationfor scheduling, and generalize is so that preserves state across scheduling regions. This fixes incorrect live-range information around terminators and labels, which are effective region boundaries. In place of looking for terminators to anchor inter-block dependencies, introduce special entry and exit scheduling units for this purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64254 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
a91eb05e88bd1afe30ac1e0ecb0eb718648e28bf |
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Factor out more code for computing register live-range informationfor scheduling, and generalize is so that preserves state across scheduling regions. This fixes incorrect live-range information around terminators and labels, which are effective region boundaries. In place of looking for terminators to anchor inter-block dependencies, introduce special entry and exit scheduling units for this purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64254 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
f0e366a929a1acb4bc14df5ef831cce74607a967 |
10-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3457: Ignore control successors when looking for closest scheduled successor. A control successor doesn't read result(s) produced by the scheduling unit being evaluated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
4b38e9aa014d2d3fdb682b7f23b8a702fcbdd068 |
10-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3457: Ignore control successors when looking for closest scheduled successor. A control successor doesn't read result(s) produced by the scheduling unit being evaluated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2303df96b05077b085db64274cd0e3ade452e715 |
10-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Validate file id. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64204 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d94b693c76dfd3c6815a6bef51748f645098650d |
10-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Validate file id. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64204 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
4ded02f8bd31bad439f78c6d485babe932a18fc5 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If the target cannot issue a copy for the given source and dest registers, abort instead of silently continue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64184 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
4b5c3f7da51afc15962dd4ff4dc819edf7dbcde7 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
If the target cannot issue a copy for the given source and dest registers, abort instead of silently continue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64184 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
65b52dffe02d6ffce8d63b4fe2d7714d69968476 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c2541dd7d7246af95c0c6207e8769e47f4669623 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
b1032a8a2f322e031f7c0947c3fb60fe9e8a10e6 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make sure constant subscript is truncated to ptr size if it may not fit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
5c23d3c2cf096d7f4d50e44baf9423261d3646bd |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make sure constant subscript is truncated to ptr size if it may not fit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8f0d99e463a2dcb5a40d14f0481a0e322bcf79e4 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable machine sinking pass now that the coalescer bugs and the AnalyzeBrnach bug are fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64126 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
23cf3d1d824dc7938ca893fd6bfee3d386ed0b89 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable machine sinking pass now that the coalescer bugs and the AnalyzeBrnach bug are fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64126 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
190424edcdbb6dcb1b6197b0cc79e2a1cbaa3fb6 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix another case ShortenDeadCopySrcLiveRange is shortening too much. No test case possible since I don't know what to grep for. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64125 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e430f21f8a5dccefc73e6d7c34cf1ff1c6e568c8 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix another case ShortenDeadCopySrcLiveRange is shortening too much. No test case possible since I don't know what to grep for. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64125 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
dc54d317e7a381ef8e4aca80d54ad1466bb85dda |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turns out AnalyzeBranch can modify the mbb being analyzed. This is a nasty suprise to some callers, e.g. register coalescer. For now, add an parameter that tells AnalyzeBranch whether it's safe to modify the mbb. A better solution is out there, but I don't have time to deal with it right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64124 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
eac316468ad31a7bf286528ff9970c5794ba8539 |
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turns out AnalyzeBranch can modify the mbb being analyzed. This is a nasty suprise to some callers, e.g. register coalescer. For now, add an parameter that tells AnalyzeBranch whether it's safe to modify the mbb. A better solution is out there, but I don't have time to deal with it right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64124 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
0a1fcce09230e9b4bd30a8f07447aa075dce7470 |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3486. Fix a bug in code that manually patch physical register live interval after its sub-register is coalesced with a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64082 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
87597227873f779774eb56dd0561d77eeda43a88 |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3486. Fix a bug in code that manually patch physical register live interval after its sub-register is coalesced with a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64082 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
86fb9fdb2000213d3cd5a082e8501cb8fe974a14 |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Strengthen the previous check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64076 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b81461a91833f129dfa46fbe47445fb0b7155483 |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Strengthen the previous check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64076 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f18134a1ae4cc8e064c3a30ece4d23a5ec75286a |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
r64073 commit message is lost. Here it is: Right now if the coalesced copy def is dead and its src is a kill, and that there are now other uses within the live range, the coalescer would mark the def of the source register as dead. But it should also check if there are other kills which means the value has other uses not in the live range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64075 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f1162978c6e979010cf65a8ecaa7d3f644f8d31a |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
r64073 commit message is lost. Here it is: Right now if the coalesced copy def is dead and its src is a kill, and that there are now other uses within the live range, the coalescer would mark the def of the source register as dead. But it should also check if there are other kills which means the value has other uses not in the live range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64075 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
77fde2cbb1fbf9daf5235fa734c6c09b2d530617 |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64073 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
69b8873a33af59f7ded4f5e1924bfe3f4cdd48e5 |
08-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64073 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
7f51fd3ea93232658388757fcc8121f14f4454bc |
08-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r63999. It was breaking self-hosting builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64062 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
7576d7bc4752d7ae65195a32629cf2c76d10b1d1 |
08-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r63999. It was breaking self-hosting builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64062 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
556b4a6385d34b77e58ff5a3ce51ddae5ae6112c |
07-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
Add missing break statements, fixing PR3503. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64040 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
ba44385abd7be8cbcfc74571052334f2fb263d44 |
07-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
Add missing break statements, fixing PR3503. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64040 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
6f38cb61a94b3abab70f0ee463bdcf55d86d334e |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Use getDebugLoc forwarder instead of getNode()->getDebugLoc. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
2dbdb0ea777a13c6fa8e9fe708e728a84752c20a |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Use getDebugLoc forwarder instead of getNode()->getDebugLoc. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
1fdbc1dd4e9cb42c79a30e8dc308c322e923cc52 |
07-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowing ScheduleDAG's TLI member to use const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
96d60921d8568680bad2788b80a163fecb1dbdbe |
07-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowing ScheduleDAG's TLI member to use const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
92570c4a1a11cbdaf5ffb13547428dbee1103875 |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Make SDNode constructors take a DebugLoc always. Adjust derived classes to pass UnknownLoc where a DebugLoc does not make sense. Pick one of DebugLoc and non-DebugLoc variants to survive for all such classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f89c5ca0230558def61ded2a11d38c1539eeba2d |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Make SDNode constructors take a DebugLoc always. Adjust derived classes to pass UnknownLoc where a DebugLoc does not make sense. Pick one of DebugLoc and non-DebugLoc variants to survive for all such classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c963b638c783beb2252e8a6c580c2d15c36c9be9 |
07-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine sinking pass in non-fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63999 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9401aff952e9cc39c61ff85c36968c8df8edfea1 |
07-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine sinking pass in non-fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63999 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
edb62c484e00daab09db92a2e512bb50752d9e50 |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove now-unused constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
be31a6ae340687d341333eec18c2c5cc8c15ebf7 |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove now-unused constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b6f5417edb8ad11e06d3a6527e452945e5349a97 |
07-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't sink the instruction if TargetRegisterInfo::isSafeToMoveRegClassDefs doesn't think it's safe. This works around PR1911. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63994 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
eea6355c121eac6cbcf7d7ecc62b37969c70fe61 |
07-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't sink the instruction if TargetRegisterInfo::isSafeToMoveRegClassDefs doesn't think it's safe. This works around PR1911. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63994 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
b300d2aa3ef08b5074449e2c05804717f488f4e4 |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of the last non-DebugLoc versions of getNode! Many targets build placeholder nodes for special operands, e.g. GlobalBaseReg on X86 and PPC for the PIC base. There's no sensible way to associate debug info with these. I've left them built with getNode calls with explicit DebugLoc::getUnknownLoc operands. I'm not too happy about this but don't see a good improvement; I considered adding a getPseudoOperand or something, but it seems to me that'll just make it harder to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
24dd9a56e50b4c931ae96a93e67c4ed85e65d989 |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of the last non-DebugLoc versions of getNode! Many targets build placeholder nodes for special operands, e.g. GlobalBaseReg on X86 and PPC for the PIC base. There's no sensible way to associate debug info with these. I've left them built with getNode calls with explicit DebugLoc::getUnknownLoc operands. I'm not too happy about this but don't see a good improvement; I considered adding a getPseudoOperand or something, but it seems to me that'll just make it harder to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
e8d7230f480654cdb8ff1c3d0a38e1e9ab0bd55f |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove more non-DebugLoc getNode variants. Use getCALLSEQ_{END,START} to permit passing no DebugLoc there. UNDEF doesn't logically have DebugLoc; add getUNDEF to encapsulate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
9bfc017ed383685dbc2f7db5b7f79763057effea |
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove more non-DebugLoc getNode variants. Use getCALLSEQ_{END,START} to permit passing no DebugLoc there. UNDEF doesn't logically have DebugLoc; add getUNDEF to encapsulate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
e72c5964d5263f2489bf2c7e9d32f71271d205fc |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
And one more file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
18ae8afcca76dffc019ee213c8d84b30f97c3c54 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
And one more file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
de06470330260f5937e7ca558f5f5b3e171f2ee5 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove more non-DebugLoc versions of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
175fdefc4fe809d3d58c98a8172e63696e0e79e0 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove more non-DebugLoc versions of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
8fcf170a66de974989f730d1e0d01d5fc63d6b8b |
06-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Clear out the CurDebugLoc info when doing a 'clear' on the SDL object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a1f8ff40a4e457df77517503aabdc694419dc511 |
06-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Clear out the CurDebugLoc info when doing a 'clear' on the SDL object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f5f5dce897269885754fc79adeb809194da52942 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Eliminate remaining non-DebugLoc version of getTargetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5d398a378ab7be40fc3ea01e846f33b3dc83e265 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Eliminate remaining non-DebugLoc version of getTargetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0a3776dc6f702d4e3f4a189df7f43d8f99957773 |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGISel::Schedule to SelectionDAGISel::CreateScheduler, and make it just create the scheduler. Leave running the scheduler to the higher-level code. This makes the higher-level code a little more explicit and easier to follow, and will help enable some future refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63944 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
29800e286ab59a83bb621de09a94344e04e6f2a9 |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGISel::Schedule to SelectionDAGISel::CreateScheduler, and make it just create the scheduler. Leave running the scheduler to the higher-level code. This makes the higher-level code a little more explicit and easier to follow, and will help enable some future refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63944 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
56774d2b0d865b597f47235ad708e772636e6834 |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Delete an unused member function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
|
2d7ded0b58014b081bc1e3cdc1bdbad2479d8915 |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Delete an unused member function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.h
|
770bcc7b15adbc978800db70dbb1c3c22913b52c |
06-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move getPointerRegClass from TargetInstrInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63938 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
afca4630b4689e3fd3997682add43f86a6e67a5c |
06-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move getPointerRegClass from TargetInstrInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63938 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
84fbac580941548a6ab1121ed3b0ffdc4e2bc080 |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Move ScheduleDAGSDNodes.h to be a private header. Front-ends that previously included this header should include SchedulerRegistry.h instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
8afcc1df3a862d9e7b1d55e3040ddd16e9e2f7cb |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Move ScheduleDAGSDNodes.h to be a private header. Front-ends that previously included this header should include SchedulerRegistry.h instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodes.h
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
4350eb86a7cdc83fa6a5f4819a7f0534ace5cd58 |
06-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add TargetInstrInfo::isSafeToMoveRegisterClassDefs. It returns true if it's safe to move an instruction which defines a value in the register class. Replace pre-splitting specific IgnoreRegisterClassBarriers with this new hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63936 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f5a8a3611f4de6e820ddebb1cebb241b7812d8d9 |
06-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add TargetInstrInfo::isSafeToMoveRegisterClassDefs. It returns true if it's safe to move an instruction which defines a value in the register class. Replace pre-splitting specific IgnoreRegisterClassBarriers with this new hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63936 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
6dc75fe5279e2c12bda13dcc4a1a13908de8596f |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Move ScheduleDAGInstrs.h to be a private header. Front-ends that used this header to select a scheduling policy should use SchedulerRegistry.h instead (llvm-gcc and clang were updated a while ago). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63934 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
98c6cb3f5ab20bb7d06f3edf28470b2196ea0d3c |
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Move ScheduleDAGInstrs.h to be a private header. Front-ends that used this header to select a scheduling policy should use SchedulerRegistry.h instead (llvm-gcc and clang were updated a while ago). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63934 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
cheduleDAGInstrs.h
|
f90b2a7742ddeddc448586cc050818a664419e74 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
get rid of some non-DebugLoc getTargetNode variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63909 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b556ed0ac5ed6d7514adaaeafaefec51840d6458 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
get rid of some non-DebugLoc getTargetNode variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63909 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ed2eee63a6858312ed17582d8cb85a6856d8eb34 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of one more non-DebugLoc getNode and its corresponding getTargetNode. Lots of caller changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
913ba76a560da1419879168a4a61e0739d636b18 |
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of one more non-DebugLoc getNode and its corresponding getTargetNode. Lots of caller changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
54801f78b1ed0078a4c07cbb5472830335987f66 |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
isAsCheapAsMove instructions can have register src operands. Check if they are really re-materializable. This fixes sse.expandfft and sse.stepfft. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63890 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
25f57cd47d0893cb624c21f589902515c32cf33b |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
isAsCheapAsMove instructions can have register src operands. Check if they are really re-materializable. This fixes sse.expandfft and sse.stepfft. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63890 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
3484c09e0da3c05c8a78946e090c7610208d937b |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove a non-DebugLoc version of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8a423f7fcba0ff1bbb0748a9f3b62c8074f5097f |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove a non-DebugLoc version of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9b36c631ebb9c68678b7ec5b9407a9b4d127e0f7 |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove 3 non-DebugLoc variants of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b57c48758fb557d6e6fb526bcc4ddbf8751384e3 |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove 3 non-DebugLoc variants of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
740854bb1974642af77bec5e7f835e15115ad639 |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Machine LICM increases register pressure and it almost always increase code size. For now, disable it for optimizing for size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63856 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
e06018e76ebdd3874a2bc278d1e1a16d72c8fb34 |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Machine LICM increases register pressure and it almost always increase code size. For now, disable it for optimizing for size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63856 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c5d1a4ffd96528b49a9e34e06706f1499cd0fe80 |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turn on machine LICM in non-fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63855 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1be1216fa8353c5da53fc5b3bb197034e936c55b |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turn on machine LICM in non-fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63855 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
af6949d0b1e1545dff21c5e492fbf1760aa74b59 |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine licm to CSE hoisted instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63854 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
e6ba0287d7c9a8b7fc7fee66ce3091bb27639c3b |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach machine licm to CSE hoisted instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63854 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
961154f2db1953d747313fe62399dfcc24f54a9b |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
ReMaterializeTrivialDef need to trim the live interval to the last kill if the copy kills the source register. This fixes uint64tof64.ll after ARM::MOVi is marked as isAsCheapAsAMove. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63853 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
cfcdc236689701055fe0299e95b779b6bd00be60 |
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
ReMaterializeTrivialDef need to trim the live interval to the last kill if the copy kills the source register. This fixes uint64tof64.ll after ARM::MOVi is marked as isAsCheapAsAMove. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63853 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
4798bbeaf5a76a83f2aa923b0abc792e01ac3be7 |
05-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
if we have a large GEP offset on a 32-bit or other target, make sure to print the value properly sext'd to the right pointer size. This fixes PR3481. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
911129a738ab05b01cdd058b1f7e3c162a172251 |
05-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
if we have a large GEP offset on a 32-bit or other target, make sure to print the value properly sext'd to the right pointer size. This fixes PR3481. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5734c94ec24a6f4ee940e0b146df48c647c7a4dc |
05-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Pre-alloc splitting needs to be more careful to avoid inserting spills/restores between call frame setup/restore points. Unfortunately, this regresses code size a bit, but at least it's correct now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63837 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
54abf8c1b285bf8c70ace736dc6adb917404b50e |
05-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Pre-alloc splitting needs to be more careful to avoid inserting spills/restores between call frame setup/restore points. Unfortunately, this regresses code size a bit, but at least it's correct now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63837 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
b0e341bca13cc4c729ba577cfcc6257bb1da0b33 |
05-Feb-2009 |
Mon P Wang <wangmp@apple.com> |
Fix a bug where we were not emitting a cvt rnd sat node for converting between a unsigned integer and signed integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8a443d7da86c8e21dca4f102ba513714d2211cb3 |
05-Feb-2009 |
Mon P Wang <wangmp@apple.com> |
Fix a bug where we were not emitting a cvt rnd sat node for converting between a unsigned integer and signed integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
49de98214b82fefeb8f16efbf8cdd8813a85469b |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Reapply 63765. Patches for clang and llvm-gcc to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63812 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
fe5921a58b697ce8d9c423aaba11dc15bca9b8b1 |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Reapply 63765. Patches for clang and llvm-gcc to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63812 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2fabcb27761e0f07368f065fda0144d824e1e51c |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of 3 non-DebugLoc getNode variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c0b654dd9ae78311a0c89dee815eb7be66416fd2 |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of 3 non-DebugLoc getNode variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4be0bdf7c1162824927dd3de89e016ae4934d0d6 |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc versions of getMergeValues, ZeroExtendInReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63800 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
2bfdee3625932d6590f6e45f4aba79faeb29988e |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc versions of getMergeValues, ZeroExtendInReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63800 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
a05dca4f9e051fad19fe9b5f6cce2715c1e5d505 |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc forms of CopyToReg and CopyFromReg. Adjust callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b03cc3f88f4585859ea7031f5c5bbecb64202f96 |
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc forms of CopyToReg and CopyFromReg. Adjust callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4d452de1506344bf1d28bb4a8c4ddb78c51a28c8 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Reverting 63765. This broke the build of both clang and llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
04c5fb64efecd366ef202f682d1d73ee215f0893 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Reverting 63765. This broke the build of both clang and llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4caa0427bfae369854ecdfe60b94238e566a5475 |
04-Feb-2009 |
Stuart Hastings <stuart@apple.com> |
80 column rule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
620a4d1aabde8cd05a56257b2f77618b11497345 |
04-Feb-2009 |
Stuart Hastings <stuart@apple.com> |
80 column rule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
33c960f523f2308482d5b2816af46a7ec90a6d3d |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc versions of getLoad and getStore. Adjust the many callers of those versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
ea99692c6c7dac4b4280286323c548c778de9993 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc versions of getLoad and getStore. Adjust the many callers of those versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
d24479730a8790d82c4859dc477bc2416d7a6bda |
04-Feb-2009 |
Nate Begeman <natebegeman@mac.com> |
New feature: add support for target intrinsics being defined in the target directories themselves. This also means that VMCore no longer needs to know about every target's list of intrinsics. Future work will include converting the PowerPC target to this interface as an example implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
08e1f78b7874bf9fdff5fa6ce9d9ec61d61cb796 |
04-Feb-2009 |
Nate Begeman <natebegeman@mac.com> |
New feature: add support for target intrinsics being defined in the target directories themselves. This also means that VMCore no longer needs to know about every target's list of intrinsics. Future work will include converting the PowerPC target to this interface as an example implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e5ab34e05d701da042619bf540046efc3c7bc41f |
04-Feb-2009 |
Mon P Wang <wangmp@apple.com> |
Avoids generating a legalization assert for the case where a vector type is legal but when legalizing the operation, we split the vector type and generate a library call whose type needs to be promoted. For example, X86 with SSE on but MMX off, a divide v2i64 will be scalarized to 2 calls to a library using i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63760 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7cba39473f88d1552f9bae5b27ad08014e610020 |
04-Feb-2009 |
Mon P Wang <wangmp@apple.com> |
Avoids generating a legalization assert for the case where a vector type is legal but when legalizing the operation, we split the vector type and generate a library call whose type needs to be promoted. For example, X86 with SSE on but MMX off, a divide v2i64 will be scalarized to 2 calls to a library using i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63760 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6792e90fec54921fc5ec72f876b80edd47636cd0 |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Skip over zero registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63748 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e616c05e0cd4a8ee11af8aed659789073d2aec0a |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Skip over zero registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63748 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
80d6977e90c22313d5a62ac28811e0386a806aff |
04-Feb-2009 |
Stuart Hastings <stuart@apple.com> |
Since I'm obliged to work with a development OS that currently doesn't support GraphViz, I've been using the foo->dump() facility. This patch is a minor rewrite to the SelectionDAG dump() stuff to make it a little more helpful. The existing foo->dump() functionality does not change; this patch adds foo->dumpr(). All of this is only useful when running LLVM under a debugger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63736 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c625028753a5e4e500b164d91950a3641880074a |
04-Feb-2009 |
Stuart Hastings <stuart@apple.com> |
Since I'm obliged to work with a development OS that currently doesn't support GraphViz, I've been using the foo->dump() facility. This patch is a minor rewrite to the SelectionDAG dump() stuff to make it a little more helpful. The existing foo->dump() functionality does not change; this patch adds foo->dumpr(). All of this is only useful when running LLVM under a debugger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63736 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5caa883afc2c768c293757d4ca30d85b9094e876 |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't call isInvariantLoad twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63729 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d7b8b37d5fc9f447f471cf6560fea97763176727 |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't call isInvariantLoad twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63729 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
45e94d68d7c99235cf4decc72812445b214df40e |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't bother hoisting out a "cheap" instruction if all of its uses are PHIs. LICM "cheap" instructions are not particularly beneficial to start with. This will just end up making the copies harder to coalesce. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63728 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
51e32f87f4df220f4efa5bfd29318ffce2c6da33 |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Don't bother hoisting out a "cheap" instruction if all of its uses are PHIs. LICM "cheap" instructions are not particularly beneficial to start with. This will just end up making the copies harder to coalesce. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63728 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9b61f33351a92f6a87065adae713c02497780887 |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
For now, only hoist re-materilizable instructions. LICM will increase register pressure. We want to avoid spilling more instructions if it's possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63725 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6cad113f9d7ddc2bc1e25290a1a1910932a2c477 |
04-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
For now, only hoist re-materilizable instructions. LICM will increase register pressure. We want to avoid spilling more instructions if it's possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63725 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
39355f9fea790c5a1b12ef0fdcfeac3f533232ea |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc forms of the exotic forms of Lod and Sto; patch uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
3c4fb2211e7d04bd7abc2bc9dd5385928305841e |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc forms of the exotic forms of Lod and Sto; patch uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
f5d9789a7fddc9173cee104c8f25a7564bad3f28 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove some more non-DebugLoc versions of construction functions, with callers adjusted to fit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63705 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
85fc093918bb2bcb76d5ff8ef53d5f36f5515286 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove some more non-DebugLoc versions of construction functions, with callers adjusted to fit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63705 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
f8d3ec2c5725a2010f11de4ba78f6127712a5fe7 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Check in file I forgot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
9f6079fd9db5614db7c3fdfd2d2142192eba7c66 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Check in file I forgot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
8ad9b43e690e8773cf836b30e8da26bc71e18844 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove a few non-DebugLoc versions of node creation functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
e234ef920183f88af1fc0b57a4d5e83f8e5f7990 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove a few non-DebugLoc versions of node creation functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
c460ae90019ddb19d4c07b2cd2fbaecfa7adf67d |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fill in more omissions in DebugLog propagation. I think that's it for this directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
564036cdd7ebd2084d554536ac8fd5cdf6f32013 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fill in more omissions in DebugLog propagation. I think that's it for this directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
a929c68bfcbe840bd26d336efaa80a6a275e802c |
04-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Constify and don't return a reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63689 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
acf9574dfc5bc2d35a336ac8af5c80356bd42872 |
04-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Constify and don't return a reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63689 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
a04b75710910278334192b389c4c4c62600e162f |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation; adjustment to things omitted from SelectionDagBuild. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
7140aaa0c46838fe2192026009fbb396bd020338 |
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation; adjustment to things omitted from SelectionDagBuild. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
44f6ac640ab5181f9da1fc3b507df4ef2e4f1fd4 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Erm. Would be nice to initialize this variable. . . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63677 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c607509ccd79d5953ddda3942f5bf29d17b127df |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Erm. Would be nice to initialize this variable. . . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63677 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
85e3af9b70cc48535b3d41049bae907335f184ab |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Add getDebugLocTuple to retrieve the DebugLocTuple for a given DebugLoc object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63676 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
4756f3b7c233c919df42ea652a7f071505375d51 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Add getDebugLocTuple to retrieve the DebugLocTuple for a given DebugLoc object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63676 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
0f502f6f44f2756f5cb7b17d8f1d8eae000d51b4 |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Add some DL propagation to places that didn't have it yet. More coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63673 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7f2abf4d0113aca037317ea1d1674ee00f3b1f84 |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Add some DL propagation to places that didn't have it yet. More coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63673 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ef7e18e60ca10d63ce64bfc9aba918d35717926b |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
More whitespace fixin'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63663 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6baa18d426d0cea4dd9f722d903289a72f541041 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
More whitespace fixin'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63663 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b9dcef2a00f1ac35442393c951c21272527c8625 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Whitespace and comment changes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63660 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
CStrategy.cpp
|
824a8bfab684b9d7579d10d9478afaf69399a075 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Whitespace and comment changes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63660 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
CStrategy.cpp
|
6268d69d7386bdd4ba1db5586feedeb0b7e6ddb6 |
03-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63653 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
00a1ee0ab18a9a91c1738d72a2aa0a509e869ef6 |
03-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63653 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
43f07fb6c3e3d775d8e5f1eaeb380b93bb3bc09d |
03-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Change the post-RA scheduler to iterate through the basic-block segments bottom-up instead of top down. This is the first step in a general restructuring of the way register liveness is tracked in the post-RA scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63643 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
0dcda31cb40614d1adec10aad1a40a57ad581c69 |
03-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Change the post-RA scheduler to iterate through the basic-block segments bottom-up instead of top down. This is the first step in a general restructuring of the way register liveness is tracked in the post-RA scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63643 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
b51d40cf40eac676dda3ae9dfeb55822fa403394 |
03-Feb-2009 |
Devang Patel <dpatel@apple.com> |
First initialize DAG otherwise dwarf writer is used uninitialized. Duncan spotted this. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
eb4e0bd2d76bccc2c06b88fd21206917713c36bf |
03-Feb-2009 |
Devang Patel <dpatel@apple.com> |
First initialize DAG otherwise dwarf writer is used uninitialized. Duncan spotted this. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
95c5f05641e0afdfcbeb430090e1cd0356dddfbc |
03-Feb-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3411. When replacing values, nodes are analyzed in any old order. Since analyzing a node analyzes its operands also, this can mean that when we pop a node off the list of nodes to be analyzed, it may already have been analyzed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
b3de15d2f4924e5e0f1f0eada3064dcb057bb14a |
03-Feb-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3411. When replacing values, nodes are analyzed in any old order. Since analyzing a node analyzes its operands also, this can mean that when we pop a node off the list of nodes to be analyzed, it may already have been analyzed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
d62e06c53b8b7e555617dc9b24b98c007d63de5d |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Explicitly pass in debug location information to BuildMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63599 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
HIElimination.cpp
argetInstrInfoImpl.cpp
irtRegMap.cpp
|
57c81153e044b2ee5eb6e9cb6ab86d585cad1df3 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Explicitly pass in debug location information to BuildMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63599 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
HIElimination.cpp
argetInstrInfoImpl.cpp
irtRegMap.cpp
|
6a8a0d74cb73956a9452943d4d4102ebede1f69e |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in something sensible for the debug location information when creating the initial PHI nodes of the machine function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
9391e1fb893c9a79957f6e95c5d2cfd3c2d73c00 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in something sensible for the debug location information when creating the initial PHI nodes of the machine function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
dbfd8dbdee81d016557dc77d34090492eda55562 |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fill in some missing DL propagation in getNode()s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63595 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f2103eedc60790603693c35704e38135c904a8df |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fill in some missing DL propagation in getNode()s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63595 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b288487a8e2291dd802e19b1a9bc930368f448bf |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Use SDL->getCurDebugLoc() instead of unknown loc for landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63594 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eb4536c3d693518b2400060fced51676b6a0d360 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Use SDL->getCurDebugLoc() instead of unknown loc for landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63594 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ec37e98b3d943328795a06a3184a125583dec151 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Explicitly pass in the "unknown" debug location. This is probably not correct. We need more infrastructure before we can get the DebugLoc info for these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63593 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
2dae940597f756f61ea953326646bc6a0c694b95 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Explicitly pass in the "unknown" debug location. This is probably not correct. We need more infrastructure before we can get the DebugLoc info for these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63593 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
0eb96fd94bce94df680f1fc436c1d3d1c510f937 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Alphabetize includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.h
|
50293da508e4d9fe430290c630855174c4224245 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Alphabetize includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.h
|
f2ad58d930aa18c8710cbd094eaf987eca0f2c1b |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info during SDNode -> machine instr creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63585 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
1cb1c838c8a183fb57fd2396f8000a6b9644bb0b |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info during SDNode -> machine instr creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63585 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
9bc96a57206cbebaa9b0ba9979f949eb10c1592c |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Create DebugLoc information in FastISel. Several temporary methods were created. Specifically, those BuildMIs which use "DebugLoc::getUnknownLoc()". I'll remove them soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63584 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
5aa0ddb0f8b15d4d0f3e6385908593e977360812 |
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Create DebugLoc information in FastISel. Several temporary methods were created. Specifically, those BuildMIs which use "DebugLoc::getUnknownLoc()". I'll remove them soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63584 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
ff97d4fe81ef0dcee9fe490bed8ab08e40251905 |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Propagation in TargetLowering. Includes passing a DL into SimplifySetCC which gets called elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
38496ebf6f1efb9d29960d40cb9ee9877472cfb5 |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Propagation in TargetLowering. Includes passing a DL into SimplifySetCC which gets called elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
a7ce741ff0ab02510833854bfa6a1c8c265faee3 |
03-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Use the SubclassData field to hold ExtType, isTrunc, and MemIndexedMode information. This eliminates the need for the Flags field in MemSDNode, so this makes LoadSDNode and StoreSDNode smaller. Also, it makes FoldingSetNodeIDs for loads and stores two AddIntegers smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9d0f5020ac67131972cb9229f0749df139b7d254 |
03-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Use the SubclassData field to hold ExtType, isTrunc, and MemIndexedMode information. This eliminates the need for the Flags field in MemSDNode, so this makes LoadSDNode and StoreSDNode smaller. Also, it makes FoldingSetNodeIDs for loads and stores two AddIntegers smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ca57b84729303d6f0c5abf951563efcde97010cd |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Last DebugLoc propagation for this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bbf56a2eecbb8b46421be084874ed2935b2960d6 |
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Last DebugLoc propagation for this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c6be110f9127982760f09f17b4910c51962d8d67 |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
More DebugLoc propagation. This should be everything except LegalizeOp itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d8fd5342565f882e8cf423253b1eb236e874289b |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
More DebugLoc propagation. This should be everything except LegalizeOp itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5b93f6fa82e33b17d618b3e24da513f547861481 |
02-Feb-2009 |
Owen Anderson <resistor@mac.com> |
MergeValueInto is too smart: it might choose to do the merge the opposite direction. Live interval reconstruction needs to account for this, and scour its maps to prevent dangling references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63558 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
reAllocSplitting.cpp
|
85f86f3b4f75dbbcb69df866552d0f5d1eb0bed7 |
02-Feb-2009 |
Owen Anderson <resistor@mac.com> |
MergeValueInto is too smart: it might choose to do the merge the opposite direction. Live interval reconstruction needs to account for this, and scour its maps to prevent dangling references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63558 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
reAllocSplitting.cpp
|
8a782a2a8c2f0c82f292d03a3f707232b0bae27b |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. ExpandOp and PromoteOp, among others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
82b5b72ad782a1d5054583206d2e2584c1f1694e |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. ExpandOp and PromoteOp, among others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
54c94525f420cab274af60e98a77f081f96e59c2 |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Commit missing files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f3b911359a674bb471a39c8ea96887e02138f9fa |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Commit missing files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bb5da918545efb54857a09c983a5a7f22a7e04d4 |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
More DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63543 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
352c47e94c41411529e4f96cfbf559c0bfcf8513 |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
More DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63543 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7fb085871857134f8cbeb17499d4ab771ba8da42 |
02-Feb-2009 |
Duncan Sands <baldrick@free.fr> |
Remove trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63540 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
5f9fbe3b2dde9942e1d6d80fbf7f9da14ac131fc |
02-Feb-2009 |
Duncan Sands <baldrick@free.fr> |
Remove trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63540 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
af435274e56af687b51f33b5bc6f005fe99ad46f |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation for int<->fp conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9972b639ede7c1b0fc564e99383249971b41ded2 |
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation for int<->fp conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
19a725851da989131f6840b3c6450dfc25df9194 |
02-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor PerformPHIConstruction, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63536 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
42789b765245ae6ad54e3290a2e3625489d02ef3 |
02-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor PerformPHIConstruction, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63536 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
d5863dd9a806300bd020b80de3067fd36ac213c6 |
02-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Do not add redundant arguments in a method definition DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63527 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ace2cf616a50de819a4f16e1b438e723ab9feee2 |
02-Feb-2009 |
Devang Patel <dpatel@apple.com> |
Do not add redundant arguments in a method definition DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63527 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
55467af31620c9d027e071ebcd9746b7593cff17 |
02-Feb-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Duncan's patch. Further to 64382. Takes care of illegal types for shift amount. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63523 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
90e6ba2124fa09fbdcdfdfb34053a2042879ce2e |
02-Feb-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Duncan's patch. Further to 64382. Takes care of illegal types for shift amount. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63523 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
c82bf9b268eb63f7cf6f435d9ea222ddb8e3c5a8 |
02-Feb-2009 |
Mon P Wang <wangmp@apple.com> |
Preserve more SourceValue information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
bfdf00409b65f485463733a373aeb92603b41c7a |
02-Feb-2009 |
Mon P Wang <wangmp@apple.com> |
Preserve more SourceValue information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
b0d5cdd52e8448f769cd71aaee6a4b8592dc08b1 |
01-Feb-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3453 and probably a bunch of other potential crashes or wrong code with codegen of large integers: eliminate the legacy getIntegerVTBitMask and getIntegerVTSignBit methods, which returned their value as a uint64_t, so couldn't handle huge types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
505ba94e7557c4396dcbcd3ca8ec3d37fc280958 |
01-Feb-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3453 and probably a bunch of other potential crashes or wrong code with codegen of large integers: eliminate the legacy getIntegerVTBitMask and getIntegerVTSignBit methods, which returned their value as a uint64_t, so couldn't handle huge types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
fc4b677cd526f1f6a3d6487782557af99fbf6c32 |
01-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot some more DebugLoc propagations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
55b2b9d20c04019c67efeb9fcc7045b11f8e23b3 |
01-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot some more DebugLoc propagations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4a6d13e8fbbdc3fe6b783905a303368d13321611 |
01-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Fix test failures causes by my previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63492 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
0f6690e8ed392edd091bdd811315c897c959a37e |
01-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Fix test failures causes by my previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63492 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
5caedc0f0905bfc5472282cf56f92ebf14fb1c66 |
01-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Fix an issue in PHI construction that was exposed by GCC 4.2 producing a different set iteration order for the reg_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63490 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
464c1b86acb15bf69ca623452899dae6a949fff9 |
01-Feb-2009 |
Owen Anderson <resistor@mac.com> |
Fix an issue in PHI construction that was exposed by GCC 4.2 producing a different set iteration order for the reg_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63490 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
644f6f875ee6dae47a56692f36ae566c27008e07 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63488 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
701fa3918740cbb9d9c72bee19645d91feec672d |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63488 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
35ba3d463834f83e2bf8e8ad631ffc4d73a0203c |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. Done with file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63486 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
a2f51e597fd5fc0e53a9e25c6fd6ac6f0f199e5e |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. Done with file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63486 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
9c8ac447c464eedefa6acd8d71a3aff8280bb9d1 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. Done with file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
2784232ef760a13015a35533153d19493d002629 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation. Done with file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
92abc62399881ba9c525be80362c134ad836e2d9 |
31-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3401: when using large integers, the type returned by getShiftAmountTy may be too small to hold shift values (it is an i8 on x86-32). Before and during type legalization, use a large but legal type for shift amounts: getPointerTy; afterwards use getShiftAmountTy, fixing up any shift amounts with a big type during operation legalization. Thanks to Dan for writing the original patch (which I shamelessly pillaged). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
7d9e36100672b722b01c73fbb98ce2b6579dda3f |
31-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3401: when using large integers, the type returned by getShiftAmountTy may be too small to hold shift values (it is an i8 on x86-32). Before and during type legalization, use a large but legal type for shift amounts: getPointerTy; afterwards use getShiftAmountTy, fixing up any shift amounts with a big type during operation legalization. Thanks to Dan for writing the original patch (which I shamelessly pillaged). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
a7b6cff99f5015120f828c316823cb32eed93901 |
31-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
If unsafe FP optimization is not set, don't allow -(A-B) => B-A because when A==B, -0.0 != +0.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4340d5da667ec32596dab97b636dce35ff58b175 |
31-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
If unsafe FP optimization is not set, don't allow -(A-B) => B-A because when A==B, -0.0 != +0.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9729c5ad3413d3b69d4bc41aa918a7a8dd6bf9f0 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't use DebugLoc::getUnknownLoc(). Default to something hopefully sensible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bd0cd9f1f5a1732a1fa8b839a9687d250c445787 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't use DebugLoc::getUnknownLoc(). Default to something hopefully sensible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
66978ee97773aa76c3f15bee2fc77e5905aaf068 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Move CurDebugLoc into SelectionDAGLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
3222146f4603812cbb91f376017e2c67ed77df34 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Move CurDebugLoc into SelectionDAGLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
91b49b910c088b332869ccfb3e35735be2000b57 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info in LegalizeFloatTypes. Complete (modulo bugs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
1bea540b3dd3d0719cbbfeaabdfa871504de4c37 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info in LegalizeFloatTypes. Complete (modulo bugs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
786fd4dded6a42561c0d82bbd9d13b9a4d8d9675 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info. This file complete (modulo bugs) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
e6c2a8329d13cf67e91852d40f848fbb21edb401 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info. This file complete (modulo bugs) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
c8fc99d66a03dc603f49d653937ad1d94e833006 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info through MakeLibCall and a couple of things that use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63456 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
f52bf3eb8a0f4f8787b2c80083e3b74a31764f61 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info through MakeLibCall and a couple of things that use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63456 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
836ca7dc6e0dbffa83095ccf110ccd9f2bcfdb05 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e64b4632096bf3bd21413f0cd9131903146b2069 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c144a57e14faf52fd2223548922dc4174827df03 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3b1141d3f00eabc3c618d004f4af7fac4082154e |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c0debad7168e252c34631a04f62577d792c71e07 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation in LOAD etc. methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63451 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0be345950ad41f6035478b2a00910f26256a22ce |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation in LOAD etc. methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63451 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0225a1dcb1b1324192bf34c532c6d18503017cd4 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation in floating-point methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63446 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fe063884f1789373b8779ebeeb7fcb7dff4f7f6c |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
More DebugLoc propagation in floating-point methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63446 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7d2ad624fa749a6d3edac0d94e9c107989c16304 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Make LowerCallTo and LowerArguments take a DebugLoc argument. Adjust all callers and overloaded versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
ca6237b16a68ff5256d47b79908cc3a3a4b61889 |
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Make LowerCallTo and LowerArguments take a DebugLoc argument. Adjust all callers and overloaded versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
d34470c4f76483f0f1098527d416cd065d46d950 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Standardize comments about folding xforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9cf9d38c8dbf76354faf51668911eb007fd3b03d |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Standardize comments about folding xforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7581bfa2757a3149c6d17c0fe592e5c3808aa843 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Get rid of the non-DebugLoc-ified getNOT() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
fcfb47d11cb9071e35ce52a8fee893676f364221 |
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Get rid of the non-DebugLoc-ified getNOT() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
a03e74bf6795478fd0b8d8d09b86ab517cda84b5 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for some FP arithmetic methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e2bf56b1fbf7cefd6d936a03d43dda569ddd4a5d |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for some FP arithmetic methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b0162f58c4dc07e325f47befcbb31c72d894bc1f |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for some FP arithmetic methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
323674b28e207a1496c3405a915248746f700cb5 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for some FP arithmetic methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
67a6768375d29bfda9ebf79edd1d9089f6fea9f5 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for BIT_CONVERT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
043d2c6ff8d2aba14e63a4931b096b6a5ac9fbb7 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for BIT_CONVERT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8509c90a206eb04ed11da44d357f7250db3df346 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for more *_EXTEND methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63437 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
49bff0a5626eab6c64426e0fe027f5724315920a |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for more *_EXTEND methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63437 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
683c95764aa519ba21686e631fa8d2231c8dbd74 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for ANY_EXTEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fb6f17d342bbe402fa745762f2f51fdb41dfb8e6 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for ANY_EXTEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6ce610f04bb232ce8b57e50e885f30f65d19e1a6 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for some of the *_EXTEND functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
085b207e3dd5ceb2810bb4a07d718a1cb7bac39c |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for some of the *_EXTEND functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
41b9d278add97c744930aa2a0048ff1c01e48c4f |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
DebugLoc form of getNOT(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63433 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4b8dd44da84e0c9d7a130073c73fbefb5d3b0a10 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
DebugLoc form of getNOT(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63433 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
34584e6aedf02a4123ac7605486093e798cdcb71 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
- Propagate debug loc info for SELECT. - Added xform for (select X, 1, Y) and (select X, Y, 0), which was commented on, but missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d079e9fed642e22829d31f449ccf849f3d6a1530 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
- Propagate debug loc info for SELECT. - Added xform for (select X, 1, Y) and (select X, Y, 0), which was commented on, but missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8810337e36fd56dacad557b016dfaacfc732730a |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for Shifts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63424 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c73b8c2ef0aa388032e855d0e28f77c36e9f3027 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for Shifts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63424 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
317bd709bdd119a286e4c2e10b59202dc7e81a13 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for XOR and MatchRotate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2e1865c0e88ef208aadab3599435291d5216f399 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for XOR and MatchRotate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
09025644791ca400242c51a61aa633f3ded3f3a3 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for OR. Also clean up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
43f24b97050e83c75b523e3d1b68b259da54b74a |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for OR. Also clean up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6af7618b2378a3af378d681914976483b5b60c36 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Perform obvious constant arithmetic folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f8bc78488c1884b7916cc3206e8b21a1c149d86d |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Perform obvious constant arithmetic folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2627a881e1ba1c7821537d607dbd80c0ef4d2363 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for AND. Also clean up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d32f852eb99e80ac707faa5d00033fdac957be81 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for AND. Also clean up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b74c8675b11db86c115f698f3d182f9039131161 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in SimplifyBinOpWithSameOpcodeHands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c93d72a164a326080318e3d8f599ed84789b8252 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in SimplifyBinOpWithSameOpcodeHands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
dd9db6688283639a0c95f8ed67beb1bd54b5fff4 |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Each input file is encoded as a separate compile unit in LLVM debugging information output. However, many target specific tool chains prefer to encode only one compile unit in an object file. In this situation, the LLVM code generator will include debugging information entities in the compile unit that is marked as main compile unit. The code generator accepts maximum one main compile unit per module. If a module does not contain any main compile unit then the code generator will emit multiple compile units in the output object file. [Part 1] Update DebugInfo APIs to accept optional boolean value while creating DICompileUnit to mark the unit as "main" unit. By defaults all units are considered non-main. Update SourceLevelDebugging.html to document "main" compile unit. Update DebugInfo APIs to not accept and encode separate source file/directory entries while creating various llvm.dbg.* entities. There was a recent, yet to be documented, change to include this additional information so no documentation changes are required here. Update DwarfDebug to handle "main" compile unit. If "main" compile unit is seen then all DIEs are inserted into "main" compile unit. All other compile units are used to find source location for llvm.dbg.* values. If there is not any "main" compile unit then create unique compile unit DIEs for each llvm.dbg.compile_unit. [Part 2] Create separate llvm.dbg.compile_unit for each input file. Mark compile unit create for main_input_filename as "main" compile unit. Use appropriate compile unit, based on source location information collected from the tree node, while creating llvm.dbg.* values using DebugInfo APIs. --- This is Part 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2ae1db58fa5fe9e7e76809e2038188f90d1421bf |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Each input file is encoded as a separate compile unit in LLVM debugging information output. However, many target specific tool chains prefer to encode only one compile unit in an object file. In this situation, the LLVM code generator will include debugging information entities in the compile unit that is marked as main compile unit. The code generator accepts maximum one main compile unit per module. If a module does not contain any main compile unit then the code generator will emit multiple compile units in the output object file. [Part 1] Update DebugInfo APIs to accept optional boolean value while creating DICompileUnit to mark the unit as "main" unit. By defaults all units are considered non-main. Update SourceLevelDebugging.html to document "main" compile unit. Update DebugInfo APIs to not accept and encode separate source file/directory entries while creating various llvm.dbg.* entities. There was a recent, yet to be documented, change to include this additional information so no documentation changes are required here. Update DwarfDebug to handle "main" compile unit. If "main" compile unit is seen then all DIEs are inserted into "main" compile unit. All other compile units are used to find source location for llvm.dbg.* values. If there is not any "main" compile unit then create unique compile unit DIEs for each llvm.dbg.compile_unit. [Part 2] Create separate llvm.dbg.compile_unit for each input file. Mark compile unit create for main_input_filename as "main" compile unit. Use appropriate compile unit, based on source location information collected from the tree node, while creating llvm.dbg.* values using DebugInfo APIs. --- This is Part 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63400 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c0425b646f726de9b2422bc48ec316c4be9f6d7f |
30-Jan-2009 |
Zhou Sheng <zhousheng00@gmail.com> |
As Duncan suggested, add braces for the one-line "else branch". Thanks, Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63389 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
7f6457a0b640b17180f8dc56b775d25d3bf86618 |
30-Jan-2009 |
Zhou Sheng <zhousheng00@gmail.com> |
As Duncan suggested, add braces for the one-line "else branch". Thanks, Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63389 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
904ebf9bf4e6487892cda2e89b8e6d40803e4733 |
30-Jan-2009 |
Zhou Sheng <zhousheng00@gmail.com> |
This is to fix the bug in IntrinsicLowering.cpp, the LowerPartSet(). It didn't handle the situation correctly when the low, high argument values are in reverse order (low > high) with 'Val' type i32 (a corner case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63388 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
e4e9d2c6809280b4bf85baed3b87e8dab2b738f4 |
30-Jan-2009 |
Zhou Sheng <zhousheng00@gmail.com> |
This is to fix the bug in IntrinsicLowering.cpp, the LowerPartSet(). It didn't handle the situation correctly when the low, high argument values are in reverse order (low > high) with 'Val' type i32 (a corner case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63388 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
c8d7bc850ddf5a5df503a173b0bc0f8c03ffec96 |
30-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Enable emitting of constant values in non-default address space as well. The APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dc2943d9f6c2f65a39d9d71c12f09f7c49d59839 |
30-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Enable emitting of constant values in non-default address space as well. The APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63377 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
826d11463b3fb0ecadae532821e6d11170276dc1 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in SimplifyNodeWithTwoResults. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
24ecb1b093539263f59298177088231004d72ed9 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in SimplifyNodeWithTwoResults. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
326411dc69db3ff6335a2b1351e05c80d20c2b3c |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for MULHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ff9beb9c31b526acc4b9c85a37a10f3d1b778983 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for MULHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6d3bf8c4c3a1917f255df4ff0d47f4f51261bcc0 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for SREM and UREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ceba88e7b4087634905939b7aff0c9f872fa36d9 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for SREM and UREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
07d85140497a8fb58d9d2daa723c6c8b64948b73 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for UDIV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b3552a58e84a840575f0b60903a766b96ed629e5 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for UDIV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
944d34bfe8c79ddcb96516d3ba867be09ebf2890 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for SDIV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
09f5dc803d3301f8564ae44107bad7861b7070f6 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for SDIV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
73e16b2869fbc75ccb3506620b0342b6085fe843 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot to propagate debug loc info here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c80e5c4fa6810a0ef892aec3f6a0b343a73ce5a4 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot to propagate debug loc info here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3311a1f8f0d8a2c6d940802bbb95eba0b801a615 |
30-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a post-RA scheduling dependency bug. If a MachineInstr doesn't have a memoperand but has an opcode that is known to load or store, assume its memory reference may alias *anything*, including stack slots which the compiler completely controls. To partially compensate for this, teach the ScheduleDAG building code to do basic getUnderlyingValue analysis. This greatly reduces the number of instructions that require restrictive dependencies. This code will need to be revisited when we start doing real alias analysis, but it should suffice for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63370 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
24196cf51a4ce4da2c7f3d6d4c378db12c685f0e |
30-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a post-RA scheduling dependency bug. If a MachineInstr doesn't have a memoperand but has an opcode that is known to load or store, assume its memory reference may alias *anything*, including stack slots which the compiler completely controls. To partially compensate for this, teach the ScheduleDAG building code to do basic getUnderlyingValue analysis. This greatly reduces the number of instructions that require restrictive dependencies. This code will need to be revisited when we start doing real alias analysis, but it should suffice for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63370 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
9c8148ac93835b7d53c81c554cde2e6da3730771 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for MUL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
db4984aebf62890ea2280115f6be096403d1e738 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for MUL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b0702e0b7e4a9b0a0b4e707512d25ab5a1204408 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in SUB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
697795ac6cdf2df227b894556b6c55ae3612d7c8 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in SUB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
14036c00c0b3a83805695afb50b6d42430b70979 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in ADDC and ADDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4c196babb6a261e41aba4ced7656500ef042ee21 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in ADDC and ADDE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f4eb2269eba50a68d0227edc8c4b8872428fab33 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in DAG combine's "ADD". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d850aa53fc72f0196b52cedd2af859a077701791 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info in DAG combine's "ADD". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d69c3141ed6d237ad19fdfbfcef8901491b24c2e |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
- Propagate debug loc info in combineSelectAndUse(). - Modify ReassociateOps so that the resulting SDValue is what the comment claims it is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63365 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e165f5a20b055825a342afb14872400f0e2b621d |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
- Propagate debug loc info in combineSelectAndUse(). - Modify ReassociateOps so that the resulting SDValue is what the comment claims it is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63365 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fa42dea48b76b32a17f2d777115790f364f1984f |
30-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info when building SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2fa55f8cca36bfaab433e4b8493d2686629765be |
30-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Propagate debug info when building SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6360089d632fcb90c001b81f4735364c36848246 |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code, again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
003ccbd68e5ab92944fcaba4c0fb4f536ba73e3e |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code, again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
425b64ecef77ff30154aeea9a8be14938be5f6a6 |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63357 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
24f9fb268b6d3e547812c1c23ee11778c812a15c |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63357 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d234e59e577ef93fc52492b92f613898a96d9f24 |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add DW_AT_declaration for class methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
922d159cbd130103ab085ed469e680aa93ec1bfc |
30-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add DW_AT_declaration for class methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63356 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5c71acfb0600ea9272a2dcce00e1610a5b8ee081 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug location info for the token factor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
131d6e9c6492a719b8cd0c6bee7f89cfe82e08a0 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug location info for the token factor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
35247c35136232bb30aa17543dbcf9c92fa24d29 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Add DebugLoc propagation to some of the methods in DAG combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
abb33a2414314ec94b3c72ec2a42b71715bc43f9 |
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Add DebugLoc propagation to some of the methods in DAG combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ef4549d9d03146a23971f44155eca6330fb308e |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Correct the algorithms for choosing spill and restore points so that we don't try to insert loads/stores between call frame setup and the actual call. This fixes the last known failure for the pre-alloc-splitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63339 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
5da495d4a1edb598e86477d8873bc88b700d7350 |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Correct the algorithms for choosing spill and restore points so that we don't try to insert loads/stores between call frame setup and the actual call. This fixes the last known failure for the pre-alloc-splitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63339 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
15b3830bcda4f9958abf1c65e6e1c64c5cbb484d |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Explicitly add PseudoSourceValue information when lowering BUILD_VECTOR and conversions to stack operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63333 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8a8251aa84e32adc485310cf3428fb2383cb9a02 |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Explicitly add PseudoSourceValue information when lowering BUILD_VECTOR and conversions to stack operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63333 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1cc6b8ee787c183a7c88fec8fbb96c1404cf34e8 |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make a few things const, fix some comments, and simplify some assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2867582126f112605e4205622165e440eb52c05a |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make a few things const, fix some comments, and simplify some assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d5a480270898166d512fe49fc61328211fd7c6b2 |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Local register allocator shouldn't assume only the entry and landing pad basic blocks have live-ins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63323 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b0f4d5f6b857f54384b7e8d23846d0b0e9e55d0a |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Local register allocator shouldn't assume only the entry and landing pad basic blocks have live-ins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63323 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
2c65c3dfe6589a630d1bdde085aec1b9cdc43ea8 |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix two typos that Duncan spotted in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8710f1c88efd7461a75ed6af8a3d313bb5b83f22 |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix two typos that Duncan spotted in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
197e88f7963946dfdb4770ed27ee246eb087ca10 |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
In the case of an extractelement on an insertelement value, the element indices may be equal if either one is not a constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b38eabfc63c1a3741ff0057fe48abe9ee92cd3c7 |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
In the case of an extractelement on an insertelement value, the element indices may be equal if either one is not a constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
56ab1a281511dde8c173cd2dc8ef55a916049037 |
29-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r63273. This was already implemented by Dale. There's no need for my change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63301 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6ed1f08a168e25dadd8c5e37ac97c1aad9dc8721 |
29-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r63273. This was already implemented by Dale. There's no need for my change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63301 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c0f3a0353c7bbde87d9430ba9e1f352dd38ff62e |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Fix an issue where restores could be inserted after a terminator instruction, and an iterator invalidation issue. FreeBench/pifft no longer miscompiles with these fixes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63293 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
c70f0a93bded74d6c5906a01b49035b8880f9613 |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Fix an issue where restores could be inserted after a terminator instruction, and an iterator invalidation issue. FreeBench/pifft no longer miscompiles with these fixes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63293 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
4bfc2097218e2386807336d3fc885905edbd7215 |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Comments are good. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63276 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f97d61244fd710c9e3ef8c1c07e61018a69b602f |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Comments are good. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63276 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
45e6855ea2d1df527e0468469d693fa0c276f235 |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Add support for aggressive load-use-store folding. This takes care of the vast majority of code size regressions introduced by pre-alloc-splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63274 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
ea81c8a8d5a5e17d1bccd044933be431ba8a7d7d |
29-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Add support for aggressive load-use-store folding. This takes care of the vast majority of code size regressions introduced by pre-alloc-splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63274 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
6e1bb38fb8dd64ece28ea5779a8bbf9b5ff7fb96 |
29-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add DebugLoc to getTargetNode(). - Modify TableGen to add the DebugLoc when calling getTargetNode. (The light-weight wrappers are only temporary. The non-DebugLoc version will be removed once the whole debug info stuff is finished with.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
66968015fbe5c43c457b486bd6918f15626a5535 |
29-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add DebugLoc to getTargetNode(). - Modify TableGen to add the DebugLoc when calling getTargetNode. (The light-weight wrappers are only temporary. The non-DebugLoc version will be removed once the whole debug info stuff is finished with.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5a3c6a87b0173b9d367f7b55e7c99e5110ede057 |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Exit with nice warnings when register allocator run out of registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63267 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egAllocLocal.cpp
|
548bc503a39311d62d31b7d07c3da748f5a3961e |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Exit with nice warnings when register allocator run out of registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63267 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egAllocLocal.cpp
|
e5af2d3a224d4b38760a26d237cde040cb6e14eb |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make x86's BT instruction matching more thorough, and add some dagcombines that help it match in several more cases. Add several more cases to test/CodeGen/X86/bt.ll. This doesn't yet include matching for BT with an immediate operand, it just covers more register+register cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
22cefb0de0d6b2dff668fd276a4650a6ce01c797 |
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make x86's BT instruction matching more thorough, and add some dagcombines that help it match in several more cases. Add several more cases to test/CodeGen/X86/bt.ll. This doesn't yet include matching for BT with an immediate operand, it just covers more register+register cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
7ddee0ad249e69753a08356708fe3bfbedbb7712 |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
A slight compile time optimization. If the caller knows there isn't a free register getReg() should not call getFreeReg(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63263 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
308d18591fcae2842c420aad22bb150ea234e80d |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
A slight compile time optimization. If the caller knows there isn't a free register getReg() should not call getFreeReg(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63263 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e8c17335c53f0f37262ee342f46b0d00ac0c1493 |
29-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add DebugLoc-sensitive versions of many node creation functions. Currently omitted: memcpy, memmove, memset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ba9d87fffb3ac331ec143eeeb555524abb76eff1 |
29-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add DebugLoc-sensitive versions of many node creation functions. Currently omitted: memcpy, memmove, memset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
42cc6e33ec0f63560c31f1928c56b4b0465d537c |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment about removeRange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63255 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
eb80af64fec00ccea18eb393a66d93965fcd696c |
29-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment about removeRange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63255 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
7ade28cd62f5188951387e1056a46001388a21f9 |
28-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Add DebugLoc to the getNode() methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
df4de11679f71f3290834f21bdfc142407093fb0 |
28-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Add DebugLoc to the getNode() methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3edb43e6208493dec85a2e87942f7a4d59073727 |
28-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add DebugLoc-aware constructors for SDNode derived classes (those that reasonably have a DebugLoc associated with them). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63236 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
08f344e789728a1b7dc8bf1b608a2eca6b49b53e |
28-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add DebugLoc-aware constructors for SDNode derived classes (those that reasonably have a DebugLoc associated with them). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63236 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f9235748567e065b3b3c3bd48c3d4dfe1d664e8b |
28-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not forget to derived type while constructing an array type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6ab30e5d7b61abcbf12520db6fc3a59cd38fbff4 |
28-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not forget to derived type while constructing an array type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63233 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f7eef6811c8b701b815c64e754a174691953a35f |
28-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Fixed extract element when the result needs to be promoted and the input widened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63217 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
6394215c89316b9ecf56761dbd67c39c8a714edf |
28-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Fixed extract element when the result needs to be promoted and the input widened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63217 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
f560ffae1f1f6591859c7b70636a3eca6c03f083 |
28-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make isOperationLegal do what its name suggests, and introduce a new isOperationLegalOrCustom, which does what isOperationLegal previously did. Update a bunch of callers to use isOperationLegalOrCustom instead of isOperationLegal. In some case it wasn't obvious which behavior is desired; when in doubt I changed then to isOperationLegalOrCustom as that preserves their previous behavior. This is for the second half of PR3376. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
52c51aab80e1ab56ad29ba2c5bf5d5e74e0574a6 |
28-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make isOperationLegal do what its name suggests, and introduce a new isOperationLegalOrCustom, which does what isOperationLegal previously did. Update a bunch of callers to use isOperationLegalOrCustom instead of isOperationLegal. In some case it wasn't obvious which behavior is desired; when in doubt I changed then to isOperationLegalOrCustom as that preserves their previous behavior. This is for the second half of PR3376. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
0b3aa26384ff37597f1d686a834252f97a619380 |
28-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
d5443caee8088bea5ba0c874bb85d227ab4fe074 |
28-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
1465d61bdd36cfd6021036a527895f0dd358e97d |
28-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getAnalysisToUpdate to getAnalysisIfAvailable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63198 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
CMetadata.cpp
CStrategy.cpp
achineModuleInfo.cpp
HIElimination.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
4e0d6a7d48464188a1a25b544a6355326d3fd3bf |
28-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getAnalysisToUpdate to getAnalysisIfAvailable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63198 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
CMetadata.cpp
CStrategy.cpp
achineModuleInfo.cpp
HIElimination.cpp
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
f83c81acbe5923ab6e0572f272d203d795e28185 |
28-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use ValueType::bitsLT to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
|
783a32c383a47fe8e34df27f1d75b0b206e89e3c |
28-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use ValueType::bitsLT to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
|
77f7a5771e01ec5ec5fdbb3af8fcc2ce31e1d4f7 |
28-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use ZERO_EXTEND instead of ANY_EXTEND when promoting shift amounts, to avoid implicitly assuming that target architectures will ignore the high bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
|
34a8b45f9767286b0158f6a62c1d43777fc84287 |
28-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use ZERO_EXTEND instead of ANY_EXTEND when promoting shift amounts, to avoid implicitly assuming that target architectures will ignore the high bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
|
7009d24e8157dbe3689f7f44b64cedf6e1371b84 |
28-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add type DIE into appropriate context DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63154 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b0cb07ce1d39aaf9253b1d35dc442a6ea895bce3 |
28-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add type DIE into appropriate context DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63154 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
06efc02854a96a9f92edc3bf46b0451f488cf2e6 |
28-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add a DebugLoc field and some simple accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63152 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7899a6dceb53d58330def030522f380a76fd4fd4 |
28-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add a DebugLoc field and some simple accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63152 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
aaeea9e64f7c0f45380d323a32501c4da59a2c4d |
27-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refine DebugLoc per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63132 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c611f1d881c25889d6343c0bd41ea73a5157ae66 |
27-Jan-2009 |
evancheng <evancheng@91177308-0d34-0410-b5e6-96231b3b80d8> |
Refine DebugLoc per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63132 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
ce9bc12c6f3c3544f7518c0c60203f2f9dff342f |
27-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Add an assertion to the form of SelectionDAG::getConstant that takes a uint64_t to verify that the value is in range for the given type, to help catch accidental overflow. Fix a few places that relied on getConstant implicitly truncating the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
51bef2e7f3b8bd4bafc8b4e4e6d42d0b2ede47ee |
27-Jan-2009 |
djg <djg@91177308-0d34-0410-b5e6-96231b3b80d8> |
Add an assertion to the form of SelectionDAG::getConstant that takes a uint64_t to verify that the value is in range for the given type, to help catch accidental overflow. Fix a few places that relied on getConstant implicitly truncating the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
daac99cdfb7b730d4317a0152c7ef27cc19bdab9 |
27-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Delete redundant return statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0c797921a28ee71536ba20b7685edccc7ecb75a0 |
27-Jan-2009 |
djg <djg@91177308-0d34-0410-b5e6-96231b3b80d8> |
Delete redundant return statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
26562de2efa73446dbb8ae4cb6fb6b08f1c252a9 |
27-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Make the pre-split-limit option more useful by using a per-function counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63091 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
922b8d77fb62b71b460ec718171ffbdeb43dd6d8 |
27-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Make the pre-split-limit option more useful by using a per-function counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63091 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
ad165bec1d9c685b21abbc9a7f9b217a748528dd |
27-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Assorted debug info fixes. - DW_AT_bit_size is only suitable for bitfields. - Encode source location info for derived types. - Source location and type size info is not useful for subroutine_type (info is included in respective DISubprogram) and array_type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63077 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e34e08820dead3fe7f94fd98c41c3e3ea6995e6b |
27-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Assorted debug info fixes. - DW_AT_bit_size is only suitable for bitfields. - Encode source location info for derived types. - Source location and type size info is not useful for subroutine_type (info is included in respective DISubprogram) and array_type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63077 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b9f66cfadf6b1551192ee4a6e9b70f564c5ed8be |
27-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
No need to keep size of DebugLocations vector separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63070 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
a40c3dd5c4a08b59dc9b0634f1ba1355b038b59a |
27-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
No need to keep size of DebugLocations vector separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63070 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
210de72cd7b139378f48dafbdac3d3379dd93c56 |
26-Jan-2009 |
Scott Michel <scottm@aero.org> |
Make the Dwarf macro information section optional; CellSPU's assembler doesn't support it. The default is set to 'true', so this should not impact any other target backends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63058 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
79f01f5229a51c64b92e8ee56f9a1d8edf95ee57 |
26-Jan-2009 |
Scott Michel <scottm@aero.org> |
Make the Dwarf macro information section optional; CellSPU's assembler doesn't support it. The default is set to 'true', so this should not impact any other target backends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63058 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b4b84363819546095b62005a1e6ee26348557ce4 |
26-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Reapply r63025 and r63026, with fixes for the failing testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63049 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
5bc4884438cd7085c41c12c0b1a592d07deaa9a5 |
26-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Reapply r63025 and r63026, with fixes for the failing testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63049 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
5bb11b89ddbc0f47eee9743b93df5aa872750d13 |
26-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3393, which amounts to a bug in the expensive checking logic. Rather than make the checking more complicated, I've tweaked some logic to make things conform to how the checking thought things ought to be, since this results in a simpler "mental model". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63048 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
bd2b182f54dacfd73bb5a67ee30d0af5c89e5d89 |
26-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3393, which amounts to a bug in the expensive checking logic. Rather than make the checking more complicated, I've tweaked some logic to make things conform to how the checking thought things ought to be, since this results in a simpler "mental model". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63048 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
826f0935177b0183383701ae40e3d802a184fbf4 |
26-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Also revert r63206 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63041 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
807630e41f5d927565c541a5b1c56e8740db2d69 |
26-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Also revert r63206 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63041 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
34b946b8fbb6bb04e6bac5146314f86baaa893ae |
26-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r63025 until the testsuite failures can be fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63040 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
21f563649d9859a1bdc424fecb18cbdd7807aa05 |
26-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r63025 until the testsuite failures can be fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63040 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
36c826ad958f74e1078cbe2ecfd07ae0a7170543 |
26-Jan-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
During bittest switch lowering emit shift in the test block, which should (theoretically) allow us to generate more efficient code. We don't do this now though :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
bb1518f1f7125bf4bfe2235f8700e01d11d8c0cb |
26-Jan-2009 |
asl <asl@91177308-0d34-0410-b5e6-96231b3b80d8> |
During bittest switch lowering emit shift in the test block, which should (theoretically) allow us to generate more efficient code. We don't do this now though :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
d7250517b06250ca942847dfd6e51ede261c24c9 |
26-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of a bunch of dead code now that interval reconstruction is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63026 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
8ae20cfd634ec4d3fb2242eca53fbe52df0058fd |
26-Jan-2009 |
resistor <resistor@91177308-0d34-0410-b5e6-96231b3b80d8> |
Get rid of a bunch of dead code now that interval reconstruction is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63026 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
8af1e761f824ca46088780c2fbe1de9e4278f06c |
26-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Fix an issue where LiveIntervals was trying to be smart about removing kill markers, and ended up foiling the interval reconstruction. This allows us to turn on reconstruction in the pre alloc splitter, which fixes a number of miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63025 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f58b90ad63a7d0ea810a9fd503314e97df264517 |
26-Jan-2009 |
resistor <resistor@91177308-0d34-0410-b5e6-96231b3b80d8> |
Fix an issue where LiveIntervals was trying to be smart about removing kill markers, and ended up foiling the interval reconstruction. This allows us to turn on reconstruction in the pre alloc splitter, which fixes a number of miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63025 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
b964f3387350184431f90f14050be943236c8fcd |
26-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Silence a bogus compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63021 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
bc7d476160a95ac524c472e3d06f7c586a9f6d19 |
26-Jan-2009 |
evancheng <evancheng@91177308-0d34-0410-b5e6-96231b3b80d8> |
Silence a bogus compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63021 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
c4b1abd81e4de314880110c5d58917d4747fb978 |
26-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Actually source file has already been uniquified into an id during isel. Eliminate the StringMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63009 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
4e4168febaeb82433a8611803b696d0b9458e616 |
26-Jan-2009 |
evancheng <evancheng@91177308-0d34-0410-b5e6-96231b3b80d8> |
Actually source file has already been uniquified into an id during isel. Eliminate the StringMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63009 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
d0adbb5b7da2d1238fdf1a30734a001a0103aab0 |
26-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add data structure to define and track debug location during codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63008 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
2dbde507ec0cf5abb4a88ab96fb997e39ec0a046 |
26-Jan-2009 |
evancheng <evancheng@91177308-0d34-0410-b5e6-96231b3b80d8> |
Add data structure to define and track debug location during codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63008 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e7852d014432a06c783de3c350eb96e686f10f92 |
26-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Take the next steps in making SDUse more consistent with LLVM Use, and tidy up SDUse and related code. - Replace the operator= member functions with a set method, like LLVM Use has, and variants setInitial and setNode, which take care up updating use lists, like LLVM Use's does. This simplifies code that calls these functions. - getSDValue() is renamed to get(), as in LLVM Use, though most places can either use the implicit conversion to SDValue or the convenience functions instead. - Fix some more node vs. value terminology issues. Also, eliminate the one remaining use of SDOperandPtr, and SDOperandPtr itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
|
c2517d3c633e362d4fc340b29902b90544302646 |
26-Jan-2009 |
djg <djg@91177308-0d34-0410-b5e6-96231b3b80d8> |
Take the next steps in making SDUse more consistent with LLVM Use, and tidy up SDUse and related code. - Replace the operator= member functions with a set method, like LLVM Use has, and variants setInitial and setNode, which take care up updating use lists, like LLVM Use's does. This simplifies code that calls these functions. - getSDValue() is renamed to get(), as in LLVM Use, though most places can either use the implicit conversion to SDValue or the convenience functions instead. - Fix some more node vs. value terminology issues. Also, eliminate the one remaining use of SDOperandPtr, and SDOperandPtr itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
|
399461095b033438d1f5863cd0d6f82a616f74dc |
25-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate the loop that searches through each of the operands of each use in the SelectionDAG ReplaceAllUses* functions. Thanks to Chris for spotting this opportunity. Also, factor out code from all 5 of the ReplaceAllUses* functions into AddNonLeafNodeToCSEMaps, which is now renamed AddModifiedNodeToCSEMaps to more accurately reflect its purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
943376a6cd1f5a793ea99fbdebbe69112c173895 |
25-Jan-2009 |
djg <djg@91177308-0d34-0410-b5e6-96231b3b80d8> |
Eliminate the loop that searches through each of the operands of each use in the SelectionDAG ReplaceAllUses* functions. Thanks to Chris for spotting this opportunity. Also, factor out code from all 5 of the ReplaceAllUses* functions into AddNonLeafNodeToCSEMaps, which is now renamed AddModifiedNodeToCSEMaps to more accurately reflect its purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
74692c0d65d92865674ff8e0491a21b98950284a |
25-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Whitespace tidiments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
08f48f53cb06d0d011f697744efc33ebe5ba4068 |
25-Jan-2009 |
djg <djg@91177308-0d34-0410-b5e6-96231b3b80d8> |
Whitespace tidiments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e77f89de8cb6690ac45b87b03c588e9d287c1eeb |
25-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Move the N->use_empty() assert from DeleteNode to DeleteNodeNotInCSEMaps, since DeleteNode just calls DeleteNodeNotInCSEMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f03abfe8766b6ef802f6a470a056d40a33a8252d |
25-Jan-2009 |
djg <djg@91177308-0d34-0410-b5e6-96231b3b80d8> |
Move the N->use_empty() assert from DeleteNode to DeleteNodeNotInCSEMaps, since DeleteNode just calls DeleteNodeNotInCSEMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d498c8f2c8eb5598bf2e0c3ab30016734e490c6b |
25-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach 2addr pass to be do more commuting. If both uses of a two-address instruction are killed, but the first operand has a use before and after the def, commute if the second operand does not suffer from the same issue. %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1028 %reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<imp-def,dead> In this case, it might not be possible to coalesce the second MOV8rr instruction if the first one is coalesced. So it would be profitable to commute it: %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1029 %reg1030<def> = ADD8rr %reg1029<kill>, %reg1028<kill>, %EFLAGS<imp-def,dead> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62954 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
58d5ef24fd6c26a0b95c1adead41702b12a59f35 |
25-Jan-2009 |
evancheng <evancheng@91177308-0d34-0410-b5e6-96231b3b80d8> |
Teach 2addr pass to be do more commuting. If both uses of a two-address instruction are killed, but the first operand has a use before and after the def, commute if the second operand does not suffer from the same issue. %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1028 %reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<imp-def,dead> In this case, it might not be possible to coalesce the second MOV8rr instruction if the first one is coalesced. So it would be profitable to commute it: %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1029 %reg1030<def> = ADD8rr %reg1029<kill>, %reg1028<kill>, %EFLAGS<imp-def,dead> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62954 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
9b9948507474acd3c5941ad7d33a37cb066803ad |
24-Jan-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix an indent and a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a0d77375cb66caf9235a698526f2b2aae389f723 |
24-Jan-2009 |
sampo <sampo@91177308-0d34-0410-b5e6-96231b3b80d8> |
Fix an indent and a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
32ca8657b8c1ef21225370b7b7e159a92413bc6e |
24-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Some cleanups. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62917 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
22c9d8c314f0e708ca4943db5841b2d01154398e |
24-Jan-2009 |
resistor <resistor@91177308-0d34-0410-b5e6-96231b3b80d8> |
Some cleanups. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62917 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
8191371f87495dea2abd733bf63224b6209fdb12 |
24-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62893 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b473d2ec1cc84bac97b3804872e0856ea7232c3a |
24-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62893 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3b64c6bc2916bc62a99ef8a2995a426d994e1a04 |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Introduce two DWARF attribute extentions DW_AT_APPLE_optimized, DW_AT_APPLE_flags. DW_AT_APPLE_optimized flag is set when a compile_unit is optimized. The debugger takes advantage of this information some way. DW_AT_APPLE_flags encodes command line options when certain env. variable is set. This is used by build engineers to track various gcc command lines used by by a project, irrespective of whether the project used makefile, Xcode or something else. llvm-gcc patch is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62888 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a880b1e4f308b64f45997f6eb5f8cd64a88d7a96 |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Introduce two DWARF attribute extentions DW_AT_APPLE_optimized, DW_AT_APPLE_flags. DW_AT_APPLE_optimized flag is set when a compile_unit is optimized. The debugger takes advantage of this information some way. DW_AT_APPLE_flags encodes command line options when certain env. variable is set. This is used by build engineers to track various gcc command lines used by by a project, irrespective of whether the project used makefile, Xcode or something else. llvm-gcc patch is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62888 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
80303aade2b473004bde914db6c368a77af0f8a8 |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Empty DIType represents void. In this case no need to construct any type DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62861 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
165ed51875baf34e005543dfeabb6816685a0cfc |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Empty DIType represents void. In this case no need to construct any type DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62861 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a90c8e690bd9103bb4a5d943f98279a55bf42ad1 |
23-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fold x-0 to x in unsafe-fp-math mode. This comes up in the testcase from PR3376, and in fact is sufficient to completely avoid the problem in that testcase. There's an underlying problem though; TLI.isOperationLegal considers Custom to be Legal, which might be ok in some cases, but that's what DAGCombiner is using in many places to test if something is legal when LegalOperations is true. When DAGCombiner is running after legalize, this isn't sufficient. I'll address this in a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
46ef3eba061054be925fd2fe3ff0e3433d6cf31a |
23-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fold x-0 to x in unsafe-fp-math mode. This comes up in the testcase from PR3376, and in fact is sufficient to completely avoid the problem in that testcase. There's an underlying problem though; TLI.isOperationLegal considers Custom to be Legal, which might be ok in some cases, but that's what DAGCombiner is using in many places to test if something is legal when LegalOperations is true. When DAGCombiner is running after legalize, this isn't sufficient. I'll address this in a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
c16d37ead0f07cc250d06e5cdbb3836f2f6082cd |
23-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Only check if coalescing is worthwhile when the result is targeting a more restrictive register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62837 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c212aa822cf9a01eb1b190e3fcdb62b327303ec1 |
23-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Only check if coalescing is worthwhile when the result is targeting a more restrictive register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62837 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9ce499ab3663a3a5dda964c2d905e4ff05af976c |
23-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Stage two of fixing pre-alloc-splitting's code size issues: filter out restores that are just going to be re-spilled again. This also helps performance. Pre-alloc-splitting now seems to be an overall win on SPEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62834 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
bd555359c691475bb1f7b401aa76fd8af103c8c4 |
23-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Stage two of fixing pre-alloc-splitting's code size issues: filter out restores that are just going to be re-spilled again. This also helps performance. Pre-alloc-splitting now seems to be an overall win on SPEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62834 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
8c08d8c77c45d4721e7d3ef746cca9e39b28e379 |
23-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Cross register class coalescing. Not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62832 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
38ae3aa149ff304e0a8b39f1b133e8a8adc504f0 |
23-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Cross register class coalescing. Not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62832 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
a608687f3ebaec77250efd1bff645e1b1b274b99 |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Code did not follow associated comment. not a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b80597aae8896dbe1a7a90d58611b27e9076e3f6 |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Code did not follow associated comment. not a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62828 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
49f38cb32ff49ae165a97e3e71ac7e941231e251 |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Set appropriate tag for the composite type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62827 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
8050bd7227a0b9717fe2cc42128de806efeedbba |
23-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Set appropriate tag for the composite type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62827 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
956ec27a99bdb22c97d571c65aeff4cf5c2adc3f |
23-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Add an initial pass at dead spill/restore removal for pre alloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62821 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
ecaf7ca2ce7d27c6756265342eb73955e6c7cd25 |
23-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Add an initial pass at dead spill/restore removal for pre alloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62821 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
bbfa244b2fa986c53a1bcf38b6dd0fea082afaaa |
23-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
do not sign extend characters input to isprint. This improves compatibility with VC++. Patch by Max Burke! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62813 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
07ec1469b9a4dc1fef0a4bd92f49a417f8eb9a54 |
23-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
do not sign extend characters input to isprint. This improves compatibility with VC++. Patch by Max Burke! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62813 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
67ba22318b49200ffdedb1f50a8d89f08e6c710c |
22-Jan-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a minor bug in DAGCombiner's folding of SELECT. Folding "select C, 0, 1" to "C ^ 1" is only valid when C is known to be either 0 or 1. Most of the similar foldings in this function only handle "i1" types, but this one appears intentionally written to handle larger integer types. If C has an integer type larger than "i1", this needs to check if the high bits of a boolean are known to be zero. I also changed the comment to describe this folding as "C ^ 1" instead of "~C", since that is what the code does and since the latter would only be valid for "i1" types. The good news is that most LLVM targets use TargetLowering::ZeroOrOneBooleanContent so this change will not disable the optimization; the bad news is that I've been unable to come up with a testcase to demonstrate the problem. I have also removed a "FIXME" comment for folding "select C, X, 0" to "C & X", since the code looks correct to me. It could be made more aggressive by not limiting the type to "i1", but that would then require checking for TargetLowering::ZeroOrNegativeOneBooleanContent. Similar changes could be done for the other SELECT foldings, but it was decided to be not worth the trouble and complexity (see e.g., r44663). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62790 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ee1fe314072a6c1dcc71a9ed5202c5c4b5da849e |
22-Jan-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix a minor bug in DAGCombiner's folding of SELECT. Folding "select C, 0, 1" to "C ^ 1" is only valid when C is known to be either 0 or 1. Most of the similar foldings in this function only handle "i1" types, but this one appears intentionally written to handle larger integer types. If C has an integer type larger than "i1", this needs to check if the high bits of a boolean are known to be zero. I also changed the comment to describe this folding as "C ^ 1" instead of "~C", since that is what the code does and since the latter would only be valid for "i1" types. The good news is that most LLVM targets use TargetLowering::ZeroOrOneBooleanContent so this change will not disable the optimization; the bad news is that I've been unable to come up with a testcase to demonstrate the problem. I have also removed a "FIXME" comment for folding "select C, X, 0" to "C & X", since the code looks correct to me. It could be made more aggressive by not limiting the type to "i1", but that would then require checking for TargetLowering::ZeroOrNegativeOneBooleanContent. Similar changes could be done for the other SELECT foldings, but it was decided to be not worth the trouble and complexity (see e.g., r44663). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62790 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
760f86f3395750ef6d03ecfe6f82d2867fbf568b |
22-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Don't create ISD::FNEG nodes after legalize if they aren't legal. Simplify x+0 to x in unsafe-fp-math mode. This avoids a bunch of redundant work in many cases, because in unsafe-fp-math mode, ISD::FADD with a constant is considered free to negate, so the DAGCombiner often negates x+0 to -0-x thinking it's free, when in reality the end result is -x, which is more expensive than x. Also, combine x*0 to 0. This fixes PR3374. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
3d01556ac63fa62acf14d1290d6326f1d1db2ee0 |
22-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Don't create ISD::FNEG nodes after legalize if they aren't legal. Simplify x+0 to x in unsafe-fp-math mode. This avoids a bunch of redundant work in many cases, because in unsafe-fp-math mode, ISD::FADD with a constant is considered free to negate, so the DAGCombiner often negates x+0 to -0-x thinking it's free, when in reality the end result is -x, which is more expensive than x. Also, combine x*0 to 0. This fixes PR3374. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
4c2454623841f05c6c665659b34c214950d12d7e |
22-Jan-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add SelectionDAG::getNOT method to construct bitwise NOT operations, corresponding to the "not" and "vnot" PatFrags. Use the new method in some places where it seems appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
81a42cf05bf437d155f5491b490b1204c0acccfb |
22-Jan-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add SelectionDAG::getNOT method to construct bitwise NOT operations, corresponding to the "not" and "vnot" PatFrags. Use the new method in some places where it seems appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
fcc6f1556efb386af47293d9f8599bab2b34321c |
22-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Few targets like the tiny little PIC16 have only 16-bit pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8a44cfbae54d9a0e8e42c292c4f995d60bb65a97 |
22-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Few targets like the tiny little PIC16 have only 16-bit pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62763 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
536ab130ec95cbb7bf30530251dafa7dfecc8471 |
22-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
bfda7277ae672402e976e4fb6dca92232fc105a5 |
22-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
e70909b8c94b18ae5fcfe8010251d2527704d58b |
22-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
fix a typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62761 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c5ffda94ad4791ba4b3094f27a2224729ba20de2 |
22-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
fix a typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62761 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
764fd0cbc8a0ee512a9352cfeb123e8778542d28 |
21-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Simplify ReduceLoadWidth's logic: it doesn't need several different special cases after producing the new reduced-width load, because the new load already has the needed adjustments built into it. This fixes several bugs due to the special cases, including PR3317. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
054522078694b2ff7d262d9950994618bd0f5db6 |
21-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Simplify ReduceLoadWidth's logic: it doesn't need several different special cases after producing the new reduced-width load, because the new load already has the needed adjustments built into it. This fixes several bugs due to the special cases, including PR3317. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9fbc7e2e7a765298fb4326885b407e0962f7ab62 |
21-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Cleanup whitespace and comments, and tweak some prototypes, in operand type legalization. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuild.cpp
|
1497b52861fa267815ae822ce247ca74746ef211 |
21-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Cleanup whitespace and comments, and tweak some prototypes, in operand type legalization. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuild.cpp
|
d3be46214ca75f0ba7d5fc6cd322d222dd53e2cb |
21-Jan-2009 |
Owen Anderson <resistor@mac.com> |
I accidentally removed this check in an earlier commit, which cause breakage in the pre alloc splitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62678 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
41cb4919733565c697e529494f3fcfa380f318bb |
21-Jan-2009 |
Owen Anderson <resistor@mac.com> |
I accidentally removed this check in an earlier commit, which cause breakage in the pre alloc splitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62678 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
d1e8d9c0a5dc821b6b52f7872181edeeec5df7ba |
21-Jan-2009 |
Scott Michel <scottm@aero.org> |
CellSPU: - Ensure that (operation) legalization emits proper FDIV libcall when needed. - Fix various bugs encountered during llvm-spu-gcc build, along with various cleanups. - Start supporting double precision comparisons for remaining libgcc2 build. Discovered interesting DAGCombiner feature, which is currently solved via custom lowering (64-bit constants are not legal on CellSPU, but DAGCombiner insists on inserting one anyway.) - Update README. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8c67fa4e560a7e7ad7cdde160a29b14c81be027a |
21-Jan-2009 |
Scott Michel <scottm@aero.org> |
CellSPU: - Ensure that (operation) legalization emits proper FDIV libcall when needed. - Fix various bugs encountered during llvm-spu-gcc build, along with various cleanups. - Start supporting double precision comparisons for remaining libgcc2 build. Discovered interesting DAGCombiner feature, which is currently solved via custom lowering (64-bit constants are not legal on CellSPU, but DAGCombiner insists on inserting one anyway.) - Update README. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bb326bbe88d0b243d5d9d224308eb0c028d4d4af |
21-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to legalize operations (with illegal operands) that produces multiple values. For example, a load with an illegal operand (a load produces two values, a value and chain). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuild.cpp
|
b01fb4d9793bb62e48ca0d91be0c181fd3dd69b4 |
21-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to legalize operations (with illegal operands) that produces multiple values. For example, a load with an illegal operand (a load produces two values, a value and chain). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGBuild.cpp
|
6cf7c390ecf33cdbe9e65d230e4f61ac548893e6 |
21-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Be more aggressive about renumbering vregs after splitting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62639 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
8aa05c577169655d9326b1390671c583a2aee598 |
21-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Be more aggressive about renumbering vregs after splitting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62639 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
476615934a74a313a691413230d249889cfaa2f8 |
21-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Encode member accessibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2e7ee195f48ab055a04ad0aa4b4bee9d45fbcddc |
21-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Encode member accessibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62638 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2a574669f3aed5951dcd62fa14c25dcde4d1a754 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Appropriately mark fowrad decls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62625 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
30b75bbb1415450452300a984467b71bf9a2ba1e |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Appropriately mark fowrad decls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62625 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a894ae130b6e69a367aa691eec7e96973a20e901 |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62617 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
06df4d0467cf537521bf9fffef7b6e416fa0cec6 |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62617 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
e9a7286087a87cc1c5fe03453ca087f7b1a30271 |
20-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Use "SINT_TO_FP" instead of "UINT_TO_FP" when getting the exponent. This was causing the limited precision stuff to produce the wrong result for values in the range [0, 1). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8e76c3406e5f8fa7f04316386627c7660c449a3a |
20-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Use "SINT_TO_FP" instead of "UINT_TO_FP" when getting the exponent. This was causing the limited precision stuff to produce the wrong result for values in the range [0, 1). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2be5893a0417313813739940b0347755234d2cc3 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix struct member's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62610 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5c64389e78bafc0f3cd2b2e1163f87a29d223565 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix struct member's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62610 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6906ba52f050a6608502987e754a622f5c5111a6 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Need only one set of debug info versions enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62602 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b49710a37d1ac49ede305158ac5e1a2b094d8218 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Need only one set of debug info versions enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62602 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1 |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
f97496a054876b3bb9c0acf424379eb2f48377ce |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
9ec50ab3f88f512739b383a13c739f77567c9dbe |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix global variable's address in a DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62596 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2072db8bcaacab45e3b8661b498d2e4d07640add |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix global variable's address in a DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62596 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
eab4a2e8ac909b0ca420380634403616566d63fa |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Enable debug info for enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62594 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
3798f49090a9413c112e3e67586effc8e8193443 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Enable debug info for enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62594 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ce31b027e7891da951f1036465e8d82dd0bd3297 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Enable debug info for composite types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
08f0de37af9e3d85aced21234ebb637cdb20e818 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Enable debug info for composite types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e08eb9ca1dc832e0c8b460459fe218622f231898 |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62573 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
93a24157388db3a4e270025f1444a36bcaee39d4 |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62573 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
6c53334b905eaf91469134c8e5506c643276c607 |
20-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Shift types need to match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
583c9c4552e7b0fc01c4d39d4196275a1aedf28c |
20-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Shift types need to match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f5add58549fe8ecd9a15cbb7c230282bd693516b |
20-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a dagcombine to not generate loads of non-round integer types, as its comment says, even in the case where it will be generating extending loads. This fixes PR3216. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62557 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
50187c2d138fe3f002e0a8c8f6c7c92939684ff5 |
20-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a dagcombine to not generate loads of non-round integer types, as its comment says, even in the case where it will be generating extending loads. This fixes PR3216. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62557 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c2997f4a34eb544ca6ec85a5c9190feb998fc7a8 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not use DenseMap because the iterator is invalidated while constructing types. After all there was a reason why std::map was used initially! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62555 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
56b1d1384e645593e99bfe15ef08b802f5bf2b00 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not use DenseMap because the iterator is invalidated while constructing types. After all there was a reason why std::map was used initially! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62555 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d0deec20f6a77b3b22af9f91dd3e30314c5264bc |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make linear scan's trivial coalescer slightly more aggressive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62547 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
db4b26032c577eb5be8c0d5a587f147e046b2189 |
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make linear scan's trivial coalescer slightly more aggressive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62547 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
b79b5359fbe44bc82bedff2c081ed1db787f8d49 |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Verify debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62545 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
208098ba9cdd450ea53c98a66e174ffaa210fd2e |
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Verify debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62545 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
c53361294957b63a9c1e405256c6f0a81db1685c |
19-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Remove SDNode's virtual destructor. This makes it impossible for SDNode subclasses to keep state that requires non-trivial destructors, however it was already effectively impossible, since the destructor isn't actually ever called. There currently aren't any SDNode subclasses affected by this, and in general it's desireable to keep SDNode objects light-weight. This eliminates the last virtual member function in the SDNode class, so it eliminates the need for a vtable pointer, making SDNode smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62539 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
98a355c16d7083f4da20096d0cb5a72ec93b75c0 |
19-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Remove SDNode's virtual destructor. This makes it impossible for SDNode subclasses to keep state that requires non-trivial destructors, however it was already effectively impossible, since the destructor isn't actually ever called. There currently aren't any SDNode subclasses affected by this, and in general it's desireable to keep SDNode objects light-weight. This eliminates the last virtual member function in the SDNode class, so it eliminates the need for a vtable pointer, making SDNode smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62539 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dbe664adcddd8610952968d86791478c874cf1cd |
19-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix SelectionDAG::ReplaceAllUsesWith to behave correctly when uses are added to the From node while it is processing From's use list, because of automatic local CSE. The fix is to avoid visiting any new uses. Fix a few places in the DAGCombiner that assumed that after a RAUW call, the From node has no users and may be deleted. This fixes PR3018. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
86bf13990559866858a9f806c2ab20dd14851bc0 |
19-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix SelectionDAG::ReplaceAllUsesWith to behave correctly when uses are added to the From node while it is processing From's use list, because of automatic local CSE. The fix is to avoid visiting any new uses. Fix a few places in the DAGCombiner that assumed that after a RAUW call, the From node has no users and may be deleted. This fixes PR3018. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
15c94d08ab2be2e3d00de4edbfc7adde6545a7db |
18-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Few targets like PIC16 wants libcall generation for illegal type i16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
5ad046568e2dd0b8079c871577950810a9d62d0a |
18-Jan-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Few targets like PIC16 wants libcall generation for illegal type i16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
e3bc6ae92a17c28824fb4b6cf606d8ab07cae974 |
18-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Simplify extract element based on comments from Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
017cf18077032a7754942cdfc9530533e502c6df |
18-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Simplify extract element based on comments from Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2d1768ca523dca409bab70ce29955875f58dddb8 |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62423 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
245446cbbce0ae340c9f562fab60c1ff5979584b |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62423 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5aac3d3707adef14df2a59a80f622c2896927d2b |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Refactor code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b28de84fcc7c6ebed91f35ac035d4bd4d7c77a93 |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Refactor code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7ab24506746a25959b67caffa4b18d5fb62a60d2 |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Assign argument type to appropriate DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62412 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d40a7e5afb414c1892c4b8cccd79702c84e19946 |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Assign argument type to appropriate DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62412 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7e55b3a6638682a62f95bbcbf4ac94b8120b2988 |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5302e67b2739b0cd1d171d445723fbfab982f44e |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62410 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2d91d18ba1c815c18ba7bd4ed9e3045eb40d0f76 |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Disable composite type debug info for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
79faa60cf1b5a7f30c885c35343a9d5b7ee5ff72 |
17-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Disable composite type debug info for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62406 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7ac9cdfc991db344a1e0f642aefc6db6b868b9b0 |
17-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Simplify extract element of a scalar to vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3512a535f7c8bb494ecdc491eebd8d8893264fac |
17-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Simplify extract element of a scalar to vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f7119393a97c2a10757084b6bc186380f8c19a73 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Instead of adding dependence edges between terminator instructions and every other instruction in their blocks to keep the terminator instructions at the end, teach the post-RA scheduler how to operate on ranges of instructions, and exclude terminators from the range of instructions that get scheduled. Also, exclude mid-block labels, such as EH_LABEL instructions, and schedule code before them separately from code after them. This fixes problems with the post-RA scheduler moving code past EH_LABELs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62366 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
14bb992f8671302f8fad58ee842aa54e0b31edc1 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Instead of adding dependence edges between terminator instructions and every other instruction in their blocks to keep the terminator instructions at the end, teach the post-RA scheduler how to operate on ranges of instructions, and exclude terminators from the range of instructions that get scheduled. Also, exclude mid-block labels, such as EH_LABEL instructions, and schedule code before them separately from code after them. This fixes problems with the post-RA scheduler moving code past EH_LABELs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62366 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
49bb50e0b65d4646a1d44eec3196c003c13caa96 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
If an anti-dependence uses a non-allocatable register, set AntiDepReg to 0, to ensure that the subsequent code doesn't try to break the dependence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62365 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
f377ee9d969378a2262156b37a2dcb6d200430b2 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
If an anti-dependence uses a non-allocatable register, set AntiDepReg to 0, to ensure that the subsequent code doesn't try to break the dependence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62365 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
b6a6164832572b2daeba604d6378ad49128d212f |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use the getNode() accessor instead of accessing the Node member directly, which is private as of r55504. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e19c60d0bb1823552e917dfe61e7f4eb90ac4ced |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use the getNode() accessor instead of accessing the Node member directly, which is private as of r55504. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8554449e311e50f2e96db1081a17ccf7151ef7f6 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix the check for an empty basic block to check for an empty SUnits array instead, since this is what the scheduler actually cares about. And remove a check that is unnecessary, since it can assume that SUnits isn't empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62362 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
335308263d7be8f5286b285161b1d38892ae0175 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix the check for an empty basic block to check for an empty SUnits array instead, since this is what the scheduler actually cares about. And remove a check that is unnecessary, since it can assume that SUnits isn't empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62362 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
df874eed5695420c71bf55cc6a11725631ec2b88 |
16-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
new nodes should be added to the worklist, not old nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e755e2ae6119343c79c84f3ceb1315ae13e57ca0 |
16-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
new nodes should be added to the worklist, not old nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
07354e532b0df9b2a6ec6fd7321614d7132437ee |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
9b82945fd1cc03480cd0c976ef13144100cf5a3b |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62358 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e57187cbe321a286f6a7f409a7badd1ae4e4642c |
16-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
CreateVirtualRegisters does trivial copy coalescing. If a node def is used by a single CopyToReg, it reuses the virtual register assigned to the CopyToReg. This won't work for SDNode that is a clone or is itself cloned. Disable this optimization for those nodes or it can end up with non-SSA machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
0a3c912d53f7aa0ab60608a886685ca2ab0d8de7 |
16-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
CreateVirtualRegisters does trivial copy coalescing. If a node def is used by a single CopyToReg, it reuses the virtual register assigned to the CopyToReg. This won't work for SDNode that is a clone or is itself cloned. Disable this optimization for those nodes or it can end up with non-SSA machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
99ec3538b8ab8f599610d72e9c472de516d975e5 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use lightweight DebugInfo objects directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62341 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7c8a2776a7886662c6489d6c1b2c736905cc9282 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use lightweight DebugInfo objects directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62341 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7103c6a993af878ebd9767e344a33919dc2c4342 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Align source code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62328 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
49a3bd96ee6d2222b84cfbacb515c7805fddcbe3 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Align source code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62328 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
79ce4cea4701259c1aa70d59d3544ed00e9ab7f0 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a "comparison between signed and unsigned integer expressions" warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62327 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a67cb7190291c2afe115e0efbb53558543c31316 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a "comparison between signed and unsigned integer expressions" warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62327 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
2388a588bdf32610e18a66c0c6ef248087fd1cdc |
16-Jan-2009 |
Mikhail Glushenkov <foldr@codedgers.com> |
Registry.h should not depend on CommandLine.h. Split Support/Registry.h into two files so that we have less to recompile every time CommandLine.h is changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62312 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
camlGC.cpp
electionDAG/SelectionDAGBuild.cpp
hadowStackGC.cpp
|
61fc6c80cf9d50c19fe46decedc592251918d78d |
16-Jan-2009 |
Mikhail Glushenkov <foldr@codedgers.com> |
Registry.h should not depend on CommandLine.h. Split Support/Registry.h into two files so that we have less to recompile every time CommandLine.h is changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62312 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
camlGC.cpp
electionDAG/SelectionDAGBuild.cpp
hadowStackGC.cpp
|
5c1799b29375fcd899f67a31fb4dda4ef3e2127f |
16-Jan-2009 |
Mikhail Glushenkov <foldr@codedgers.com> |
Delete trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62307 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
camlGC.cpp
electionDAG/SelectionDAGBuild.cpp
hadowStackGC.cpp
|
26e9aed70cc520d39e32813513217163ff254e72 |
16-Jan-2009 |
Mikhail Glushenkov <foldr@codedgers.com> |
Delete trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62307 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
camlGC.cpp
electionDAG/SelectionDAGBuild.cpp
hadowStackGC.cpp
|
5be935536f490003ecc8f93525063a859c7caf63 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Validate debug info values only if DwarfDebug is initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
943af62b037eb32943a3fe166e680d5623dd0a23 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Validate debug info values only if DwarfDebug is initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
61c6bf37ef7d6066d12efa40639d67e7caf14b2d |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Any debug info symbol is only valid if atleast one compile unit is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
4d92dded2f5b2820ff44b947fd74483bc85abe5a |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Any debug info symbol is only valid if atleast one compile unit is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62294 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2836c283bb1c14baa50994f60769d665da608ad7 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Initial hazard recognizer support in post-pass scheduling. This includes a new toy hazard recognizier heuristic which attempts to direct the scheduler to avoid clumping large groups of loads or stores too densely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62291 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGList.cpp
|
99603bb2e0d81b55ef3f4d219a3fecc067ced3b2 |
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Initial hazard recognizer support in post-pass scheduling. This includes a new toy hazard recognizier heuristic which attempts to direct the scheduler to avoid clumping large groups of loads or stores too densely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62291 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
electionDAG/ScheduleDAGList.cpp
|
153745cc1f82fdfc66b5e68c9146d3339cbebf73 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not stumble over forward declared struct member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62288 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
cf7acb10bcb056c56da28e70879eb8444e2d949f |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not stumble over forward declared struct member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62288 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
cf3a4487c0627d15d03fb6fedc10b58f6e2c9ebe |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Validate dbg_* intrinsics before lowering them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62286 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
2da0cc4c377b09f2d52689a5095f0960750e30c4 |
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Validate dbg_* intrinsics before lowering them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62286 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
|
fa9c5eac33bef67e2faef166c902e3bb16efa30f |
15-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Added missing support to widen an operand from a bit convert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62285 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
639095bd76b07891ca0177d6e925ce7be3178382 |
15-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
Added missing support to widen an operand from a bit convert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62285 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
fc54c552963545a81e4ea38e60460590afb2d5ae |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Generalize the HazardRecognizer interface so that it can be used to support MachineInstr-based scheduling in addition to SDNode-based scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62284 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/SelectionDAGISel.cpp
|
dd6547db865163f5292361d2b8bfdb0217b25f33 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Generalize the HazardRecognizer interface so that it can be used to support MachineInstr-based scheduling in addition to SDNode-based scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62284 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/SelectionDAGISel.cpp
|
c475c3608a5f0fc0c6bd43da04ae786649690070 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Simplify the MachineLICM pass by having it only traverse outer loops, hoisting instructions all the way out in one step rather than hoisting them one nest level at a time. Also, make a few other code simplifications. This speeds up MachineLICM by several fold. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62283 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
82ef29edc0a15f6e5afb36be7269de523e0dc965 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Simplify the MachineLICM pass by having it only traverse outer loops, hoisting instructions all the way out in one step rather than hoisting them one nest level at a time. Also, make a few other code simplifications. This speeds up MachineLICM by several fold. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62283 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
bb46f52027416598a662dc1c58f48d9d56b1a65b |
15-Jan-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add the private linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62279 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LFWriter.cpp
achOWriter.cpp
electionDAG/SelectionDAGBuild.cpp
|
a168fc98dedfc8cac01c34f84b699fe5f48ad76d |
15-Jan-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add the private linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62279 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
LFWriter.cpp
achOWriter.cpp
electionDAG/SelectionDAGBuild.cpp
|
f193ff05909c2de373032f773e76804474b1ef4e |
15-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use lightweight DebugInfo objects directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62276 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ef4bf3b063ea20732c4647c6f2d5d77caf907578 |
15-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use lightweight DebugInfo objects directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62276 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
79ce276083ced01256a0eb7d80731e4948ca6e87 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62275 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
96eb47aa1be2f07003241a148e7b7db87bfa9104 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62275 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
0e5200f3fd4c884e41f003cd57e75f6aca625cbd |
15-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use variable's context to identify respective DbgScope. Use light weight DebugInfo object directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62269 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2560d923c0b48c202d430f8bc6b094f2952894d2 |
15-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use variable's context to identify respective DbgScope. Use light weight DebugInfo object directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62269 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
65b7f27bb7a628e02df7a863227deda6bc326f44 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make getWidenVectorType const; this file was missed in the previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
612f9d52905f1a3e3250c132fcc51447d93763b1 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Make getWidenVectorType const; this file was missed in the previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e9530ecae4897fe8157bd4d7616043bd8c0484e2 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
More consts on TargetLowering references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
a0c429eecdba4926d61591f84e73c8d473715e3a |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
More consts on TargetLowering references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
0d137d7f35fba98f668098b3badf644efacf0e08 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use const with TargetLowering references in a few more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
|
0275b138ada11dd70e02f6fc56829304ab7a0559 |
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use const with TargetLowering references in a few more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
|
b67e6b3b65f88d63cf483f47057beac5b8f55edf |
15-Jan-2009 |
Gabor Greif <ggreif@gmail.com> |
minor refactoring: use a more specific API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4c99d82f4a25697e025772d728275e7e9100eb5e |
15-Jan-2009 |
Gabor Greif <ggreif@gmail.com> |
minor refactoring: use a more specific API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4548d973998ceb254a6f69836d64210449dfaec7 |
14-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not construct debug scope if RootScope *is* null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62209 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d8423f651381e16b77897ba417222819b883bc6a |
14-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Do not construct debug scope if RootScope *is* null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62209 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
bbdc8207d587026212e176026d3e37ae043a6661 |
14-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Removoe MachineModuleInfo methods (and related DebugInfoDesc class hierarchy) that were used to handle debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62199 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
42f6bed060d1c8b242acf605cf1ecd8ce05f04a3 |
14-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Removoe MachineModuleInfo methods (and related DebugInfoDesc class hierarchy) that were used to handle debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62199 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
e2051627b81c713fd29f61ce6d4424d0388cc37d |
14-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Keep "has debug info" big in MachineModuleInfo to avoid circular dependency between AsmPrinter and CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62191 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
|
86cfa40b308ff5bf55d77fa946f7294572d7ccaf |
14-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Keep "has debug info" big in MachineModuleInfo to avoid circular dependency between AsmPrinter and CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62191 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
|
35fe7344aedec52c3fa048237e8554f97dff9182 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Undo previous checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/SelectionDAG.cpp
|
fb3a488e60c23d05db946b900e2184332e9d62bb |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Undo previous checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62190 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/SelectionDAG.cpp
|
c48c550e1322aebfbe35c7570891619db43bdb9b |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use DwarfWriter to record dbg variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62185 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
fe359e7dc51edffc6045beb6a8d4cefd2d4daae1 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use DwarfWriter to record dbg variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62185 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
bb8c5959c83504fbc438e6efade30fa4b70a25b6 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use dwarf writer to decide whether the module has debug info or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62184 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/SelectionDAG.cpp
|
70190877b7aff395f931cc568f376a07d0ba416e |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use dwarf writer to decide whether the module has debug info or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62184 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
electionDAG/SelectionDAG.cpp
|
fd246e5f8401df3ef61bf27fec601b4b62905062 |
13-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use assertions to check for conditions that should never happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62178 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0aa606a18842cf2a893d71b8d325444d6d84e2a5 |
13-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use assertions to check for conditions that should never happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62178 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
bc0b56732a2d1dc22767e0f3930f22a76d99470a |
13-Jan-2009 |
Dan Gohman <gohman@apple.com> |
The list-td and list-tdrr schedulers don't yet support physreg scheduling dependencies. Add assertion checks to help catch this. It appears the Mips target defaults to list-td, and it has a regression test that uses a physreg dependence. Such code was liable to be miscompiled, and now evokes an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
0f0e2c84f9e1202d5a9fad1cc18f75d3fd661003 |
13-Jan-2009 |
Dan Gohman <gohman@apple.com> |
The list-td and list-tdrr schedulers don't yet support physreg scheduling dependencies. Add assertion checks to help catch this. It appears the Mips target defaults to list-td, and it has a regression test that uses a physreg dependence. Such code was liable to be miscompiled, and now evokes an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
a1f50e2c2cad12dd8fe7ef80e394ee7a96654021 |
13-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Avoid referring to edge D after the Succs or Preds arrays have been modified, to avoid trouble in the (unlikely) scenario that D is a reference to an element in one of those arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62173 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
b1bfe4e108453151c8b8dc01515eb3095385e054 |
13-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Avoid referring to edge D after the Succs or Preds arrays have been modified, to avoid trouble in the (unlikely) scenario that D is a reference to an element in one of those arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62173 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
2ecf88d1751c847b87a7119bf34fff85a3d272e2 |
13-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
When replacing uses and the same node is reached via two paths, process it once not twice, d'oh! Analysis, testcase and original patch thanks to Mon Ping Wang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
d1ec1991d8521b8a8c62dfb4b12023f088204b2f |
13-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
When replacing uses and the same node is reached via two paths, process it once not twice, d'oh! Analysis, testcase and original patch thanks to Mon Ping Wang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
1bec3dd28a47b7e27e6f30de22a307521ce45b28 |
13-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix some typos. Also, the WidenedVectors map was not being cleaned by ExpungeNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
4161b96979bc909062216488a194980c8d229806 |
13-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix some typos. Also, the WidenedVectors map was not being cleaned by ExpungeNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
042fb3199f480cd8096d9c51ba1aceecd9af6f0e |
13-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Correct a comment - this is not a sign extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
f54ff27d4aa92d5dde327b0ba524a4a4ec2ae00c |
13-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Correct a comment - this is not a sign extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
167650d41136ed738e364517be8a1412c4955423 |
13-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Un-tabify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62151 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
7ac1a5bf0607439bbfe9a597e32b7174f906e873 |
13-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Un-tabify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62151 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1d8a76d7d51d75508159b9bb312fc51e908cb676 |
13-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
FIX llvm-gcc bootstrap on x86_64 linux. If a virtual register is copied to a physical register, it's not necessarily defined by a copy. We have to watch out it doesn't clobber any sub-register that might be live during its live interval. If the live interval crosses a basic block, then it's not safe to check with the less conservative check (by scanning uses and defs) because it's possible a sub-register might be live out of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62144 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5e9d45a8ca37b84d7980c56925c0582c05982c51 |
13-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
FIX llvm-gcc bootstrap on x86_64 linux. If a virtual register is copied to a physical register, it's not necessarily defined by a copy. We have to watch out it doesn't clobber any sub-register that might be live during its live interval. If the live interval crosses a basic block, then it's not safe to check with the less conservative check (by scanning uses and defs) because it's possible a sub-register might be live out of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62144 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
83489bb7700c69b7a4a8da59365c42d3f5c8129b |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use DebugInfo interface to lower dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62127 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
fcf1c75c71c5246afd5dd3f6fcddf259233d8b22 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use DebugInfo interface to lower dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62127 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
7bb89ed33c590717b509e700180baa9fdbbd0a93 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Start using DebugInfo API to emit debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62125 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6ccd57e4a1793a91a32362fb55c3fa72f54e20c7 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Start using DebugInfo API to emit debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62125 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
3f7833a27364f112d7d54fd3b98517cd82433415 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Emit debug info, only if at least one compile unit is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62118 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
91d27b09b7ed922f52d79ed69513debc258cd7ea |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Emit debug info, only if at least one compile unit is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62118 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
72b663575f670050f329b78ac0de34476fbae66f |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
If multiple compile units are seen then emit them independently. In other words, do not force all DIEs into first, whatever it is, compile unit. Note, multiple compile unit support is not well tested (it did not work correctly until now anyway.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6eae283d4962b1c38d3c6fa0100c0d605f6f4100 |
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
If multiple compile units are seen then emit them independently. In other words, do not force all DIEs into first, whatever it is, compile unit. Note, multiple compile unit support is not well tested (it did not work correctly until now anyway.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62116 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f6bac3e4bd9502266dab49eef26266a092e8c85b |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Avoid cast<>, use light weith wrapper directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62115 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
57ec9acc70150b4e8f652179287fc51077c3691d |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Avoid cast<>, use light weith wrapper directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62115 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f3ee51441909cf1accfcce4c9b5b9f851e2c07b6 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use SrcLineInfo from DwarfWriter. The MachineModuleInfo copy will disappear soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62114 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
35a078f525bc41276f479a0c0014e0a30b690569 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use SrcLineInfo from DwarfWriter. The MachineModuleInfo copy will disappear soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62114 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ceb4d1aecb9deffe59b3dcdc9a783ffde8477be9 |
12-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getABITypeSize to getTypePaddedSize, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62099 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOWriter.cpp
achOWriter.h
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
d68f13bf716faa496767a21140fab558adddc19a |
12-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getABITypeSize to getTypePaddedSize, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62099 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
LFWriter.cpp
achOWriter.cpp
achOWriter.h
achineFunction.cpp
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
ccca7fe6a30ec536de3823c0867806c1f86b2212 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add DwarfWriter interface to mainipulate source location info. ( May be this info should be directly handled by the dwarf writer ? ) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
cb59fd4ca7f3e796a6186fb7585c67234254bc67 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add DwarfWriter interface to mainipulate source location info. ( May be this info should be directly handled by the dwarf writer ? ) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62096 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
481ff5be9d88c057874d087244a6352af2597867 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Clear debug info at the end of function processing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62092 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a416295a223c1b4d84646fec2751da32a4bf6428 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Clear debug info at the end of function processing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62092 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e9bfb0feca1720d2f97911805fdb8582c8941ae2 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
There is no need to maintain separate labelid list in the dwarf writer. It is not a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62090 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b92249232c7e9033efbb3cef5c122f57c61d5751 |
12-Jan-2009 |
Devang Patel <dpatel@apple.com> |
There is no need to maintain separate labelid list in the dwarf writer. It is not a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62090 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c29a56dedbe4297dad94b9bf2e19035c5903fd1f |
12-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3241: Currently EmitCopyFromReg emits a copy from the physical register to a virtual register unless it requires an expensive cross class copy. That means we are only treating "expensive to copy" register dependency as physical register dependency. Also future proof the scheduler to handle "normal" physical register dependencies. The code is not exercised yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62074 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
e2321b01a24bdfea92d682834529ae6c9bb36b13 |
12-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3241: Currently EmitCopyFromReg emits a copy from the physical register to a virtual register unless it requires an expensive cross class copy. That means we are only treating "expensive to copy" register dependency as physical register dependency. Also future proof the scheduler to handle "normal" physical register dependencies. The code is not exercised yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62074 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
e1762c9826eb0033517b050793dbe05708079e1c |
12-Jan-2009 |
Owen Anderson <resistor@mac.com> |
More two-address fixes. This gets lua working with join-creation enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62073 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
41849af8d52654f9e66bf739fa13510d5355bed6 |
12-Jan-2009 |
Owen Anderson <resistor@mac.com> |
More two-address fixes. This gets lua working with join-creation enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62073 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
9aacec1f26cd9ee328c461624ffcbde3aa2f6ab1 |
11-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
CheckForPhysRegDependency should not return copy cost. It's not used. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
ef59ca0839362d4f6135366910502b41fe2c2ed9 |
11-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
CheckForPhysRegDependency should not return copy cost. It's not used. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
9795da5aa84ffcfa37cfa5b711dcc216e96d9194 |
10-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Reduce initial small vector sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62023 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
63c22f404d7bfa72bd33547997139dff93e42fe6 |
10-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Reduce initial small vector sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62023 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
0dc969e1ab03925bfc5e5f4d9dda0dc5f93cfa1a |
10-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix thinko. Create parent scope if parent descriptor is *not* null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62022 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
dd49fbbc311d13edacba6593f16cc3254e01c45c |
10-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Fix thinko. Create parent scope if parent descriptor is *not* null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62022 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5c3c5a4d9c21e73f7a0e11d77a85997c9f34f2ba |
09-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Duplicated node may produce a non-physical register def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
6aa342d88f9748e85731ea7c10a5ca13c624b3ba |
09-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Duplicated node may produce a non-physical register def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
84036a77a36a934514e51c99f83e6c3632bf98f5 |
09-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Minor debug output tweak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
51132e266517cd5b3148f9a69f8b2f151aaeb54d |
09-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Minor debug output tweak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6e7a1617ac4a34792d9097b8d3644b72f57a45f7 |
09-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Request DwarfWriter. This will be used to handle dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61999 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
10e63334f4a4a2bb420dc6aad7d4a0b7a5a70dec |
09-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Request DwarfWriter. This will be used to handle dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61999 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
9b8f542e2746b28721b3ec603c3aaaa10ea708fc |
09-Jan-2009 |
Misha Brukman <brukman+llvm@gmail.com> |
Removed trailing whitespace from Makefiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
electionDAG/Makefile
|
e025bcca322301af5c4a5178b1a64080cb900ec1 |
09-Jan-2009 |
Misha Brukman <brukman+llvm@gmail.com> |
Removed trailing whitespace from Makefiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61991 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/Makefile
akefile
electionDAG/Makefile
|
eb3fc289141ad44883acbb91e839ab1b9a0f2025 |
09-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Convert DwarfWriter into a pass. Now Users request DwarfWriter through getAnalysisUsage() instead of creating an instance of DwarfWriter object directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61955 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
aa1e84356d47c78a270b0ebceb434a401e59a5b5 |
09-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Convert DwarfWriter into a pass. Now Users request DwarfWriter through getAnalysisUsage() instead of creating an instance of DwarfWriter object directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61955 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5d5ee80ea8bf300d1ee8ccbd7174466d98a1e99e |
08-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Delete unnecessary parens around return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61950 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
d2826ae8c01b25967a1d9ef0c6486720c45f7bc7 |
08-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Delete unnecessary parens around return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61950 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
9f8fcfc0184cdf7154f6e57b0b7edca9abca7eca |
08-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add DebugInfo based APIs to record source line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61928 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7dd15a9a913053c217b0673388616d2ea0265a9b |
08-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add DebugInfo based APIs to record source line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61928 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ce07e99dd6fafc51805c21d53286ae5765d1cffc |
08-Jan-2009 |
Misha Brukman <brukman+llvm@gmail.com> |
* Moved author attribution to CREDITS.TXT * Removed trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61927 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
db5ae3a5ce0957585387af82c8f168f474e87293 |
08-Jan-2009 |
Misha Brukman <brukman+llvm@gmail.com> |
* Moved author attribution to CREDITS.TXT * Removed trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61927 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
2a835f947a114142071456d7586118a0949499a0 |
08-Jan-2009 |
Misha Brukman <brukman+llvm@gmail.com> |
* Alphabetized #includes * Removed trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61926 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
6d37468edd2531ff9294e9566cfb9d0c35ad23f0 |
08-Jan-2009 |
Misha Brukman <brukman+llvm@gmail.com> |
* Alphabetized #includes * Removed trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61926 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
2ec78c4a63c47e24c0e7e280b65368af931e8ad5 |
08-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add APIs to record regions and variables. Again, shamelessly copied from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61912 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
100ca32730f4e25dbd8ea989a660f7dbda0c06ee |
08-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add APIs to record regions and variables. Again, shamelessly copied from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61912 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7a6e5a35317018be8b0c8b46cf7b85b79b8f7102 |
08-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add APIs to manage scope using DebugInfo interface. This is a shameless copy of similar APIs from MachineModuleInfo. The copy from MMI will be deleted in near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61908 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
4d1709e8c65aaaa96eb30db18a6cf27caedadd73 |
08-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add APIs to manage scope using DebugInfo interface. This is a shameless copy of similar APIs from MachineModuleInfo. The copy from MMI will be deleted in near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61908 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
25fd4037a7f698877eedb69bf32d8591344e86ee |
07-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Remove redundant 'else's. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61891 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
81f6f05b29b24862734608cc25e180de0804726a |
07-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Remove redundant 'else's. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61891 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8f90b6eb2fd0125f5b779de80954944f9071fb87 |
07-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
The coalescer does not coalesce a virtual register to a physical register if any of the physical register's sub-register live intervals overlaps with the virtual register. This is overly conservative. It prevents a extract_subreg from being coalesced away: v1024 = EDI // not killed = = EDI One possible solution is for the coalescer to examine the sub-register live intervals in the same manner as the physical register. Another possibility is to examine defs and uses (when needed) of sub-registers. Both solutions are too expensive. For now, look for "short virtual intervals" and scan instructions to look for conflict instead. This is a small win on x86-64. e.g. It shaves 403.gcc by ~80 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61847 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
7a9b79c473e6580f7472f00450b8982ae500465e |
07-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
The coalescer does not coalesce a virtual register to a physical register if any of the physical register's sub-register live intervals overlaps with the virtual register. This is overly conservative. It prevents a extract_subreg from being coalesced away: v1024 = EDI // not killed = = EDI One possible solution is for the coalescer to examine the sub-register live intervals in the same manner as the physical register. Another possibility is to examine defs and uses (when needed) of sub-registers. Both solutions are too expensive. For now, look for "short virtual intervals" and scan instructions to look for conflict instead. This is a small win on x86-64. e.g. It shaves 403.gcc by ~80 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61847 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
2c91d102ec29bc766b7172a3062d399dc12640fe |
06-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug in ComputeLinearIndex computation handling multi-level aggregate types. Don't increment the current index after reaching the end of a struct, as it will already be pointing at one-past-the end. This fixes PR3288. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
fe3972ffb4a002d6b8ee79fb2a847ff41ec7127b |
06-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug in ComputeLinearIndex computation handling multi-level aggregate types. Don't increment the current index after reaching the end of a struct, as it will already be pointing at one-past-the end. This fixes PR3288. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
5d315989542ffe720d9a835010bd7be957e6a830 |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Set up DwarfDebug using DebugInfo API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
9304b385967eaa8ba09ac9d59a0cdd17f4483d43 |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Set up DwarfDebug using DebugInfo API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5fe1fac1ddcdc7cfd3f22550527afffce704b443 |
06-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot that this was needed for Linux. This should fix the builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61819 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
dd9127da4af6f9e068c264ea886b3baf514392b2 |
06-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Forgot that this was needed for Linux. This should fix the builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61819 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
200ee7f52150cea29215379eb508dc199052372a |
06-Jan-2009 |
Owen Anderson <resistor@mac.com> |
The phi construction algorithm used for interval reconstruction is complicated by two address instructions. We need to keep track of things we've processed AS USES independetly of whether we've processed them as defs. This fixes all known miscompilations when reconstruction is turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61802 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
952fc0439a6bcfb0d62269268941ea7bd3d71be7 |
06-Jan-2009 |
Owen Anderson <resistor@mac.com> |
The phi construction algorithm used for interval reconstruction is complicated by two address instructions. We need to keep track of things we've processed AS USES independetly of whether we've processed them as defs. This fixes all known miscompilations when reconstruction is turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61802 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
ce0d4b7a77da716f234d42edd0472e97b3ba5f57 |
06-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Update these argument lists for the isNormalMemory argument. This doesn't affect current functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
485cc19e301e62100bf55fc142530a4bfe12955b |
06-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Update these argument lists for the isNormalMemory argument. This doesn't affect current functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
fd2163bcf77df6b3e58868483c089bd3869b01d6 |
06-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use a latency value of 0 for the artificial edges inserted by AddPseudoTwoAddrDeps. This lets the scheduling infrastructure avoid recalculating node heights. In very large testcases this was a major bottleneck. Thanks to Roman Levenstein for finding this! As a side effect, fold-pcmpeqd-0.ll is now scheduled better and it no longer requires spilling on x86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d6f5787fe37439fca6120ae2b6a39e183402052c |
06-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Use a latency value of 0 for the artificial edges inserted by AddPseudoTwoAddrDeps. This lets the scheduling infrastructure avoid recalculating node heights. In very large testcases this was a major bottleneck. Thanks to Roman Levenstein for finding this! As a side effect, fold-pcmpeqd-0.ll is now scheduled better and it no longer requires spilling on x86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61778 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
78eb6ad6333ba19d8f5ece81f8b3ac57e6747dfc |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct subprogram DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61772 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e6caf011f1697b144b681fa0719d50f6acbe38de |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct subprogram DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61772 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c452324f60561bdc1a3f90b8f7d085beb9487f36 |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct global variable DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
289f236251065219fbc99b0665b8db9430faa7a2 |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct global variable DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d1ca925093b410a60e84cff2ceda7101ba4a1ce7 |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct compile unit dies using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61768 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b3907daf71048e903bfb941df5119f5e66f0e282 |
06-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct compile unit dies using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61768 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d60de5187833d7d818edaab6351244255e1a1007 |
05-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r61415 and r61484. Duncan was correct that these weren't needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61765 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
edc2dbef351a9e55014e92bca487dd73647ccf6b |
05-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r61415 and r61484. Duncan was correct that these weren't needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61765 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a80c859df377908c687d59e9c0fc65006796b719 |
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Don't call setDepthDirty/setHeightDirty when adding an edge with latency 0, since it doesn't affect the depth or height. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61762 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
a44ca330361689e1db7cc0effd7b532e53434d33 |
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Don't call setDepthDirty/setHeightDirty when adding an edge with latency 0, since it doesn't affect the depth or height. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61762 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
8526cc03a51347ab29737d1e5682aa6a7d095b9b |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Extract source location info from DebugInfo. Add methods to add source location info in a DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61761 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
5f244e30f2c0e468ab91b12ad6a7706b1023b0fb |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Extract source location info from DebugInfo. Add methods to add source location info in a DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61761 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
48d190f4d79a578749839b6132a84728c3a060c5 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add type DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61757 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
4a4cbe74b60cfe7e88a24dc64ee27a41e2dd740a |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Add type DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61757 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f42153366176779c79b4351c467712041a8af5f9 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct composite type DIE using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61741 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
30c0137caf449dbe78a539c4cb204713bbceef01 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct composite type DIE using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61741 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
11df7e5157352d082bcb556907c3c8239228ae7f |
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
TargetLowering.h #includes SelectionDAGNodes.h, so it doesn't need its own OpActionsCapacity magic number; it can just use ISD::BUILTIN_OP_END, as long as it takes care to round up when needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
64554a9d6bf88198d98135cd59081877fef2b729 |
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
TargetLowering.h #includes SelectionDAGNodes.h, so it doesn't need its own OpActionsCapacity magic number; it can just use ISD::BUILTIN_OP_END, as long as it takes care to round up when needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e520273172b530dbf3beca445d3a7577262b9361 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
s/ConstructType/ConstructTypeDIE/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61731 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
46d1375df4a44ff23f20ff583c7c4e3e7c417dec |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
s/ConstructType/ConstructTypeDIE/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61731 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
86ae142c51fc29ab870ebf42f6bf8699bca81512 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct stuct field DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61729 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
526b01d8501bcdf8434aa2cde410aeff962f56d1 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct stuct field DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61729 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c69bf2c832386140d6606eef3febf2d3aa7a64f0 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct enumerator DIE using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
a566e818c5d4de47684cd5368ac6cea931d8a4a8 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct enumerator DIE using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61726 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
68afdc3ab08975569e59cc8c04c2db9e9478a996 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct array/vector type DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61724 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6fb54136d719ee9f225cb7f09cb314b35c91c814 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct array/vector type DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61724 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d0ed240e3091607048490f174988976a44b11d30 |
05-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of sentinel insertion in interval reconstruction. It just masked the problem, rather than fixing it. The problem has now been fixed the right way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61723 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
d71a1ff076c762f97942ed9b4e2ed81194d39d29 |
05-Jan-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of sentinel insertion in interval reconstruction. It just masked the problem, rather than fixing it. The problem has now been fixed the right way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61723 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
d68a07650cdb2e18f18f362ba533459aa10e01b6 |
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Tidy up #includes, deleting a bunch of unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLICM.cpp
achineSink.cpp
ostRASchedulerList.cpp
egAllocLinearScan.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.h
woAddressInstructionPass.cpp
irtRegMap.h
|
c24a3f87f866e96b2a9ad691c78113651eaa77d1 |
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Tidy up #includes, deleting a bunch of unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLICM.cpp
achineSink.cpp
ostRASchedulerList.cpp
egAllocLinearScan.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.h
woAddressInstructionPass.cpp
irtRegMap.h
|
08f053f5d1df120dc8389a3ec8947ab16b1ccc53 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct basic and derived type DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
fc187160d216bb1adca9e8f622c7d2ff9301a6f6 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Construct basic and derived type DIEs using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ca03c2705ef6fc2df7c7206e1b5c0e6f69c12c04 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
subsume ConstructPointerType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61711 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
bbca50bc7b115d6de34d231faecffe4126e3c658 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
subsume ConstructPointerType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61711 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
9ede3f2f29a44f7b4a46eb453a7fa61985b99cdb |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
subsume ConstructBasicType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61709 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
f49e13de2d369e2e6822e9465abaead9795a4301 |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
subsume ConstructBasicType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61709 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
8a84e4402a1ab7ff36f52acdf5e1891e283a947e |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
squash warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
impleRegisterCoalescing.cpp
|
f3707e8e88775edca2b09fbcf1c2fe66883ae1ec |
05-Jan-2009 |
Devang Patel <dpatel@apple.com> |
squash warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
impleRegisterCoalescing.cpp
|
02b73ab017d4e63ab7f0b020d355f1dfb58bf652 |
04-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
elf writer really wants the size of the global, not the size of the pointer to the global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61630 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
b1528b26db88617846408997dbdf4ce8972f7c0a |
04-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
elf writer really wants the size of the global, not the size of the pointer to the global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61630 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
64f03003a1cf9fb8f8b068da7fa66a58e86ad390 |
04-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
The llvm::ELFWriter::EmitGlobal() method is calling the llvm::PATypeHolder::get() method when LLVM is self-hosted in Release mode. Before the parser changed, there was a definition of llvm::PAHolder::get() in llvmAsmParser.y. This was probably a bug that no-one noticed. Explicitly #include the Type.h file as a temporary fix for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61620 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
d9eb68dd68d1462dd76c86973161e72787a53c3c |
04-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
The llvm::ELFWriter::EmitGlobal() method is calling the llvm::PATypeHolder::get() method when LLVM is self-hosted in Release mode. Before the parser changed, there was a definition of llvm::PAHolder::get() in llvmAsmParser.y. This was probably a bug that no-one noticed. Explicitly #include the Type.h file as a temporary fix for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61620 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
cc91d63ab7b3ee5c80497acf77f75ad9f76e985c |
03-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a DAGCombiner abort on an invalid shift count constant. This fixes PR3250. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
77d852f90cea554d2baabb73a621f0284b596db4 |
03-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix a DAGCombiner abort on an invalid shift count constant. This fixes PR3250. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1eb9268080498bc7b6d2d5df6fe8c13d6f939de0 |
03-Jan-2009 |
Dan Gohman <gohman@apple.com> |
CommuteNodesToReducePressure() is now removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
32e8e114a7a4f61aa02463298b51aea926d0272b |
03-Jan-2009 |
Dan Gohman <gohman@apple.com> |
CommuteNodesToReducePressure() is now removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
223942a420cf5b9e888524186134cc652be8a921 |
03-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Remove the code from the scheduler that commuted two-address instructions to avoid copies, because TwoAddressInstructionPass also does this optimization. The scheduler's version didn't account for live-out values, which resulted in spurious commutes and missed opportunities. Now, TwoAddressInstructionPass handles all the opportunities, instead of just those that the scheduler missed. The result is usually the same, though there are occasional trivial differences resulting from the avoidance of spurious commutes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
9a57ab02dfb82e186a8b04c6f7d73180d7cfaa7a |
03-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Remove the code from the scheduler that commuted two-address instructions to avoid copies, because TwoAddressInstructionPass also does this optimization. The scheduler's version didn't account for live-out values, which resulted in spurious commutes and missed opportunities. Now, TwoAddressInstructionPass handles all the opportunities, instead of just those that the scheduler missed. The result is usually the same, though there are occasional trivial differences resulting from the avoidance of spurious commutes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
|
b6e223a9e806921183da972253c49082a2e07944 |
01-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Factorize (and generalize) the code promoting SELECT and BRCOND conditions. Reorder a few methods while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
70528df613d3087dc051ffc2e2776c57a8799791 |
01-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Factorize (and generalize) the code promoting SELECT and BRCOND conditions. Reorder a few methods while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
ba6d26275f5d0561b9afdc59ebe1d11567fa4fde |
01-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Remove trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
8c3c3020414fbac3bbf73626f373eba60c157c96 |
01-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Remove trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
5480c0469e5c0323ffb12f1ead2abd169d6cc0e7 |
01-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3274: when promoting the condition of a BRCOND node, promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
4a36127089bb2f78811d3f5a43c76b3d6f24f213 |
01-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3274: when promoting the condition of a BRCOND node, promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
7d211e299f45dfa8eb62ed52a19aff357529ad7b |
31-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Get live interval reconstruction several steps closer to working. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61514 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
30af3ecbdc7cca098543e88de1b499540e322a0e |
31-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Get live interval reconstruction several steps closer to working. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61514 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
998dee96d3ca506cf73a617c0b7fc7f0e467a127 |
29-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Linux wants the FDE initial location and address range to be forced to 32-bit. Darwin doesn't. Make this optional for platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
eeef8b24da1bd1fedef857097f4103057806a035 |
29-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Linux wants the FDE initial location and address range to be forced to 32-bit. Darwin doesn't. Make this optional for platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61484 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
bce452815cffacb7bbccf994ae9d4defeb4af922 |
29-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
The FDE initial location and address range data should be free to be 64-bit (quad) on a 64-bit platform. This fixes a problem with EH frames on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
26efcebd4fa6b1289563422369db19e10f608373 |
29-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
The FDE initial location and address range data should be free to be 64-bit (quad) on a 64-bit platform. This fixes a problem with EH frames on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61483 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2b7fc1ef53f71f06135aa7a996840073d3bc0595 |
29-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Add braces, as suggested by a gcc warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61465 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
b73dec9ca5b6d0aa093918294c597c5d2838a0f8 |
29-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Add braces, as suggested by a gcc warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61465 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
845145f8b5f7feb8617bcfcfd3803ef80b17765d |
29-Dec-2008 |
Scott Michel <scottm@aero.org> |
Teach LeaglizeDAG that i64 mul can be a libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61463 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8121504200287caf76a42be5548afc82b051a7fa |
29-Dec-2008 |
Scott Michel <scottm@aero.org> |
Teach LeaglizeDAG that i64 mul can be a libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61463 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d4f6fe55ebe9d053cab73f5e67cac95e32df887b |
29-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Fix up kill/dead marking in the new live interval reconstruction code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61460 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
ab7defc381e14012a7d6e5983fe6408585bb02c2 |
29-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Fix up kill/dead marking in the new live interval reconstruction code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61460 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
60d4f6ded236d05896d3615396c694a19b750334 |
28-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Add prototype code for recomputing a live interval's ranges and valnos through recursive phi construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61458 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
babcf124a4d3453aaf7263eb2975489de6acdd0f |
28-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Add prototype code for recomputing a live interval's ranges and valnos through recursive phi construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61458 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
722f5f1cfb9a5e59a4c00986d81b04b0c015703d |
24-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Darwin likes for the EH frame to be non-local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61420 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
189bde7860b44b8e161b8c47b63478f667f3c05e |
24-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Darwin likes for the EH frame to be non-local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61420 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
d4121bef3cf3af51b80c2d499085a96aca5982ed |
24-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
GCC doesn't emit DW_EH_PE_sdata4 for the FDE encoding on Darwin. I'm not sure about other platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61415 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6bd1b7965ee376c3f3f56c8fece9005abbc7d057 |
24-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
GCC doesn't emit DW_EH_PE_sdata4 for the FDE encoding on Darwin. I'm not sure about other platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61415 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
7c7bc722ecdeec365074cac4bdb9e2679c02177f |
24-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
Change comments so everybody can understand them, hopefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61405 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d32a96063395c27fc0ef1cbfa8ae987f3e19ac13 |
24-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
Change comments so everybody can understand them, hopefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61405 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f9cbc1f9ac087937641c16b218d10986f5b406ad |
24-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
Add another permutation where we should get rid of a-a. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d546e83ac57d9927aadaf78dc4e879481b2c1c76 |
24-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
Add another permutation where we should get rid of a-a. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
56d245ba8bec6008d7924afbdfd8e10473df54f8 |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Restore debug printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f5b5f6b81611a7b0533ca0934b82e496bf0830b3 |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Restore debug printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e2f95e9b6123204638e140731b5c8c1b36144356 |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Sometimes APInt syntax is really ugly... :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6981ab277ccbefb70952c169b26c966733349312 |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Sometimes APInt syntax is really ugly... :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
1bfe237d69f50be4e0ef8f5afeac320469092abf |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Indent stuff properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
1718d3af89c552d1b57c339c124c881c4504b911 |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Indent stuff properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2321858c8cf5583a77b1318d5275188058ab5504 |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Initial checkin of APInt'ififcation of switch lowering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
7e50c0d934d5496f348808caf3a3daab0218b45b |
23-Dec-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Initial checkin of APInt'ififcation of switch lowering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61395 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
d0935c3f43aaff478ac55526f2614dd8abe23c8d |
23-Dec-2008 |
Devang Patel <dpatel@apple.com> |
Fix typo. Silence unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61391 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
105a08ab44990946c7f31e884e2363fc6cac87b6 |
23-Dec-2008 |
Devang Patel <dpatel@apple.com> |
Fix typo. Silence unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61391 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
2755896fd048d189bedc5e99e776b3eca010dd4e |
23-Dec-2008 |
Devang Patel <dpatel@apple.com> |
Silience unused warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61390 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
egisterScavenging.cpp
|
e71304cd70f167e1b3d985edc4216991b949b3b7 |
23-Dec-2008 |
Devang Patel <dpatel@apple.com> |
Silience unused warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61390 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
egisterScavenging.cpp
|
0b1d4a798d1dd2f39521b6b381cd1c1911c9ab52 |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the atomic opcodes in SelectionDAG. This removes all the _8, _16, _32, and _64 opcodes and replaces each group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode is now used to carry the size information. In tablegen, the size-specific opcodes are replaced by size-independent opcodes that utilize the ability to compose them with predicates. This shrinks the per-opcode tables and makes the code that handles atomics much more concise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61389 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
bebba8d5cc675a8b9d7695c6105cff81b2e73fbd |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the atomic opcodes in SelectionDAG. This removes all the _8, _16, _32, and _64 opcodes and replaces each group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode is now used to carry the size information. In tablegen, the size-specific opcodes are replaced by size-independent opcodes that utilize the ability to compose them with predicates. This shrinks the per-opcode tables and makes the code that handles atomics much more concise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61389 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
c9a5b9e38b442c2ae6b115213a07df3fcd14708d |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rename BuildSchedUnits to BuildSchedGraph, and refactor the code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61376 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
9e7bcd67ef5a160cc4fa3d1f92329d8296c62840 |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rename BuildSchedUnits to BuildSchedGraph, and refactor the code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61376 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
237dee125997dcaf16e391878465162cc680c0fa |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use isTerminator() instead of isBranch()||isReturn() in several places. isTerminator() returns true for a superset of cases, and includes things like FP_REG_KILL, which are nither return or branch but aren't safe to move/remat/etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61373 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
cheduleDAGInstrs.cpp
|
64709cdf06dacfe4a3b8cea870faa6a07032cae1 |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use isTerminator() instead of isBranch()||isReturn() in several places. isTerminator() returns true for a superset of cases, and includes things like FP_REG_KILL, which are nither return or branch but aren't safe to move/remat/etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61373 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineLICM.cpp
cheduleDAGInstrs.cpp
|
e1dfc7da8991270db5094aa736fde273bfab6061 |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Avoid an unnecessary call to allnodes_size(), which is linear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
bdf3e272f9b0df3779e4569e4eb3eae64e921c76 |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Avoid an unnecessary call to allnodes_size(), which is linear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
1578f8486d401a16bdfbe7f27cd4d644920000bf |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61371 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
d138ff4ad5fb5f5de2c42f331a6afb24338a3695 |
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61371 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
58e39b0200f448b796a89e2b7e9b8a5607a1771a |
23-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
One more permutation of subtracting off a base value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fbc2e4b3c7f8487556a5dbb044ac3dbeff31a388 |
23-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
One more permutation of subtracting off a base value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
00d448a341175556ebd86af68219f5b90b7145a3 |
22-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Refactor a bunch of code out of AsmPrinter::EmitGlobalConstant into separate functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61345 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
e78b0c73aef0867341782c6d9f2907da3f8a209d |
22-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Refactor a bunch of code out of AsmPrinter::EmitGlobalConstant into separate functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61345 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8044e9b3af6e62afe89cd60bf76de22ae7138306 |
22-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Optimize setDepthDirty and setHeightDirty a little, as they showed up on a profile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61344 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
5dc982e6b3e6f94a67d8211a0f4c1baba4a5822b |
22-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Optimize setDepthDirty and setHeightDirty a little, as they showed up on a profile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61344 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
e19c6362d21c872abaf2f71ea9a0f859f33ee9b5 |
20-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use SmallVector's pop_back_val. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61277 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
9c6928deafa9221fa4fb8d4e1df3e357050fb991 |
20-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use SmallVector's pop_back_val. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61277 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
f89e6e65770edccd8cc3baf2314b89ba894ffa4f |
20-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use the correct Preds and Succs lists in setHeightDirty() and setDepthDirty(), respectively. This fixes PR3241. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61276 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
406621cce27a487637254c1d44bb1256e496f803 |
20-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use the correct Preds and Succs lists in setHeightDirty() and setDepthDirty(), respectively. This fixes PR3241. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61276 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
6c3643c41b7c00fe503a36b468ac0488d946454e |
19-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use ~0u instead of -1u as the special value, to hopefully avoid warnings on compilers that warn about such things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61263 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
d37f2b8b16e4fa47a5a87145d6ba61b612e8d7b6 |
19-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use ~0u instead of -1u as the special value, to hopefully avoid warnings on compilers that warn about such things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61263 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
5379f412bc6ac6171f3bd73930197bfce88c2faa |
19-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. 172 %ECX<def> = MOV32rr %reg1039<kill> 180 INLINEASM <es:subl $5,$1 sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>, 36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0 188 %EAX<def> = MOV32rr %EAX<kill> 196 %ECX<def> = MOV32rr %ECX<kill> 204 %ECX<def> = MOV32rr %ECX<kill> 212 %EAX<def> = MOV32rr %EAX<kill> 220 %EAX<def> = MOV32rr %EAX 228 %reg1039<def> = MOV32rr %ECX<kill> The early clobber operand ties ECX input to the ECX def. The live interval of ECX is represented as this: %reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47) The right way to represent this is something like %reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47) Of course that won't work since that means overlapping live ranges defined by two val#. The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61259 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
a9823a2a136e02a319f007b0730e15949afb5ad7 |
19-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. 172 %ECX<def> = MOV32rr %reg1039<kill> 180 INLINEASM <es:subl $5,$1 sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>, 36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0 188 %EAX<def> = MOV32rr %EAX<kill> 196 %ECX<def> = MOV32rr %ECX<kill> 204 %ECX<def> = MOV32rr %ECX<kill> 212 %EAX<def> = MOV32rr %EAX<kill> 220 %EAX<def> = MOV32rr %EAX 228 %reg1039<def> = MOV32rr %ECX<kill> The early clobber operand ties ECX input to the ECX def. The live interval of ECX is represented as this: %reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47) The right way to represent this is something like %reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47) Of course that won't work since that means overlapping live ranges defined by two val#. The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61259 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
a33649e98ce6512ed95a5e5f7b72dd28e243a289 |
19-Dec-2008 |
Chris Lattner <sabre@nondot.org> |
Fix some release-assert warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61244 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
df6f56d85fd367c6cb071dab980a19d8f7042fda |
19-Dec-2008 |
Chris Lattner <sabre@nondot.org> |
Fix some release-assert warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61244 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
2f6fea90a54787d873cfc25f33668cb4cc7d6e1e |
19-Dec-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix bug 3202. The EH_frame and .eh symbols are now private, except for darwin9 and earlier. The patch also fixes the definition of PrivateGlobalPrefix on pcc linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61242 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
1a93184e2d9beb24b0b9a7c24d5e7c7b51d8ee10 |
19-Dec-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix bug 3202. The EH_frame and .eh symbols are now private, except for darwin9 and earlier. The patch also fixes the definition of PrivateGlobalPrefix on pcc linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61242 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
|
bebbded574f3be2756ac04746b982bdfb90cb7c4 |
19-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Perform this loop only when the -debug flag is specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61238 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
559ca0b1ba84b7943a7c72b0ef4c00a1a09334a7 |
19-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Perform this loop only when the -debug flag is specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61238 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1385758215bb31ba042a3d42e40d28e521616a0c |
19-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Initialize the ImplicitDefed member, to avoid getting stale data from a previous block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61237 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e51b8ccc6d1d219b8c09eaec2af73a5c0b0438ff |
19-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Initialize the ImplicitDefed member, to avoid getting stale data from a previous block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61237 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
a5b2fee75790e30436b4b40bb2e0a3397d0fc650 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Teach LowerSubregs to preserve kill/dead information when lowering subreg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61220 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
048d94a807626bd7cfe70f959d722a9033500cdf |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Teach LowerSubregs to preserve kill/dead information when lowering subreg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61220 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
98c206921a4b2ee7c6d9f67e88ff5ba9a9a12f69 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Make LowerSubregs' debug output for EXTRACT_SUBREG consistent with that of INSERT_SUBREG and SUBREG_TO_REG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61218 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
02e09abd8863dabcde0961111e56c7dca3ace6c7 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Make LowerSubregs' debug output for EXTRACT_SUBREG consistent with that of INSERT_SUBREG and SUBREG_TO_REG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61218 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
f04865f23406324d484b5947704e69d35853c9b6 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix a copy+pasto in an assertion message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61217 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
d7f99d0458d6e2f6b51526ccb23594a7e045cff6 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix a copy+pasto in an assertion message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61217 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
07af7650494dd161e0c82898a6fdba084bac2caf |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix indentation level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61216 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
43164f38836132bfb3c724d0e3cf81165b11d36d |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix indentation level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61216 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
2ccc83966914593d98af5671ce10a3bf2dcf7513 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Print subreg information in MachineInstr::dump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61213 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4849d107807c40d8e94daee2f529dda1ac9b285f |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Print subreg information in MachineInstr::dump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61213 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
87c8a8f304d1ee72829086ce2c41a8fa3813ba6a |
18-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for vector widening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61209 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
26342923118b8df5e99bf6acbac36d9af9255810 |
18-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for vector widening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61209 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/TargetLowering.cpp
|
7224170f6a5b8a3c76f4adc5f84d650d142a27c4 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Give MachineLICM a name, for -time-passes etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61184 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
342b4a81df0711ef79bbe656b2cf01e4ee23ae93 |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Give MachineLICM a name, for -time-passes etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61184 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
23b0d490cdf27b2cba7b497aceeb5c79b0d0c9fe |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move post-RA scheduling before branch folding for now, because branch folding's tail merging doesn't currently preserve liveness information which post-RA scheduling requires. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61183 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
b8ef544b5ac2663919c307e0f0d27a0f8cff555e |
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move post-RA scheduling before branch folding for now, because branch folding's tail merging doesn't currently preserve liveness information which post-RA scheduling requires. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61183 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2ebf63f8e2b009680e1822d7f3351b21cdc02e63 |
18-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Re-apply r61158 in a form that no longer breaks tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61182 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
64caad9f917f546bd57d06e852ad68990dabea89 |
18-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Re-apply r61158 in a form that no longer breaks tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61182 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
c7a21941c5f03fbbc47c550824d2aed1481e92f4 |
17-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Revert r61158 for now, as it caused some test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61159 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
24d3f71614c96506ae9bb854a31aa71de22741f6 |
17-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Revert r61158 for now, as it caused some test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61159 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
25dffa743b2e2d0ee5fe70254d3a45724580a383 |
17-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Fix miscompilations caused by renumbering, and enable it as part of prealloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61158 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
d66b2b0ce38f5dac460faac940db20357e6b7248 |
17-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Fix miscompilations caused by renumbering, and enable it as part of prealloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61158 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
84aff84cfab7fe9822a60ca378c66079bad6be85 |
17-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Fix expansion of vsetcc to set the high bit for true instead of 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
77bc9cd34ef03421f1b8c773fb4797fccd137fbe |
17-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Fix expansion of vsetcc to set the high bit for true instead of 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
89b64bd7e5032292adc308da0d867979734da8c1 |
17-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Double the amount of memory reserved for SUnits. This is a temporary workaround for an obscure bug. When node cloning is used, it is possible that more SUnits will be created, and if the SUnits std::vector has to reallocate, it will invalidate all the graph edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
0b299309c54a51e8a7eef7e807f71749863ebebb |
17-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Double the amount of memory reserved for SUnits. This is a temporary workaround for an obscure bug. When node cloning is used, it is possible that more SUnits will be created, and if the SUnits std::vector has to reallocate, it will invalidate all the graph edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
fccf6dd377959560aafdde40b92fc749471eeae5 |
17-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use getDepth() and getHeight() instead of accessing the Depth and Height members directly, as they may not be current. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61121 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
7a9397bc59204daeccf89e32e1af1ed2b8c26ac4 |
17-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use getDepth() and getHeight() instead of accessing the Depth and Height members directly, as they may not be current. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61121 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
28dc98f7521933872b93156e3ebf5c9f8327b2b3 |
17-Dec-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR3225: disable a broken optimization in DAGTypeLegalizer::ExpandShiftWithKnownAmountBit. In terms of restoring the optimization, the best fix here isn't obvious... any ideas? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61119 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
683d2fd82549a8b6caf96d9d91de3dc150c8e8e8 |
17-Dec-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR3225: disable a broken optimization in DAGTypeLegalizer::ExpandShiftWithKnownAmountBit. In terms of restoring the optimization, the best fix here isn't obvious... any ideas? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61119 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
fd3b7b7df3d539d1244933d375a766d7a7fe6c91 |
16-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
A new dag combine; several permutations of this are there under ADD, this one was missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0b58ffac380b4128b2b100e807a88f4c65d498ac |
16-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
A new dag combine; several permutations of this are there under ADD, this one was missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d0b6a0d96764e0d5178dc71d8bd9b68a3eaa026e |
16-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Add code to renumber split intervals into new vregs. This is disabled for now until I finish working out some iterator invalidation issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61104 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
9708cec9d7996de57567e889b8ebbb5c2b716a35 |
16-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Add code to renumber split intervals into new vregs. This is disabled for now until I finish working out some iterator invalidation issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61104 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
00dc84a2ca81be8adfee63ea0aa2a5abcb623060 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Eliminate the loop that walks the critical path. Instead, just track the position in the critical path during the main instruction walk. This eliminates the need for the CritialAntiDep DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61096 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
2e6e1356036f79e7548ed2ffc940045de0141d0a |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Eliminate the loop that walks the critical path. Instead, just track the position in the critical path during the main instruction walk. This eliminates the need for the CritialAntiDep DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61096 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
905ff1ebc4f383088e6af6fc37504cd06ba62b57 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Preserve SourceValue information when lowering produces multiple loads from different offsets within the same stack slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61093 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
f6b65367db9e02b7439c9bf284ed2cf291e575e6 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Preserve SourceValue information when lowering produces multiple loads from different offsets within the same stack slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61093 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesGeneric.cpp
|
09dc9c0c8363a689aa5559ae0e3ac33e381c2bb2 |
16-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
We have decided not to support inline asm where an output operand with a matching input operand with incompatible type (i.e. either one is a floating point and the other is an integer or the sizes of the types differ). SelectionDAGBuild will catch these and exit with an error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61092 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
596801f1964c9e7063b4effd76610ce9da379502 |
16-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
We have decided not to support inline asm where an output operand with a matching input operand with incompatible type (i.e. either one is a floating point and the other is an integer or the sizes of the types differ). SelectionDAGBuild will catch these and exit with an error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61092 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
812d7506d0c55fbb0eee522cb77b62e4ab777dea |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Enable anti-dependence breaking by default when post-RA scheduling is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61078 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
5d36e5a5fe59c26f71132b31cf34c3a314f07528 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Enable anti-dependence breaking by default when post-RA scheduling is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61078 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
fde221fa0a192a00dfdbce35ceec3d2035fe1019 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
When breaking an anti-dependency, don't use a register which has seen one of its aliases defined. This is conservative, but tricky subreg corner cases are outside the primary aim of this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61077 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9dc3a0d442e6e2a5133b0b20177ba402e582872d |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
When breaking an anti-dependency, don't use a register which has seen one of its aliases defined. This is conservative, but tricky subreg corner cases are outside the primary aim of this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61077 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
8749b61178228ba1fb2668034d79da1b247173d7 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add initial support for back-scheduling address computations, especially in the case of addresses computed from loop induction variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61075 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
cheduleDAGInstrs.cpp
|
47170992991553a35645f413a8214d85c6049ae3 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add initial support for back-scheduling address computations, especially in the case of addresses computed from loop induction variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61075 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
cheduleDAGInstrs.cpp
|
9a65d6afc203fb8e44a807f84e3d370f16b08a5a |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Remove some special-case logic in ScheduleDAGSDNodes's latency computation code that is no longer needed with the new method for handling latencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61074 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
504bb6e644387f2ff37a018d02d5d924504a76dc |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Remove some special-case logic in ScheduleDAGSDNodes's latency computation code that is no longer needed with the new method for handling latencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61074 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSDNodes.cpp
|
3f23744df4809eba94284e601e81489212c974d4 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix some register-alias-related bugs in the post-RA scheduler liveness computation code. Also, avoid adding output-depenency edges when both defs are dead, which frequently happens with EFLAGS defs. Compute Depth and Height lazily, and always in terms of edge latency values. For the schedulers that don't care about latency, edge latencies are set to 1. Eliminate Cycle and CycleBound, and LatencyPriorityQueue's Latencies array. These are all subsumed by the Depth and Height fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61073 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
6b2ee8f599ed38492b69b1b5bf0e53ddf8d94195 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix some register-alias-related bugs in the post-RA scheduler liveness computation code. Also, avoid adding output-depenency edges when both defs are dead, which frequently happens with EFLAGS defs. Compute Depth and Height lazily, and always in terms of edge latency values. For the schedulers that don't care about latency, edge latencies are set to 1. Eliminate Cycle and CycleBound, and LatencyPriorityQueue's Latencies array. These are all subsumed by the Depth and Height fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61073 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
4ea8e85e19b844ef0ff704f27959b6a2ea7369f9 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add a simple target-independent heuristic to allow targets with no instruction itinerary data to back-schedule loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61070 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
aa2a113b16a904b4ad4420c68da7eca513a9fa69 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add a simple target-independent heuristic to allow targets with no instruction itinerary data to back-schedule loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61070 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
c6b680eee58d27f4d38684c95e8fbfef61eb6558 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move addPred and removePred out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61067 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
302aee7f3f4fbd7a952c66a85793958f55d8dbf8 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move addPred and removePred out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61067 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
ffa391272bad598d73fd5404dadf3686b69f2a63 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Make addPred and removePred return void, since the return value is not currently used by anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61066 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
51107eaca992d79502be86717376cc9331b5276c |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Make addPred and removePred return void, since the return value is not currently used by anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61066 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
3ee7449f3973fa467388d66d27124da22f45df85 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
This getEdgeAttributes doesn't need a template argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61065 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
|
6f54f174c5028131f42b2bdd4d131a53b65e1216 |
16-Dec-2008 |
Dan Gohman <gohman@apple.com> |
This getEdgeAttributes doesn't need a template argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61065 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGPrinter.cpp
|
93b3b928d70df956b81ab1bffb7e8bab4b0c8fd7 |
15-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for splitting and scalarizing vector shifts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
6978d7caeb633bacf55a9b5eb4feb1da466d17ab |
15-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for splitting and scalarizing vector shifts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
464fc5a04462ad09f98f456e8904683e7c34f60e |
15-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix printing of PseudoSourceValues in SDNode graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
3a2f507046964a22a7ca8d744a2e3bb2bebf9bf9 |
15-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix printing of PseudoSourceValues in SDNode graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
d17c0302763cfd0b3f6657d2493147552762ac07 |
15-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support to LegalizeType for expanding the operands of scalar to vector and insert vector element. Modified extract vector element to extend the result to match the expected promoted type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61029 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
412f92f5180f1e49de0e7262ec1b7e97b2447c60 |
15-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support to LegalizeType for expanding the operands of scalar to vector and insert vector element. Modified extract vector element to extend the result to match the expected promoted type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61029 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
b6862bbe34be4a832f709596f8dc971ab9895b06 |
14-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Reapply r60997, this time without forgetting that target constants are allowed to have an illegal type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
e016a2e889c082f9ebf3b0ca578e09ff36f9d629 |
14-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Reapply r60997, this time without forgetting that target constants are allowed to have an illegal type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2d8cc315215febb15a8c18c41ef0b165da71c3b8 |
14-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r60997. It was causing this failure: Running /Users/void/llvm/llvm.src/test/CodeGen/Generic/dg.exp ... FAIL: /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll Failed with exit(1) at line 1 while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll | llc | /usr/bin/grep 68719476738 Assertion failed: ((TypesNeedLegalizing || getTypeAction(VT) == Legal) && "Illegal type introduced after type legalization?"), function HandleOp, file /Users/void/llvm/llvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 493. 0 llc 0x0085392e char const* std::find<char const*, char>(char const*, char const*, char const&) + 98 1 llc 0x00853e63 llvm::sys::PrintStackTraceOnErrorSignal() + 593 2 libSystem.B.dylib 0x96cac09b _sigtramp + 43 3 libSystem.B.dylib 0xffffffff _sigtramp + 1765097359 4 libSystem.B.dylib 0x96d24ec2 raise + 26 5 libSystem.B.dylib 0x96d3447f abort + 73 6 libSystem.B.dylib 0x96d26063 __assert_rtn + 101 7 llc 0x004f9018 llvm::cast_retty<llvm::SubprogramDesc, llvm::DebugInfoDesc*>::ret_type llvm::cast<llvm::Sub ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
318de86c315e8820a6e6c729e4e471976c86f4c9 |
14-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r60997. It was causing this failure: Running /Users/void/llvm/llvm.src/test/CodeGen/Generic/dg.exp ... FAIL: /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll Failed with exit(1) at line 1 while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll | llc | /usr/bin/grep 68719476738 Assertion failed: ((TypesNeedLegalizing || getTypeAction(VT) == Legal) && "Illegal type introduced after type legalization?"), function HandleOp, file /Users/void/llvm/llvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 493. 0 llc 0x0085392e char const* std::find<char const*, char>(char const*, char const*, char const&) + 98 1 llc 0x00853e63 llvm::sys::PrintStackTraceOnErrorSignal() + 593 2 libSystem.B.dylib 0x96cac09b _sigtramp + 43 3 libSystem.B.dylib 0xffffffff _sigtramp + 1765097359 4 libSystem.B.dylib 0x96d24ec2 raise + 26 5 libSystem.B.dylib 0x96d3447f abort + 73 6 libSystem.B.dylib 0x96d26063 __assert_rtn + 101 7 llc 0x004f9018 llvm::cast_retty<llvm::SubprogramDesc, llvm::DebugInfoDesc*>::ret_type llvm::cast<llvm::Sub ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0f546d4565b988f69850f42282e57a850153146d |
13-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeDAG is not supposed to introduce illegal types into the DAG if they were not already there. Check this with an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
edb1e670375bd251199ce2fe2286aa446723ccb6 |
13-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeDAG is not supposed to introduce illegal types into the DAG if they were not already there. Check this with an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c5d64607c96d9237f55988736e6ba7cc6a3d0a67 |
13-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Remove assertion to allow promotion of a truncating store operand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
3ee6e522dcc5cf66d8616c444811032a4b8c9538 |
13-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Remove assertion to allow promotion of a truncating store operand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
e1a0b2e0bbf2bd905afc628c96d8892edb304a3e |
13-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added basic support for expanding VSETCC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60974 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ec428ad696e767dbf2d594ce246d0fce7b6ab92e |
13-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added basic support for expanding VSETCC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60974 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fd6673cf7fd5c0c1e6817e5fcf460a289712ee57 |
13-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
On big-endian machines it is wrong to do a full width register load followed by a truncating store for the copy, since the load will not place the value in the lower bits. Probably partial loads/stores can never happen here, but fix it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60972 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
734f49bf4cf7f061f0746390bd5389f023ca66f6 |
13-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
On big-endian machines it is wrong to do a full width register load followed by a truncating store for the copy, since the load will not place the value in the lower bits. Probably partial loads/stores can never happen here, but fix it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60972 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8358099bcb85077e3ad65f1f15a9c60a9f18922d |
12-Dec-2008 |
Devang Patel <dpatel@apple.com> |
Do not print empty DW_AT_comp_dir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60965 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
6bcf98220e670ed0d6f73f5d3018b51ed4daed30 |
12-Dec-2008 |
Devang Patel <dpatel@apple.com> |
Do not print empty DW_AT_comp_dir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60965 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
05e11fab87102a230551327bfc8434ffad7a88d4 |
12-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
When expanding unaligned loads and stores do not make use of illegal integer types: instead, use a stack slot and copying via integer registers. The existing code is still used if the bitconvert is to a legal integer type. This fires on the PPC testcases 2007-09-08-unaligned.ll and vec_misaligned.ll. It looks like equivalent code is generated with these changes, just permuted, but it's hard to tell. With these changes, nothing in LegalizeDAG produces illegal integer types anymore. This is a prerequisite for removing the LegalizeDAG type legalization code. While there I noticed that the existing code doesn't handle trunc store of f64 to f32: it turns this into an i64 store, which represents a 4 byte stack smash. I added a FIXME about this. Hopefully someone more motivated than I am will take care of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b7ae45942427f524ad950c5fabaafeb920a18b3c |
12-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
When expanding unaligned loads and stores do not make use of illegal integer types: instead, use a stack slot and copying via integer registers. The existing code is still used if the bitconvert is to a legal integer type. This fires on the PPC testcases 2007-09-08-unaligned.ll and vec_misaligned.ll. It looks like equivalent code is generated with these changes, just permuted, but it's hard to tell. With these changes, nothing in LegalizeDAG produces illegal integer types anymore. This is a prerequisite for removing the LegalizeDAG type legalization code. While there I noticed that the existing code doesn't handle trunc store of f64 to f32: it turns this into an i64 store, which represents a 4 byte stack smash. I added a FIXME about this. Hopefully someone more motivated than I am will take care of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
637ed03173fdd154b1736e09358ba608036952b7 |
12-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix add/sub expansion: don't create ADD / SUB with two results (seems like everyone is doing this these days :-). Patch by Daniel M Gessel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2bdd3d948d66308516f7dc19dc4f516d8d237b6e |
12-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix add/sub expansion: don't create ADD / SUB with two results (seems like everyone is doing this these days :-). Patch by Daniel M Gessel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
712f7b3f549644190e90210a07988753f53daa0a |
12-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
When using a 4 byte jump table on a 64 bit machine, do an extending load of the 4 bytes rather than a potentially illegal (type) i32 load followed by a sign extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60945 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
12ddc807ca69485025dc1fcfec141dd9367a63ce |
12-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
When using a 4 byte jump table on a 64 bit machine, do an extending load of the 4 bytes rather than a potentially illegal (type) i32 load followed by a sign extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60945 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9e5ecb8f8f3b639874b943702a3dd1d0739bb9b9 |
12-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for SELECT v8i8 v4i16 for X86 (MMX) Added support for TRUNC v8i16 to v8i8 for X86 (MMX) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
83edba507f0682691a5b82dd07f877ea0dbeddc0 |
12-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for SELECT v8i8 v4i16 for X86 (MMX) Added support for TRUNC v8i16 to v8i8 for X86 (MMX) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ab55ebda1c2254f98b06e770bc2dae7d05a4a366 |
12-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Redo the arithmetic with overflow architecture. I was changing the semantics of ISD::ADD to emit an implicit EFLAGS. This was horribly broken. Instead, replace the intrinsic with an ISD::SADDO node. Then custom lower that into an X86ISD::ADD node with a associated SETCC that checks the correct condition code (overflow or carry). Then that gets lowered into the correct X86::ADDOvf instruction. Similar for SUB and MUL instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ae034ed6a84ffef03fc47e31c29e6c3c7ce42d40 |
12-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Redo the arithmetic with overflow architecture. I was changing the semantics of ISD::ADD to emit an implicit EFLAGS. This was horribly broken. Instead, replace the intrinsic with an ISD::SADDO node. Then custom lower that into an X86ISD::ADD node with a associated SETCC that checks the correct condition code (overflow or carry). Then that gets lowered into the correct X86::ADDOvf instruction. Similar for SUB and MUL instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6db08c4d2f2e1f1f83e845031bfee9017b126c5a |
11-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Avoid generating a convert_rndsat node when the src and dest type are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fa252e56029c5a375f9c1f5d281f14eebb6e39be |
11-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Avoid generating a convert_rndsat node when the src and dest type are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
775bb805c5a5a7ba6e4ccac85f650372a51e0273 |
11-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Clarify FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7fe2bf65f5225014dd11c5806740ee5cae11f491 |
11-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Clarify FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f67303d2565590bdf77a0d7d95d75f284f14cdd3 |
11-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Whitespace clean up (tabs with spaces) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
72fe546583d615b87f90f0ae100fcdb66abd4f81 |
11-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Whitespace clean up (tabs with spaces) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a60b5236c1acd31e2aca5705c8bbbd2946ea0873 |
11-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Make fix for r60829 less conservative to allow the proper optimization for vec_extract-sse4.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60865 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3c67310adc35c88e4d90ec4f8d39e58b8220d55b |
11-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Make fix for r60829 less conservative to allow the proper optimization for vec_extract-sse4.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60865 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0ffa3de9e9b342c0fb529853e14632c66ec9725f |
11-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Add a newline after this debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60861 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
882d5217189a0656a231285ff7aef8e5e42bd687 |
11-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Add a newline after this debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60861 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2476e5d3458ea3543f233159fcf4f2fea47426e9 |
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
If ADD, SUB, or MUL have an overflow bit that's used, don't do transformation on them. The DAG combiner expects that nodes that are transformed have one value result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60857 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c43c7eea3d8896246a46cc9546e9c70143c12d07 |
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
If ADD, SUB, or MUL have an overflow bit that's used, don't do transformation on them. The DAG combiner expects that nodes that are transformed have one value result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60857 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ab0c578bfd1380326830180a9209df6c5be58887 |
10-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
For amusement, implement SADDO, SSUBO, UADDO, USUBO for promoted integer types, eg: i16 on ppc-32, or i24 on any platform. Complete support for arbitrary precision integers would require handling expanded integer types, eg: i128, but I couldn't be bothered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
77476735d07b324a55bebe1431d2794b3d8b75b7 |
10-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
For amusement, implement SADDO, SSUBO, UADDO, USUBO for promoted integer types, eg: i16 on ppc-32, or i24 on any platform. Complete support for arbitrary precision integers would require handling expanded integer types, eg: i128, but I couldn't be bothered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
bae527d949949da0cf45d279990eee21e7c66108 |
10-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed a bug when trying to optimize a extract vector element of a bit convert that changes the number of elements of a shuffle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60829 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bc66e46f48e22e4b348de0bcb33928293285dca6 |
10-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed a bug when trying to optimize a extract vector element of a bit convert that changes the number of elements of a shuffle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60829 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5788d1a169db3346a612a13113348d2709bdd15b |
10-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60828 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
6e561c71f74571ff2a448e7e07cb74047edef776 |
10-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60828 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
bc5e15eafb3c39a214631087b6827a5691e9b25c |
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Whitespace changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60826 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
35f1a9d21de3950385c014522d474a2ad7c6504c |
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Whitespace changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60826 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2ce4e5caddeacac0bde7933ce586a794bac2019b |
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Whitespace fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ea340c7537e3ffb37dd89258d504823c6910f4da |
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Whitespace fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f55a2101e300d1b4d420a1e71ca839e3146bdf70 |
10-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Update CalcLatency to work in terms of edge latencies, rather than node latencies. Use CalcLatency instead of manual code in CalculatePriorities to keep it consistent. Previously it computed slightly different results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60817 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
|
a6801bbb67ba1d6c6453ee549a70c01fcee42e60 |
10-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Update CalcLatency to work in terms of edge latencies, rather than node latencies. Use CalcLatency instead of manual code in CalculatePriorities to keep it consistent. Previously it computed slightly different results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60817 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
|
94ea5be39fe379cda3ff144a99b6a1a69a9fe2e2 |
10-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a couple of Dwarf bugs. - Emit DW_AT_byte_size for struct and union of size zero. - Emit DW_AT_declaration for forward type declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60812 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
|
b2fc7112835530a49848ccc1dd53273b6feaa20d |
10-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a couple of Dwarf bugs. - Emit DW_AT_byte_size for struct and union of size zero. - Emit DW_AT_declaration for forward type declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60812 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
achineModuleInfo.cpp
|
54e4c36a7349e94a84773afb56eccd4ca65b49e9 |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rewrite the SDep class, and simplify some of the related code. The Cost field is removed. It was only being used in a very limited way, to indicate when the scheduler should attempt to protect a live register, and it isn't really needed to do that. If we ever want the scheduler to start inserting copies in non-prohibitive situations, we'll have to rethink some things anyway. A Latency field is added. Instead of giving each node a single fixed latency, each edge can have its own latency. This will eventually be used to model various micro-architecture properties more accurately. The PointerIntPair class and an internal union are now used, which reduce the overall size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60806 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
604394b2eb5ccda3858f8285a8c9b0c72cb2a997 |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rewrite the SDep class, and simplify some of the related code. The Cost field is removed. It was only being used in a very limited way, to indicate when the scheduler should attempt to protect a live register, and it isn't really needed to do that. If we ever want the scheduler to start inserting copies in non-prohibitive situations, we'll have to rethink some things anyway. A Latency field is added. Instead of giving each node a single fixed latency, each edge can have its own latency. This will eventually be used to model various micro-architecture properties more accurately. The PointerIntPair class and an internal union are now used, which reduce the overall size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60806 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
bcf28c08b3f0a3c4aa1be8f1485f6452d9a2b690 |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60804 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a0dff4380c8942a0f43a799226183fe364d8c12b |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60804 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
74c376529101acbe141a256d0bf23a44eb454c84 |
09-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Add sub/mul overflow intrinsics. This currently doesn't have a target-independent way of determining overflow on multiplication. It's very tricky. Patch by Zoltan Varga! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60800 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
7e04be6e4a44faffa7b5fb0d630b580214262a6d |
09-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Add sub/mul overflow intrinsics. This currently doesn't have a target-independent way of determining overflow on multiplication. It's very tricky. Patch by Zoltan Varga! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60800 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
47d9dcc584cdb7fd645ca1d5c2a0ce363570aeb7 |
09-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR3117: not all nodes being legalized. The essential problem was that the DAG can contain random unused nodes which were never analyzed. When remapping a value of a node being processed, such a node may become used and need to be analyzed; however due to operands being transformed during analysis the node may morph into a different one. Users of the morphing node need to be updated, and this wasn't happening. While there I added a bunch of documentation and sanity checks, so I (or some other poor soul) won't have to scratch their head over this stuff so long trying to remember how it was all supposed to work next time some obscure problem pops up! The extra sanity checking exposed a few places where invariants weren't being preserved, so those are fixed too. Since some of the sanity checking is expensive, I added a flag to turn it on. It is also turned on when building with ENABLE_EXPENSIVE_CHECKS=1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
871e55f9c2bfb591aa085405b67be46bc646dee5 |
09-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR3117: not all nodes being legalized. The essential problem was that the DAG can contain random unused nodes which were never analyzed. When remapping a value of a node being processed, such a node may become used and need to be analyzed; however due to operands being transformed during analysis the node may morph into a different one. Users of the morphing node need to be updated, and this wasn't happening. While there I added a bunch of documentation and sanity checks, so I (or some other poor soul) won't have to scratch their head over this stuff so long trying to remember how it was all supposed to work next time some obscure problem pops up! The extra sanity checking exposed a few places where invariants weren't being preserved, so those are fixed too. Since some of the sanity checking is expensive, I added a flag to turn it on. It is also turned on when building with ENABLE_EXPENSIVE_CHECKS=1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
f84802880c5ae7aed88f9aac27ec66a1d017707f |
09-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c7efea3b49e3d1c5e5cbfa6dab0eb4fbad067112 |
09-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60771 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
e3a49cd944ad41eba5a594f1de773d531ad25403 |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60769 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
e07f4c0f48e17594fd39b1151fc18c164aa5b4d1 |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60769 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
1cd46bbb1c6b1c3cb33bbbd3beb97f0c0373df80 |
09-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
In LegalizeOp, don't change the result type of CONVERT_RNDSAT when promoting one of its operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2fc3f9e0811f456843b6611002d7f923ef2e0a0f |
09-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
In LegalizeOp, don't change the result type of CONVERT_RNDSAT when promoting one of its operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e9f1015d1f184a51aaadfd03be0846bd5e7d08a2 |
09-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Fix getNode to allow a vector for the shift amount for shifts of vectors. Fix the shift amount when unrolling a vector shift into scalar shifts. Fix problem in getShuffleScalarElt where it assumes that the input of a bit convert must be a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
9901e73caec653599f27d04075961afe4a7c29a1 |
09-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Fix getNode to allow a vector for the shift amount for shifts of vectors. Fix the shift amount when unrolling a vector shift into scalar shifts. Fix problem in getShuffleScalarElt where it assumes that the input of a bit convert must be a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
aeac8f9cb4c112c0146be9476f9583b1337195d6 |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Don't charge full latency for an anti-dependence, in this simplistic pipeline model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60733 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
|
6b4a00f192f654e7c1030bac5a56da5f74bb4e77 |
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Don't charge full latency for an anti-dependence, in this simplistic pipeline model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60733 91177308-0d34-0410-b5e6-96231b3b80d8
atencyPriorityQueue.cpp
|
a629b48a668c778e0cb951c7eb2b47bda0c922f0 |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix the top-level comments, and fix some 80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60707 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
5faa402e7372192dbaa50ab49eda49e9d5e68262 |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix the top-level comments, and fix some 80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60707 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
c8a1a3c426209e9c7b35e279e1578a89edc40af6 |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for sign-extending/truncating gep indices and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
009a81ff8815b78422d27f3b8ad2d90a56dffb02 |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for sign-extending/truncating gep indices and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2e3e5bf42742a7421b513829101501f2de6d2b02 |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move createVirtualRegister out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60684 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
7a7b809327b3905a1b035c1b7e061822ec627f3f |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move createVirtualRegister out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60684 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
c93ced5b34b50a622ee8e49d90592f03ac7ff992 |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Clarify some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60683 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
eaccea3533f87344a468aee3a47bfcf164530c5e |
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Clarify some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60683 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
75c99c5aa86409f09616bfa46e723a0bc18e7e54 |
07-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Switch to top-down mode and fix a crasher this exposed caused by an error in the live interval updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60652 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
70e8127ecd63b483e0aed512010aeb6155f8cc82 |
07-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Switch to top-down mode and fix a crasher this exposed caused by an error in the live interval updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60652 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
650d7f3ff4d22646def71b842f7f163c539e0aaf |
05-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Reason #3 from 60595 doesn't hold true. If we can fold a PIC load from constpool into a use, the rewrite happens at time of spill (not in VirtRegMap). Later on, if the GlobalBaseReg is spilled, the spiller can see the use uses GlobalBaseReg and do the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60596 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
eb7a09bd42ba8da2be271860ae3500b409546c67 |
05-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Reason #3 from 60595 doesn't hold true. If we can fold a PIC load from constpool into a use, the rewrite happens at time of spill (not in VirtRegMap). Later on, if the GlobalBaseReg is spilled, the spiller can see the use uses GlobalBaseReg and do the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60596 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
72eeb94fe1d69cd05bdbbe86b2bc9fa25c963c22 |
05-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60592 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8a7cbc1cd385af3f4ac5619ee1c0c4259444df60 |
05-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60592 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2ce7f2068f13566f5a70ee779e3bb83a6cb8d942 |
05-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60586 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
ostRASchedulerList.cpp
egAllocLocal.cpp
|
4dbf8795b51efaecaac8cdd28ec54d6a7ee75481 |
05-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60586 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
ostRASchedulerList.cpp
egAllocLocal.cpp
|
9bf23b54524c06efd164648b613fd724e8d4494b |
05-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Teach StackSlotColoring to update MachineMemOperands when changing the stack slots on an instruction, to keep them consistent with the actual memory addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60584 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
6486b0c4f52436babb19e9abb8616f44fd115b28 |
05-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Teach StackSlotColoring to update MachineMemOperands when changing the stack slots on an instruction, to keep them consistent with the actual memory addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60584 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
490b1833a96bf0391ebdfba7828d43a8c3512851 |
05-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Ignore IMPLICIT_DEF instructions when computing physreg liveness. While they appear to provide a normal clobbering def, they don't in the case of the awkward IMPLICIT_DEF+INSERT_SUBREG idiom. It would be good to change INSERT_SUBREG; until then, this change allows post-regalloc scheduling to cope in a mildly conservative way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60583 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
2cb9f06edab79ff920f078481c04c917cd5ceac9 |
05-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Ignore IMPLICIT_DEF instructions when computing physreg liveness. While they appear to provide a normal clobbering def, they don't in the case of the awkward IMPLICIT_DEF+INSERT_SUBREG idiom. It would be good to change INSERT_SUBREG; until then, this change allows post-regalloc scheduling to cope in a mildly conservative way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60583 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
6002e993e045a36f90df076fa3c8a2127edb66d5 |
04-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Factor out some common code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60553 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
22bb751082ae7e1eb658e6c70f8ac932479aeb67 |
04-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Factor out some common code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60553 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
9304f2c294752a3cfbc2c91ebed903cc53317dc1 |
04-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
When allocating a stack temporary, use the correct number of bytes for types such as i1 which are not a multiple of 8 bits in length. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60543 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
760997765ebcc690c5db3e0f0258f7ff19855b1d |
04-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
When allocating a stack temporary, use the correct number of bytes for types such as i1 which are not a multiple of 8 bits in length. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60543 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
80e201b8db86a88249b89527a2c7f098237925d3 |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use register names instead of numbers in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60525 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a3f3d3b590275e9021e4974926a59d4127f2298b |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use register names instead of numbers in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60525 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
b29ffc88701fc373c832ea2e7142ad6f72eef050 |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Make debug output more informative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f2c0d4fa033fdf51ffd8a90432a1947bdb5ee793 |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Make debug output more informative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6a9041e5ca9bdf2c1b586a7b2c6488374b39be74 |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add minimal support for disambiguating memory references. Currently the main thing this covers is spills to distinct spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60517 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
cb4717c2e2533cc64e039e7d09ea0815c9d237e5 |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add minimal support for disambiguating memory references. Currently the main thing this covers is spills to distinct spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60517 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
cef874ae2b97ba29f10e68d1d2eb21f28a3dc263 |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rewrite the liveness bookkeeping code to fix a bunch of issues with subreg operands and tied operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60510 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
b6981fd4190719bff4bec382914be2acae6611df |
04-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rewrite the liveness bookkeeping code to fix a bunch of issues with subreg operands and tied operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60510 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
d71703deec9e3fe90833e82e0c8b6bf7e5af55fd |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Have PseudoSourceValue override Value::dump, so that it works on PseudoSourceValue values. This also fixes a FIXME in lib/VMCode/AsmWriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60507 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
de2163821ddbffb3ac78b7f0e1060b0754e9a502 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Have PseudoSourceValue override Value::dump, so that it works on PseudoSourceValue values. This also fixes a FIXME in lib/VMCode/AsmWriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60507 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
e96cc775e496260b7a42dbd6148dffb0575d1304 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix an inconsistency in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60500 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
98fbc36e6c77fead86a172b48fc149568b11f80c |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix an inconsistency in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60500 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
e561751e98b63908c6a3a68ed5dbc0703f3369b9 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Don't charge the full latency for anti and output dependencies. This is an area where eventually it would be good to use target-dependent information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60498 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9ffd030da18ba2683d08a3bebcf648298655ee1f |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Don't charge the full latency for anti and output dependencies. This is an area where eventually it would be good to use target-dependent information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60498 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
0dba0e5408e999e9c46006a12a92155a961a574c |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
When looking for anti-dependences on the critical path, don't bother examining non-anti-dependence edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60496 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
37cc9be77ec9c314c58336101cd1abe730bf5440 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
When looking for anti-dependences on the critical path, don't bother examining non-anti-dependence edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60496 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
ebb0a31103f353e330ea998f1a9e283a387b6ef7 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment about callee-saved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60495 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
3d93328a05311f363e8b39e86068bf26f807c677 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment about callee-saved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60495 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
c54baa2d43730f1804acfb4f4e738fba72f966bd |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Split foldMemoryOperand into public non-virtual and protected virtual parts, and add target-independent code to add/preserve MachineMemOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60488 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
edc83d6ec19f32ce2a3ea11109674d5370815d8c |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Split foldMemoryOperand into public non-virtual and protected virtual parts, and add target-independent code to add/preserve MachineMemOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60488 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
15511cf1660cfd6bb8b8e8fca2db9450f50430ee |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60487 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5574cc7ede8b35672892ed36be37cd81555857ff |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60487 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8b8e5a7f9648bc7e39dc28607c5ade43aaafb3af |
03-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Only check that the result of the mapping was not a new node if the node was actually remapped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
4c2c6e1baa0275fe03c9abbff316e9d31c542d6e |
03-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Only check that the result of the mapping was not a new node if the node was actually remapped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
952b839ce9bc0c6d605d8b202c9cd76f7f05a77d |
03-Dec-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix bug 3140. Print a single parameter .file directive if we have an ELF target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60480 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5cf2e553e3a6376051ae18f4eccd605a5703b8cd |
03-Dec-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix bug 3140. Print a single parameter .file directive if we have an ELF target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60480 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
41474baac839da410302950305722cb0e026a094 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add a sanity-check to tablegen to catch the case where isSimpleLoad is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60459 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
bc1714f32f95112cab85906a3a8c4057546b84d6 |
03-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Add a sanity-check to tablegen to catch the case where isSimpleLoad is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60459 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
96da0419490148e42dbab6984c07e28ec66a591d |
02-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove a (what appears to be) overly strict assertion. Here is what happened: 1. ppcf128 select is expanded to f64 select's. 2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend. 3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed. 4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map. 5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and assert. Duncan, please take a look. Thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
79f027da75139f2f7273f3f2fa83d1b567a1daf8 |
02-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove a (what appears to be) overly strict assertion. Here is what happened: 1. ppcf128 select is expanded to f64 select's. 2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend. 3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed. 4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map. 5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and assert. Duncan, please take a look. Thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
546d7b5c4a3cebf0d5017d42302b4a8d1c8ef584 |
02-Dec-2008 |
Scott Michel <scottm@aero.org> |
Non-functional change: make custom lowering for truncate stylistically consistent with the way it's generally done in other places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e9b8a40ef17f2a3260fcdc4d2b03852d73170145 |
02-Dec-2008 |
Scott Michel <scottm@aero.org> |
Non-functional change: make custom lowering for truncate stylistically consistent with the way it's generally done in other places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d118342b25eb6a3a67792cda9fce9b4c1e45a867 |
02-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60434 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
13076aba9fb4462ce78bc66bb5c6327f9aa48485 |
02-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60434 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
7b9d67c5bfa316bf94b5191224866fb107f00135 |
02-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Add support for folding spills into preceding defs when doing pre-alloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60433 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
9a1254f0ed34d687049c6094d2b1dd3993bf063e |
02-Dec-2008 |
Owen Anderson <resistor@mac.com> |
Add support for folding spills into preceding defs when doing pre-alloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60433 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
34d7985927bbd31e16c7de3346eaf3426348ecb1 |
02-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
One more transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d29920f900f45791a24f51892b2eb12efe79639f |
02-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
One more transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b0a5cdd4511d02afacd0cd39223cf6c52a6ef361 |
02-Dec-2008 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
make it possible to custom lower TRUNCATE (needed for the CellSPU target) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60409 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bfc55eea7e43acf7d966c433e85d633095a11440 |
02-Dec-2008 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
make it possible to custom lower TRUNCATE (needed for the CellSPU target) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60409 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fb13f008cb2a6a51d2d590f994051586774734a1 |
02-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Removed some unnecessary code in widening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d5638266a25d55711e17823963d5d99b886b7a91 |
02-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Removed some unnecessary code in widening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bbe4105cd7c94e90ecc7de2be57c04b3d80bb267 |
02-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3124: overly strict assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60392 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
f2176aad93e50e31aaccb7c36d67cf7c0d7c4f13 |
02-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3124: overly strict assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60392 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
221cd2f0813be675784b9825aee9f74f22026247 |
02-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
Add a few more transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d1feb58735159bd11f17c9732883dc9b323f61e8 |
02-Dec-2008 |
Dale Johannesen <dalej@apple.com> |
Add a few more transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
13d6d446f62f908e8cf74acb3a4df65ea5f497ce |
02-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Expand getVTList, getNodeValueTypes, and SelectNodeTo to handle more value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7a4076f1adb870680b20df6ec98507e419fb0bd6 |
02-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Expand getVTList, getNodeValueTypes, and SelectNodeTo to handle more value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
aaffa05d0a652dd3eae76a941d02d6b0469fa821 |
01-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
There are no longer any places that require a MERGE_VALUES node with only one operand, so get rid of special code that only existed to handle that possibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
42d7bb80eff3a86ca5790d950c399d294b6f9b0e |
01-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
There are no longer any places that require a MERGE_VALUES node with only one operand, so get rid of special code that only existed to handle that possibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
1607f05cb7d77d01ce521a30232faa389dbed4e2 |
01-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Change the interface to the type legalization method ReplaceNodeResults: rather than returning a node which must have the same number of results as the original node (which means mucking around with MERGE_VALUES, and which is also easy to get wrong since SelectionDAG folding may mean you don't get the node you expect), return the results in a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
7d9834be329543d61f747af9b48be539492d8974 |
01-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Change the interface to the type legalization method ReplaceNodeResults: rather than returning a node which must have the same number of results as the original node (which means mucking around with MERGE_VALUES, and which is also easy to get wrong since SelectionDAG folding may mean you don't get the node you expect), return the results in a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
fc69cb475f3df50fb47c0cf8df90c2a77b7ff36a |
30-Nov-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Followup to r60283: optimize arbitrary width signed divisions as well as unsigned divisions. Same caveats as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2589b503cca3c6850f49d65d2396c72ad7e4132a |
30-Nov-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Followup to r60283: optimize arbitrary width signed divisions as well as unsigned divisions. Same caveats as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
201c9776bd4197569b71fef0519f98a28d1db989 |
30-Nov-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR2164: allow transforming arbitrary-width unsigned divides into multiplies. Some more cleverness would be nice, though. It would be nice if we could do this transformation on illegal types. Also, we would prefer a narrower constant when possible so that we can use a narrower multiply, which can be cheaper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ca009721b9835254fdb88342912864de7c2feae5 |
30-Nov-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR2164: allow transforming arbitrary-width unsigned divides into multiplies. Some more cleverness would be nice, though. It would be nice if we could do this transformation on illegal types. Also, we would prefer a narrower constant when possible so that we can use a narrower multiply, which can be cheaper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
86f874d9bb3722e81381e832eb4c867f562e308c |
30-Nov-2008 |
Eli Friedman <eli.friedman@gmail.com> |
APIntify a test which is potentially unsafe otherwise, and fix the nearby FIXME. I'm not sure what the right way to fix the Cell test was; if the approach I used isn't okay, please let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
156a66847d6988b5947b5d62e7e65648e7aa5c6f |
30-Nov-2008 |
Eli Friedman <eli.friedman@gmail.com> |
APIntify a test which is potentially unsafe otherwise, and fix the nearby FIXME. I'm not sure what the right way to fix the Cell test was; if the approach I used isn't okay, please let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a89d102b32d74fed5d3c7aeea8869a11c3074063 |
27-Nov-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Silence a warning. Despite changing the order of evaluation, this doesn't actually change the meaning of the statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60177 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
97b549fb49d067d356c8acf74185f1da9b1ca335 |
27-Nov-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Silence a warning. Despite changing the order of evaluation, this doesn't actually change the meaning of the statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60177 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
9b0f0b5e1505dcd4ec0da87ea9e29c59d98a8d27 |
27-Nov-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Removing redundant semicolons. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60149 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d57f2e16f8bc6dfdf13e7866b5eb0adef32445e4 |
27-Nov-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Removing redundant semicolons. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60149 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
df90841690c4c1c30aa9ea8cfd37c429bb1e9d0b |
27-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid inserting noop's in the middle of a loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60141 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
83059fda621cf9d35b7a5aa553569e0484c2766e |
27-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid inserting noop's in the middle of a loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60141 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
56eca9103ecbf2293842bfd6067ac26629221eaf |
27-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Add a missing case in visitADD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e7e5da3e66cf237a697dfb94bcbd0c99668a13e2 |
27-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Add a missing case in visitADD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d3f01aa5a1c0242ea0a6294f13e1d078ce2b0938 |
26-Nov-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow custom lowering of ADDE/ADDC/SUBE/SUBC operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7a61e7fd8f293bda18c9e46eeda4e4400b0b8ab6 |
26-Nov-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow custom lowering of ADDE/ADDC/SUBE/SUBC operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2ad8245566a3c92d4559727a877d57ecf5d078c8 |
26-Nov-2008 |
Dan Gohman <gohman@apple.com> |
LiveRanges are represented as half-open ranges. Fix the findLiveInMBBs code and the LiveInterval.h top-level comment and accordingly. This fixes blocks having spurious live-in registers in boundary cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60092 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b3a18e30a64b395be5983241b6172c2f469919c6 |
26-Nov-2008 |
Dan Gohman <gohman@apple.com> |
LiveRanges are represented as half-open ranges. Fix the findLiveInMBBs code and the LiveInterval.h top-level comment and accordingly. This fixes blocks having spurious live-in registers in boundary cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60092 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
740464e6164e503f3c01d2b13a52c0261042abe0 |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
A simplification for checking whether the signs of the operands and sum differ. Thanks, Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60043 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cf4de126b17196ba81d1876ccd304130eb3ca662 |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
A simplification for checking whether the signs of the operands and sum differ. Thanks, Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60043 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
878ef1d5bc3b2d12f58fbd796a4ac91b163c88f0 |
25-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Suppress warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60041 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a710d727b7aec6c0d84bf13813f38d65e8de927e |
25-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Suppress warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60041 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
|
a6af91ae124d0713cfabcea8c5f508091dd7a556 |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Now with the correct type for the 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c65e6e4ce26caba2a6c07467ab45f74f708ffbe7 |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Now with the correct type for the 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7ebfea41755c1f7b45fe5cad005ad2ea701c508e |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Get rid of unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
910488477f3f5dac9f709522e708dd36a1e88779 |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Get rid of unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c0062fb7557c9f4eb66b7d8fa7b6b0c765e579b8 |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Hacker's Delight says, "Signed integer overflow of addition occurs if and only if the operands have the same sign and the sum has sign opposite to that of the operands." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6c4e3e07b6722e380f5d7917df47058101fd71bb |
25-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Hacker's Delight says, "Signed integer overflow of addition occurs if and only if the operands have the same sign and the sum has sign opposite to that of the operands." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
21d9003087c9a707e6cd95460136b499df358fb8 |
25-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Initial support for anti-dependence breaking. Currently this code does not introduce any new spilling; it just uses unused registers. Refactor the SUnit topological sort code out of the RRList scheduler and make use of it to help with the post-pass scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59999 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
c2c90e22cede15fab5b9a52a39afaf8d04944135 |
25-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Initial support for anti-dependence breaking. Currently this code does not introduce any new spilling; it just uses unused registers. Refactor the SUnit topological sort code out of the RRList scheduler and make use of it to help with the post-pass scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59999 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
41ea7e7eb3a6a269f2bfed0bdc191ea046d18e5e |
24-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Make lowering of "add with overflow" customizable by back-ends. - Mark "add with overflow" as having a custom lowering for X86. Give it a null lowering representation for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
4c134dfa957802f1851046aa972da1fc5cdba0b5 |
24-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Make lowering of "add with overflow" customizable by back-ends. - Mark "add with overflow" as having a custom lowering for X86. Give it a null lowering representation for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
942b8c853375ae6a3e84f4b0a70f6d4e194ea594 |
24-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Check in the rest of this change. The isAntiDep flag needs to be passed to removePred because an SUnit can both data-depend and anti-depend on the same SUnit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
49366c29d2e7ea80a585757ef22dab7272a86a8c |
24-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Check in the rest of this change. The isAntiDep flag needs to be passed to removePred because an SUnit can both data-depend and anti-depend on the same SUnit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
974b5f53f70294d6fb586c7a47fee505b3eaf1ae |
24-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Pass the isAntiDep argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59968 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
08213c9e36fd472f85fce8d7935c39d5aaead88a |
24-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Pass the isAntiDep argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59968 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
cb72dd6776d49b21711977bde21b23c92cff7544 |
24-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Run post-RA scheduling after branch folding, as it tends to obscure tail-merging opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59967 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
579a7fb775b6ebe7ad8c61b06d48979c1e8062a4 |
24-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Run post-RA scheduling after branch folding, as it tends to obscure tail-merging opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59967 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
faa3d82a31f40fdd43779212d0d2d99c9103673d |
24-Nov-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
Minor fix debug for register allocation debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59961 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
egAllocLocal.cpp
|
84d2b36fc220f8a83fe4b4803dd3732596892c08 |
24-Nov-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
Minor fix debug for register allocation debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59961 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
egAllocLocal.cpp
|
25cf2275ff7de3de3bc0e508abaf457413d74725 |
24-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
If the type legalizer actually legalized anything (this doesn't happen that often, since most code does not use illegal types) then follow it by a DAG combiner run that is allowed to generate illegal operations but not illegal types. I didn't modify the target combiner code to distinguish like this between illegal operations and illegal types, so it will not produce illegal operations as well as not producing illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGISel.cpp
|
a3e2cd08d62cb0602413589986bcd6e94ea56ba3 |
24-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
If the type legalizer actually legalized anything (this doesn't happen that often, since most code does not use illegal types) then follow it by a DAG combiner run that is allowed to generate illegal operations but not illegal types. I didn't modify the target combiner code to distinguish like this between illegal operations and illegal types, so it will not produce illegal operations as well as not producing illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAGISel.cpp
|
24ac408ce891321d1a5d62beaf3487efce6f2b22 |
24-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate some unused variable compile time warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
cf576fd7d2bf5153fce9e451b1fcb1456a49c6bc |
24-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate some unused variable compile time warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
def27392c1b4792f695b4eb681cd024ade4025bf |
24-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Add support for llvm.uadd.with.overflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8062b078b526948d2f2879da7c2bd0921389120f |
24-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Add support for llvm.uadd.with.overflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
03228089d5235f8c90477f88809139464e9c6ea5 |
23-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Rename SetCCResultContents to BooleanContents. In practice these booleans are mostly produced by SetCC, however the concept is more general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
8cf4a828c81246eacf7ee4d0113356a32466505a |
23-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Rename SetCCResultContents to BooleanContents. In practice these booleans are mostly produced by SetCC, however the concept is more general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
6cce3dae900152203a51299e928d8ec738537d6a |
23-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added check to avoid generating extract subvector beyond the end of the vector when normalizing vector shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
87d4dd5398ff67c742484837734fd87761d6f369 |
23-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added check to avoid generating extract subvector beyond the end of the vector when normalizing vector shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7751ad92daeea5a3502fbc266ae814baec5c03e6 |
22-Nov-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make a convenient helper for printing offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59872 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
440f23db20a6c802d407e4f92a541648aaa6d492 |
22-Nov-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make a convenient helper for printing offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59872 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
253174bf50c932abaa680f465e2888c0e5272267 |
22-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Cleanup of the [SU]ADDO type legalization code. Patch by Duncan! "It simplifies the type legalization part a bit, and produces better code by teaching SelectionDAG about the extra bits in an i8 SADDO/UADDO node. In essence, I spontaneously decided that on x86 this i8 boolean result would be either 0 or 1, and on other platforms 0/1 or 0/-1, depending on whether the platform likes it's boolean zero extended or sign extended." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
|
f8bb44039c56063c3e0bf6224f1abf20c844ad91 |
22-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Cleanup of the [SU]ADDO type legalization code. Patch by Duncan! "It simplifies the type legalization part a bit, and produces better code by teaching SelectionDAG about the extra bits in an i8 SADDO/UADDO node. In essence, I spontaneously decided that on x86 this i8 boolean result would be either 0 or 1, and on other platforms 0/1 or 0/-1, depending on whether the platform likes it's boolean zero extended or sign extended." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
|
8ac0d4b4fb10406278cd600214cd3ee6d76620cd |
22-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Move conversion of [SU]ADDO from DAG combiner into legalizer. - Add "promote integer type" stuff to the legalizer for these nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
913dcf35c3b19eebc8f8fcd7733faf2e5cd4bc84 |
22-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Move conversion of [SU]ADDO from DAG combiner into legalizer. - Add "promote integer type" stuff to the legalizer for these nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
59500c8f9a76b3386329b6f837255c16f4e8b61b |
21-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Silence unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59841 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
|
4354f5ca9aa1124613b68905b30b8815694abcb0 |
21-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Silence unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59841 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
|
37d8b3193d6584356c2bfc53f0d44701ffd48f5e |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Correctly set the isCtrl flag for chain dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59837 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
32bbe847b3767a74cdcef38aa7d8d336d2eca897 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Correctly set the isCtrl flag for chain dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59837 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
fc626b62b877beec1cc3c0289eb794f28614e23f |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59836 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
ab3b9a9194a9feb66dad3934d9bd74d5bda177c7 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59836 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
3ebd0eeaeb94b7f607409408e3c25024db671b66 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6e78031d9bec7d2b457dd4dd204126d35b3f9325 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
824b958e6fb1236e92e4d07f3acf18fca107cdc0 |
21-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an arbitrary integer width for the count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59823 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
82c2e4332a1578fce36412e997c4a563b3f66274 |
21-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an arbitrary integer width for the count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59823 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
dc770929cb2f97397970e2942b746839fc387992 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert r59802. It was breaking the build of llvm-gcc: g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic' make[3]: *** [llvm-convert.o] Error 1 make[3]: *** Waiting for unfinished jobs.... rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod make[2]: *** [all-stage1-gcc] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [all] Error 2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59809 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
39d5f588224111a18ad441069eb9ebef0ba2f8f9 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert r59802. It was breaking the build of llvm-gcc: g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic' make[3]: *** [llvm-convert.o] Error 1 make[3]: *** Waiting for unfinished jobs.... rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod make[2]: *** [all-stage1-gcc] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [all] Error 2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59809 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
219ab405e6bea993da14cf3ce7b50983c3bb7a6f |
21-Nov-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Make mem[cpy,move,set] intrinsics overloaded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59802 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
4198fefc601a27c2abf1da16cb6a0035e420548b |
21-Nov-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Make mem[cpy,move,set] intrinsics overloaded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59802 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGBuild.cpp
|
137dccd5d86e0d0741f9560970f9b2952221d37c |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Default to converting UADDO to the generic form that SADDO is converted to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f3ddc42182d77db19b085a1ad9590c65f654a0c2 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Default to converting UADDO to the generic form that SADDO is converted to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
230e4faa198e4e44da2694777e412c02dd35003a |
21-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Clean up normalization of shuffles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59792 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
67227c25d7dd2a18397e136e15ead7e49d3fe27d |
21-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Clean up normalization of shuffles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59792 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ef37546f688696b1d616dc2adb63d1b372fa483d |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Combine the two add with overflow intrinsics lowerings. They differ only in DAG node type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59788 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
9560f98ded31ac238ed1b77d50a58da51bec1543 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Combine the two add with overflow intrinsics lowerings. They differ only in DAG node type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59788 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f6b7a47d5d6e2703591b95b10b2c5be5b5fd09cd |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Set the isAntiDep flag in the MachineInstr scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59787 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
acd51f80518ec77daa11d058f75303fea4fe5c49 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Set the isAntiDep flag in the MachineInstr scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59787 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
da4948ac8cbc307739e353e64c19a935de1e0230 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Generate code for llvm.uadd.with.overflow intrinsic. No conversion support yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
9ed957e4fea842dc9502aafe8b0f6ed0e9763c84 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Generate code for llvm.uadd.with.overflow intrinsic. No conversion support yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
cddd428459a66830b0d072823f94224ace58e625 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add a flag to SDep for tracking which edges are anti-dependence edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59785 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
5ecb81db050cd96bec80f92832557d33bf7c7a9d |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add a flag to SDep for tracking which edges are anti-dependence edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59785 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
6c63f62729fbd7cdf66f96ad52ea1bba62851311 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove chains. Unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGBuild.cpp
|
517abf0ad2611e9d459b77ce8fd3a746dc382866 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove chains. Unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGBuild.cpp
|
98adea11496400c8385b774b4d9f9acd4c99d254 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Rename SDep's isSpecial to isArtificial, to make this field a little less mysterious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59782 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
cheduleDAGPrinter.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
ff8009f3058136e9ec00ba8f4210a220a41b8f7e |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Rename SDep's isSpecial to isArtificial, to make this field a little less mysterious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59782 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
cheduleDAGPrinter.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
1c55a9c0cc355ad72c55ae7665143b9a992d223b |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename "ADDO" to "SADDO" and "UADDO". The "UADDO" isn't equivalent to "ADDC" because the boolean it returns to indicate an overflow may not be treated like as a flag. It could be stored to memory, for instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
ea8b7c926c5bb387c57459546e0128688df6492b |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename "ADDO" to "SADDO" and "UADDO". The "UADDO" isn't equivalent to "ADDC" because the boolean it returns to indicate an overflow may not be treated like as a flag. It could be stored to memory, for instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
7cdc3c8ad208d9655be542fc8b082c4457af4b6e |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the sadd_with_overflow intrinsic. This is converted into "ISD::ADDO". ISD::ADDO is lowered into a target-independent form that does the addition and then checks if the result is less than one of the operands. (If it is, then there was an overflow.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
5fc7e5c28a72511a17e5f84ef2b6327b8b8862e0 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the sadd_with_overflow intrinsic. This is converted into "ISD::ADDO". ISD::ADDO is lowered into a target-independent form that does the addition and then checks if the result is less than one of the operands. (If it is, then there was an overflow.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
787782f4ca0cca2523825131c24a6f78535a3eb8 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Use ComputeLatency in the MachineInstr scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59777 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
13f4a6423bb0ec3af4f7a629d7e6f743c2fb9c84 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Use ComputeLatency in the MachineInstr scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59777 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
f209c2cc301ed762e4314536137832ee26e65be0 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove the CycleBound computation code from the ScheduleDAGRRList schedulers. This doesn't have much immediate impact because targets that use these schedulers by default don't yet provide pipeline information. This code also didn't have the benefit of register pressure information. Also, removing it will avoid problems with list-burr suddenly starting to do latency-oriented scheduling on x86 when we start providing pipeline data, which would increase spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59775 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2add045e2b2677b16aed4a78826a3fb2bdabc034 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove the CycleBound computation code from the ScheduleDAGRRList schedulers. This doesn't have much immediate impact because targets that use these schedulers by default don't yet provide pipeline information. This code also didn't have the benefit of register pressure information. Also, removing it will avoid problems with list-burr suddenly starting to do latency-oriented scheduling on x86 when we start providing pipeline data, which would increase spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59775 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c8c2827993204207ca70a93f62f233fbe81b97ef |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Implement ComputeLatency for MachineInstr ScheduleDAGs. Factor some of the latency computation logic out of the SDNode ScheduleDAG code into a TargetInstrItineraries helper method to help with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59761 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
8efc97bd7218f3e440491f52adfcc78f206eee78 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Implement ComputeLatency for MachineInstr ScheduleDAGs. Factor some of the latency computation logic out of the SDNode ScheduleDAG code into a TargetInstrItineraries helper method to help with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59761 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
electionDAG/ScheduleDAGSDNodes.cpp
|
ea7b527aa56ad0fe547d3d99b21e845a49a031cb |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Add UADDO and SADDO nodes. These will be used for determining an overflow condition in an addition operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59760 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
691d9faf0ffe98a1d884af2bc78595ecbf70b987 |
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Add UADDO and SADDO nodes. These will be used for determining an overflow condition in an addition operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59760 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
47d1a214a7013d12140a0c4972d7ba761150dfd4 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change these schedulers to not emit no-ops. It turns out that the RR scheduler actually does look at latency values, but it doesn't use a hazard recognizer so it has no way to know when a no-op is needed, as opposed to just stalling and incrementing the cycle count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
55aef3bcfc7dd2c0c192554ab4f162bae750e689 |
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change these schedulers to not emit no-ops. It turns out that the RR scheduler actually does look at latency values, but it doesn't use a hazard recognizer so it has no way to know when a no-op is needed, as opposed to just stalling and incrementing the cycle count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
8eaf41de8adb764b16712485a385afab8b83f1ca |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Treat mid-block labels the same as terminators when building the MachineInstr scheduling DAG, meaning they implicitly depend on all preceding defs. This fixes Benchmarks/Shootout-C++/except and Regression/C++/EH/simple_rethrow in -relocation-model=pic -disable-post-RA-scheduler=false mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59747 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
5e955193ce86a512a0a40d4250d8e80b44ffbeb8 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Treat mid-block labels the same as terminators when building the MachineInstr scheduling DAG, meaning they implicitly depend on all preceding defs. This fixes Benchmarks/Shootout-C++/except and Regression/C++/EH/simple_rethrow in -relocation-model=pic -disable-post-RA-scheduler=false mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59747 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAGInstrs.cpp
|
5ce0973f7f4d149f986d16d1a1f79b131fd70423 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add another machine-code printing pass when post-pass scheduling is run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59746 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a2fa48eadd44933a5f9f25a7cd5f850093b8de5a |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add another machine-code printing pass when post-pass scheduling is run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59746 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
810260bf6b4af4c676705d77f0a96c22986610fb |
20-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Add some documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
7c9b011b53653f6bd85f7bbc2b61d5f48de3edb8 |
20-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Add some documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
f0a2d0cb8f08f951731840d604c121ca662a0326 |
20-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59718 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
90e1e4f3d589712176a62f2abcea1038d0aa7d3b |
20-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59718 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
57bebbbd1229040ad659ef4671a34e8d1d78a6f6 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove a remnant of list-burr's fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59702 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
7c8372f400dfdd296e3079b19c06de6a4ad106c0 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove a remnant of list-burr's fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59702 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
117f3e9ee426ab7eb120b5ca1b65763baae2a824 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the SethiUllman numbering logic from the list-burr and list-tdrr schedulers into a common base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
17f00d561262d69eb834064eb42d19ae4c3c9606 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the SethiUllman numbering logic from the list-burr and list-tdrr schedulers into a common base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
9e76fea3abd4229749e6ead46a0016cabff4a056 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove the "fast" form of the list-burr scheduler, and use the dedicated "fast" scheduler in -fast mode instead, which is faster. This speeds up llc -fast by a few percent on some testcases -- the speedup only happens for code not handled by fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59700 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
09ab1d709c03bd7f363e5493e2e060e50a51e095 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove the "fast" form of the list-burr scheduler, and use the dedicated "fast" scheduler in -fast mode instead, which is faster. This speeds up llc -fast by a few percent on some testcases -- the speedup only happens for code not handled by fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59700 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
6be2ee431f44e3eb4d87bb3779a7e97a766c7a3e |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Facter AddPseudoTwoAddrDeps and associated infrasructure out of the list-burr scheduler so that it can be used by the list-tdrr scheduler too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59698 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e456fda49f1f3fb31adca38444d2e046e9905e4c |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Facter AddPseudoTwoAddrDeps and associated infrasructure out of the list-burr scheduler so that it can be used by the list-tdrr scheduler too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59698 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d37c13cfd1bf4b08d0b99d93c799a1caa74cf3c6 |
20-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Register scavenger should use MachineRegisterInfo and internal map to find the first use of a register after a given machine instruction. - When scavenging a register, in addition to the spill, insert a restore before the first use. - Abort if client is looking to scavenge a register even when a previously scavenged register is still live. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59697 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
0ac7045af5e8a5b791f79df3a724d76f5886b434 |
20-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Register scavenger should use MachineRegisterInfo and internal map to find the first use of a register after a given machine instruction. - When scavenging a register, in addition to the spill, insert a restore before the first use. - Abort if client is looking to scavenge a register even when a previously scavenged register is still live. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59697 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
40362067de30a493951e084ba59d9b4fb1654a20 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add #include <climits> to get the definition of INT_MAX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59692 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
ae54818483f6bf256064956c24de57d72f33e3fe |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add #include <climits> to get the definition of INT_MAX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59692 91177308-0d34-0410-b5e6-96231b3b80d8
cheduleDAG.cpp
|
a1e6d363e5efa9eb1a2e7ac21a0394c870bef5ad |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for verifying the work of the scheduler, extend it a bit, and make use of it in all schedulers, to ensure consistent checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59689 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
f6e4a00d09a642688ef0c02280a8e640cfff6788 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for verifying the work of the scheduler, extend it a bit, and make use of it in all schedulers, to ensure consistent checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59689 91177308-0d34-0410-b5e6-96231b3b80d8
ostRASchedulerList.cpp
cheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
cdb260de83e209cd97632343e03343da3629d59f |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Simplify this code a little. In the fast scheduler, CreateNewSUnit and CreateClone don't add any extra value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
78b29ae20cd026390c4e96177cbf52a335de42c8 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Simplify this code a little. In the fast scheduler, CreateNewSUnit and CreateClone don't add any extra value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
343f0c046702831a4a6aec951b6a297a23241a55 |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Experimental post-pass scheduling support. Post-pass scheduling is currently off by default, and can be enabled with -disable-post-RA-scheduler=false. This doesn't have a significant impact on most code yet because it doesn't yet do anything to address anti-dependencies and it doesn't attempt to disambiguate memory references. Also, several popular targets don't have pipeline descriptions yet. The majority of the changes here are splitting the SelectionDAG-specific code out of ScheduleDAG, so that ScheduleDAG can be moved to libLLVMCodeGen.a. The interface between ScheduleDAG-using code and the rest of the scheduling code is somewhat rough and will evolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59676 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
electionDAG/CMakeLists.txt
electionDAG/LatencyPriorityQueue.cpp
electionDAG/LatencyPriorityQueue.h
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
d27a0e058661cece449251fef2f9d495f336e85f |
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Experimental post-pass scheduling support. Post-pass scheduling is currently off by default, and can be enabled with -disable-post-RA-scheduler=false. This doesn't have a significant impact on most code yet because it doesn't yet do anything to address anti-dependencies and it doesn't attempt to disambiguate memory references. Also, several popular targets don't have pipeline descriptions yet. The majority of the changes here are splitting the SelectionDAG-specific code out of ScheduleDAG, so that ScheduleDAG can be moved to libLLVMCodeGen.a. The interface between ScheduleDAG-using code and the rest of the scheduling code is somewhat rough and will evolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59676 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
atencyPriorityQueue.cpp
ostRASchedulerList.cpp
cheduleDAG.cpp
cheduleDAGEmit.cpp
cheduleDAGInstrs.cpp
cheduleDAGPrinter.cpp
electionDAG/CMakeLists.txt
electionDAG/LatencyPriorityQueue.cpp
electionDAG/LatencyPriorityQueue.h
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSDNodes.cpp
electionDAG/ScheduleDAGSDNodesEmit.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
7d1cd3f21d68179f4ebf4ee18fb7a0ddca9c5a37 |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Move the code for printing a graph node label for an SUnit into a virtual method of SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
d717710fc40e446d71ae2b4ca08ff7c9919f8398 |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Move the code for printing a graph node label for an SUnit into a virtual method of SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
252ae9e8ae4efaf1f67a608ad2563323308bd803 |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Convert SUnit's dump method into a print method and implement dump in terms of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
60e43791bf4e8721be3ef00f19cb8499b0df2bc0 |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Convert SUnit's dump method into a print method and implement dump in terms of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
3713c0ba62113419a5c57ec3e5d034d1dd581b55 |
19-Nov-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix compilation error on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59629 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
902679693f33bf771f2665aa71e99c121e28632b |
19-Nov-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Fix compilation error on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59629 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
75fa96bb7127f5797873cb7482ecdf6b82eeef5a |
19-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Add support for rematerialization in pre-alloc-splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59587 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f10e9510577101a19f0c358971df885c13122a41 |
19-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Add support for rematerialization in pre-alloc-splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59587 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
c2f9062ea4915ae034417eaeead3c5942921f24d |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Rearrange code to reduce the nesting level. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
4720765e5f77e7a710d79f2aad160f01517ce5f6 |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Rearrange code to reduce the nesting level. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
06da2bc19f4bace18e7b6ea5a8a5cdf124938928 |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Fix debug printing of flagged SDNodes in SUnits so that they print in the correct order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a52aeb9b57a80a2dc75c596dc03fd4e482dffcf3 |
19-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Fix debug printing of flagged SDNodes in SUnits so that they print in the correct order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
3a5b020292408421e2605cb15a4741062f2c74b6 |
19-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Make the same change to RegScavenger::backward. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59566 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
74ec8e93f81402650fcb1ca1873dee98430e8a21 |
19-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Make the same change to RegScavenger::backward. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59566 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
63a431c6704e711713b0258bd987cfb257767cf4 |
18-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
We also need to keep the operand index for two address check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59562 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
17683376deb6a9169d778f96780dcd175f1b04ec |
18-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
We also need to keep the operand index for two address check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59562 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
9c64bf3905ea338719800008c03d95a17cb26689 |
18-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Register scavenger should process early clobber defs first. A dead early clobber def should not interfere with a normal def which happens one slot later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59559 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
9f17d33c9030dcbfafb202ed14b1a5ab514e45c9 |
18-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Register scavenger should process early clobber defs first. A dead early clobber def should not interfere with a normal def which happens one slot later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59559 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
1256f5fe769ab2cced36abf2cbf9e1f63f22282d |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up ScheduleNodeBottomUp methods, and make them more consistent with ScheduleNodeTopDown methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
9feca8e2b5db5352038aa79e532ae5888ddfa613 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up ScheduleNodeBottomUp methods, and make them more consistent with ScheduleNodeTopDown methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
0454e8685fa4ca75c710dad7203dc137e551a2c1 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Update a comment to reflect the current code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
bcb0ccb5ccde98258fb4fb7918b24a73b94bb3c2 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Update a comment to reflect the current code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
9a6b92de4c2207b427f3b9cd67cd122dafc5b6c6 |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Remove integer promotion support for FP_EXTEND and FP_ROUND. Not sure what these were doing here - probably they were sometimes (wrongly) created with integer operands somewhere that has since been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
3cdbc5860009bcd708a63d80bbf8168ec23660de |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Remove integer promotion support for FP_EXTEND and FP_ROUND. Not sure what these were doing here - probably they were sometimes (wrongly) created with integer operands somewhere that has since been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
c08468774b65dc288c44076d428f4beddabe58e2 |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Simplify code using helper routines. There is not supposed to be any functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
d41e4e09f1b48f56f9e0727c36dd1307e512a20d |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Simplify code using helper routines. There is not supposed to be any functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
5a92d4e657f90b63e6a1a94fe3909533e89c5357 |
18-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug introduced by my previous patch. With this change, SPEC is now clean with prealloc splitting enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59544 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
9afa28d823f360da8d0ee23fac99b066716ef817 |
18-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug introduced by my previous patch. With this change, SPEC is now clean with prealloc splitting enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59544 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
cbad42cfd1cc93a41ff26ea2e8895bfbc09f54f2 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers. This fixes build breakage from r59540. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59542 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
90feee242584d367473331a187a50bb8490d201b |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers. This fixes build breakage from r59540. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59542 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b3b930a011554fc7566dd4311af3862b01e5fd8f |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Make some methods const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59540 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9ca19a388bc5dc39525daa039cb314642c005698 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Make some methods const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59540 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3dbc4e350216e197e3014452400f43899f7ad620 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LatencyPriorityQueue.h
|
c0612a24ef151b42f850b18cebf4e5621470a255 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LatencyPriorityQueue.h
|
331a746101aff2199c19e5a7407a5ca6a4bbdafa |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for splitting and scalarizing SCALAR_TO_VECTOR. I didn't add the testcase, because once llc gets past scalar-to-vector it hits a SPU target lowering bug and explodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59530 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
7aa3387207ff7874d7ff5fc26779d496272aea49 |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for splitting and scalarizing SCALAR_TO_VECTOR. I didn't add the testcase, because once llc gets past scalar-to-vector it hits a SPU target lowering bug and explodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59530 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
5734450d40fe5546eb98c0d856d73c3321eaf5d2 |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename stackprotector_create intrinsic to stackprotector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
0ac3670760f18a9fd67625034635737f23aa5d6d |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename stackprotector_create intrinsic to stackprotector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
51d83fdd89e6e942a4e6932cd5d02b427d2aa5aa |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Reapply r59464, this time using the correct type when softening FNEG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
6b9dc0ae60d25bf60e39a88cea20b1006d2008b6 |
18-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Reapply r59464, this time using the correct type when softening FNEG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
733bbc5320ac9d729caa8c0fe741dd516e7eda0b |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove the stackprotector_check intrinsic. Use a volatile load instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
34dfafce746dc8fb8ba8d1f5ed375f46139e731f |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove the stackprotector_check intrinsic. Use a volatile load instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
c3348a77f7e1bdc8e52a9f70fd190555df34d7c1 |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Use "moveAfter" instead of "remove/insert" of a basic block. - Use less indentation in coding. - Shorten description. - Update comments. - Move code around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59496 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
0522515907f66397c30c0a5e0aef1b556cceba47 |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Use "moveAfter" instead of "remove/insert" of a basic block. - Use less indentation in coding. - Shorten description. - Update comments. - Move code around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59496 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
6c2fe2237bf21aa4bfe05ba3135d82e66235e97d |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
e94e982a8a25092c12c3586137773da42401fc3d |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
3cc6243ddfdba3ad64035b919c88b09773a60880 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change SUnit's dump method to take a ScheduleDAG* instead of a SelectionDAG*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59488 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
2fd868d4af7961de2286df299442278c8e82408f |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change SUnit's dump method to take a ScheduleDAG* instead of a SelectionDAG*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59488 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
8f55b3d67d685214aef7ff6c9d514d0461703caf |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert r59464. It was causing this failure: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll Failed with signal(SIGABRT) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll | llc -march=xcore > fneg.ll.tmp1.s Assertion failed: (VT.isFloatingPoint() && "Cannot create integer FP constant!"), function getConstantFP, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 913. 0 llc 0x0092115c _ZN4llvm3sys18RemoveFileOnSignalERKNS0_4PathEPSs + 844 1 libSystem.B.dylib 0x9217809b _sigtramp + 43 2 ??? 0xffffffff 0x0 + 4294967295 3 libSystem.B.dylib 0x921f0ec2 raise + 26 4 libSystem.B.dylib 0x9220047f abort + 73 5 libSystem.B.dylib 0x921f2063 __assert_rtn + 101 6 llc 0x005a5b0a _ZN4llvm12SelectionDAG13getConmake[1]: *** [check-local] Error 1 make: *** [check] Error 2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
356678083b2402dc12420b71dc7f523a62e4bc20 |
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert r59464. It was causing this failure: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll Failed with signal(SIGABRT) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll | llc -march=xcore > fneg.ll.tmp1.s Assertion failed: (VT.isFloatingPoint() && "Cannot create integer FP constant!"), function getConstantFP, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 913. 0 llc 0x0092115c _ZN4llvm3sys18RemoveFileOnSignalERKNS0_4PathEPSs + 844 1 libSystem.B.dylib 0x9217809b _sigtramp + 43 2 ??? 0xffffffff 0x0 + 4294967295 3 libSystem.B.dylib 0x921f0ec2 raise + 26 4 libSystem.B.dylib 0x9220047f abort + 73 5 libSystem.B.dylib 0x921f2063 __assert_rtn + 101 6 llc 0x005a5b0a _ZN4llvm12SelectionDAG13getConmake[1]: *** [check-local] Error 1 make: *** [check] Error 2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
2d093f356007979e2e071725a98894a36c3625e0 |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Avoid using a loop in ReleasePred and ReleaseSucc methods to compute the new CycleBound value. Instead, just update CycleBound on each call. Also, make ReleasePred and ReleaseSucc methods more consistent accross the various schedulers. This also happens to make ScheduleDAGRRList's CycleBound computation somewhat more interesting, though it still doesn't have any noticeable effect, because no current targets that use the register-pressure reduction scheduler provide pipeline models. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59475 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
d963c38f1cf5c43c5450d9f1786f7894c3dbd9af |
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Avoid using a loop in ReleasePred and ReleaseSucc methods to compute the new CycleBound value. Instead, just update CycleBound on each call. Also, make ReleasePred and ReleaseSucc methods more consistent accross the various schedulers. This also happens to make ScheduleDAGRRList's CycleBound computation somewhat more interesting, though it still doesn't have any noticeable effect, because no current targets that use the register-pressure reduction scheduler provide pipeline models. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59475 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
8123419f2be881ca77a897918f28514aa4e91765 |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Eliminate some trivial differences between the ScheduleNodeTopDown functions in these two schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
ba3f99bfaef459685198bca01b645e61ca84a836 |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Eliminate some trivial differences between the ScheduleNodeTopDown functions in these two schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
7fed65a68d961eef21d4572beab64d047ece5a3e |
17-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Add soft float support for a bunch more operations. Original patch by Richard Osborne, tweaked and extended by your humble servant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
ddc609406ad28403ba7b4ac8535ef87859145501 |
17-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Add soft float support for a bunch more operations. Original patch by Richard Osborne, tweaked and extended by your humble servant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
e93483d855af7acf831d1d8c3c77ed117f0df4d3 |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Don't bother doing latency calculations in the "fast" scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
f300f31bea5de295cbae6c6afe8063b1f8da7c9d |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Don't bother doing latency calculations in the "fast" scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
2dcca9d53ec9359c554e05a38a7a5eed695b2a86 |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Use SUnit's CycleBound field instead of duplicating it in a side-car datastructure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
9a4f237b8edf129deefa26478f6b29f3da2ca40b |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Use SUnit's CycleBound field instead of duplicating it in a side-car datastructure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
104de6cf7b80ec5e9beb502a069f376810a0a1e3 |
17-Nov-2008 |
Richard Osborne <richard@xmos.com> |
Don't produce ADDC/ADDE when expanding SHL unless they are legal for the target. This fixes PR3080. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59450 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
33a8d20d065c549ab1d216c0cdfeece754a4cc57 |
17-Nov-2008 |
Richard Osborne <richard@xmos.com> |
Don't produce ADDC/ADDE when expanding SHL unless they are legal for the target. This fixes PR3080. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59450 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
6560c000a1327b6a023badafed974f35fa1bdc3b |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Don't use the isPending flag to mean what the isAvailable flag means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LatencyPriorityQueue.cpp
electionDAG/ScheduleDAGList.cpp
|
54a7f8d5164423c97e4bfda0dd51afbd7120c3d3 |
17-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Don't use the isPending flag to mean what the isAvailable flag means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LatencyPriorityQueue.cpp
electionDAG/ScheduleDAGList.cpp
|
28088d3c049017a131aa7b07201c6e19c0227cef |
17-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed legalization of CONVERT_RNDSAT for integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
59fc626007185115f2ea3bc3e604b63910312e4f |
17-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed legalization of CONVERT_RNDSAT for integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
27601ef8325f85b9677b55e3e2ca1a1368d8eee5 |
16-Nov-2008 |
Lang Hames <lhames@gmail.com> |
Big PBQP allocator update. Adds coalescing support, stack slot coloring, several bug-fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59414 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
83313effa07b838ac778bf15e8da766e7fe180b1 |
16-Nov-2008 |
Lang Hames <lhames@gmail.com> |
Big PBQP allocator update. Adds coalescing support, stack slot coloring, several bug-fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59414 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
c7849c22f4804075c0c972e20f9cd701bdb6ab6f |
16-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Improved shuffle normalization to avoid using extract/build when we can extract using different indexes for two vectors. Added a few tests for vector shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7bfa46437ed3f1fa19c4ec89a011ba5c8a3e048d |
16-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Improved shuffle normalization to avoid using extract/build when we can extract using different indexes for two vectors. Added a few tests for vector shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c529168f29a9821806af8c7096fdcfbec06343d3 |
15-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
When splitting a SHUFFLE_VECTOR, try to have the result use SHUFFLE_VECTOR instead. If not practical, fall back to the old scheme of building the split result by hand using a BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
76af8a318c4e011707034c9647690dc018bc7fd2 |
15-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
When splitting a SHUFFLE_VECTOR, try to have the result use SHUFFLE_VECTOR instead. If not practical, fall back to the old scheme of building the split result by hand using a BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
49292f16517227196e0240190b61baaa8fc4aa62 |
15-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Add missing widen operations, fixed widening for extracting a subvector, and when loading/storing a widen vector, make sure that they are loaded and stored in consecutive order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
257e1c72f0cae882edcf0da18308e6ed3c03cbd4 |
15-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Add missing widen operations, fixed widening for extracting a subvector, and when loading/storing a widen vector, make sure that they are loaded and stored in consecutive order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
14ad6fce43e09f37020483f7e33b7dfdc770cb6b |
15-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Correct a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
b7b82269d64466b7c52cd4c88071884ba870e28b |
15-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Correct a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
ade9f1893412184c164aa3eb55a3e007ec647303 |
15-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Move ScheduleDAGList's LatencyPriorityQueue class out to a separate file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/LatencyPriorityQueue.cpp
electionDAG/LatencyPriorityQueue.h
electionDAG/ScheduleDAGList.cpp
|
e008195076cbf3a50ecd36117affe2e5f39945bd |
15-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Move ScheduleDAGList's LatencyPriorityQueue class out to a separate file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CMakeLists.txt
electionDAG/LatencyPriorityQueue.cpp
electionDAG/LatencyPriorityQueue.h
electionDAG/ScheduleDAGList.cpp
|
7e6a1bc0fa35202ddfd2229821370d6061e3e1f9 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add support for building a ScheduleDAG from MachineInstrs. This is currently fairly conservative; it doesn't do alias-analysis queries and it doesn't attempt to break anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
cd41458799dea8687a71c97f84cfd1a7223c5f70 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add support for building a ScheduleDAG from MachineInstrs. This is currently fairly conservative; it doesn't do alias-analysis queries and it doesn't attempt to break anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
56c523c63b2b5d95ed61c79e1efe9de5465a7d25 |
14-Nov-2008 |
Lang Hames <lhames@gmail.com> |
Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59293 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
529bf4823231851460c3536d6fe33cf4879adbf4 |
14-Nov-2008 |
Lang Hames <lhames@gmail.com> |
Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59293 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocPBQP.cpp
|
8f6c6d4c5f7bb9ab71147c8215c3779a6bec7689 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
For post-regalloc scheduling, remove the instructions from the block before re-inserting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
f593de7686db23199053c9a4da1c2f0d33355ece |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
For post-regalloc scheduling, remove the instructions from the block before re-inserting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
90c5201dd1933d643f1e04503c21ad90c25738b4 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Check in the correct version of the patch in r59279. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
2bb4062209644d6beb7d66ed265bd4415de28bd8 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Check in the correct version of the patch in r59279. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
505a551dab05029d2c7b5dc65a879d35e03e17c1 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Debug printing for SUnits that carry MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
83f1371c48c0e2dc829f70e85ce925bb615570d8 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Debug printing for SUnits that carry MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
f449bf36ef5cb8e23fa2b5bc43f8d54d2b48fa4e |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Initial support for carrying MachineInstrs in SUnits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59278 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGPrinter.cpp
|
b807201d8b6f39491c447557e5da1e88af75c075 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Initial support for carrying MachineInstrs in SUnits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59278 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGPrinter.cpp
|
c3c129fd8b74909cad75d88223e9b5b4dc16df20 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change DOTGraphTraits<ScheduleDAG*>::getGraphName how to find the name of the current function on its own, rather than relying on the SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
0c0d6b1d9541417e7144a85cd71f3da1eb8cd796 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change DOTGraphTraits<ScheduleDAG*>::getGraphName how to find the name of the current function on its own, rather than relying on the SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
d23e0f81bc76902052e9198cad3a0d87a412a632 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove the FlaggedNodes member from SUnit. Instead of requiring each SUnit to carry a SmallVector of flagged nodes, just calculate the flagged nodes dynamically when they are needed. The local-liveness change is due to a trivial scheduling change where the scheduler arbitrary decision differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
40ae0f03c8becc9749d4339bfc7ff0b08a0202a1 |
14-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove the FlaggedNodes member from SUnit. Instead of requiring each SUnit to carry a SmallVector of flagged nodes, just calculate the flagged nodes dynamically when they are needed. The local-liveness change is due to a trivial scheduling change where the scheduler arbitrary decision differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
711fd3db2d3170263850d7ee55987ac1fb9006f3 |
13-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Don't allow the restore point to be placed after terminators. With this change, MultiSource/Applications is clean with the prealloc splitter. Some failures remain in SPEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59267 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
94a984c4c63fab2397cbfdcb1362712ab99da3e2 |
13-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Don't allow the restore point to be placed after terminators. With this change, MultiSource/Applications is clean with the prealloc splitter. Some failures remain in SPEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59267 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
550f5afb68ce8f034991863cac65bef22a6554da |
13-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Make the Node member of SUnit private, and add accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
f26ca4b36cb9d3b9075048ab49c0eddd74724cd2 |
13-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Make the Node member of SUnit private, and add accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
a23b3b803e3c65e84d6cadaa221de8b256cbe28d |
13-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change ScheduleDAG's DAG member from a reference to a pointer, to prepare for the possibility of scheduling without a SelectionDAG being present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
96c2ad2dc93bdf2cab99e51e8e274d9abaa95bd2 |
13-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change ScheduleDAG's DAG member from a reference to a pointer, to prepare for the possibility of scheduling without a SelectionDAG being present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
4a829ecc54cdcb0192550639556a18728af5119c |
13-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Use find_first/find_next to iterate through all the set bits in a BitVector, instead of manually testing each bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59246 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
a48b100da70c707c35ed54d92189ffb534e05803 |
13-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Use find_first/find_next to iterate through all the set bits in a BitVector, instead of manually testing each bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59246 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
e9e6bdf27fca46dc9eca2ebdf73e03747d1859ab |
13-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement stack protectors as function attributes: "ssp" and "sspreq". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackProtector.cpp
|
3e13ce508320205598ff9660eda7f44dc92fb99b |
13-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement stack protectors as function attributes: "ssp" and "sspreq". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackProtector.cpp
|
bc5cbb8be9d935240be5a57a8f37c5258a9d0563 |
12-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that inserts X87 FP_REG_KILL instructions from a special-purpose hook to a new pass. Also, add check to see if any x87 virtual registers are used, to avoid doing any work in the common case that no x87 code is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fd6722c180d3a39e2fc4741b4c6cd074158cc321 |
12-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that inserts X87 FP_REG_KILL instructions from a special-purpose hook to a new pass. Also, add check to see if any x87 virtual registers are used, to avoid doing any work in the common case that no x87 code is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7e298ed379d71c32d62cbfc6e8df8039b04ef895 |
12-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix unsigned char->ppcf128 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
ba99fa891b25571a2bfa8b820dd85589cf8f5c50 |
12-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix unsigned char->ppcf128 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
2d9716f7bfb701d4606a993765ea233116fe3a68 |
12-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Do the LiveVariables update before printing the instruction in the debug output, so that the updated liveness flags are reflected in the debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59147 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4db58f9bfd0ef295ee31df13e54d095787a7276f |
12-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Do the LiveVariables update before printing the instruction in the debug output, so that the updated liveness flags are reflected in the debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59147 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4cbb3ca67d8b1ca5fee7793633de052a3b8f87b2 |
12-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove some debugging code made redundant by the change to do coalescing as a separate pass rather than inside of LiveIntervalAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59146 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
eb4dc4ff7f47bfa7f94e62bf7e6a0a3b3024fd97 |
12-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove some debugging code made redundant by the change to do coalescing as a separate pass rather than inside of LiveIntervalAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59146 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1e465a35c8cd3d2ddd5e1d15fca7ffd3a8dbb565 |
12-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Simplify SplitVecRes_EXTRACT_SUBVECTOR. This means that it no longer handles non-power-of-two vectors. However it previously only handled them sometimes, depending on obscure numerical relationships between the index and vector type. For example, for a vector of length 6, it would succeed if and only if the index was an even multiple of 6. I consider this more confusing than useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
1b2cd3c0eb7f9c518c29fbd0e571ecb87571a0d1 |
12-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Simplify SplitVecRes_EXTRACT_SUBVECTOR. This means that it no longer handles non-power-of-two vectors. However it previously only handled them sometimes, depending on obscure numerical relationships between the index and vector type. For example, for a vector of length 6, it would succeed if and only if the index was an even multiple of 6. I consider this more confusing than useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
245146b58a2188eb69bcb34fc2bdf57ebbcfb278 |
12-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Correct some thinkos in the expansion of ADD/SUB when the target does not support ADDC/SUBC. This fixes PR3044. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
26e41c00cf66e45c145e866370430d259cc52e96 |
12-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Correct some thinkos in the expansion of ADD/SUB when the target does not support ADDC/SUBC. This fixes PR3044. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
cbf7cf50ecc4730563fdbbd8d03269839b445f56 |
12-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix the testb optimization so x86 also bootstraps. Reenable test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
01954eb1dc5d1b4e2c100691f9513d838a87659b |
12-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix the testb optimization so x86 also bootstraps. Reenable test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
80fe8737eb0c563d5d518434672a600492486d93 |
11-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Don't walk into predecessors in which the vreg is not live when doing shrinkwrapping. This lets several failing tests get farther along, but doesn't completely fix any of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59086 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
5e0a40208f30c1bb49826169fc6e06fb0b21b5f7 |
11-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Don't walk into predecessors in which the vreg is not live when doing shrinkwrapping. This lets several failing tests get farther along, but doesn't completely fix any of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59086 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
b13af2f2ec2fd8dc215136cf8783d70225b59f66 |
11-Nov-2008 |
Dan Gohman <gohman@apple.com> |
In ScheduleDAGRRList::CopyAndMoveSuccessors, create the SUnit for the load before creating the SUnit for the operation that it was unfolded from. This allows each SUnit to have all of its predecessor SUnits available at the time it is created. I don't know yet if this will be absolutely required, but it is a little tidier to do it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
a88910932c08ed26ce1c054c8904c3111d7f8105 |
11-Nov-2008 |
Dan Gohman <gohman@apple.com> |
In ScheduleDAGRRList::CopyAndMoveSuccessors, create the SUnit for the load before creating the SUnit for the operation that it was unfolded from. This allows each SUnit to have all of its predecessor SUnits available at the time it is created. I don't know yet if this will be absolutely required, but it is a little tidier to do it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
eb9dbf117f1cc4da9b333dd6e410638ddd974f55 |
11-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Avoid relying on the SelectionDAG for initializing the MachineFunction and TargetLoweringInfo variables for the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59082 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
fa6039013b0a8e2b7be3f3ab4ef82d2b9f8cb136 |
11-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Avoid relying on the SelectionDAG for initializing the MachineFunction and TargetLoweringInfo variables for the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59082 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
9b75b373756288cd39489da7994207f50b31ee40 |
11-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change the scheduler accessor methods to accept an explicit TargetMachine argument instead of taking the SelectionDAG's TargetMachine. This is needed for some upcoming scheduler changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59055 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
3ea46f79f1b84ea4962432e0e9d11c6b6f8b0281 |
11-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change the scheduler accessor methods to accept an explicit TargetMachine argument instead of taking the SelectionDAG's TargetMachine. This is needed for some upcoming scheduler changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59055 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
ae89bb14431c6df4f784ae1af7019e72ec79b3ca |
11-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix for PR3040: The CC was changed, but wasn't checked to see if it was legal if the DAG combiner was being run after legalization. Threw in a couple of checks just to make sure that it's okay. As far as the PR is concerned, no back-end target actually exhibited this problem, so there isn't an associated testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0d810b851101882da0f7fe85a1e6604875ba51a7 |
11-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix for PR3040: The CC was changed, but wasn't checked to see if it was legal if the DAG combiner was being run after legalization. Threw in a couple of checks just to make sure that it's okay. As far as the PR is concerned, no back-end target actually exhibited this problem, so there isn't an associated testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
00ec49b6bafc33ee17d97ec1c723e1edb41d4c97 |
11-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Cleaned up and fix bugs in convert_rndsat node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
2db81e0008fac6b3e715de44ed2cdd7e05cf97ed |
11-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Cleaned up and fix bugs in convert_rndsat node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
22511ed2feeea786dba9fb5a07c0e6431dec0e32 |
11-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Small simplification. Use the iterator already present as the insertion point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59008 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
1b32875b6a3f8959c2875b9c0e6d5fd27fc45037 |
11-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Small simplification. Use the iterator already present as the insertion point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59008 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
d0ab34bf8feb7633b70158b571425577670b6326 |
10-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r58979 and related patch. It's causing a failure in X86 bootstrap: Comparing stages 2 and 3 warning: ./cc1-checksum.o differs warning: ./cc1obj-checksum.o differs warning: ./cc1objplus-checksum.o differs warning: ./cc1plus-checksum.o differs Bootstrap comparison failure! ./alias.o differs ./alloc-pool.o differs ./attribs.o differs ./bb-reorder.o differs ./bitmap.o differs ./build/errors.o differs ./build/genattrtab.o differs ./build/genautomata.o differs ./build/genemit.o differs ./build/genextract.o differs ... -bw git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59003 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e3facb7e72c6de38ed4695ce9265e8429dd5b471 |
10-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r58979 and related patch. It's causing a failure in X86 bootstrap: Comparing stages 2 and 3 warning: ./cc1-checksum.o differs warning: ./cc1obj-checksum.o differs warning: ./cc1objplus-checksum.o differs warning: ./cc1plus-checksum.o differs Bootstrap comparison failure! ./alias.o differs ./alloc-pool.o differs ./attribs.o differs ./bb-reorder.o differs ./bitmap.o differs ./build/errors.o differs ./build/genattrtab.o differs ./build/genautomata.o differs ./build/genemit.o differs ./build/genextract.o differs ... -bw git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59003 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7205677a46d02867004826218942dab3b466c926 |
10-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Make sure that we don't over-increment the iterator when going through the basic blocks. - Minor code clean-up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59002 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
a91e782e2ecd238b105d1ec407f483711f196571 |
10-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Make sure that we don't over-increment the iterator when going through the basic blocks. - Minor code clean-up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59002 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
77cdf30742284a173fe818417eb482224cdee8d4 |
10-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added CONVERT_RNDSAT (conversion with rounding and saturation) SDNode to support targets that support these conversions. Users should avoid using this node as the current targets don't generating code for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
73d315484a82788131218d90af6d32b156a39bff |
10-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added CONVERT_RNDSAT (conversion with rounding and saturation) SDNode to support targets that support these conversions. Users should avoid using this node as the current targets don't generating code for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
f5092245102297e91656e0e471778f0875a8bc66 |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2667: add soft float support for sint_to_fp/uint_to_fp where the argument is an apint, or smaller than the minimum size for which there is a libcall (i32). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
781c1022125e777ed05420efad4fd997ecedcd9a |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2667: add soft float support for sint_to_fp/uint_to_fp where the argument is an apint, or smaller than the minimum size for which there is a libcall (i32). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
cff50d9e20d7bbc3acf4845fe826bfb3095126c4 |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Tweak some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
81311d9869e1a94fb9f044b0b921d0d2b736823e |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Tweak some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
|
6959b2bb6521baca57e5507ca039e51002d4a971 |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Small cleanups. No functionality change intended! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
dfb8bce12880d202cc65904a78e4e50d14a3c403 |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Small cleanups. No functionality change intended! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
a29c13086a3add78a3a79f744573fe09eaa9dc88 |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
When promoting the result of fp_to_uint/fp_to_sint, inform the optimizers that the result must be zero/ sign extended from the smaller type. For example, if a fp to unsigned i16 is promoted to fp to i32, then we are allowed to assume that the extra 16 bits are zero (because the result of fp to i16 is undefined if the result does not fit in an i16). This is quite aggressive, but should help the optimizers produce better code. This requires correcting a test which thought that fp_to_uint is some kind of truncation, which it is not: in the testcase (which does fp to i1), either the fp value converts to 0 or 1 or the result is undefined, which is quite different to truncation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
0fc01e49e560d197ec97b64070b868a9a2fda727 |
10-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
When promoting the result of fp_to_uint/fp_to_sint, inform the optimizers that the result must be zero/ sign extended from the smaller type. For example, if a fp to unsigned i16 is promoted to fp to i32, then we are allowed to assume that the extra 16 bits are zero (because the result of fp to i16 is undefined if the result does not fit in an i16). This is quite aggressive, but should help the optimizers produce better code. This requires correcting a test which thought that fp_to_uint is some kind of truncation, which it is not: in the testcase (which does fp to i1), either the fp value converts to 0 or 1 or the result is undefined, which is quite different to truncation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
baf26b2d3eb848dec25fcdd710dc2dd4ab6e2426 |
10-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Really fix testb optimization on big-endian. Fixes ppc32 bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58979 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6d844dfe4b5fe8f2e006644fd29b3853874ab097 |
10-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Really fix testb optimization on big-endian. Fixes ppc32 bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58979 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
aeb06d246254e4829a49164a11eacced9a43d9d4 |
10-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for the following definition of shufflevector <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
bff5d9cff3bbbb98a757451a8890ae71f189e82b |
10-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for the following definition of shufflevector <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
a64f463fb90c66406033e3fd1dc912b648bad328 |
10-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
eliminate a couple more uses of utohexstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58963 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
83b7a2ce11a71372f6e14b0f7fd96a3ec7e67d55 |
10-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
eliminate a couple more uses of utohexstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58963 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
c6a1346d7c6bb761f9e6c2c85b53febba1cb15db |
10-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Use utohex_buffer instead of utohexstr to avoid creating a temporary string in the .ll and .s printers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
da2047ee487e8342040019bd836e63e436f6b04a |
10-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Use utohex_buffer instead of utohexstr to avoid creating a temporary string in the .ll and .s printers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4d557e4872b47b9f9ce340110c7d4a04779c8dc6 |
10-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Fix an over aggressive assumption that struct decls will have a pointer to an array that is empty. Instead of requiring this array, allow a null pointer. This shrinks all forward references of structs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58959 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
e9533d94907bbbbd8b995ec3c7a8b5c20bdc10a2 |
10-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Fix an over aggressive assumption that struct decls will have a pointer to an array that is empty. Instead of requiring this array, allow a null pointer. This shrinks all forward references of structs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58959 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
ced4900578cb72b58b7de9e798c2644713da8a52 |
09-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Temporarily revert 58825, which breaks PPC bootstrap. xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6a98f7dab19aa9768d60632b925eb25cb19f51bf |
09-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Temporarily revert 58825, which breaks PPC bootstrap. xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0b45c9957fb7ad47e653fb43d455f6727170dad0 |
09-Nov-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Temporary revert my last commit: it seems it's triggering some subtle bug in backend and breaks llvm-gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58926 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a0880c082b31450617b7089c362ffaaf9b490a8d |
09-Nov-2008 |
asl <asl@91177308-0d34-0410-b5e6-96231b3b80d8> |
Temporary revert my last commit: it seems it's triggering some subtle bug in backend and breaks llvm-gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58926 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
059b2dbd902233e1bbd040ec8c18c66b4186bb0e |
08-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Try to produce better code when scalarizing VSETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
6146330f84863002ca1be04c137736efe6ccd81c |
08-Nov-2008 |
baldrick <baldrick@91177308-0d34-0410-b5e6-96231b3b80d8> |
Try to produce better code when scalarizing VSETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
0f569535676325a94981881eba6f8c7e61630992 |
08-Nov-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out offset printing code into generic AsmPrinter. FIXME: it seems, that most of targets don't support offsets wrt CPI/GlobalAddress', was it intentional? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58917 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
dbe42758a93dd74acd64dc5c88f7fc0708740143 |
08-Nov-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out offset printing code into generic AsmPrinter. FIXME: it seems, that most of targets don't support offsets wrt CPI/GlobalAddress', was it intentional? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58917 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
ce4a70bd7608861e104b04265a0c71e5df8ecefe |
08-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ptr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58897 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
2c3267a14d9e81b7507ef2d9d7ea8b3bc5f7efe0 |
08-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ptr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58897 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
b514ac9e3cddb3663c74afcf7bfa359a867e2780 |
08-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Make testb optimization work on big-endian targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58874 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
3903271ec1ff3226e558541f6bb61247b7316f1c |
08-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Make testb optimization work on big-endian targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58874 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
53e4e4478c69c2c2115db833b54385117c764d14 |
07-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Make FP tests requiring two compares work on PPC (PR 642). This is Chris' patch from the PR, modified to realize that SETUGT/SETULT occur legitimately with integers, plus two fixes in LegalizeDAG to pass a valid result type into LegalizeSetCC. The argument of TLI.getSetCCResultType is ignored on PPC, but I think I'm following usage elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
32100b20ab5bcaf518d4758fd249f3296ca04f9d |
07-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Make FP tests requiring two compares work on PPC (PR 642). This is Chris' patch from the PR, modified to realize that SETUGT/SETULT occur legitimately with integers, plus two fixes in LegalizeDAG to pass a valid result type into LegalizeSetCC. The argument of TLI.getSetCCResultType is ignored on PPC, but I think I'm following usage elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
47b3417cf0d90724f9dab71aae4c7204e46847b6 |
07-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Sign-extend rather than zero-extend when promoting the condition for a BRCOND, according to what is returned by getSetCCResultContents. Since all targets return the same thing (ZeroOrOneSetCCResult), this should be harmless! The point is that all over the place the result of SETCC is fed directly into BRCOND. On machines for which getSetCCResultContents returns ZeroOrNegativeOneSetCCResult, this is a sign-extended boolean. So it seems dangerous to also feed BRCOND zero-extended booleans in some circumstances - for example, when promoting the condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
8a772a7a83233e255fd4714f684e076a4d917c6d |
07-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Sign-extend rather than zero-extend when promoting the condition for a BRCOND, according to what is returned by getSetCCResultContents. Since all targets return the same thing (ZeroOrOneSetCCResult), this should be harmless! The point is that all over the place the result of SETCC is fed directly into BRCOND. On machines for which getSetCCResultContents returns ZeroOrNegativeOneSetCCResult, this is a sign-extended boolean. So it seems dangerous to also feed BRCOND zero-extended booleans in some circumstances - for example, when promoting the condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
bc3c4296c03c6b9aee3cce68ae33279f5ad5ca2b |
07-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix unsigned->ppcf128 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
e07c44ae031c85ba413eafecce1db7f67bb07228 |
07-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix unsigned->ppcf128 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
cab3e68136b20a10cb0fe8ad97874bacf27dda7d |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Refactor code that adjusts the offsets of stack objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58829 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
5d07201bf71baf4dd777cd025cdf158f63614352 |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Refactor code that adjusts the offsets of stack objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58829 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
89217a6f1852e764e58c489872b2d155dc2b7b8b |
07-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
When we're doing a compare of load-AND-constant to 0 (e.g. a bitfield test) narrow the load as much as possible. The has the potential to avoid unnecessary partial-word load-after-store conflicts, which cause stalls on several targets. Also a size win on x86 (testb vs testl). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58825 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d0a7c0eb006563aa47d9e4338986c7766b191a2c |
07-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
When we're doing a compare of load-AND-constant to 0 (e.g. a bitfield test) narrow the load as much as possible. The has the potential to avoid unnecessary partial-word load-after-store conflicts, which cause stalls on several targets. Also a size win on x86 (testb vs testl). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58825 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b7c6ebcb4732302310cfaca81e1d26c3802c1646 |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Modify the stack protector algorithm so that the stack slot is allocated in LLVM IR code and not in the selection DAG ISel. This is a cleaner solution. - Fix the heuristic for determining if protectors are necessary. The previous one wasn't checking the proper type size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
8126a3f4f8d04e45f8fa21d4c76c128477ac4398 |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Modify the stack protector algorithm so that the stack slot is allocated in LLVM IR code and not in the selection DAG ISel. This is a cleaner solution. - Fix the heuristic for determining if protectors are necessary. The previous one wasn't checking the proper type size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
848693c254c1fc4d4956cbe1778b244bb035e0a0 |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove unneeded header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58823 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
964ac23a91de827cec2288bce323754b3b7e1783 |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove unneeded header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58823 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
1fb615f820ee0ff415e78b25ef583a430c86a743 |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't build a vector of returns. Just modify the Function in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58822 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
d7fff9f79e48e0ca658827cd636caca350a092c9 |
07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't build a vector of returns. Just modify the Function in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58822 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
e0b436ac41a00bc210163964d3cf393c8b487c9e |
06-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed scalarizing an extract subvector and prevent an infinite loop when simplify a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58820 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
927daf5880231a034bd58f899d30a03a553b4135 |
06-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed scalarizing an extract subvector and prevent an infinite loop when simplify a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58820 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
703ccfe0538a30d674b52fdbb4f5debf9b062354 |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
The size limit is for individual arrays. So if any array has more than 8 bytes in it, then emit stack protectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58819 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
d5f8bf6d182ee2e047e856f742901f24afc0115b |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
The size limit is for individual arrays. So if any array has more than 8 bytes in it, then emit stack protectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58819 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
44cf38c01ff610139d2e8dbbdc4e6123a3debcdd |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't recalculate the stack position of the stack protector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58815 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
dc6fe9591da15104cc88c567d0135fa60a7f9321 |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't recalculate the stack position of the stack protector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58815 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e75808cf3d92d14c5659a15d0d17bd21a54fd8cc |
06-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Emit label for llvm.dbg.func.start of the inlined function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ed00d01712c891c40d5bac5ece79e787c67b6a63 |
06-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Emit label for llvm.dbg.func.start of the inlined function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b951aec3adf4ac34aa311c912ed8a7f6b437eaa5 |
06-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Formating/comment changes - no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
951507e9c2202c58069cb8dc370736aef826f960 |
06-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Formating/comment changes - no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
4c3a1d8d2be313f1b322f680801fec262a2480c6 |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}. - Get rid of "HasStackProtector" in MachineFrameInfo. - Modify intrinsics to tell which are doing what with memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58799 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
06e5d3351b0d7210d7d2580d09523f36a11eb442 |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}. - Get rid of "HasStackProtector" in MachineFrameInfo. - Modify intrinsics to tell which are doing what with memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58799 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
f007a8b931e229eb325319c97363be8507311e2e |
06-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Widening cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58796 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
a5a239f87ef90c0dd8b0c26553c8d81f5c1d7933 |
06-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Widening cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58796 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
89c5cc6c793ca420194c94361e1c6dacb6d7c446 |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Adjust the stack protector heuristic to care about only arrays or calls to "alloca". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58792 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
0afac862633bf0999d2e30169fa33ea7efa357e2 |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Adjust the stack protector heuristic to care about only arrays or calls to "alloca". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58792 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
b2a4298ce41e7ef80cd75a3c1dfa6433f0759a1a |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the stack protector stack accesses via intrinsics: - stackprotector_prologue creates a stack object and stores the guard there. - stackprotector_epilogue reads the stack guard from the stack position created by stackprotector_prologue. - The PrologEpilogInserter was changed to make sure that the stack guard is first on the stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58791 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
6d54ef9e36818ddb12805e5ae0fe4c97ef9088ef |
06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the stack protector stack accesses via intrinsics: - stackprotector_prologue creates a stack object and stores the guard there. - stackprotector_epilogue reads the stack guard from the stack position created by stackprotector_prologue. - The PrologEpilogInserter was changed to make sure that the stack guard is first on the stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58791 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
electionDAG/SelectionDAGBuild.cpp
tackProtector.cpp
|
20dd0460a1b8fe9119949434a9dbe8bdd443c13d |
06-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Emit label for llvm.dbg.func.start of the inlined function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
1fdfdd61f34c1db1a20205cfa3e2dfb36404cff4 |
06-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Emit label for llvm.dbg.func.start of the inlined function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c45cb9f739bd5d541576212f1e0cc2689a731ab8 |
05-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix thinko in ppcf128 expansion of truncating store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
54a71130f1da5f0a73d1f2f118e566efcd97ff2e |
05-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix thinko in ppcf128 expansion of truncating store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
3eb57d54395a979f8d16ca39cd41214a5daa55ea |
05-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Type of shuffle mask has changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4fdfdac468ce40d1270773ba5929b8c54646d892 |
05-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Type of shuffle mask has changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1508606ee80b9289d3c7c8121e67d9e744e2b4f2 |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58741 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
d2824d1564aa2c4dc98c5a4efb5fd500d2479939 |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58741 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
fa75dc647cbe09c43169658106713a57409d0faf |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Simplify the allocated size calculation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58740 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
085362b0724f5ba71b4d492be73919ce6c60613d |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Simplify the allocated size calculation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58740 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
f0eaa9a233e6162aab4b2a2b5bfc63d6f94b9384 |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58739 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
71b251cf14a20ac9ffe5f5b084c51fae8fa46d5d |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58739 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
b214c6971bbe5c2982210880cdec786e87eef044 |
05-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Use the new predicate to control when we do prealloc splitting. Fix a small bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58738 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
3be0e1377e52646a286bb44113588b51d1ec8b90 |
05-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Use the new predicate to control when we do prealloc splitting. Fix a small bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58738 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
613f77439eb6e1f660e615e0e851187da13255ae |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Some code simplification. It now doesn't generate a prologue if the epilogue isn't going to be generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58734 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
d57982b115903dd90275a36182f2a65a68a063b1 |
05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Some code simplification. It now doesn't generate a prologue if the epilogue isn't going to be generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58734 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
4a3a8511827ecdee7e606bdd4dc3733dcac41064 |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Small simplification of the stack guard type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58728 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
46276d4bc766cb644abacb08e9701e96cf77c274 |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Small simplification of the stack guard type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58728 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
b7c2c1246f10972d5a8f55499226872608eb10f9 |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to "getOrInsertFunction" in that it either adds a new declaration of the global and returns it, or returns the current one -- optionally casting it to the correct type. - Use the new getOrInsertGlobal in the stack protector code. - Use "splitBasicBlock" in the stack protector code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58727 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
38d8b692b1e0f2bf02aa01b374d87fb89398599e |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to "getOrInsertFunction" in that it either adds a new declaration of the global and returns it, or returns the current one -- optionally casting it to the correct type. - Use the new getOrInsertGlobal in the stack protector code. - Use "splitBasicBlock" in the stack protector code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58727 91177308-0d34-0410-b5e6-96231b3b80d8
tackProtector.cpp
|
f1f75b1bd12d6badad382f473929a4b744010e2f |
04-Nov-2008 |
Owen Anderson <resistor@mac.com> |
First pass at checking for the creation of a new join point when doing pre-alloc splitting. This is not turned on yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58726 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
39e964c006a818b0e7066c9079c15b20e1ce7ec7 |
04-Nov-2008 |
Owen Anderson <resistor@mac.com> |
First pass at checking for the creation of a new join point when doing pre-alloc splitting. This is not turned on yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58726 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
80a320d974dae7666157e80b141d7ff97e5f6544 |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Update in response to feedback from Chris: - Use enums instead of magic numbers. - Rework algorithm to use the bytes size from the target to determine when to emit stack protectors. - Get rid of "propolice" in any comments. - Renamed an option to its expanded form. - Other miscellanenous changes. More changes will come after this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58723 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackProtector.cpp
|
30ef3e3027f2149c6a36ca49fa6dc59b2cd2b7f9 |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Update in response to feedback from Chris: - Use enums instead of magic numbers. - Rework algorithm to use the bytes size from the target to determine when to emit stack protectors. - Get rid of "propolice" in any comments. - Renamed an option to its expanded form. - Other miscellanenous changes. More changes will come after this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58723 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackProtector.cpp
|
53997b07451a28582a8bb55716e13fc1bcd5c838 |
04-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
96db7964fa0ee232a849ded20412a4623950e388 |
04-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
20d629cb904fd5df05046a2eb43227a96d843448 |
04-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix typo. Patch by nlewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58709 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
5c2a51a9cc0482ef67141dd6cebff6a32585f18c |
04-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix typo. Patch by nlewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58709 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e59416efb8472ee95c4500a94d2048c585faff6d |
04-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR3011: LegalizeTypes support for scalarizing SELECT_CC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58706 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
e9027151b73c74aec6ad0cf17f58c8618c623167 |
04-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR3011: LegalizeTypes support for scalarizing SELECT_CC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58706 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
7ecbfd115721c282b3b67c64d02b2ca0f000608c |
04-Nov-2008 |
Nuno Lopes <nunoplopes@sapo.pt> |
fix leakage of IfcvtTokens git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58690 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
06cea78008f26eac9b94320470af75271360dd73 |
04-Nov-2008 |
Nuno Lopes <nunoplopes@sapo.pt> |
fix leakage of IfcvtTokens git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58690 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
5c42fd8af13538a8159dfeb8e66549b2a3ec7c76 |
04-Nov-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Updated list of source files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58676 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
a1bd78067768185fec3bc9b19b9e45e05c4472a1 |
04-Nov-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Updated list of source files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58676 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
2b58ce5ab4e22e796303d68fb246d4031cb5d4ca |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Initial checkin for stack protectors. Here's what it does: * The prologue is modified to read the __stack_chk_guard global and insert it onto the stack. * The epilogue is modified to read the stored guard from the stack and compare it to the original __stack_chk_guard value. If they differ, then the __stack_chk_fail() function is called. * The stack protector needs to be first on the stack (after the parameters) to catch any stack-smashing activities. Front-end support will follow after a round of beta testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58673 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackProtector.cpp
|
dac9f71432ae43f8d46f6453e784697740211581 |
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Initial checkin for stack protectors. Here's what it does: * The prologue is modified to read the __stack_chk_guard global and insert it onto the stack. * The epilogue is modified to read the stored guard from the stack and compare it to the original __stack_chk_guard value. If they differ, then the __stack_chk_fail() function is called. * The stack protector needs to be first on the stack (after the parameters) to catch any stack-smashing activities. Front-end support will follow after a round of beta testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58673 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
tackProtector.cpp
|
283c6965d09affb93a9374a6a179cb0f6d188513 |
03-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix some ppcf128 regressions: make ExpandFloatRes_LOAD work correctly, and bring over a late change to ppcf128 SetCC handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
c96f6595bb4ac76190ba026cd5676931ca654652 |
03-Nov-2008 |
Dale Johannesen <dalej@apple.com> |
Fix some ppcf128 regressions: make ExpandFloatRes_LOAD work correctly, and bring over a late change to ppcf128 SetCC handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
d821726a91000c1b2de7ca8aafdc27b1a311741b |
03-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Make VAARG promotion work correctly with large funky sized integers like i129, and also reduce the number of assumptions made about how vaarg is implemented. This still doesn't work correctly for small integers like (eg) i1 on x86, since x86 passes each of them (essentially an i8) in a 4 byte stack slot, so the pointer needs to be advanced by 4 bytes not by 1 byte as now. But this is no longer a LegalizeTypes problem (it was also wrong in LT before): it is a bug in the operation expansion in LegalizeDAG: now LegalizeTypes turns an i1 vaarg into an i8 vaarg which would work fine if only the i8 vaarg was turned into correct code later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
5fb4d16b308b1b3c1b0fa1f2144ee2021085da73 |
03-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Make VAARG promotion work correctly with large funky sized integers like i129, and also reduce the number of assumptions made about how vaarg is implemented. This still doesn't work correctly for small integers like (eg) i1 on x86, since x86 passes each of them (essentially an i8) in a 4 byte stack slot, so the pointer needs to be advanced by 4 bytes not by 1 byte as now. But this is no longer a LegalizeTypes problem (it was also wrong in LT before): it is a bug in the operation expansion in LegalizeDAG: now LegalizeTypes turns an i1 vaarg into an i8 vaarg which would work fine if only the i8 vaarg was turned into correct code later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
5c58a3168f006aaacf2e9c6a69dde86b630d783e |
03-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Make VAARG work with x86 long double (which is 10 bytes long, but is passed in 12/16 bytes). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
55a4c235ee0ddb4df64c73533b3456137a571b4b |
03-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Make VAARG work with x86 long double (which is 10 bytes long, but is passed in 12/16 bytes). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
06140888b1fed24910031f23c302c6a3221f3c42 |
03-Nov-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
Make MachineFrameInfo::print not crash when no TargetFrameInfo is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58606 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
0e9ee537da8f468fdaf31b65e9042f8f87a7bf2a |
03-Nov-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
Make MachineFrameInfo::print not crash when no TargetFrameInfo is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58606 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
ae61ca02061cc500cb9f093a492899658249a245 |
03-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Revert my last patch until I consult with Evan about it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58591 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
fa309532ac70b5ecb8c76588624b9adb700d0609 |
03-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Revert my last patch until I consult with Evan about it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58591 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
6423c6c0e8e85d843750f9563180ef7bcfca56c6 |
02-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Don't do pre-splitting if doing so would create a value join that did not exist before. Updating the live intervals in that care is tricky in the general case. Evan, if you see a tighter guard condition for this, let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58560 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
81909382e966a1ebbbfd598f18fa78a817d7460e |
02-Nov-2008 |
Owen Anderson <resistor@mac.com> |
Don't do pre-splitting if doing so would create a value join that did not exist before. Updating the live intervals in that care is tricky in the general case. Evan, if you see a tighter guard condition for this, let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58560 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
3efcd4a65cdf41ec72205757421dca6026e92a19 |
01-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added interface to allow clients to create a MemIntrinsicNode for target intrinsics that touches memory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
9de70a1e5ffa0273beeaa08e73cc2981bf00864f |
01-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added interface to allow clients to create a MemIntrinsicNode for target intrinsics that touches memory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ed532cac7c65a617accdbc1fc7622b1c40110baf |
31-Oct-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Invalidate debug/eh/gc labels when unreachable MBB is deleted. Based on patch by Martin Nowack! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58536 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
2c56ce040686096368f7c67ecb5df635da092fe5 |
31-Oct-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Invalidate debug/eh/gc labels when unreachable MBB is deleted. Based on patch by Martin Nowack! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58536 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
87e82f00adb6628ed6368db1eac7d944489287ff |
31-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Remove some unused virtual function bodies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0e4acb0606028d79952ec34c77e42480cb413ca8 |
31-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Remove some unused virtual function bodies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f7c094000f4baf094b1d60ba68a5b4e0193c502a |
31-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert r58489. It isn't correct for all cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58523 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
957b205a5b586b214d95ad04ca16ea9abc91f878 |
31-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert r58489. It isn't correct for all cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58523 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
36f3adfe7f10bc79a01f990b3d34caaa22519e1a |
31-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58514 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
b288b9933f201e7189810ef22b960a6dd27f0ad4 |
31-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58514 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
06f0aff69eb0289bdba19a364132bc522f44feba |
31-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Add a bunch of libcalls for ppcf128 that were somehow completely forgotten about when writing LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
9f9eef8c9803bb584f480b5057383f72cdc8a814 |
31-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Add a bunch of libcalls for ppcf128 that were somehow completely forgotten about when writing LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
f6a9988ceab0ca660fa4f4e89d8d683f487118eb |
31-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't skip over all "terminator" instructions when determining where to put the callee-saved restore code. It could skip over conditional jumps accidentally. Instead, just skip the "return" instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58489 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c6d417d5e9a5e3c51fdbb05d7baf4fb30eddb0fb |
31-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't skip over all "terminator" instructions when determining where to put the callee-saved restore code. It could skip over conditional jumps accidentally. Instead, just skip the "return" instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58489 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3d0f5afefb2c8be6233c2bcebdcf57a5c0b2b9a2 |
30-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2986: do not use a potentially illegal type for the shift amount type. Add a check that shifts and rotates use the type returned by getShiftAmountTy for the amount. This exposed some problems in CellSPU and PPC, which have already been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5bb3f8d5b27776c7e048767617a37c4f13bfdd72 |
30-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2986: do not use a potentially illegal type for the shift amount type. Add a check that shifts and rotates use the type returned by getShiftAmountTy for the amount. This exposed some problems in CellSPU and PPC, which have already been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2eb13c347f0e76d1e9306225b972a7d050d8a461 |
30-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Add missing vsetcc expansion for widening git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
42ac14ede1e1d08976ce1ad7d3270e8ab8222f55 |
30-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Add missing vsetcc expansion for widening git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0c39719bfc7d0b3e61fbd55e1115184a1d5f6ae7 |
30-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Add initial support for vector widening. Logic is set to widen for X86. One will only see an effect if legalizetype is not active. Will move support to LegalizeType soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
1448aadd407aedbca9a93234d3bc814f8d9a90e2 |
30-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Add initial support for vector widening. Logic is set to widen for X86. One will only see an effect if legalizetype is not active. Will move support to LegalizeType soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
b99e740d71b68153284669c42ae9421d0f7e1cc2 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Uniformize capitalization of NodeId. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
560946481ef1aaa704e2916bcaf7f1b904ffb666 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Uniformize capitalization of NodeId. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
21c2972f7d24680f6475877a3398b7f8cf515b33 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2977: LegalizeTypes support for expanding VAARG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58379 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
cbd6d28608cebf2ecaf3d2ebf19a02815f0bcec4 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2977: LegalizeTypes support for expanding VAARG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58379 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
d22ec5f62813f8cf2ed8091f44a14377209b1a59 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Add sanity checking for BUILD_PAIR (I noticed the other day that PPC custom lowering could create a BUILD_PAIR of two f64 with a result type of... f64! - already fixed). Fix a place that triggers the sanity check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
70269a7a6f7b6ac70a87210f281e806f95abcaeb |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Add sanity checking for BUILD_PAIR (I noticed the other day that PPC custom lowering could create a BUILD_PAIR of two f64 with a result type of... f64! - already fixed). Fix a place that triggers the sanity check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
54898938673d2a13ce31626ec34b2d4d314b2c81 |
29-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
- More pre-split fixes: spill slot live interval computation bug; restore point bug. - If a def is spilt, remember its spill index to allow its reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58375 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
egAllocLinearScan.cpp
|
29f36f5d687460958f6f00f34e859f868e7f1f03 |
29-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
- More pre-split fixes: spill slot live interval computation bug; restore point bug. - If a def is spilt, remember its spill index to allow its reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58375 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
egAllocLinearScan.cpp
|
23b10f5b64e594aa7c6b415805b563fed2a75874 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a FIXME: in ReplaceNodeWith, if the new node is morphed by AnalyzeNewNode into a previously processed node, and different result values of that node are remapped to values with different nodes, then we could end up using wrong values here [we were assuming that all results remap to values with the same underlying node]. This seems theoretically possible, but I don't have a testcase. The meat of the patch is in the changes to AnalyzeNewNode/AnalyzeNewValue and ReplaceNodeWith. While there, I changed names like RemapNode to RemapValue, since it really remaps values. To tell the truth, I would be much happier if we were only remapping nodes (it would simplify a bunch of logic, and allow for some cute speedups) but I haven't yet worked out how to do that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
f8b23a3dfdf76a2c1d6d4db8a4408e882d610f56 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a FIXME: in ReplaceNodeWith, if the new node is morphed by AnalyzeNewNode into a previously processed node, and different result values of that node are remapped to values with different nodes, then we could end up using wrong values here [we were assuming that all results remap to values with the same underlying node]. This seems theoretically possible, but I don't have a testcase. The meat of the patch is in the changes to AnalyzeNewNode/AnalyzeNewValue and ReplaceNodeWith. While there, I changed names like RemapNode to RemapValue, since it really remaps values. To tell the truth, I would be much happier if we were only remapping nodes (it would simplify a bunch of logic, and allow for some cute speedups) but I haven't yet worked out how to do that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
b3bc6352defdf1a5c6b1b0770d0c4d603f6524a8 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix 80 column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
b3e36986c7a65419988d35aba50716a1b80a25a8 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix 80 column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
86813ce5faa68e96e2454b5ce267fefdbe5d2482 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix 80 column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
38f05add3b9540f15fea1008b1b3df7797499f24 |
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix 80 column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
d0e32c5d5c1bb03bc0cc8aeef52728724cab1c51 |
29-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Rewrite code that update register live interval that's split. - Create and update spill slot live intervals. - Lots of bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58367 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
|
84f9fc23f3def9f81fa3c7d852669e21b458db46 |
29-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Rewrite code that update register live interval that's split. - Create and update spill slot live intervals. - Lots of bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58367 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
egAllocLinearScan.cpp
|
2275105edbee89df8f5a68655ee75c9a5f169dbb |
28-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Take Chris' suggestion and define EnableFastISelVerbose and EnableFastISelAbort variables for Release mode instead of using ifdefs in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8c71fc169443e27dfda09d243156bea44320f67d |
28-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Take Chris' suggestion and define EnableFastISelVerbose and EnableFastISelAbort variables for Release mode instead of using ifdefs in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
727809ad8a826f26b757747ae2a329b49e5449b3 |
28-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Protect the code for fast-isel debugging with #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
71d2e68fd8fb435d7d2c7d01e4d447ee24afeb3f |
28-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Protect the code for fast-isel debugging with #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
57760d96e2dfb485dc53fe2799df24bd18157abb |
28-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix darwin ppc llvm-gcc build breakage: intercept ppcf128 to i32 conversion and expand it into a code sequence like in LegalizeDAG. This needs custom ppc lowering of FP_ROUND_INREG, so turn that on and make it work with LegalizeTypes. Probably PPC should simply custom lower the original conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
ff258b1c72545025b47c7004c13200b12d6e9c1a |
28-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix darwin ppc llvm-gcc build breakage: intercept ppcf128 to i32 conversion and expand it into a code sequence like in LegalizeDAG. This needs custom ppc lowering of FP_ROUND_INREG, so turn that on and make it work with LegalizeTypes. Probably PPC should simply custom lower the original conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
1acb29c8ead8b7a6ac5dd63720711d397ac25ad9 |
28-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a testcase provided by Bill in which the node id could end up being wrong mostly because of forgetting to remap new nodes that morphed into processed nodes through CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
a216df9021c13c7d7a266cb3748ebfbf613cf057 |
28-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a testcase provided by Bill in which the node id could end up being wrong mostly because of forgetting to remap new nodes that morphed into processed nodes through CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
6e1c6231ba93ed7590c62ef0f94d0d9443b598ed |
28-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Don't produce invalid comparisons after legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ab74bd7f241dbf14ebaa42544e09b466d322f6e |
28-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Don't produce invalid comparisons after legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7fe5e1812f5d018784d5186ccb31525665e61863 |
28-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
fix some whitespace stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58319 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
23d3bdf695a0f8445e7701053e9e0b58d79ee7af |
28-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
fix some whitespace stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58319 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1f08cc2d2bc0c9369ecb0e3f90cce7c362c3924e |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
If def is in the same mbb as the barrier, spilt the value after the last use before the barrier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58314 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
12b56d105596320195e98f8cb41763e76b51e915 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
If def is in the same mbb as the barrier, spilt the value after the last use before the barrier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58314 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
ae7fa5bef1bd8ff4cee120dae2e4388184410ad2 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add command line option to limit the number splits to help debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58312 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
fabf6990866a891cedf16b28abf09e64a3c5f120 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add command line option to limit the number splits to help debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58312 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
f62ce370a48e1621af7934e668c215b8109cddb7 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58309 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
6d9d96ebabf2c7793987b55d509fab87b9c5a297 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58309 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
985921e8469f356c357e09744ad515a668f4e411 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Silence a bogus compile time warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58297 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
dffc5553bb77d000aeec616ed7506f152d83875f |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Silence a bogus compile time warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58297 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
b3990d5e948769a16d4ee77dbdff8a2bed8fb126 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove val# defined by a remat'ed def that is now dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58294 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
c00c2a29f47ae0597f156a486238f64a8888a498 |
28-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove val# defined by a remat'ed def that is now dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58294 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
8e7fa916fe87733b3660466b3a1c91d650c473d3 |
27-Oct-2008 |
Ted Kremenek <kremenek@apple.com> |
Fix bogus comparison of "const char *" with c-string literal. Use strcmp instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58290 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
b2b229296a53bc439b39e83e77038e6e1d3e7309 |
27-Oct-2008 |
Ted Kremenek <kremenek@apple.com> |
Fix bogus comparison of "const char *" with c-string literal. Use strcmp instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58290 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449a |
27-Oct-2008 |
David Greene <greened@obbligato.org> |
Add setSubgraphColor to color an entire portion of a SelectionDAG. This will be used to support debug features in TableGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58257 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
f361483f2908b47e25d34d92ea8f4f1bdf6033cc |
27-Oct-2008 |
David Greene <greened@obbligato.org> |
Add setSubgraphColor to color an entire portion of a SelectionDAG. This will be used to support debug features in TableGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58257 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
26b86a0b5676253040dc206b437536a24306fb76 |
27-Oct-2008 |
David Greene <greened@obbligato.org> |
Fix PR2634. Create new virtual registers from spills early so that we can give it the same stack slot as the spilled interval if it is folded. This prevents the fold/unfold code from pointing to the wrong register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58255 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e269f3e8027cd51778969878c559fda7a61d3d33 |
27-Oct-2008 |
David Greene <greened@obbligato.org> |
Fix PR2634. Create new virtual registers from spills early so that we can give it the same stack slot as the spilled interval if it is folded. This prevents the fold/unfold code from pointing to the wrong register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58255 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0dc4045bd27c177416745d2e72277b0a92c3ab83 |
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix UpdateNodeOperands so that it does CSE of calls (and a bunch of other node types). While there, I added a doNotCSE predicate and used it to reduce code duplication (some of the duplicated code was wrong...). This fixes ARM/cse-libcalls.ll when using LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1e450d4efe652b56a781e7f72dc6ac644e75eee6 |
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix UpdateNodeOperands so that it does CSE of calls (and a bunch of other node types). While there, I added a doNotCSE predicate and used it to reduce code duplication (some of the duplicated code was wrong...). This fixes ARM/cse-libcalls.ll when using LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
20f04e9fdd437712b323661e5041fd88431185b3 |
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a bug in which a node could be added to the worklist twice: UpdateNodeOperands could morph a new node into a node already on the worklist. We would then recalculate the NodeId for this existing node and add it to the worklist. The testcase is ARM/cse-libcalls.ll, the problem showing up once UpdateNodeOperands is taught to do CSE for calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58246 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
f7502644a25e6a0f6dbb473cabbc794ece7029bc |
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a bug in which a node could be added to the worklist twice: UpdateNodeOperands could morph a new node into a node already on the worklist. We would then recalculate the NodeId for this existing node and add it to the worklist. The testcase is ARM/cse-libcalls.ll, the problem showing up once UpdateNodeOperands is taught to do CSE for calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58246 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
7cb07874dcadaa9a5082a80959cd15d44ba3a133 |
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Turn on LegalizeTypes, the new type legalization codegen infrastructure, by default. Please report any breakage to the mailing lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58232 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b3ac388fda3d4b5c6446603377af0a0f70b64b4b |
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Turn on LegalizeTypes, the new type legalization codegen infrastructure, by default. Please report any breakage to the mailing lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58232 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
23066288fdf4867f53f208f9aaf2952b1c049394 |
27-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58230 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
0e4a5a9653ad945f2bafca958f531ba99f04dd98 |
27-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58230 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
622addbe49ffdc611adb315fb22756e23fe7b222 |
27-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Increase default setting of tail-merge-threshold to 150, based on llvm-test measurements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58225 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2d9dfcec6a381b55619edee6906b2e4b5ff664ba |
27-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Increase default setting of tail-merge-threshold to 150, based on llvm-test measurements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58225 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
aaf510c932cf194fef5e877b19283176e2608f08 |
26-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58184 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
c06da70d3c2a2af123f9f1b5df4696b7a3d5b96e |
26-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58184 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
79d5b5acaec05cf2caba02ed023427da959e0b11 |
26-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Handle cases where there aren't uses in the barrier mbb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58174 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
843211e66e9ac4917d053ac834fd09703857bf80 |
26-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Handle cases where there aren't uses in the barrier mbb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58174 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
048ca55dc1b667b99060ce16a4891b36e950cf73 |
25-Oct-2008 |
Dan Gohman <gohman@apple.com> |
SDNodes may have at most one Flag result. Update this comment to reflect that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
f175adeedcb8608432b89a60836915599ce7a29a |
25-Oct-2008 |
Dan Gohman <gohman@apple.com> |
SDNodes may have at most one Flag result. Update this comment to reflect that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
71b7f646de0d9e74198534d4a7b6059e6031ed59 |
25-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that adds the DeadMachineInstructionElimPass from target-independent code to target-specific code. This prevents it from running on targets that aren't using fast-isel. In addition to saving compile time, this addresses the problem that not all targets are prepared for it. In order to use this pass, all instructions must declare all their fixed uses and defs of physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58144 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
0e66ce8c280e799c5dcca85833ff8cf4e285a9f0 |
25-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that adds the DeadMachineInstructionElimPass from target-independent code to target-specific code. This prevents it from running on targets that aren't using fast-isel. In addition to saving compile time, this addresses the problem that not all targets are prepared for it. In order to use this pass, all instructions must declare all their fixed uses and defs of physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58144 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
78dfef771b2552090be60bee404570c2a0b03bcb |
25-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
If val# def is ~0U, meaning it's defined by a PHI, and it's previously split, spill before the barrier because it's impossible to determine if all the defs are spilled in the same spill slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58129 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
c75704b9210873e6eb3b5cea8aa8dfb155d993ac |
25-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
If val# def is ~0U, meaning it's defined by a PHI, and it's previously split, spill before the barrier because it's impossible to determine if all the defs are spilled in the same spill slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58129 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
56ab0def902940d6eee7b8eb668f974e78f3dcbb |
24-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58102 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
158c68b641d14333ea0854c9f695035e5bf2cd7a |
24-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58102 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
2efe3fd79a751eabe1664109a004af45dca99274 |
24-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a end() dereference; remove an abort() that wasn't meant to be left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58072 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
e98f0b53c2d8668e5f3c9efeaf8dd1c1062ecc8c |
24-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a end() dereference; remove an abort() that wasn't meant to be left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58072 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
06587497dc1c39516f24784a2ac1d9323faae0a5 |
24-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58068 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
|
9cd7ff0080f6a134b4486f91d01bebede77086c1 |
24-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58068 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
reAllocSplitting.cpp
|
fea90880302fc7b6d588292ae0e55d33ebe80f12 |
24-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Initialize uninitialized variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
92434a5a9a62d7ac97f7d04673fb5f2153497931 |
24-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Initialize uninitialized variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f5cd4f0d70f2da83626cb1eeefe4ae10382c584d |
23-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Committing a good chunk of the pre-register allocation live interval splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58044 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
egAllocLinearScan.cpp
|
99dcc17645bb82310acdb4ed2be5c2c29ff52e90 |
23-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Committing a good chunk of the pre-register allocation live interval splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58044 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
egAllocLinearScan.cpp
|
ee4c619b3b28a42078fc8033e5dccd42fc6edd42 |
23-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix thinko - the operand number has nothing to do with the result number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58041 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
8a833bbc77fc1cabef96050117a9b39a1ea75926 |
23-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix thinko - the operand number has nothing to do with the result number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58041 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
2cbe7fe3963e603c1485b1378b7e29ef63f31442 |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes soft-float support for fpow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57973 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
e2fbf68c95cf19db979a7a5a55b3e433d0231334 |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes soft-float support for fpow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57973 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
f9410141f703f4e8a6aba717617ef958249f6d13 |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Be nice to CellSPU: for this target getSetCCResultType may return i8, which can result in SELECT nodes for which the type of the condition is i8, but there are no patterns for select with i8 condition. Tweak the LegalizeTypes logic to avoid this as much as possible. This isn't a real fix because it is still perfectly possible to end up with such select nodes - CellSPU needs to be fixed IMHO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57968 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
4bbfd9eff6dc0bfa1e6903daed81d90035bf36f5 |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Be nice to CellSPU: for this target getSetCCResultType may return i8, which can result in SELECT nodes for which the type of the condition is i8, but there are no patterns for select with i8 condition. Tweak the LegalizeTypes logic to avoid this as much as possible. This isn't a real fix because it is still perfectly possible to end up with such select nodes - CellSPU needs to be fixed IMHO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57968 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
29a2822f287275a0d4df49f98104409d8f97c5df |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Port from LegalizeDAG the logic to only generate ADDC/ADDE/SUBC/SUBE if the target supports it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
a89355ea88b78b4f91e1002d7139498a3b2b01cb |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Port from LegalizeDAG the logic to only generate ADDC/ADDE/SUBC/SUBE if the target supports it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
3b521d5acccf4fecdb1aea878180df6dc29553dc |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Add some comments explaining the meaning of a boolean that is not of type MVT::i1 in SELECT and SETCC nodes. Relax the LegalizeTypes SELECT condition promotion sanity checks to allow other condition types than i1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57966 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
98d6d7f04679c7f27374b62bddd229472cbea032 |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Add some comments explaining the meaning of a boolean that is not of type MVT::i1 in SELECT and SETCC nodes. Relax the LegalizeTypes SELECT condition promotion sanity checks to allow other condition types than i1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57966 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
0954aefd81c7aa80c0e29408610add1e793c1c44 |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Temporarily allow the operands of a BUILD_VECTOR to have a different type to the vector element type. This should be fairly harmless because in the past guys like this were being built all over the place (and were cleaned up when I added this check). The reason for relaxing this check is that it helps LegalizeTypes legalize vector shuffles: the mask is a BUILD_VECTOR that it is *not always possible* to legalize while keeping it a BUILD_VECTOR (vector_shuffle requires the mask to be a BUILD_VECTOR, as opposed to a vector with the right vector type). With this check it is even harder to legalize the mask - turning the check off means that LegalizeTypes manages to legalize almost all vector shuffles encountered in practice. The correct solution is to change vector_shuffle to be a variadic node with the mask built into it as operands. While waiting for that change, this hack stops the problem with vector_shuffle from blocking the turning on of LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
944d0d515fd58645a0b8487e6cbe6bb36a4e73fe |
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Temporarily allow the operands of a BUILD_VECTOR to have a different type to the vector element type. This should be fairly harmless because in the past guys like this were being built all over the place (and were cleaned up when I added this check). The reason for relaxing this check is that it helps LegalizeTypes legalize vector shuffles: the mask is a BUILD_VECTOR that it is *not always possible* to legalize while keeping it a BUILD_VECTOR (vector_shuffle requires the mask to be a BUILD_VECTOR, as opposed to a vector with the right vector type). With this check it is even harder to legalize the mask - turning the check off means that LegalizeTypes manages to legalize almost all vector shuffles encountered in practice. The correct solution is to change vector_shuffle to be a variadic node with the mask built into it as operands. While waiting for that change, this hack stops the problem with vector_shuffle from blocking the turning on of LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3b0da26e202cbbeb22508231f4278bda8e995391 |
22-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Move Print*Pass to use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57946 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
3b475e99db65dccb5b816af218f3335573e7f526 |
22-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Move Print*Pass to use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57946 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f4db3a51c7d806f7dcef5d9625e7cdf7f122dca9 |
22-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Privatize PrintModulePass and PrintFunctionPass and add createPrintModulePass and createPrintFunctionPass. - So clients who compile w/o RTTI can use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57933 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1363a6d0e5daa5ab8ff2670825f9e8a34123defa |
22-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Privatize PrintModulePass and PrintFunctionPass and add createPrintModulePass and createPrintFunctionPass. - So clients who compile w/o RTTI can use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57933 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1c15bf58a3700d40a6a88ac0ce14a2c99f111483 |
21-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Add an SSE2 algorithm for uint64->f64 conversion. The same one Apple gcc uses, faster. Also gets the extreme case in gcc.c-torture/execute/ieee/rbug.c correct which we weren't before; this is not sufficient to get the test to pass though, there is another bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a359b8be7ad658bdea432fac228660abd853f7fc |
21-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Add an SSE2 algorithm for uint64->f64 conversion. The same one Apple gcc uses, faster. Also gets the extreme case in gcc.c-torture/execute/ieee/rbug.c correct which we weren't before; this is not sufficient to get the test to pass though, there is another bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7ea1ca6229ca228a1a3a0ff453c3530bf4f7a26e |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix SelectionDAGBuild lowering of Select instructions to handle first-class aggregate values. Also, fix a bug in the Ret handling for empty aggregates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7916059195b219af68a826c8244efbe35cd79301 |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix SelectionDAGBuild lowering of Select instructions to handle first-class aggregate values. Also, fix a bug in the Ret handling for empty aggregates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4401361a2fb92c82317dbfbb1616f54ced2b51f3 |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't create TargetGlobalAddress nodes with offsets that don't fit in the 32-bit signed offset field of addresses. Even though this may be intended, some linkers refuse to relocate code where the relocated address computation overflows. Also, fix the sign-extension of constant offsets to use the actual pointer size, rather than the size of the GlobalAddress node, which may be different, for example on x86-64 where MVT::i32 is used when the address is being fit into the 32-bit displacement field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3d5257c35a463f6bc443139bdb84f94cd53299db |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't create TargetGlobalAddress nodes with offsets that don't fit in the 32-bit signed offset field of addresses. Even though this may be intended, some linkers refuse to relocate code where the relocated address computation overflows. Also, fix the sign-extension of constant offsets to use the actual pointer size, rather than the size of the GlobalAddress node, which may be different, for example on x86-64 where MVT::i32 is used when the address is being fit into the 32-bit displacement field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
279c22e6da2612f024b70e5509ffb0cad32f38b2 |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Optimized FCMP_OEQ and FCMP_UNE for x86. Where previously LLVM might emit code like this: ucomisd %xmm1, %xmm0 setne %al setp %cl orb %al, %cl jne .LBB4_2 it now emits this: ucomisd %xmm1, %xmm0 jne .LBB4_2 jp .LBB4_2 It has fewer instructions and uses fewer registers, but it does have more branches. And in the case that this code is followed by a non-fallthrough edge, it may be followed by a jmp instruction, resulting in three branch instructions in sequence. Some effort is made to avoid this situation. To achieve this, X86ISelLowering.cpp now recognizes FCMP_OEQ and FCMP_UNE in lowered form, and replace them with code that emits two branches, except in the case where it would require converting a fall-through edge to an explicit branch. Also, X86InstrInfo.cpp's branch analysis and transform code now knows now to handle blocks with multiple conditional branches. It uses loops instead of having fixed checks for up to two instructions. It can now analyze and transform code generated from FCMP_OEQ and FCMP_UNE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57873 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6a00fcb240adf82a3bd82068da70150ddb832407 |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Optimized FCMP_OEQ and FCMP_UNE for x86. Where previously LLVM might emit code like this: ucomisd %xmm1, %xmm0 setne %al setp %cl orb %al, %cl jne .LBB4_2 it now emits this: ucomisd %xmm1, %xmm0 jne .LBB4_2 jp .LBB4_2 It has fewer instructions and uses fewer registers, but it does have more branches. And in the case that this code is followed by a non-fallthrough edge, it may be followed by a jmp instruction, resulting in three branch instructions in sequence. Some effort is made to avoid this situation. To achieve this, X86ISelLowering.cpp now recognizes FCMP_OEQ and FCMP_UNE in lowered form, and replace them with code that emits two branches, except in the case where it would require converting a fall-through edge to an explicit branch. Also, X86InstrInfo.cpp's branch analysis and transform code now knows now to handle blocks with multiple conditional branches. It uses loops instead of having fixed checks for up to two instructions. It can now analyze and transform code generated from FCMP_OEQ and FCMP_UNE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57873 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
3afda6e9d1a74456b9baa87ee6aabbc06e356433 |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
When the coalescer is doing rematerializing, have it remove the copy instruction from the instruction list before asking the target to create the new instruction. This gets the old instruction out of the way so that it doesn't interfere with the target's rematerialization code. In the case of x86, this helps it find more cases where EFLAGS is not live. Also, in the X86InstrInfo.cpp, teach isSafeToClobberEFLAGS to check to see if it reached the end of the block after scanning each instruction, instead of just before. This lets it notice when the end of the block is only two instructions away, without doing any additional scanning. These changes allow rematerialization to clobber EFLAGS in more cases, for example using xor instead of mov to set the return value to zero in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57872 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
3588f9d4ef8b209133e73ea01fd961e0187ba279 |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
When the coalescer is doing rematerializing, have it remove the copy instruction from the instruction list before asking the target to create the new instruction. This gets the old instruction out of the way so that it doesn't interfere with the target's rematerialization code. In the case of x86, this helps it find more cases where EFLAGS is not live. Also, in the X86InstrInfo.cpp, teach isSafeToClobberEFLAGS to check to see if it reached the end of the block after scanning each instruction, instead of just before. This lets it notice when the end of the block is only two instructions away, without doing any additional scanning. These changes allow rematerialization to clobber EFLAGS in more cases, for example using xor instead of mov to set the return value to zero in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57872 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e7d238ea239e6ab8a2c60ecd27468f3cfc1bb08b |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Make the NaN test come second, heuristically assuming that NaNs are less common. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2b5b9ca56863e3614be22708e7a3fd9faffcdc71 |
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Make the NaN test come second, heuristically assuming that NaNs are less common. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7334b1521018651bf04d3da8d612cc9f2da506a8 |
21-Oct-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: updated lib/CodeGen/CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57869 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
67825b038298c790f78857579d4c5dd3b91e589f |
21-Oct-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: updated lib/CodeGen/CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57869 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
01426e1a2755b05330b55b93f91887f5ff816adb |
21-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Fix gcc.c-torture/compile/920520-1.c by inserting bitconverts for strange asm conditions earlier. In this case, we have a double being passed in an integer reg class. Convert to like sized integer register so that we allocate the right number for the class (two i32's for the f64 in this case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57862 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ea90c03309ef37e00fec1e716a4858fd4988213b |
21-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Fix gcc.c-torture/compile/920520-1.c by inserting bitconverts for strange asm conditions earlier. In this case, we have a double being passed in an integer reg class. Convert to like sized integer register so that we allocate the right number for the class (two i32's for the f64 in this case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57862 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
09e8ca8a582bb67ef290d77d9b9441716dd6ba2e |
20-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton for the pre-register allocation live interval splitting pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57847 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
c8cbbe7231e7d0fb6d726a1d2a6dec78d063ed07 |
20-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton for the pre-register allocation live interval splitting pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57847 91177308-0d34-0410-b5e6-96231b3b80d8
reAllocSplitting.cpp
|
d659d50482e2f9edf8f436e4a1aa30c68c6d020b |
20-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fast-isel no longer an experiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eec72ed75d960ab7aabb7237423de6b76d1f332b |
20-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fast-isel no longer an experiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
11a26f3697ea6520022ea6d3fa6a07b3c1b988cd |
20-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a register class -> virtual registers map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57844 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
913e09cf1ccc60b3f17c0b4f2651ff4552b4188b |
20-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a register class -> virtual registers map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57844 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
d398672dddc50704ba7c4adbcf7dc99bd14c0108 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Support operations like fp_to_uint with a vector result type when the result type is legal but not the operand type. Add additional support for EXTRACT_SUBVECTOR and CONCAT_VECTORS, needed to handle such cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
07ac448d483e6f7837ffa972e087411371e1c324 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Support operations like fp_to_uint with a vector result type when the result type is legal but not the operand type. Add additional support for EXTRACT_SUBVECTOR and CONCAT_VECTORS, needed to handle such cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
b5f68e241f9eb19e5694131df830acbfce20a6eb |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for atomic operation promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
8d9c9b001d90b6c011bca4b595555ef9bdf4fb01 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for atomic operation promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
49c18cce976c158e86f54c681dff21bb81640fb8 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Use DAG.getIntPtrConstant rather than DAG.getConstant with TLI.getPointerTy for a small simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57837 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
5fa796a3be8ed1e2a521831f49b920d2fb07916f |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Use DAG.getIntPtrConstant rather than DAG.getConstant with TLI.getPointerTy for a small simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57837 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
7e4982287591945c4e42ba8470a978e629789c76 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Always use either MVT::i1 or getSetCCResultType for the condition of a SELECT node. Make sure that the correct extension type (any-, sign- or zero-extend) is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
678a5fdedab06c815e8ff202b9019e1901dd1db9 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Always use either MVT::i1 or getSetCCResultType for the condition of a SELECT node. Make sure that the correct extension type (any-, sign- or zero-extend) is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
ef5b199905cee0b78eb30cd44836e5b6ca5cbd09 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Formatting - no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
7a9bef005a465114a8534e2994259e43ad588549 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Formatting - no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
f6e29499ac036821e7f84e264663c24888d68c78 |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Don't use a random type for the select condition, use an MVT::i1 and simplify the code while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57833 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
0550cf01c9935b08bd0ee8b24bdd8541f8ecc9af |
20-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Don't use a random type for the select condition, use an MVT::i1 and simplify the code while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57833 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
a1dc6025422cd0e6f951c69a8427f7f885cf52c3 |
19-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Set N->OperandList to 0 after deletion. Otherwise, it's possible that it will be either deleted or referenced afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b75ddd25cb1230b44712407776a34f7872c92edd |
19-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Set N->OperandList to 0 after deletion. Otherwise, it's possible that it will be either deleted or referenced afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
181b627f62613190322b69b9e73c20a4ec322dba |
19-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment. Other formatting changes. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57785 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
229224601309248f899e8e697c00448f92ccad2d |
19-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment. Other formatting changes. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57785 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0e3da1def46ae4925d811406f9e67f0c45d5b597 |
19-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Vector shuffle mask elements may be "undef". Handle this everywhere in LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
704e72b7b766bd03aec122657a18cdfa063c8cba |
19-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Vector shuffle mask elements may be "undef". Handle this everywhere in LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
94989acaabec94d3b09367e218536629cbba666d |
19-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Use a legal integer type for vector shuffle mask elements. Otherwise LegalizeTypes will, reasonably enough, legalize the mask, which may result in it no longer being a BUILD_VECTOR node (LegalizeDAG simply ignores the legality or not of vector masks). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57782 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
193c2bd82f1087b21c77f875777aa28aeaab5248 |
19-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Use a legal integer type for vector shuffle mask elements. Otherwise LegalizeTypes will, reasonably enough, legalize the mask, which may result in it no longer being a BUILD_VECTOR node (LegalizeDAG simply ignores the legality or not of vector masks). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57782 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2a0b96c2c74ca23460d51ac6531c5d3f0b75d076 |
18-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Reapply r57699 with a fix to not crash on asms with multiple results. Unlike the previous patch this one actually passes make check. "Fix PR2356 on PowerPC: if we have an input and output that are tied together that have different sizes (e.g. i32 and i64) make sure to reserve registers for the bigger operand." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57771 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
75dc779d8bcf4d202b0445a47f4b9352edc81945 |
18-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Reapply r57699 with a fix to not crash on asms with multiple results. Unlike the previous patch this one actually passes make check. "Fix PR2356 on PowerPC: if we have an input and output that are tied together that have different sizes (e.g. i32 and i64) make sure to reserve registers for the bigger operand." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57771 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
668aff66232d17731153c5af1cc45aa4d351f00b |
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't truncate GlobalAddress offsets to int in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57770 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
cfe43231d222ccf266c31b0d1027645d77075c24 |
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't truncate GlobalAddress offsets to int in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57770 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
4ed4329c37f5a64c16ad4dc1960cbcb66b7118d4 |
18-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
By min, I mean max. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57766 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
eb6a3eea2e71e95a2dc2075dda0a086423c8f7bf |
18-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
By min, I mean max. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57766 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
99fe34b9b2bb8786da6c7f6134ae17d4c2cd8bf7 |
18-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
When creating intervals, leave min(1, numdefs) holes after each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57765 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
37e6ae51dbdfad69d581fb28f426b45f994269b3 |
18-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
When creating intervals, leave min(1, numdefs) holes after each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57765 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6520e20e4fb31f2e65e25c38b372b19d33a83df4 |
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Teach DAGCombine to fold constant offsets into GlobalAddress nodes, and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.) This allows instruction selection to emit folded constant offsets in more cases, such as the included testcase, eliminating the need for explicit arithmetic instructions. This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp that attempted to achieve the same effect, but wasn't as effective. Also, fix handling of offsets in GlobalAddressSDNodes in several places, including changing GlobalAddressSDNode's offset from int to int64_t. The Mips, Alpha, Sparc, and CellSPU targets appear to be unaware of GlobalAddress offsets currently, so set the hook to false on those targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
36322c7717f7af5790ea0e64ce3d332e2df15060 |
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Teach DAGCombine to fold constant offsets into GlobalAddress nodes, and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.) This allows instruction selection to emit folded constant offsets in more cases, such as the included testcase, eliminating the need for explicit arithmetic instructions. This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp that attempted to achieve the same effect, but wasn't as effective. Also, fix handling of offsets in GlobalAddressSDNodes in several places, including changing GlobalAddressSDNode's offset from int to int64_t. The Mips, Alpha, Sparc, and CellSPU targets appear to be unaware of GlobalAddress offsets currently, so set the hook to false on those targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
95915730de69342d3733f5c391779ae007eb3efa |
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Revert r57699. It's causing regressions in test/CodeGen/X86/2008-09-17-inline-asm-1.ll and a few others, and it breaks the llvm-gcc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0d946af84c2a30b411cf0411a8b74d933a952e6c |
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Revert r57699. It's causing regressions in test/CodeGen/X86/2008-09-17-inline-asm-1.ll and a few others, and it breaks the llvm-gcc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c227734855b615f5b09060e7ea67f697de08fc7e |
17-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for mapping LLVM IR condition opcodes to ISD condition opcodes into helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
001eaee0a205b03ea236ada116c0359a2144d22f |
17-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for mapping LLVM IR condition opcodes to ISD condition opcodes into helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
af42fe36acaf21958bd283f7327a068bbd1016ba |
17-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2898. Spiller delete a store for reuse before it knows for sure the reuse happened. Patch by Lang Hames! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57720 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
1e0089b9a671694a4640b769bebbbb001875befb |
17-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2898. Spiller delete a store for reuse before it knows for sure the reuse happened. Patch by Lang Hames! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57720 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
cfc14c153a3e233c329394f148d83cd6862a51a6 |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
add support for 128 bit aggregates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f1aaff6a3ba4c3ca31010ce8865b3b586dc238ef |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
add support for 128 bit aggregates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a9f0cc4ced61589c5a045016dc51061af54bac20 |
17-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
The Dwarf writer was comparing mangled and unmangled names for C++ code when we have an unreachable block in a function. This was triggering the assert. This is a horrid hack to cover this up. Oh! for a good debug info architecture! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
ae6b98cd73e13829e9796d87cf4120bebba93770 |
17-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
The Dwarf writer was comparing mangled and unmangled names for C++ code when we have an unreachable block in a function. This was triggering the assert. This is a horrid hack to cover this up. Oh! for a good debug info architecture! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57714 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
c4d1021ead43cfa7da08a8f7ddc9a059a8ba14c5 |
17-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Added MemIntrinsicNode which is useful to represent target intrinsics that touches memory and need an associated MemOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
89423383c11a0373a34fe3e4029313dd356dd71b |
17-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Added MemIntrinsicNode which is useful to represent target intrinsics that touches memory and need an associated MemOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8c1a6ca22ab247dc5c493fe815f75b1e77f2c686 |
17-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for mapping LLVM IR condition opcodes to ISD condition opcodes into helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
9a1b1c45278755db308de410e62792d9d9a4552f |
17-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for mapping LLVM IR condition opcodes to ISD condition opcodes into helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0c52644cd8e46ca4c9caa6c51d43f97a2de8c5f5 |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Fix PR2356 on PowerPC: if we have an input and output that are tied together that have different sizes (e.g. i32 and i64) make sure to reserve registers for the bigger operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a92185de521df0e6fa4ad9e01a20105570c35295 |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Fix PR2356 on PowerPC: if we have an input and output that are tied together that have different sizes (e.g. i32 and i64) make sure to reserve registers for the bigger operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
81249c95ceff7bc7b9160d1535b916de01bc472e |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
refactor some code into a helper method, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
2532688e2e50f9ea1bdea285900b3d41fef59cdd |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
refactor some code into a helper method, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6bdcda3d3e30003fb6cef1d4e2fd3a5d5b40d3fc |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Keep track of *which* input constraint matches an output constraint. Reject asms where an output has multiple input constraints tied to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57687 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
efec324270c75c7a48a7444a0692701fefabc99c |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Keep track of *which* input constraint matches an output constraint. Reject asms where an output has multiple input constraints tied to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57687 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
58f15c482a7129c78ca809792b46befa20ea337d |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
add an assert so that PR2356 explodes instead of running off an array. Improve some minor comments, refactor some helpers in AsmOperandInfo. No functionality change for valid code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
01f5354c1dfcc0d172b341aa8d9aeeb0dccd9065 |
17-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
add an assert so that PR2356 explodes instead of running off an array. Improve some minor comments, refactor some helpers in AsmOperandInfo. No functionality change for valid code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
6784598895c184889b82a9d213c307c70b1ea444 |
17-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a very subtle spiller bug: UpdateKills should not forget to track defs of aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57673 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ac16652af53d156bcae1e35cd7bd68b6ef1fb9b3 |
17-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a very subtle spiller bug: UpdateKills should not forget to track defs of aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57673 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
74feef261a43392bc85280f66c75fbd4e2ccf73d |
17-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Define patterns for shld and shrd that match immediate shift counts, and patterns that match dynamic shift counts when the subtract is obscured by a truncate node. Add DAGCombiner support for recognizing rotate patterns when the shift counts are defined by truncate nodes. Fix and simplify the code for commuting shld and shrd instructions to work even when the given instruction doesn't have a parent, and when the caller needs a new instruction. These changes allow LLVM to use the shld, shrd, rol, and ror instructions on x86 to replace equivalent code using two shifts and an or in many more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57662 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
921581d2d000e0aa882f9dee8a104ef8a4b07e72 |
17-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Define patterns for shld and shrd that match immediate shift counts, and patterns that match dynamic shift counts when the subtract is obscured by a truncate node. Add DAGCombiner support for recognizing rotate patterns when the shift counts are defined by truncate nodes. Fix and simplify the code for commuting shld and shrd instructions to work even when the given instruction doesn't have a parent, and when the caller needs a new instruction. These changes allow LLVM to use the shld, shrd, rol, and ror instructions on x86 to replace equivalent code using two shifts and an or in many more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57662 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
131161bc6e490624ab3b906d5a5233050dae4a99 |
16-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Rename AliasSet to SubRegs, to reflect changes in the surrounding code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57618 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
d0d1fd280b45c1e17ce6d96f9bf006fe2ba2ca79 |
16-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Rename AliasSet to SubRegs, to reflect changes in the surrounding code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57618 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
7ddcadc7ee18b8e4edd3524d2a24837688880233 |
16-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Move the include of MachineLocation.h into MachineModuleInfo.h because it declares a std::vector<MachineMove>, and strict concept checking requires the definition of MachineMove to be available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57617 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
2e23d13879e88b0ac24bf3392dd7cd475b2400c3 |
16-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Move the include of MachineLocation.h into MachineModuleInfo.h because it declares a std::vector<MachineMove>, and strict concept checking requires the definition of MachineMove to be available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57617 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
b382c4dc235b78b606b305f1913fafc20eca472c |
16-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix a subtle bug in DeadMachineInstructionElim's liveness computation. A def of a register doesn't necessarily kill live super-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57614 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
995183622ed4a26abd74d0cdf18c7a1c34150ff8 |
16-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix a subtle bug in DeadMachineInstructionElim's liveness computation. A def of a register doesn't necessarily kill live super-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57614 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
26367472a204219b67ba7686f39f91470b6d2c24 |
15-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Adjust whitespace in debug messages to be more consistent with other debug messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57543 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
tackSlotColoring.cpp
|
d743014980ac5af4c9aa03de4afe5088cc7537a9 |
15-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Adjust whitespace in debug messages to be more consistent with other debug messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57543 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
tackSlotColoring.cpp
|
7f042681764c6f8eae22781d8b4cb4c218a86b76 |
15-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Add target lowering hooks that specify which setcc conditions are illegal, i.e. conditions that cannot be checked with a single instruction. For example, SETONE and SETUEQ on x86. - Teach legalizer to implement *illegal* setcc as a and / or of a number of legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ. - Move x86 target over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
7134382d9a2c5cf0c0b722d8f6074e3864050353 |
15-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Add target lowering hooks that specify which setcc conditions are illegal, i.e. conditions that cannot be checked with a single instruction. For example, SETONE and SETUEQ on x86. - Teach legalizer to implement *illegal* setcc as a and / or of a number of legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ. - Move x86 target over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
dd5b58ad7be78be90390074f0df138778af5c895 |
15-Oct-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for exception-handling constructs. - Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57539 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
9dd43585e4e77ab8e7d3bb7e5d399b210cf1282c |
15-Oct-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for exception-handling constructs. - Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57539 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
0329466b6b4927f4e6f5d144891fef06a027fec5 |
14-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename LoadX to LoadExt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
08c171a5541b033a603674fa0179259714d985a3 |
14-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename LoadX to LoadExt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
b8cab9227a0f6ffbdaae33e3c64268e265008a6a |
14-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix command-line option printing to print two spaces where needed, instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57521 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
egAllocSimple.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
irtRegMap.cpp
|
669b9bf656d0bdb22bee268c4dec5eb3b3add6d0 |
14-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix command-line option printing to print two spaces where needed, instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57521 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
egAllocSimple.cpp
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
irtRegMap.cpp
|
efa533957dfdc29be6de3845158ebd5fa7391485 |
13-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
FIX PR2794. Make sure SIGN_EXTEND_INREG nodes introduced by LegalizeSetCCOperands are leglized. Patch by Richard Pennington. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d901b6640e0f1d1757a2db9fb57a140ad828ea75 |
13-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
FIX PR2794. Make sure SIGN_EXTEND_INREG nodes introduced by LegalizeSetCCOperands are leglized. Patch by Richard Pennington. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
195cd3a58d17f1c98352c6d944549b6c3a50aa1b |
13-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Also update sub-register intervals after a trivial computation is rematt'ed for a copy instruction. PR2775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57458 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0f970c89f6bfd1222688f9d281900b9e8d094496 |
13-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Also update sub-register intervals after a trivial computation is rematt'ed for a copy instruction. PR2775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57458 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d9d07780ff0d393a34cbd57cd2b85bdd8c947a04 |
13-Oct-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
* Make TargetLowering not crash when TargetMachine::getTargetAsmInfo() returns null. This assumes that any target that does not have AsmInfo, does not support "LocAndDot". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b9333ccdd5658c826f2c7bdd6a542343eed56871 |
13-Oct-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
* Make TargetLowering not crash when TargetMachine::getTargetAsmInfo() returns null. This assumes that any target that does not have AsmInfo, does not support "LocAndDot". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e2b997b7b5360b4793c524a801e988fd37b80b93 |
13-Oct-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
Make MachineFunction not crash when TargetMachine::getRegisterInfo() returns NULL, but just hide some debug output then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57437 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
1cb065e859626fa8d13394beca889eec32398f2c |
13-Oct-2008 |
Matthijs Kooijman <matthijs@stdin.nl> |
Make MachineFunction not crash when TargetMachine::getRegisterInfo() returns NULL, but just hide some debug output then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57437 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
44d2a983b76a2a923e34f3162c960443425cb296 |
13-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
calls can be supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
61d84a0c78345d74dee403b7658f77abaec63b75 |
13-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
calls can be supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d55fccde4cc8a263f668c2f1db7fbe96fc19d4a6 |
12-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug in live-in detection that caused lost-copy problems to show up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57424 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
775b7bab28aefb91092248d299e78088940645f6 |
12-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug in live-in detection that caused lost-copy problems to show up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57424 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
99cbdff66c6a1f35e83f8103bf444ddab61fcb59 |
12-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57388 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0f2b3c676568572d60d2f93fac02eca0a035f7fb |
12-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57388 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e563bbc312f8b11ecfe12b8187176f667df1dff3 |
12-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Change CALLSEQ_BEGIN and CALLSEQ_END to take TargetConstant's as parameters instead of raw Constants. This prevents the constants from being selected by the isel pass, fixing PR2735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57385 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fe5d4021d0884e4cb94a7bb688fa0b02950ee29c |
12-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Change CALLSEQ_BEGIN and CALLSEQ_END to take TargetConstant's as parameters instead of raw Constants. This prevents the constants from being selected by the isel pass, fixing PR2735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57385 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3c261016692314d907dbcdc70da1bf4a968436a9 |
11-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
simplify comparison git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
de1dd9c6d28db027e12c564827dd0f6aaf4feab7 |
11-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
simplify comparison git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8b1e0549389e4c360ac95f50da95d5009553b447 |
10-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Remove some overzealous checks that were rejecting valid comments in inline assembly. gcc.target/i386/20011009-1.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
8b0e117a9da2c201d6fe994c010f24d4ea5f0ff3 |
10-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Remove some overzealous checks that were rejecting valid comments in inline assembly. gcc.target/i386/20011009-1.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57365 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
5ca6bd14a00ba5310ce1a632d3a0cc8f8af31433 |
10-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Added missing print functions that take a raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57339 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2f2cd30d01931e235b3f11a20264b8346f92192f |
10-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Added missing print functions that take a raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57339 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
23a98551ab65eeb8fe5019df8b7db4891582a4bd |
10-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Add a "loses information" return value to APFloat::convert and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
|
6e547b4aeea29737f4aecad5b2cdaccb86989c20 |
10-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Add a "loses information" return value to APFloat::convert and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/FastISel.cpp
electionDAG/SelectionDAG.cpp
|
7111b02c734c992b8c97d9918118768026dad79e |
09-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Rename APFloat::convertToAPInt to bitcastToAPInt to make it clearer what the function does. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achOWriter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
|
49cc7cec5d3bb722e7bad032233e6d763fba494f |
09-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Rename APFloat::convertToAPInt to bitcastToAPInt to make it clearer what the function does. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57325 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
achOWriter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
|
d65b26495df824717760099e0294db8f2a4662db |
08-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Align EH tables before label is emitted, not after, thus aligning the label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57310 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
841e4984da61e6f5cc91971dfd4eb2dc3fa2e06a |
08-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Align EH tables before label is emitted, not after, thus aligning the label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57310 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
04764deac8a05a74ff9399cf406f5525ff68543d |
08-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Fix the case where an instruction is not properly marked as using all registers that alias its inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57286 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a4d2870061c5e718b87ad79a753f636f3a5ca65a |
08-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Fix the case where an instruction is not properly marked as using all registers that alias its inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57286 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
eb0d6abee36c274cf081948795f4675d8f33fc6f |
08-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Remove -disable-fast-isel. Use cl::boolOrDefault with -fast-isel instead. So now: -fast-isel or -fast-isel=true enable fast-isel, and -fast-isel=false disables it. Fast-isel is also on by default with -fast, and off by default otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57270 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6d7ee01d0a5ad3f9c5f9868b15cf2ce071241a60 |
08-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Remove -disable-fast-isel. Use cl::boolOrDefault with -fast-isel instead. So now: -fast-isel or -fast-isel=true enable fast-isel, and -fast-isel=false disables it. Fast-isel is also on by default with -fast, and off by default otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57270 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1e9e8c3bd5ac018296bddb21a2acb8c643303b39 |
08-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Avoid emitting redundant materializations of integer constants for things like null pointers, which at this level aren't different from regular integer constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3a49d0e16972381b9e27b3f8adb05be9296be614 |
08-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Avoid emitting redundant materializations of integer constants for things like null pointers, which at this level aren't different from regular integer constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
95dad830bbf975cb4cea4e1ac685781a18676a7a |
07-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Add an option to enable StrongPHIElimination, for ease of testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57259 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
bac9ae29c7009e75c4efb9283b9f0a21d1d34356 |
07-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Add an option to enable StrongPHIElimination, for ease of testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57259 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
2163ca11d576059883d1c289e5c4d8163d123270 |
07-Oct-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Use Dan's supperior check git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
97c315a1f5868daafe62f6a32a2722698e0f476c |
07-Oct-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
Use Dan's supperior check git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ff75d9edbb54380deae77c8767fd7581ca401c1d |
07-Oct-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
No need for |= git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
83d3e655d2e8920143f9c85ba262095ee176914d |
07-Oct-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
No need for |= git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1ad0c8201b119d4d90a837dd622b61eedf1648ea |
07-Oct-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Use ADDC if it is valid at any smaller size. Do it right this time git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57248 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
310906df76067769776024466085bf40b6d205c7 |
07-Oct-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
Use ADDC if it is valid at any smaller size. Do it right this time git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57248 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5c9cc1392cfdea2281431de987f32545a3491fb6 |
07-Oct-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Use ADDC if it is valid at any smaller size. fixes test/Codegen/Generic/i128-addsub.ll on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a23d699e41b2d135d166ce1c03cd0462bd8c4fad |
07-Oct-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
Use ADDC if it is valid at any smaller size. fixes test/Codegen/Generic/i128-addsub.ll on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
40d513960a50664c3c4130a40612a5e3673615ce |
07-Oct-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Expand arith on machines without carry flags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5e8144612637f4e17ecf4048272b10e75bd1a604 |
07-Oct-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
Expand arith on machines without carry flags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b5cc34d098149a9606dacb6d421471d787253907 |
07-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Correctly handle calls with no return values. This fixes 2006-01-23-UnionInit on x86-64 when inlining is not enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8542a55c0a83b76494a57cdfeb3f60168fdefd55 |
07-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Correctly handle calls with no return values. This fixes 2006-01-23-UnionInit on x86-64 when inlining is not enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
4daa9071ed1afde7fb03c7e0198101f4806b7d11 |
06-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't dereference the end() iterator. Thanks to ENABLE_EXPENSIVE_CHECKS for finding this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57181 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ad077b80c983af3379805f1f83e3dd260ef3a4c3 |
06-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't dereference the end() iterator. Thanks to ENABLE_EXPENSIVE_CHECKS for finding this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57181 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
e4d4b8c53388643ade7081acc7f4d555b16e14aa |
06-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Remove unncessary isDeclaration() checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57179 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
d365941ba7839d101d47289329406accf6d1ad42 |
06-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Remove unncessary isDeclaration() checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57179 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
d20a00d01199d95c2cb6685ad483985ba400ca48 |
06-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
reorder #include order, patch by Kenneth Boyd! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57148 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
|
c56a883b8269e54820bb19a037e6c14dc27a6bcc |
06-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
reorder #include order, patch by Kenneth Boyd! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57148 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
|
78129446cacbc0f3ed17f3f11c8cd05f9cd95f47 |
06-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Add #include to get alloca, patch by Kenneth Boyd! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57147 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
|
06c9231f4eb6246b11ebd4fded812f56d61e1d2d |
06-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Add #include to get alloca, patch by Kenneth Boyd! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57147 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
|
31d7161206d7502e97a01a51a76445a8d9ac6ea5 |
04-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
wrap some long lines and expand i32 mul's to libcalls, inspired by a patch by Mikael Lepisto! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57077 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
481886517c4d366d1f59265b4f4ef84837f3d734 |
04-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
wrap some long lines and expand i32 mul's to libcalls, inspired by a patch by Mikael Lepisto! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57077 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
80533040bc3b19f88c64bb8c4900af2e0128858d |
04-Oct-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Reflected changes on source file structure. New plugin support for llvmc2 incomplete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57076 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
105f8d685ad15e443fe6b5235a62b0cf4429cd32 |
04-Oct-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
CMake: Reflected changes on source file structure. New plugin support for llvmc2 incomplete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57076 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
|
0304b87cce60f5d98bd5a505bf8bee0b10f71548 |
04-Oct-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix compilation error on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57046 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
2d3df9627b7923bf35f4f0e5c94f5593a217bffc |
04-Oct-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Fix compilation error on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57046 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
241f464d24a6c22721607841069bbeb17b3f71e6 |
04-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel's handling of atomic instructions. They may expand to multiple basic blocks, in which case fast-isel needs to informed of which block to use as it resumes inserting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2764e174ba023f24b2729dea7747da4fd2e3ec71 |
04-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel's handling of atomic instructions. They may expand to multiple basic blocks, in which case fast-isel needs to informed of which block to use as it resumes inserting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
022b21ff7c047f8c1615a6588052c55427bcd9b0 |
04-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the local allocator's liveness computation where it was setting kill flags on tied uses in two-address instructions. The kill flags were causing the allocator to think it could allocate the use and its tied def in different registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57039 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ec06ecd57f934a8e9290eb28a0835aae1751ee33 |
04-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the local allocator's liveness computation where it was setting kill flags on tied uses in two-address instructions. The kill flags were causing the allocator to think it could allocate the use and its tied def in different registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57039 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
1b54c7fe9b034a6450af8596231ad5368b617725 |
03-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Pass MemOperand through for 64-bit atomics on 32-bit, incidentally making the case where the memop is a pointer deref work. Fix cmp-and-swap regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
44eb5379912c6c5b129ae34c88ffb5f260ceb70b |
03-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Pass MemOperand through for 64-bit atomics on 32-bit, incidentally making the case where the memop is a pointer deref work. Fix cmp-and-swap regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ca0a5d93569d728659352ca5fbfe17daeed5f6ac |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Use -1ULL instead of uint64_t(-1), at Anton's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
88566ae08a299f35b1131daf07811ee426d1ee44 |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Use -1ULL instead of uint64_t(-1), at Anton's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
17a82eaeb6339b184acb2f8bf0f314d69ad2e1d3 |
03-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix typos pointed out by Duncan. Also untabify these files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57018 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
BQP.h
egAllocPBQP.cpp
|
bdd8f3b69a2b988e8986456908be2fe36133a99b |
03-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix typos pointed out by Duncan. Also untabify these files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57018 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
BQP.h
egAllocPBQP.cpp
|
d735b8019b0f297d7c14b55adcd887af24d8e602 |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
ranchFolding.cpp
eadMachineInstructionElim.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
egAllocSimple.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
b9f4fa7b400836808bc3beab96482418f418f246 |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
ranchFolding.cpp
eadMachineInstructionElim.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
achineSink.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocPBQP.cpp
egAllocSimple.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
trongPHIElimination.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
e47561ccff9c7a76f9392b26ae6202e30f1247ed |
03-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
The result of getSetCCResultType (eg: i32) may be larger than the type an i1 is promoted to (eg: i8). Account for this. Noticed by Tilmann Scheller on CellSPU; he will hopefully take care of fixing this in LegalizeDAG and adding a testcase! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
1a37bd7c7e7abbd99f4d33a0788e4b20aa67ac0f |
03-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
The result of getSetCCResultType (eg: i32) may be larger than the type an i1 is promoted to (eg: i8). Account for this. Noticed by Tilmann Scheller on CellSPU; he will hopefully take care of fixing this in LegalizeDAG and adding a testcase! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
91b6f97ce4273fee5516692e3f27cd76d67986fc |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Implement fast-isel support for zero-extending from i1. It turns out that this is a fairly common operation, and it's easy enough to handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d762908e06b093e67af95c89d8647a527e17e2c8 |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Implement fast-isel support for zero-extending from i1. It turns out that this is a fairly common operation, and it's easy enough to handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d98d6203e429b2d7208b6687931e9079e85e95ec |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Optimize conditional branches in X86FastISel. This replaces sequences like this: sete %al testb %al, %al jne LBB11_1 with this: je LBB11_1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8766d8eec326f01ec1cf458c1078798782e4177b |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Optimize conditional branches in X86FastISel. This replaces sequences like this: sete %al testb %al, %al jne LBB11_1 with this: je LBB11_1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6ade6f55a836129af634074e96f660ff23f59a30 |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Add a new MachineBasicBlock utility function, isLayoutSuccessor, that can be used when deciding if a block can transfer control to another via a fall-through instead of a branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56968 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
901cf7c745f6054e96a793fe8cc8c2cbfec6e109 |
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Add a new MachineBasicBlock utility function, isLayoutSuccessor, that can be used when deciding if a block can transfer control to another via a fall-through instead of a branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56968 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
88ab90b4757e481b627bb61b0eaca5ed2aa22b4d |
02-Oct-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
fix build gcc 4.3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56965 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
|
0b1654a52874c2a06157f1519b7089639c5d83d8 |
02-Oct-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
fix build gcc 4.3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56965 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
|
8481ee7f521de7e5c82b4c0773e37ce8410271cd |
02-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Use a multimap rather than a map for holding the list of copies to insert, so we don't lose copies when two of them have the same source. I don't know what I was thinking when I wrote this originally. Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism guarantees need to be present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56964 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
be383d550c7a62dacbe779f43479193acc45f4a2 |
02-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Use a multimap rather than a map for holding the list of copies to insert, so we don't lose copies when two of them have the same source. I don't know what I was thinking when I wrote this originally. Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism guarantees need to be present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56964 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
48c1bc2ace6481d3272ab5c18e1f19352c563be8 |
02-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Handle some 64-bit atomics on x86-32, some of the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f160d80930ec8dc8f94df6010b562bd03e28f325 |
02-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Handle some 64-bit atomics on x86-32, some of the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b1290a6cc40f7caa0351450ce7021a0d48b5f2c0 |
02-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
A Partitioned Boolean Quadratic Programming (PBQP) based register allocator. Contributed by Lang Hames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56959 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
BQP.h
egAllocPBQP.cpp
|
af09cbdaf927bce0c8e70f9a0e576dab86bbf4c9 |
02-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
A Partitioned Boolean Quadratic Programming (PBQP) based register allocator. Contributed by Lang Hames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56959 91177308-0d34-0410-b5e6-96231b3b80d8
BQP.cpp
BQP.h
egAllocPBQP.cpp
|
d790a5ceee7138d8a5352432ccf862a42e3f5819 |
02-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix a think-o in isSafeToMove. This fixes it from thinking that volatile memory references are safe to move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56948 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0ce00b8a4f91d799029ffa4d63ef59987051db2e |
02-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix a think-o in isSafeToMove. This fixes it from thinking that volatile memory references are safe to move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56948 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4ae641f4d12c60ee1aaca5e42b6de231c6a02c40 |
02-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Remove OptimizeForSize global. Use function attribute optsize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56937 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
oopAligner.cpp
|
93698d997764a457fbe8c1a1df1d57f23a59ae14 |
02-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Remove OptimizeForSize global. Use function attribute optsize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56937 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
oopAligner.cpp
|
dc756858f92a397ed30362ba8251fec56479735f |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Enable FastISel by default (on x86 and x86-64) with the -fast option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56930 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e3769efeeb9676732f07f7b50952c3d529dbabb1 |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Enable FastISel by default (on x86 and x86-64) with the -fast option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56930 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
aeaf245db33fa8bccdd14bb8899ee0585a75a7b1 |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Make some implicit conversions explicit, to avoid compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56927 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dc57097760a4335ca94b45e69cbbaa622de92fca |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Make some implicit conversions explicit, to avoid compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56927 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
38ac062c2f4de93cd4351693f084f0c4474be02c |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fold trivial two-operand tokenfactors where the operands are equal immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c0e18d6638548720f2b3c0c77b8b3d3c7ff8d9a8 |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fold trivial two-operand tokenfactors where the operands are equal immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
929d3eb171cd95a7fb353ef71a460d2061be4e6c |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4fc0374c0e76f8142d34e3ffe30cb2fc2bf70bc3 |
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6158d8492cc021bb47caee6d4755135ef1d855a4 |
01-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the -fno-builtin option in the front-end, not in the back-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4b2e37853b659c5d8dd85c8113ac41522d8f4726 |
01-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the -fno-builtin option in the front-end, not in the back-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
05472ee54bea84f487c6970b741625c3ca410b01 |
01-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Mark merged-in VNInfo's as being PHIKilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56893 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
89b9354f0e957fdb2ba9422453d0f0f466e8f5ee |
01-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Mark merged-in VNInfo's as being PHIKilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56893 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
309c6162c62ba35ded8650a0ea4d2036de7480fd |
01-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Fix a simple error in renumbering kill markaers, that took an inordinant amount of time to track down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56889 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4365b48630b4cca32f66aacf8aa13a19bb0fefed |
01-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Fix a simple error in renumbering kill markaers, that took an inordinant amount of time to track down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56889 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fd8ca5a0ef30604b860100d13544c5d5625c0b70 |
30-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Initialize "--no-builtin" to "false". - Testcase for r56885. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
004d63527fe3602a2bf9b4524cdc6401c8e11964 |
30-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Initialize "--no-builtin" to "false". - Testcase for r56885. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6f287b22d2e57600b4cd5dc209d0d869e7736c0b |
30-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add the new `-no-builtin' flag. This flag is meant to mimic the GCC `-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero" instead of "__bzero" on Darwin10+. This arguably violates the meaning of this flag, but is currently sufficient. The meaning of this flag should become more specific over time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5db7ffb9e537d06963e61e13ce267ecc7295045a |
30-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add the new `-no-builtin' flag. This flag is meant to mimic the GCC `-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero" instead of "__bzero" on Darwin10+. This arguably violates the meaning of this flag, but is currently sufficient. The meaning of this flag should become more specific over time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5ec9efd61bc4214c787287409498e8b78f28c922 |
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Move the primary fast-isel top-level comments to FastISel.cpp, where they'll be a little more visible. Also, update and reword them a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56877 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ff1ab062a51053954ae59f3ed7154d1b2e983c2b |
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Move the primary fast-isel top-level comments to FastISel.cpp, where they'll be a little more visible. Also, update and reword them a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56877 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f06c835f769aa1cf67801ed1f6bd366a447c18b1 |
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Optimize SelectionDAG's AssignTopologicalOrder even further. Completely eliminate the TopOrder std::vector. Instead, sort the AllNodes list in place. This also eliminates the need to call AllNodes.size(), a linear-time operation, before performing the sort. Also, eliminate the Sources temporary std::vector, since it essentially duplicates the sorted result as it is being built. This also changes the direction of the topological sort from bottom-up to top-down. The AllNodes list starts out in roughly top-down order, so this reduces the amount of reordering needed. Top-down is also more convenient for Legalize, and ISel needed only minor adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
2d2a7a3fb5bac325d6df8f55e96f9e0f9df739eb |
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Optimize SelectionDAG's AssignTopologicalOrder even further. Completely eliminate the TopOrder std::vector. Instead, sort the AllNodes list in place. This also eliminates the need to call AllNodes.size(), a linear-time operation, before performing the sort. Also, eliminate the Sources temporary std::vector, since it essentially duplicates the sorted result as it is being built. This also changes the direction of the topological sort from bottom-up to top-down. The AllNodes list starts out in roughly top-down order, so this reduces the amount of reordering needed. Top-down is also more convenient for Legalize, and ISel needed only minor adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
dc37786595beedd0a68d8e2cbd91ae53ad58d133 |
30-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 56835 along with header file changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56848 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
c84ea139c78af904141145f2374289347e29fa6e |
30-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 56835 along with header file changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56848 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
46292be362c1b0bb0aecf737cd4dbb81fdd38586 |
30-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
Revert commit 56835 since it breaks the build. "If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56837 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
e934baddf2ec86a91b3e27bcc02072d6d5db17b7 |
30-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
Revert commit 56835 since it breaks the build. "If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56837 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
d41474d2c09a9fd0d1251554b920a783839b2787 |
30-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56835 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
feddecd36ac9e9e7f716f9cb3c2c4042a9d973e1 |
30-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56835 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
71d1bf55a27017fceef25554e02021a3bc47cdb4 |
30-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Remove misuse of ReplaceNodeResults for atomics with valid types. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9011d870b2985325ac1d5b6e4c498dab81253097 |
30-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Remove misuse of ReplaceNodeResults for atomics with valid types. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56808 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a43abd102f123f6d3bd9ad92045f8119e3fb6153 |
29-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to not initialize the PIC-base register multiple times in functions with PIC references from more than one basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9d7bc4220bfd640f05cef5981bf241b1a9ab4328 |
29-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to not initialize the PIC-base register multiple times in functions with PIC references from more than one basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d5d8191b202c0f96f33c826c93d9796451ff7fca |
27-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily reverting r56683. This is causing a failure during the build of llvm-gcc: /Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -mmacosx-version-min=10.4 -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Gir/devel/llvm/clean/llvm.obj/include -I/Volumes/Gir/devel/llvm/clean/llvm.src/include -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../llvm-gcc.src/gcc/unwind-dw2-fde-darwin.c -o libgcc/./unwind-dw2-fde-darwin.o Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Gir/devel/llvm/clean/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311. ../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. {standard input}:3521:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb" {standard input}:3521:symbol: "_dwarf_reg_size_table" can't be undefined in a subtraction expression {standard input}:3520:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb" ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f29e2a5ab195a822593a92820338bdf63a85be1c |
27-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily reverting r56683. This is causing a failure during the build of llvm-gcc: /Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -mmacosx-version-min=10.4 -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Gir/devel/llvm/clean/llvm.obj/include -I/Volumes/Gir/devel/llvm/clean/llvm.src/include -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../llvm-gcc.src/gcc/unwind-dw2-fde-darwin.c -o libgcc/./unwind-dw2-fde-darwin.o Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Gir/devel/llvm/clean/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311. ../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. {standard input}:3521:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb" {standard input}:3521:symbol: "_dwarf_reg_size_table" can't be undefined in a subtraction expression {standard input}:3520:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb" ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
7810bfed5570c192e0714a8fd0e5130a0c38dd2e |
26-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Rename ConstantSDNode's getSignExtended to getSExtValue, for consistancy with ConstantInt, and re-implement it in terms of ConstantInt's getSExtValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56700 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
4068673bbea0b6b3716494f7c291d0ebc43aa8e5 |
26-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Rename ConstantSDNode's getSignExtended to getSExtValue, for consistancy with ConstantInt, and re-implement it in terms of ConstantInt's getSExtValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56700 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
36a55023c1daae86afedf6e6672c0adad7bbe5ea |
26-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix @llvm.frameaddress codegen. FP elimination optimization should be disabled when frame address is desired. Also add support for depth > 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e96a7f565ddcd8855d6cbcecf3f65ea08a65e558 |
26-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix @llvm.frameaddress codegen. FP elimination optimization should be disabled when frame address is desired. Also add support for depth > 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
86098bd6a63d2cdf0c9be9ef3151bd2728281fd7 |
26-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add "inreg" field to CallSDNode (doesn't increase its size). Adjust various lowering functions to pass this info through from CallInst. Use it to implement sseregparm returns on X86. Remove X86_ssecall calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
67cc9b67faa7d6a72d916b52c22e7a33a44097db |
26-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add "inreg" field to CallSDNode (doesn't increase its size). Adjust various lowering functions to pass this info through from CallInst. Use it to implement sseregparm returns on X86. Remove X86_ssecall calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
082d35136105fd061ed66182bd76cd96ffeda18d |
26-Sep-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to insert copies for implicit_def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56674 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0aa88f440dab0e3b433332c1e716ebfa26557f38 |
26-Sep-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to insert copies for implicit_def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56674 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
d751c64a679148bfe111bbba47f4a344ba813df9 |
26-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
If we have a function with an unreachable statement such that the ending debug information is in an unreachable block, then it's possible that the high/low pc values won't be set for the dwarf information. E.g., this function: void abort(void) __attribute__((__noreturn__)); void dead_beef(void) __attribute__ ((noreturn)); int *b; void dead_beef(void) { *b=0xdeadbeef; abort(); } has a call to "@llvm.dbg.region.end" only in the unreachable block: define void @dead_beef() noreturn nounwind { entry: call void @llvm.dbg.func.start(...) call void @llvm.dbg.stoppoint(...) ... call void @abort( ) noreturn nounwind unreachable return: ; No predecessors! call void @llvm.dbg.stoppoint(...) call void @llvm.dbg.region.end(...) ret void } The dwarf information emitted is something like: 0x00000084: TAG_subprogram [5] AT_name( "dead_beef" ) AT_external( 0x01 ) AT_prototyped( 0x01 ) AT_decl_file( 0x01 ) AT_decl_line( 0x08 ) Note that this is *not* the best fix for this problem, but a band-aid for an gaping wound. This code needs to be changed when we revamp our debugging information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56628 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
b22ae7d4a92e11264dbfc798a512a5ce66ec24ab |
26-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
If we have a function with an unreachable statement such that the ending debug information is in an unreachable block, then it's possible that the high/low pc values won't be set for the dwarf information. E.g., this function: void abort(void) __attribute__((__noreturn__)); void dead_beef(void) __attribute__ ((noreturn)); int *b; void dead_beef(void) { *b=0xdeadbeef; abort(); } has a call to "@llvm.dbg.region.end" only in the unreachable block: define void @dead_beef() noreturn nounwind { entry: call void @llvm.dbg.func.start(...) call void @llvm.dbg.stoppoint(...) ... call void @abort( ) noreturn nounwind unreachable return: ; No predecessors! call void @llvm.dbg.stoppoint(...) call void @llvm.dbg.region.end(...) ret void } The dwarf information emitted is something like: 0x00000084: TAG_subprogram [5] AT_name( "dead_beef" ) AT_external( 0x01 ) AT_prototyped( 0x01 ) AT_decl_file( 0x01 ) AT_decl_line( 0x08 ) Note that this is *not* the best fix for this problem, but a band-aid for an gaping wound. This code needs to be changed when we revamp our debugging information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56628 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
|
0598866c052147c31b808391f58434ce3dbfb838 |
25-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Large mechanical patch. s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackGC.cpp
|
d222f86d9d51a2d6299d43fb876099869430bf0f |
25-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Large mechanical patch. s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackGC.cpp
|
c9c6da61ac027d9818652d417907f84398288b99 |
25-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Accept 'inreg' attribute on x86 functions as meaning sse_regparm (i.e. float/double values go in XMM0 instead of ST0). Update documentation to reflect reality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c08a0e2f7ceaaaef071ba0aa2482a8fd7a6e27a3 |
25-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Accept 'inreg' attribute on x86 functions as meaning sse_regparm (i.e. float/double values go in XMM0 instead of ST0). Update documentation to reflect reality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
5dd9c2e9aea7294c184609aff7f2fe82eaea4eb0 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Support for i1 XOR in FastISel. It is actually safe because i1 operands are assumed to already by zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
55c60ad36655000ef0f503793eaaaecb437465e5 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Support for i1 XOR in FastISel. It is actually safe because i1 operands are assumed to already by zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
77ca41e5c3f99ee8962b21a7d90bb251a594a65e |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't print fast-isel debug messages by default. Thanks Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
92902e8f34fa8e0d043644747f6637e9080c0ba5 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't print fast-isel debug messages by default. Thanks Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56614 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2c442eda747c5c4ec0533642754202e47a1be81c |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't forget the newline in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
468ba15fd77ae7106aa2aafcd5d986d9e9c310c4 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't forget the newline in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
33134c4a75558288d663267c8991f6bd37a530af |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
78ae76d54c1a523366be7e1c3cde16287e94de5f |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
4b052dc63d31e764b85d62c056bffe576d501ed4 |
25-Sep-2008 |
Richard Pennington <rich@pennware.com> |
bug 2812: Segmentation fault on a big emdiam processor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56609 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
73ae9e46e3fe3343f26ab84a0868a828ddba0285 |
25-Sep-2008 |
Richard Pennington <rich@pennware.com> |
bug 2812: Segmentation fault on a big emdiam processor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56609 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dceffe66b9e73ce372ea11c0fc6975504eb8c31d |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a recent fast-isel coverage regression - don't bail out before giving the target a chance to materialize constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1c395700bf2f54e4585d6d986096bd67138dccae |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a recent fast-isel coverage regression - don't bail out before giving the target a chance to materialize constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2c4bf119be8aa05cdc3dc88c57006353f07f0d2c |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Enable DeadMachineInstructionElim when Fast-ISel is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56604 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
6a9b05fbd4af5abb5e2f369025409e4450df27c4 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Enable DeadMachineInstructionElim when Fast-ISel is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56604 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
723ac3720f6d983e0ed01504964fde1aa63951ff |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add debug output to this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56602 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
0d92febb032b145e15dc97d5b93fc882d35e1af3 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add debug output to this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56602 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
02dae4ba06a05d28b24b3c1b39d54de751271c95 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the code that adds standard LLVM codegen passes into a separate function, eliminating duplication between the add-passes-for-file and add-passes-for-machine-code code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56599 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
7e71ccf4f074e350939287118766afac4ba0250a |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the code that adds standard LLVM codegen passes into a separate function, eliminating duplication between the add-passes-for-file and add-passes-for-machine-code code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56599 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
aa765b8c35aa3a5cca9681d6e3c44091d94f23d9 |
25-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
<rdar://problem/6234798> Assertion failed: (!OpInfo.AssignedRegs.Regs.empty() && "Couldn't allocate input reg!") git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0adee05c7c1c98d6ab9084173ad3742a558d64f4 |
25-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
<rdar://problem/6234798> Assertion failed: (!OpInfo.AssignedRegs.Regs.empty() && "Couldn't allocate input reg!") git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
bd0f144cc2549e8c2f853ea0a914abd0aa29444f |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Give LowerSubregs.cpp a top-level description. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56596 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
c93e70764bfa48e3b2141a70cf8eae9de0047618 |
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Give LowerSubregs.cpp a top-level description. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56596 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
8e3455ba1734a64dc5a6884d4a5218d436da54e2 |
25-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Remove SelectionDag early allocation of registers for earlyclobbers. Teach Local RA about earlyclobber, and add some tests for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56592 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
47e30e4ea5156557c5d6f869f80168092ef66890 |
25-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Remove SelectionDag early allocation of registers for earlyclobbers. Teach Local RA about earlyclobber, and add some tests for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56592 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
541af7f769c89de8a7f52d563cf317ad7a86c245 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use helper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56584 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b191f5c0f2244f65efccca3a5986a4e2aa706d67 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use helper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56584 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4cad98a0bb3c0c10a53b7f3c373be7af32788f51 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
SmallPtrSet will be better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56583 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
96df425d01400afddde470e4e868a4008d0d801a |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
SmallPtrSet will be better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56583 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
088ae8393f124564ca9ab70654645aa656e5646f |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use generic section-handling stuff to emit constant pool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56579 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b866b259e562f1eafa7475694a4076372f55eaf2 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use generic section-handling stuff to emit constant pool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56579 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
315690ec2a99e1c0867853955f81d99f548178be |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Get rid of duplicate char*/Section* DataSection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56575 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
|
cca60fa0d98abdf7dbe69a4ef15c539d80f6e9bf |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Get rid of duplicate char*/Section* DataSection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56575 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
|
d7ca416d6c9ae1966e0df8193112e3c5f430a053 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Get rid of duplicate char*/Section* TextSection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56574 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
|
55b94965b25917c590987db1b92b730b64f17c0c |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Get rid of duplicate char*/Section* TextSection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56574 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
|
c25e1ea5e9aa54952b6736a9579e25a5c2d8139f |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move actual section printing stuff to AsmPrinter from TAI reducing heap traffic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56573 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1a9edae76b2e7cf15c5f7c36928b3701ac2ef47b |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move actual section printing stuff to AsmPrinter from TAI reducing heap traffic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56573 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
0c8e80607bc3296a4775f05c02f0d11df8e5cb04 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Drop obsolete hook and change all usage to new interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56572 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
cf87a3dd015c7e2acfc0b4feff48fc7fc2a16f01 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Drop obsolete hook and change all usage to new interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56572 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b5a32e2e8ce2f3de3a340c5a2dfcd3a159968466 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Provide direct function to switch to Section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56571 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
801e0fd4ead5fe89dc7ced7f7d6c4278a607f580 |
25-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Provide direct function to switch to Section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56571 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
f835f8407196812c76ec5c20aa6a03d1249e8baa |
24-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix off-by-one error when updating live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56567 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
65b8c7130208374d2200bc895f1386fd68be3027 |
24-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix off-by-one error when updating live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56567 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f3cbca279db891403659208a99f8e1cceb8c9ea6 |
24-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Reapplying r56550 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0445c4c532ae56f12727165e35ddd0cb31ba0234 |
24-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Reapplying r56550 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
688d1c4ccf358a35fcdb54a28afc6e47d661b1cf |
24-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Forgot this part with my last patch. Sorry about the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56552 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
16bc18cdd116afa48ba7c6c35f6213c0972c184a |
24-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Forgot this part with my last patch. Sorry about the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56552 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
83e05c48de05d66a6f664a3e6631692b5baae6e2 |
24-Sep-2008 |
Eric Christopher <echristo@apple.com> |
Temporarily revert r56550 until missing commit can be added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c1287f6f5fb874631bcb93162041b216f4cecacc |
24-Sep-2008 |
Eric Christopher <echristo@apple.com> |
Temporarily revert r56550 until missing commit can be added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
df0c7bc52d206782872b54a38a3374f0317ce6ff |
24-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Refactor the constant folding code into it's own function. And call it from both the SelectionDAG and DAGCombiner code. The only functionality change is that now the DAG combiner is performing the constant folding for these operations instead of being a no-op. This is *not* in response to a bug, so there isn't a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
80759d020563820841f51b941a78655fb96d0fca |
24-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Refactor the constant folding code into it's own function. And call it from both the SelectionDAG and DAGCombiner code. The only functionality change is that now the DAG combiner is performing the constant folding for these operations instead of being a no-op. This is *not* in response to a bug, so there isn't a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
86b49f8e2de796cb46c7c8b6a4c4900533fd53f4 |
24-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Next round of earlyclobber handling. Approach the RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56539 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLinearScan.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
|
9446407963005f3edfa8ac70e265c81839a416c9 |
24-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Next round of earlyclobber handling. Approach the RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56539 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLinearScan.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
|
3d84a76917c4bb1e4d5b99009a7fb32970fb20b8 |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the logic for testing if an instruction is dead into a separate method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56531 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
3d6031a8379c44c22f3ac9f92f643351591896fe |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the logic for testing if an instruction is dead into a separate method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56531 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
035268eaf79f5492792a965226ea3a2244e6853e |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Set SetStore to false, to allow this pass to delete dead loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56529 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
eb2de89d4bfcc9f5c2b58a6c22a5f6e78c30d910 |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Set SetStore to false, to allow this pass to delete dead loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56529 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
3e4fb70c6af53a2d00e057a7e4a8f93eb2ff2112 |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a method to MachineInstr for testing whether it makes any volatile memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56528 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9ffbed86220058f577345dc2de09d3be12cbb96c |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a method to MachineInstr for testing whether it makes any volatile memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56528 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
da43bcf624acb56a3d77bb5ae9a02728af032613 |
24-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Properly handle 'm' inline asm constraints. If a GV is being selected for the addressing mode, it requires the same logic for PIC relative addressing, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
7f250d639b8fba12b89199b92dcef45d7354b202 |
24-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Properly handle 'm' inline asm constraints. If a GV is being selected for the addressing mode, it requires the same logic for PIC relative addressing, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
eaf42abab6d465c38891345d999255871cf03943 |
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
s/ParameterAttributes/Attributes/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
e480dfa79c90cf5a85680bc1ff503f21e6439a72 |
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
s/ParameterAttributes/Attributes/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
b2c3e3fdd9987fc2d08eb8f7892db2cbc7ec74d9 |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Now that DeadMachineInstructionElim is basically working correctly, it's not necessary to explicitly remove registers from their use-def lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56509 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
bc1621e7d36e13bee6298e6067ad1f70be7dbd03 |
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Now that DeadMachineInstructionElim is basically working correctly, it's not necessary to explicitly remove registers from their use-def lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56509 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
d57dd5f4e6740520820bc0fca42a540e31c27a73 |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Arrange for FastISel code to have access to the MachineModuleInfo object. This will be needed to support debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
76dd96eda05c0dc7dfc62b5b5fbdd20aae86808b |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Arrange for FastISel code to have access to the MachineModuleInfo object. This will be needed to support debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
8468d1a84527ca5dbf0a6476b11fc0730810d2fa |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Track local physical register liveness. This is not the most efficient implementation possible, but it's pretty simple and good enough for the time being. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56504 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
665eff59e660d500cdf882d2ed606b6e6000d069 |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Track local physical register liveness. This is not the most efficient implementation possible, but it's pretty simple and good enough for the time being. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56504 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
086ec9976ff6cee083de618429c78473491d5713 |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Replace the LiveRegs SmallSet with a simple counter that keeps track of the number of live registers, which is all the set was being used for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
9b79a803c53157db657250db167a22afd18514f8 |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Replace the LiveRegs SmallSet with a simple counter that keeps track of the number of live registers, which is all the set was being used for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
electionDAG/ScheduleDAGRRList.cpp
|
fae86eddeb6453e5d27a19ba2a07a7bb4505fc4f |
23-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Add initial support for inserting last minute copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56485 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
1f5f969ab4bdb68d4f43c1d678237479b571c821 |
23-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Add initial support for inserting last minute copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56485 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
87a0f10dc7eff8cf5e83a754f75adf9cb3991435 |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix the alignment of loads from constant pool entries when the load address has an offset from the base of the constant pool entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
dc5901ac9279b8635acf1ed8d8877e5bd82eb45d |
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix the alignment of loads from constant pool entries when the load address has an offset from the base of the constant pool entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
|
ef901c57563eb841ac86648d533272776706cb64 |
23-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Livestacks really does preserve everything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56476 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
|
8aa49e5bcd68381421af4e103c9cf33ca53197dd |
23-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Livestacks really does preserve everything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56476 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
|
8b56a90bec639665fc024896d2fc2bdd095c76a3 |
23-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Instead of setPreservesAll, just mark them preseving machine loop info and machine dominators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56475 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
oopAligner.cpp
owerSubregs.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
tackSlotColoring.cpp
|
1b42ac1ee38e24ff2b2e1fc811246cb2cf8ea1f2 |
23-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Instead of setPreservesAll, just mark them preseving machine loop info and machine dominators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56475 91177308-0d34-0410-b5e6-96231b3b80d8
iveStackAnalysis.cpp
oopAligner.cpp
owerSubregs.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
tackSlotColoring.cpp
|
e04cec0ecf19750da68e0622d52e0f37297723b4 |
22-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Significant improvements to the logic for merging live intervals. This code can't just use LI::MergeValueAsValue, as its behavior in the presence of overlapping ranges isn't what StrongPHIElimination wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56472 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
c0156c44a0a7ff93f0e1a28afcebbc5fbc364ecb |
22-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Significant improvements to the logic for merging live intervals. This code can't just use LI::MergeValueAsValue, as its behavior in the presence of overlapping ranges isn't what StrongPHIElimination wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56472 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0bb41608e94adfe9884bc188457c4f6ae47ea43c |
22-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Make log, log2, log10, exp, exp2 use Expand by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b02a1c07cb1e1b9cdae3bf1ddb0578c779b9c8ff |
22-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Make log, log2, log10, exp, exp2 use Expand by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
bbeeb2a61ea19fbb5449260165b56c40fdc4860b |
22-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Mark several codegen passes as preserving all analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56469 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveStackAnalysis.cpp
oopAligner.cpp
owerSubregs.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
|
465a66e263a9e032ddb5bdb2702226ec0480d0ef |
22-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Mark several codegen passes as preserving all analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56469 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveStackAnalysis.cpp
oopAligner.cpp
owerSubregs.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
impleRegisterCoalescing.cpp
tackSlotColoring.cpp
|
f74185b80e07d58208b24f0314d94853d48ec9bd |
22-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
More refactoring. Yawn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56468 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
2c8e108717655569e8ccebded65a8663a1686105 |
22-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
More refactoring. Yawn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56468 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
c4342eab9bb999050dd94be929093c6e36a49c67 |
22-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Refactor FP intrinisic setup. Per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56456 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
4f35283a4353afdcb7a85fbe3c65cc1d1cf60150 |
22-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Refactor FP intrinisic setup. Per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56456 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
242ebd145dea945364b4fa6ca6a187efe322036d |
22-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Per review feedback: Only perform (srl x, (trunc (and y, c))) -> (srl x, (and (trunc y), c)) etc. when both "trunc" and "and" have single uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
11c34297585ebbbefc91421394c70dab368a497e |
22-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Per review feedback: Only perform (srl x, (trunc (and y, c))) -> (srl x, (and (trunc y), c)) etc. when both "trunc" and "and" have single uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3d01fc7de86c75926e4e5ac7cc49f0116018893d |
22-Sep-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
Initial support for the CMake build system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
00905d5339fd277781c7393112f80febe86b2945 |
22-Sep-2008 |
Oscar Fuentes <ofv@wanadoo.es> |
Initial support for the CMake build system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/CMakeLists.txt
MakeLists.txt
electionDAG/CMakeLists.txt
|
cd4c73aa708d9ecf5d7e0a711dbf359d22b6dd3a |
22-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add helper function to get a 32-bit floating point constant. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56418 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8b2e2d87623407365983d465744b0669b8beb436 |
22-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add helper function to get a 32-bit floating point constant. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56418 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
3bdf5fe71ad2d48d81d013b16181766bde295f58 |
21-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Factor out code into HandleVirtRegDef, for consistency with Handle{Virt,Phys}Reg{Def,Use}. Remove a redundant check for register zero, and redundant checks for isPhysicalRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56412 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
706847e559f690608c6bfafdab0382a0d3e20e54 |
21-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Factor out code into HandleVirtRegDef, for consistency with Handle{Virt,Phys}Reg{Def,Use}. Remove a redundant check for register zero, and redundant checks for isPhysicalRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56412 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
134eb73fc35e6ead3cfd3ed5024d0d7efa507441 |
21-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fetch the starting index of the block when assigning intervals. This gets live-in indices correct in the presence of things like EH labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56410 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f9817737ba964da17010b77fc2c2ec52c36c28fe |
21-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fetch the starting index of the block when assigning intervals. This gets live-in indices correct in the presence of things like EH labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56410 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ca19a3fd116a0a7dab15e49509a3fea565b5e738 |
21-Sep-2008 |
Chris Lattner <sabre@nondot.org> |
don't print GlobalAddressSDNode's with an offset of zero as "foo0". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
1659476b8ad97985ff3c4fff02f39018582f2e5f |
21-Sep-2008 |
Chris Lattner <sabre@nondot.org> |
don't print GlobalAddressSDNode's with an offset of zero as "foo0". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
34d8f7559cfe3a416c400b863919dbc6e4f347f9 |
20-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Teach coalescer about earlyclobber bits. Check bits for preferred register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56384 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
d9e4fd611933c2e32a8b1173c9ffa5133a6e18d5 |
20-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Teach coalescer about earlyclobber bits. Check bits for preferred register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56384 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
5e8d9def77b4a68e6be32f21cda28d2a451267a9 |
20-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2808. When regalloc runs out of register, it spill a physical register around the live interval being allocated. Do not continue to try to spill another register, just grab the physical register and move on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56381 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
af3c4e378b4151a3192cc83e4e886f8d28f98f17 |
20-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2808. When regalloc runs out of register, it spill a physical register around the live interval being allocated. Do not continue to try to spill another register, just grab the physical register and move on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56381 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
fee2d6937cf56a2018a0707f9ed2c9c02870df2b |
20-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Continue after removing the current MI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56372 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b92cd3ca9f6c4176aacfa16d05ac45dc2983f8fc |
20-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Continue after removing the current MI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56372 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
2ff7fd146159d97abe94391a33b4385abb06bbb0 |
20-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor X86SelectConstAddr, folding it into X86SelectAddress. This results in better code for globals. Also, unbreak the local CSE for GlobalValue stub loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0dd5fd980f4c89143bd4e19403cf550ab4dd38aa |
20-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor X86SelectConstAddr, folding it into X86SelectAddress. This results in better code for globals. Also, unbreak the local CSE for GlobalValue stub loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d6bd73353403fd6f132d20b68750fe4bf8c0af64 |
19-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Make earlyclobber stuff work when virtual regs have previously been assigned conflicting physreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56364 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
6513fc7f33783639b73b19c92452720a8f6db4bf |
19-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Make earlyclobber stuff work when virtual regs have previously been assigned conflicting physreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56364 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
20580a1cf658388f357d58a71ac81e4167acc34f |
19-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-materalized definition instructions may be dead. Whack them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56352 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
ed576401ad71daf707fa14396042124476ba4218 |
19-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-materalized definition instructions may be dead. Whack them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56352 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
fa48f941304f29f967e0a7fc6807d7026ba99b7b |
19-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis and redo as linked list walk. Logic moved into RA. Per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56326 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
f9b08792f0b05b1d6de43152960ca84aaee84602 |
19-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis and redo as linked list walk. Logic moved into RA. Per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56326 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
841ee1a12b6c291ebaf1ba5c853c2e0d97128001 |
19-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Somehow RegAllocLinearScan is keeping two pointers to MachineRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56314 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
06b74c590d2888b25aebcd82f93ecd7cca0253e9 |
19-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Somehow RegAllocLinearScan is keeping two pointers to MachineRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56314 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
e251b1529f40131ce5931420448a1e847f42e4af |
18-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't consider instructions with implicit physical register defs to be necessarily live. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56310 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
f6767b71a168e501b4708e806120dcdb20804a22 |
18-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't consider instructions with implicit physical register defs to be necessarily live. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56310 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
ee2e4035450a2d0d6159831e9b9cfa3ffd8da8bc |
18-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new "fast" scheduler. This is currently basically just a copy of the BURRList scheduler, but with several parts ripped out, such as backtracking, online topological sort maintenance (needed by backtracking), the priority queue, and Sethi-Ullman number computation and maintenance (needed by the priority queue). As a result of all this, it generates somewhat lower quality code, but that's its tradeoff for running about 30% faster than list-burr in -fast mode in many cases. This is somewhat experimental. Moving forward, major pieces of this can be refactored with pieces in common with ScheduleDAGRRList.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
917d3e7ed6d10587b4ce468da17fde14e00a2fd3 |
18-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new "fast" scheduler. This is currently basically just a copy of the BURRList scheduler, but with several parts ripped out, such as backtracking, online topological sort maintenance (needed by backtracking), the priority queue, and Sethi-Ullman number computation and maintenance (needed by the priority queue). As a result of all this, it generates somewhat lower quality code, but that's its tradeoff for running about 30% faster than list-burr in -fast mode in many cases. This is somewhat experimental. Moving forward, major pieces of this can be refactored with pieces in common with ScheduleDAGRRList.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGFast.cpp
|
91aac1015e6714d959801dd8d60f55a72827dc4d |
17-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLinearScan.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
bac3c81377340735d0674a0529dba69ef20e679b |
17-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLinearScan.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
870e4bef419b1bd3e5ee05673975f1c05198b612 |
17-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unallocatable registers do not have live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56287 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
13af991aa22eabaf36be6acb70edd354d0242a89 |
17-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unallocatable registers do not have live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56287 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
59932584a812685b16ad6a53a023b2bb3fc21819 |
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't worry about clobbering physical register defs that aren't used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f2d8a25c86ba97b406b2e190bbb504fe1e4680f6 |
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't worry about clobbering physical register defs that aren't used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d3ead4329eaa46937245f5cc8402e749af2a37dc |
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new MachineInstr-level DCE pass. It is very simple, and is intended to be used with fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56268 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
58e9ae2f35c2296bf6391825bfc8b6f7c698d82f |
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new MachineInstr-level DCE pass. It is very simple, and is intended to be used with fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56268 91177308-0d34-0410-b5e6-96231b3b80d8
eadMachineInstructionElim.cpp
|
1cd332725f7e5fc93f08a8d3ed9806827e9b5509 |
17-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
When converting a CopyFromReg to a copy instruction, use the register class of its uses to determine the right destination register class of the copy. This is important for targets where a physical register may belong to multiple register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56258 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
f7d58137a00ffaf1c210dcb859b784b5584403d7 |
17-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
When converting a CopyFromReg to a copy instruction, use the register class of its uses to determine the right destination register class of the copy. This is important for targets where a physical register may belong to multiple register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56258 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
50284d81f863a6576582e1a171a22eb0f012ddf3 |
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change SelectionDAG::getConstantPool to always set the alignment of the ConstantPoolSDNode, using the target's preferred alignment for the constant type. In LegalizeDAG, when performing loads from the constant pool, the ConstantPoolSDNode's alignment is used in the calls to getLoad and getExtLoad. This change prevents SelectionDAG::getLoad/getExtLoad from incorrectly choosing the ABI alignment for constant pool loads when Alignment == 0. The incorrect alignment is only a performance issue when ABI alignment does not equal preferred alignment (i.e., on x86 it was generating MOVUPS instead of MOVAPS for v4f32 constant loads when the default ABI alignment for 128bit vectors is forced to 1 byte.) Patch by Paul Redmond! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
04637d141bc5df1df4000c04b63f35528645802c |
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change SelectionDAG::getConstantPool to always set the alignment of the ConstantPoolSDNode, using the target's preferred alignment for the constant type. In LegalizeDAG, when performing loads from the constant pool, the ConstantPoolSDNode's alignment is used in the calls to getLoad and getExtLoad. This change prevents SelectionDAG::getLoad/getExtLoad from incorrectly choosing the ABI alignment for constant pool loads when Alignment == 0. The incorrect alignment is only a performance issue when ABI alignment does not equal preferred alignment (i.e., on x86 it was generating MOVUPS instead of MOVAPS for v4f32 constant loads when the default ABI alignment for 128bit vectors is forced to 1 byte.) Patch by Paul Redmond! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
056292fd738924f3f7703725d8f630983794b5a5 |
16-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r56249. On further investigation, this functionality isn't needed. Apologies for the thrashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56251 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
fef06056071dcd275f5ec539713a0dfcc33db436 |
16-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r56249. On further investigation, this functionality isn't needed. Apologies for the thrashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56251 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
aed48bfee87046f40330fc35d17265dd3aaf5dd5 |
16-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Include the alignment value when displaying ConstantPoolSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56250 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
27d5317c5bf5a71f4cd720f84ae78c5b7b3f2cd1 |
16-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Include the alignment value when displaying ConstantPoolSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56250 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
9468a9b6beed640eca64274c8dcc5aed3b94450b |
16-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Change "ExternalSymbolSDNode" to "SymbolSDNode". - Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
bdad5cfcd10bce155a51f3658a57ed3866903c5b |
16-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Change "ExternalSymbolSDNode" to "SymbolSDNode". - Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGPrinter.cpp
|
05ae98346a190d74c2c8799c3af2f8ca23e47c27 |
16-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix these comments to reflect current reality. Surprisingly, MachineConstantPool::getConstantPoolIndex actually expects a log2-encoded alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56248 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
62e7d9fb481f9a9c7e6ef32e121b5edae09126d8 |
16-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix these comments to reflect current reality. Surprisingly, MachineConstantPool::getConstantPoolIndex actually expects a log2-encoded alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56248 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
1937e2f6ca0e6a04c4ad5fdb5b606b5ed9533e74 |
16-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't take the time to CheckDAGForTailCallsAndFixThem when tail calls are not enabled. Instead just omit the tail call flag when calls are created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
5ea89a04a96691210f0ad8e56ad6a91bae8e5f82 |
16-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't take the time to CheckDAGForTailCallsAndFixThem when tail calls are not enabled. Instead just omit the tail call flag when calls are created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
99500aeb7c9a05db57e228544a3f81de2faf24ef |
16-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Live intervals for live-in registers should begin at the beginning of a basic block, not at the first instruction. Also, their valno's should have an unknown def. This has no effect currently, but was causing issues when StrongPHIElimination was enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56231 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b2ae26997b43c481907304882912440f34cdf801 |
16-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Live intervals for live-in registers should begin at the beginning of a basic block, not at the first instruction. Also, their valno's should have an unknown def. This has no effect currently, but was causing issues when StrongPHIElimination was enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56231 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5eb0cecbc5dd370e33d4e0ab1abee7ce8597ca9c |
15-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Re-enable SelectionDAG CSE for calls. It matters in the case of libcalls, as in this testcase on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
791e12a20b8097a9986c06a9d400f419563d7542 |
15-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Re-enable SelectionDAG CSE for calls. It matters in the case of libcalls, as in this testcase on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
25f34a30d66e33381a023d97d72ce44ded2c7f72 |
15-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Correctly update kill infos after extending a live range and merge 2 val#'s; fix 56165 - do not mark val# copy field if the copy does not define the val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56199 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8e8f02c175b9e5ff581d38d4e459d7943915b76d |
15-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Correctly update kill infos after extending a live range and merge 2 val#'s; fix 56165 - do not mark val# copy field if the copy does not define the val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56199 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e009180f2bbcf5edbe3b583936c37c4b3be2d082 |
14-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
adjust last patch per review feedback git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56194 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1b0c5786c6c93e048cd535e7f52173dc36584d96 |
14-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
adjust last patch per review feedback git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56194 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
014278e6a11fa0767853b831e5bf51b95bf541c5 |
13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove isImm(), isReg(), and friends, in favor of isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56189 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineSink.cpp
egAllocLocal.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
nreachableBlockElim.cpp
|
7f7f365665a22e1b4397d0924f24b929607f9690 |
13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove isImm(), isReg(), and friends, in favor of isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56189 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineSink.cpp
egAllocLocal.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
nreachableBlockElim.cpp
|
095cc29f321382e1f7d295e262a28197f92c5491 |
13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Define CallSDNode, an SDNode subclass for use with ISD::CALL. Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
705e3f774254a03ef28a27c1d15903547a0e9d4c |
13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Define CallSDNode, an SDNode subclass for use with ISD::CALL. Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
ee9e1b0a855bfce7650899ae757f5ef96a19e95d |
12-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
On some targets, non-move instructions can become move instructions because of coalescing. e.g. vr2 = OR vr0, vr1 => vr2 = OR vr1, vr1 // after coalescing vr0 with vr1 Update the value# of the destination register with the copy instruction if that happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56165 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
549f260a506e20e775021c94c7c1c1403a89c761 |
12-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
On some targets, non-move instructions can become move instructions because of coalescing. e.g. vr2 = OR vr0, vr1 => vr2 = OR vr1, vr1 // after coalescing vr0 with vr1 Update the value# of the destination register with the copy instruction if that happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56165 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4fbd796a1251a27e6590765a0a34876f436a0af9 |
12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and ConstantFP* instead of APInt and APFloat directly. This reduces the amount of time to create ConstantSDNode and ConstantFPSDNode nodes when ConstantInt* and ConstantFP* respectively are already available, as is the case in SelectionDAGBuild.cpp. Also, it reduces the amount of time to legalize constants into constant pools, and the amount of time to add ConstantFP operands to MachineInstrs, due to eliminating ConstantInt::get and ConstantFP::get calls. It increases the amount of work needed to create new constants in cases where the client doesn't already have a ConstantInt* or ConstantFP*, such as legalize expanding 64-bit integer constants to 32-bit constants. And it adds a layer of indirection for the accessor methods. But these appear to be outweight by the benefits in most cases. It will also make it easier to make ConstantSDNode and ConstantFPNode more consistent with ConstantInt and ConstantFP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56162 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
c1f3a074a653f0faeec34a9d78f76379c1fe10c0 |
12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and ConstantFP* instead of APInt and APFloat directly. This reduces the amount of time to create ConstantSDNode and ConstantFPSDNode nodes when ConstantInt* and ConstantFP* respectively are already available, as is the case in SelectionDAGBuild.cpp. Also, it reduces the amount of time to legalize constants into constant pools, and the amount of time to add ConstantFP operands to MachineInstrs, due to eliminating ConstantInt::get and ConstantFP::get calls. It increases the amount of work needed to create new constants in cases where the client doesn't already have a ConstantInt* or ConstantFP*, such as legalize expanding 64-bit integer constants to 32-bit constants. And it adds a layer of indirection for the accessor methods. But these appear to be outweight by the benefits in most cases. It will also make it easier to make ConstantSDNode and ConstantFPNode more consistent with ConstantInt and ConstantFP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56162 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
913d3dfac43f29921467f33aa743f28ee1bfc5d1 |
12-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Pass "earlyclobber" bit through to machine representation; coalescer and RA need to know about it. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56161 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGBuild.cpp
|
38438f720b9b9f6dec65f16956d2b6b24349102b |
12-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Pass "earlyclobber" bit through to machine representation; coalescer and RA need to know about it. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56161 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGBuild.cpp
|
f5aeb1a8e4cf272c7348376d185ef8d8267653e0 |
12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Rename ConstantSDNode::getValue to getZExtValue, for consistency with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56159 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
faeb4a35197737b3674fcfc34fd6e84220aa437b |
12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Rename ConstantSDNode::getValue to getZExtValue, for consistency with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56159 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
e2f2083f9ca6f9a9a9d7dbb75d59a779a0452f4a |
12-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
The sequence for ppcf128 compares was not IEEE safe in the presence of NaNs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
26317b6e91cd82031e4049c0e290ee34b9ecd887 |
12-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
The sequence for ppcf128 compares was not IEEE safe in the presence of NaNs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8db866808c803f9bdcd45c56a042fedd8cccd5bc |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2748. Avoid coalescing physical register with virtual register which would create illegal extract_subreg. e.g. vr1024 = extract_subreg vr1025, 1 ... vr1024 = mov8rr AH If vr1024 is coalesced with AH, the extract_subreg is now illegal since AH does not have a super-reg whose sub-register 1 is AH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56118 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
f0c1813358127ce429ae7b5ed04686062fc399f5 |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2748. Avoid coalescing physical register with virtual register which would create illegal extract_subreg. e.g. vr1024 = extract_subreg vr1025, 1 ... vr1024 = mov8rr AH If vr1024 is coalesced with AH, the extract_subreg is now illegal since AH does not have a super-reg whose sub-register 1 is AH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56118 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
4086906a0f813065244cc9f845e45527ae704b58 |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2783 - coalescer bug. Missing a TargetRegisterInfo::isVirtualRegister check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56112 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c5d589ffa6efaf4188aedcb9745cb5a09f5c4d3e |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2783 - coalescer bug. Missing a TargetRegisterInfo::isVirtualRegister check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56112 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
3885578a36072dd55c3381b99d4a88299dddbfa3 |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56097 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
aefc93dac613930bd53be9a4e60a0b74eb9ef060 |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56097 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
d9c553f2622f751f9c474aa348e2f8b595d7d9ca |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Propagate subreg index when promoting a load to a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56085 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
bc5ee75f357ae1c001330f4fb10f3295f2b59d4e |
11-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Propagate subreg index when promoting a load to a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56085 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
74321abb4f7e32e29c0e391b3ebb196c7da86525 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for i1 PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
109994919cad0392c790f65b0f6af9030e3a4244 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for i1 PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
821164875706dd28e48c6cc3cea5c8ffa6e658d1 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for i1 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
805005db3515111884a4b5d5b804abdffb3aec99 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for i1 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
369e98760bfdd6a72ef64929f3c560f80a4ffc92 |
10-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug in the coalescer where it didn't check if a live interval existed before trying to manipulate it. This was exposed by fast isel's handling of shifts on X86-64. With this, FreeBench/pcompress2 passes on X86-64 in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56067 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ef89f2d17aef8e803bf454fdddea997cc79771dc |
10-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug in the coalescer where it didn't check if a live interval existed before trying to manipulate it. This was exposed by fast isel's handling of shifts on X86-64. With this, FreeBench/pcompress2 passes on X86-64 in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56067 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0586d91bb3e516d5826826522d9a90ed6ef74d86 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add X86FastISel support for static allocas, and refences to static allocas. As part of this change, refactor the address mode code for laods and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56066 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
d6211a741f5af81e08ad7682deee98eec5b9523e |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add X86FastISel support for static allocas, and refences to static allocas. As part of this change, refactor the address mode code for laods and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56066 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
014264b70f2af002a41f8e36a9430fcf20e77bc7 |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2664 - spiller GetRegForReload wasn't respecting sub-register indices on machine operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56065 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
8d3c5719d73f12f83d424c11b996cdeaa18bc5a6 |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2664 - spiller GetRegForReload wasn't respecting sub-register indices on machine operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56065 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
3ee25dca5b2f321103e879fb125b7870683e7085 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a break statement that I accidentally deleted when I shuffled the fast-isel command-line options around. This fixes a bunch of fast-isel failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6b2d852835e271222e0f1d0d732d8e9846b2c60b |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a break statement that I accidentally deleted when I shuffled the fast-isel command-line options around. This fixes a bunch of fast-isel failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fc2508eb78eb4e754c85e01e082fcd79e7e66645 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove unnecessary bit-wise AND from the limited precision work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56049 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
e0ab0f3b6046a66683dc79e048f231c91f20537b |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove unnecessary bit-wise AND from the limited precision work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56049 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
c0c3b9a3d07a86490c4dae66e4f4c8eb40dec339 |
10-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Fix 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56048 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
9dc7b4ed59136b563a6c6cc48406b20c6d8ddfd0 |
10-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Fix 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56048 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
8ec3389aafb69f5320c32c75442be8deb7f9d70c |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56037 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f43873282b6ff9a967c67a98665f48292fc4b9d6 |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56037 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
277fc24a7c19aba06fa9d268c5a09a366acf7875 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Check that both operands are f32 before attempting to lower. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
1249d2f26eec15fc129ed7dd60860907c3d60846 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Check that both operands are f32 before attempting to lower. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
aeb5c7b3532bd9bcb5e7e3c9ef2991160511c5d2 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement "visitPow". This is mainly used to see if we have a pow() call of this form: powf(10.0f, x); If this is the case, and also we want limited precision floating-point calculations, then lower to do the limited-precision stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
96f6fa1c3397e424565625702a3aec10bd303998 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement "visitPow". This is mainly used to see if we have a pow() call of this form: powf(10.0f, x); If this is the case, and also we want limited precision floating-point calculations, then lower to do the limited-precision stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
9d24ac56e1f9f1025a473d6b013557431fd05b7c |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
A few more places where FPOW is being ignored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56032 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1fac69555885ed315dd2247fdb5726098651df3c |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
A few more places where FPOW is being ignored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56032 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4344a5d0d7b280f0b891e0e6a4413b059d9080b3 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change -fast-isel-no-abort to -fast-isel-abort, which now defaults to being off by default. Also, add assertion checks to check that the various fast-isel-related command-line options are only used when -fast-isel itself is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56029 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ee70e1df841384eb96625495506e840c9091fc18 |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change -fast-isel-no-abort to -fast-isel-abort, which now defaults to being off by default. Also, add assertion checks to check that the various fast-isel-related command-line options are only used when -fast-isel itself is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56029 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4b88702ac3fac540b970e2d92f3dcc5071f16a84 |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Legalizer was missing code that expand fpow to a libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5316b39b4a29f4b68c5c7c437fa827f939bcf68f |
10-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Legalizer was missing code that expand fpow to a libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e10c814c52a4cf39a541b4631a64067b1969b124 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Adding 6-, 12-, and 18-bit limited-precision floating-point support for exp2 function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
d1641c96b86af37b623f764e01adbfe0a5fc13d0 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Adding 6-, 12-, and 18-bit limited-precision floating-point support for exp2 function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
d2e51af0358b571367a9f1e5175b87e9dd72edf8 |
10-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Move the uglier parts of deciding not to emit a UsedDirective for some symbols in llvm.used into Darwin-specific code. I've decided LessPrivateGlobal is potentially a useful abstraction and left it in the target-independent area, with improved comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
60567624019d288f4fc733d44e7205c463a9bd75 |
10-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Move the uglier parts of deciding not to emit a UsedDirective for some symbols in llvm.used into Darwin-specific code. I've decided LessPrivateGlobal is potentially a useful abstraction and left it in the target-independent area, with improved comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
b4ec2830499b8c3c5e0de56a2620fb2b21c88b9e |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add support for 6-, 12-, and 18-bit limited precision calculations of exp for floating-point numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
25893a3884b7d16d5e8a4eb1e50a7a28a805e019 |
10-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add support for 6-, 12-, and 18-bit limited precision calculations of exp for floating-point numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
293d5f8bc02a9148238b2c79484637f56de65b9c |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new option, -fast-isel-verbose, that can be used with -fast-isel-no-abort to get a dump of all unhandled instructions, without an abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
69740ec6261a4a8e22e8a106710f88edf3f288cd |
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new option, -fast-isel-verbose, that can be used with -fast-isel-no-abort to get a dump of all unhandled instructions, without an abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3ef2d60e95f320fe2377d62b1f460cae44f5fdbe |
09-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Clear preference when it no longer makes sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56019 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
421f0e8713bb03acd049a26301f06974e8bb6e74 |
09-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Clear preference when it no longer makes sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56019 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0d95267e499082b658eaeaca85b7c5a226753f69 |
09-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Clean this up, based on Evan's suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
585dabb2082dbc6f7bc1b25bbf35032f4d35f5d0 |
09-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Clean this up, based on Evan's suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3915025a4fb6add2e787013b54c1552ede388c17 |
09-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Add support for 6-, 12-, and 18-bit limited precision floating-point "log" values. - Refactored some of the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f590a04731db8fd97742fb0f202697e36ab73405 |
09-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Add support for 6-, 12-, and 18-bit limited precision floating-point "log" values. - Refactored some of the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
55302169891f136b72706aee31eebeb308398ad2 |
09-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2757. Ignore liveinterval register allocation preference if the preference register is not in the right register class. This can happen due to sub-register coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56006 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ad28af8f9da9fa01cae34034d0c12ccd33876a34 |
09-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2757. Ignore liveinterval register allocation preference if the preference register is not in the right register class. This can happen due to sub-register coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56006 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
19e861a4ffb896f16a691d5ac869e894df3cd464 |
09-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make safer variant of alias resolution routine to be default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c7b9091a9b49563aaf8a6ca14b6f31f34ffbe044 |
09-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make safer variant of alias resolution routine to be default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bd297bcd4a69dd14e97afae555b593a25071fb6f |
09-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add limited precision floating-point conversions of log10 for 6- and 18-bit precisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
f083e007f8ad7e80518317b8a6f2ce1dbd25ea0d |
09-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add limited precision floating-point conversions of log10 for 6- and 18-bit precisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
baf37cd5568a7449b6b3822d2dc19582f0270877 |
09-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Check for type legality before materializing integer constants in fast isel. With this change, all of MultiSource/Applications passes on Darwin/X86 under FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d09a49a5a03e9e8d4ed5b7b143cd0dd85a117d10 |
09-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Check for type legality before materializing integer constants in fast isel. With this change, all of MultiSource/Applications passes on Darwin/X86 under FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
cf01f7a78c18224866595b4b493d03a3de305e1f |
09-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove the code that protected FastISel from aborting in the case of loads, stores, and conditional branches. It can handle those now, so any that aren't handled should trigger the abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
63cb3eb817e8d8f74a4d3b744b5beedf1ca48d8d |
09-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove the code that protected FastISel from aborting in the case of loads, stores, and conditional branches. It can handle those now, so any that aren't handled should trigger the abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
59fbc80f6b3b5c71dfb84149f589625f7ed510e3 |
09-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a constant lowering bug. Now we can do load and store instructions with funky getelementptr embedded in the address operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
483f0db2d164142681731eb5dff96442af72c255 |
09-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a constant lowering bug. Now we can do load and store instructions with funky getelementptr embedded in the address operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b2dfb89e0e7f1ee3e4fe4a3a1b3af148f0aec34f |
09-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Fix logic for not emitting no-dead-strip for some objects in llvm.used (thanks Anton). Makes visible the magic 'l' prefix for symbols on Darwin which are to be passed through the assembler, then removed at linktime (previously all references to this had been hidden in the ObjC FE code, oh well). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55973 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2d34f9f9db93f596ea731c546d833ab5d6bb5735 |
09-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Fix logic for not emitting no-dead-strip for some objects in llvm.used (thanks Anton). Makes visible the magic 'l' prefix for symbols on Darwin which are to be passed through the assembler, then removed at linktime (previously all references to this had been hidden in the ObjC FE code, oh well). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55973 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
3eb594013f666d6af9f943df5fb6ac4d902debee |
09-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add support for floating-point calculations of log2 with limited precisions of 6 and 18. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55968 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
0b40cbd218a942004770b0bc939e345bb383595a |
09-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add support for floating-point calculations of log2 with limited precisions of 6 and 18. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55968 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
14b0a2b13705d47916b6ea7e2d7c0db898a0fb81 |
08-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Don't suppress no-dead-strip for used static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
1e1f6c65f20b51c9f609a9aeb7ecdac19c542f98 |
08-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Don't suppress no-dead-strip for used static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55962 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a0e8a1e5d305ad58db3200a56c3ed8b2571cf6d6 |
08-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Reapply 55904: Unbreak and fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
382fb24804392888b06194484e38a44e3f4c6fcd |
08-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Reapply 55904: Unbreak and fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a8657e3587eb71eb920c4f0d7d4baa58f33a277d |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a few I's that were meant to be renamed to BI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55942 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dc7d3aab55b75cd27af47224278e30451729711b |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a few I's that were meant to be renamed to BI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55942 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
07cabb9432dd927a6d7b1f72039d9475c1742971 |
08-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Redo the 3 existing low-precision expansions to use float constants. An oversight by the numerics people who supplied this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
9b70c70a4815508b3306961be66f4f0eddd29988 |
08-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Redo the 3 existing low-precision expansions to use float constants. An oversight by the numerics people who supplied this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a425e0073df51ab99665062a8c00d704e89d2ef8 |
08-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r55898 to r55909. One of these patches was causing an ICE during the full bootstrap on Darwin: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_negdi2 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_negdi2_s.o Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_lshrdi3 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_lshrdi3_s.o ../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. {standard input}:unknown:Undefined local symbol LBB21_11 {standard input}:unknown:Undefined local symbol LBB21_12 {standard input}:unknown:Undefined local symbol LBB21_13 {standard input}:unknown:Undefined local symbol LBB21_8 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
cef079df78ff49684e5fe1444edf513c6f62e2af |
08-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r55898 to r55909. One of these patches was causing an ICE during the full bootstrap on Darwin: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_negdi2 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_negdi2_s.o Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_lshrdi3 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_lshrdi3_s.o ../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. {standard input}:unknown:Undefined local symbol LBB21_11 {standard input}:unknown:Undefined local symbol LBB21_12 {standard input}:unknown:Undefined local symbol LBB21_13 {standard input}:unknown:Undefined local symbol LBB21_8 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
942ca7f808b88b8789c665a3733e58c75320834f |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
In visitUREM, arrange for the temporary UDIV node to be revisited, consistent with the code in visitSREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2e1517f88a329930dc52013b99027df840b8254d |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
In visitUREM, arrange for the temporary UDIV node to be revisited, consistent with the code in visitSREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1e0e04caace14a1bdedcf5aef2271e1c031b27b4 |
08-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add VISIBILITY_HIDDEN on SDISelAsmOperandInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
01b954547ff6c7474af7098adaa2d6d8ca7801d8 |
08-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add VISIBILITY_HIDDEN on SDISelAsmOperandInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
82f94f1ad98fdcc90e44053437fa555d339a4449 |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add AsmPrinter support for i128 and larger static initializer data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55919 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
07a91ea6453f89a1828751fde0dd1fb9790575c3 |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add AsmPrinter support for i128 and larger static initializer data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55919 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
a47916d3792b47ec60d5152471db48d50dd9bb35 |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix the string for ISD::UDIVREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2e66b05a2b2a88a8b73692e8187c0be784e0ad57 |
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix the string for ISD::UDIVREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9f1185076d60153fd35feb3cadb1b4cd8debc0b6 |
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid redefinition and nnbreak windows build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e9d9a1655da3de0329a15faf93c37e8af32a60ca |
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid redefinition and nnbreak windows build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d4fde0b11c44f2261eea615389dc5da48d7f439c |
08-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Unbreak and fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
791a0d1afadd356f742513908dfb54f4a7e4c23b |
08-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Unbreak and fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55904 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
5960e4eb68be6b3bca6369f6a95d7de5ed8a9ead |
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add fast isel physical register definition support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55892 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
82bfc84a90a617cc6eb014a287ff413adaa21f02 |
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add fast isel physical register definition support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55892 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
9a0d1ba0510ef68f35c21a43861dad957759d86f |
08-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert my previous change -- the subtraction of two constants was a no-op before. This is taken care of in the selection DAG pass. In my opinion, this should be in one place or the other. I.e., it should probably be removed from the DAG combiner (along with the other arithmetic transformations on constants that are essentially no-ops). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d1e8abcb189a7cd074f91ce813336341c71ce84e |
08-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert my previous change -- the subtraction of two constants was a no-op before. This is taken care of in the selection DAG pass. In my opinion, this should be in one place or the other. I.e., it should probably be removed from the DAG combiner (along with the other arithmetic transformations on constants that are essentially no-ops). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ca460d5a39e09836e279405b85e2390fa7e7d859 |
07-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Convert // fold (sub c1, c2) -> c1-c2 from a no-op into an actual transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0cdbd3696b83b2d784f656afcd9aa4d2a10fa493 |
07-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Convert // fold (sub c1, c2) -> c1-c2 from a no-op into an actual transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f09917847bb082829feba34d1818eb97764839d9 |
07-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5bbf59abc615c3521d85dc04abfabf4cbbf66a4d |
07-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c7fcfa07d9c358e5fe20cf1da82f6b60a862920d |
07-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Doh. Pass vector by value is bad. - Add a AnalyzeCallResult specialized for calls which produce a single value. This is used by fastisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
a2608b581eac67e7e040162a32c507db18ee3b5b |
07-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Doh. Pass vector by value is bad. - Add a AnalyzeCallResult specialized for calls which produce a single value. This is used by fastisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
853244f8a6d314a9d90824c3d13e8cd368fb88ed |
06-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Next limited float precision expansion (log2 12 bits) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
d2cd53d2e46308a9da977fb55df98d1559e62d01 |
06-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Next limited float precision expansion (log2 12 bits) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
6e6074508c2f781c3e52dfe0e301cb1c7f395a91 |
06-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Revert r55859. This is breaking the build in the abscence of its companion commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55865 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
134f6e5b6d7246384eaaeacbf5052a3a218cc887 |
06-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Revert r55859. This is breaking the build in the abscence of its companion commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55865 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8a11053f3ca7efb29312c4293c4fdb5d2ca3e20f |
06-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that inserts copies for function livein registers out of ScheduleDAGEmit.cpp and into SelectionDAGISel.cpp. This allows it to be run exactly once per function, even if multiple SelectionDAG iterations happen in the entry block, as may happen with FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
283e4995a27b39e2d5b206ba64cffb06a9c35dd4 |
06-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that inserts copies for function livein registers out of ScheduleDAGEmit.cpp and into SelectionDAGISel.cpp. This allows it to be run exactly once per function, even if multiple SelectionDAG iterations happen in the entry block, as may happen with FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
electionDAG/SelectionDAGISel.cpp
|
852680a8fa4d70055177c7e1d9b0b43f218064d5 |
05-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add the next limited-precision expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
91e305b18628619eb5abd3d7a162c7d99f292824 |
05-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add the next limited-precision expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
638c6830c6d0d6871065d2b00178ee4aa7d4d044 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for AND and OR with type i1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55846 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8a8980ec4bd58e7e75d364a1144b94343828e32a |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for AND and OR with type i1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55846 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
59e577f73c9908a37cd23b81ff5e81c911d0b25e |
05-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add hooks for other intrinsics to get low-precision expansions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
062bb5dd33d7eb88e6944708b724c3d06cb1fe00 |
05-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add hooks for other intrinsics to get low-precision expansions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
40b189e4e257924d90aaf63bf2e12bc7bbca961a |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for ConstantExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
336a193d3d6a38ebde42cbfc3a688a4c36ad80e6 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for ConstantExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
be0034e3c2f671f255249d51ec95d746709fe1f1 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Revert r55817. It broke PIC. FastISel will need to find a different approach here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55842 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
0542d559a1e2f5cc319dfc125064ef74283a11c3 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Revert r55817. It broke PIC. FastISel will need to find a different approach here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55842 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
c89d2feb35560883688e43b553b8e94e7cd371de |
05-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a variant of AnalyzeCallOperands that can be used by fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
0a9e7c548fecba00b96212e1bbafc9fc8e59c6ff |
05-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a variant of AnalyzeCallOperands that can be used by fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
1c11debc94baa65b7af702bbc20c813c266afb19 |
05-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
"Fix" PR2762. The testcase now crashes codegen elsewhere due to a missing pattern for v2f64 = sint_to_fp v2i32. That is PR2687. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
e0a0f55447c818391fd4820b25ef5de47ed7252e |
05-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
"Fix" PR2762. The testcase now crashes codegen elsewhere due to a missing pattern for v2f64 = sint_to_fp v2i32. That is PR2687. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
3dd168d4452d0aff4960f01c5a7471a79eec45f3 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a search+replace-o. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
83c6e8ac87761b247f664a6875a33bb403d917e9 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a search+replace-o. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
601d3c014588ad87f6625cd8848c8d76ffe72c37 |
05-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add -flimit-float-precision to enable some faster, but less accurate (non-IEEE) code sequences for certain math library functions. Add the first of several such expansions. Don't worry, if you don't turn it on it won't affect you. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55823 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
d93d7996fa5ae499eeadb734e5a14480143ea9b5 |
05-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add -flimit-float-precision to enable some faster, but less accurate (non-IEEE) code sequences for certain math library functions. Add the first of several such expansions. Don't worry, if you don't turn it on it won't affect you. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55823 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
|
087c8507e592bbbede1746f07bd44b28559e3684 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
36c296ea13462818567a96faed62ef8a0746a4b9 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c7f4a8a80cb7e8cf09495f4b60ae45734e7d5d98 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
In FastISel mode, the scheduler may be invoked multiple times in the same block. Fix the entry-block handling to only run at at the beginning of the entry block, and not any other times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55817 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
fe9f74a6a0878266f0198c1b0186dbd7c95e23c6 |
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
In FastISel mode, the scheduler may be invoked multiple times in the same block. Fix the entry-block handling to only run at at the beginning of the entry block, and not any other times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55817 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGEmit.cpp
|
95267a1e671efc3c14e916b6978bbb15973b4cdc |
05-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Add initial support for selecting constant materializations that require constant pool loads on X86 in fast isel. This isn't actually used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
51f958e134f0daa4e29c06d08d2477c1c4712f51 |
05-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Add initial support for selecting constant materializations that require constant pool loads on X86 in fast isel. This isn't actually used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5b2298005d71d74650197462cab402ed92c2f583 |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add an include of SmallSet.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
a76b35962b7aafeed91c607d1fd7568586280dd2 |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add an include of SmallSet.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
ae73dc1448d25b02cabc7c64c86c64371453dda8 |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
oopAligner.cpp
owerSubregs.cpp
achOWriter.cpp
achineFunction.cpp
achineLICM.cpp
achineModuleInfo.cpp
achineSink.cpp
HIElimination.cpp
ostRASchedulerList.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.h
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
26f8c27c34b44f7d87de74d1de2128c1a02855bf |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
ranchFolding.cpp
LFWriter.cpp
CMetadata.cpp
CStrategy.cpp
fConversion.cpp
oopAligner.cpp
owerSubregs.cpp
achOWriter.cpp
achineFunction.cpp
achineLICM.cpp
achineModuleInfo.cpp
achineSink.cpp
HIElimination.cpp
ostRASchedulerList.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.h
tackSlotColoring.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
6448d91ad1e5497fe2f7015d61b57cb5f3040879 |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Clean up uses of TargetLowering::getTargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55769 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
404e854a4bc184d46c235708a901770dba1a903d |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Clean up uses of TargetLowering::getTargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55769 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGBuild.cpp
|
90960280ee79987f53b4952793a867143145a36a |
04-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix an overly strict assertion. Source register of a copy may not be killed, it may be killed by an implicit super-register use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55762 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c7e737e1ce677ae43da7767cbecddfca4df32eca |
04-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix an overly strict assertion. Source register of a copy may not be killed, it may be killed by an implicit super-register use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55762 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7794f2a3a7778bdbc9bdd861db1fe914450e0470 |
04-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add intrinsics for log, log2, log10, exp, exp2. No functional change (and no FE change to generate them). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55753 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
92b33088469bee2ea489b79574d26cd3847220ac |
04-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add intrinsics for log, log2, log10, exp, exp2. No functional change (and no FE change to generate them). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55753 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/TargetLowering.cpp
|
104e4ce1629ea84736691bd1ee7867bdf90e8a2e |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Do trivial local CSE for constants and other non-Instruction values in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5ac35427d2e43a9f5eea212591e26cf2fa895eae |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Do trivial local CSE for constants and other non-Instruction values in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2a7c671e2eb93e316f1214b1f5ea0f2dfa072943 |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Put RegsForValue in the llvm namespace to avoid warnings about classes in the llvm namespace having members with types from anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
92f8b6cb0c99820939cc800a0bef47b8a535a7cc |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Put RegsForValue in the llvm namespace to avoid warnings about classes in the llvm namespace having members with types from anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
|
3df24e667f04a7003342b534310919abc9c87418 |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Create HandlePHINodesInSuccessorBlocksFast, a version of HandlePHINodesInSuccessorBlocks that works FastISel-style. This allows PHI nodes to be updated correctly while using FastISel. This also involves some code reorganization; ValueMap and MBBMap are now members of the FastISel class, so they needn't be passed around explicitly anymore. Also, SelectInstructions is changed to SelectInstruction, and only does one instruction at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
ca4857aa26b7ad55a975d4053ce1cd400b6bf4a0 |
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Create HandlePHINodesInSuccessorBlocksFast, a version of HandlePHINodesInSuccessorBlocks that works FastISel-style. This allows PHI nodes to be updated correctly while using FastISel. This also involves some code reorganization; ValueMap and MBBMap are now members of the FastISel class, so they needn't be passed around explicitly anymore. Also, SelectInstructions is changed to SelectInstruction, and only does one instruction at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGISel.cpp
|
61e6093dc8d92def3dfe0b379df83f70b0558247 |
03-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Do not emit a UsedDirective for things in the llvm.used list that have internal linkage; the linker doesn't need or want this. (These objects must still be preserved at compile time, so just removing them from the llvm.used list doesn't work.) Should affect only Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55722 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
4911fb83d8a8357f67d01620b4b8979df15aa52c |
03-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Do not emit a UsedDirective for things in the llvm.used list that have internal linkage; the linker doesn't need or want this. (These objects must still be preserved at compile time, so just removing them from the llvm.used list doesn't work.) Should affect only Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55722 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
d5d81a457b5ff758b3fcc527af38827490bc68a5 |
03-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Oops, I accidentally broke the fallback case with my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
9ecc0c73c371ddf95184b9b75a66d92c17160ad7 |
03-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Oops, I accidentally broke the fallback case with my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
99aaf108cdf4ac5b972757abbf4e0a3d547804b1 |
03-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix an issue where we were reusing materializations of constants in blocks not dominated by the materialization. This is the simple fix, materializing the constant before every use. It might be better to either track domination of uses or to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
95a87fdc33d8f0dff5ffb35839c4369619db0577 |
03-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix an issue where we were reusing materializations of constants in blocks not dominated by the materialization. This is the simple fix, materializing the constant before every use. It might be better to either track domination of uses or to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f0cbcd48804961b05359ee41859bbd7774f41fe0 |
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Split the SelectionDAG-building code, including the FunctionLoweringInfo and SelectionDAGLowering classes, out of SelectionDAGISel.cpp and put it in a separate file, SelectionDAGBuild.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
13aeef9ec42c49c4d7f6786b86b3fa23e547860c |
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Split the SelectionDAG-building code, including the FunctionLoweringInfo and SelectionDAGLowering classes, out of SelectionDAGISel.cpp and put it in a separate file, SelectionDAGBuild.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGBuild.cpp
electionDAG/SelectionDAGBuild.h
electionDAG/SelectionDAGISel.cpp
|
94b8d7ea63c5b533c299226677a0973a39f98e91 |
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Separate MachineInstr-emitting routines from actual scheduling routines and move them into a separate file, ScheduleDAGEmit.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
|
c38611548b659f379def8161173e73025d3e648a |
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Separate MachineInstr-emitting routines from actual scheduling routines and move them into a separate file, ScheduleDAGEmit.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGEmit.cpp
|
3f62940561760fe5dcc8675853be57ee4ac8069a |
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix addRegisterDead and addRegisterKilled to be more thorough when searching for redundant subregister dead/kill bits. Previously it was common to see instructions marked like this: "RET %EAX<imp-use,kill>, %AX<imp-use,kill>" With this change, addRegisterKilled continues scanning after finding the %EAX operand, so it proceeds to discover the redundant %AX kill and eliminates it, producing this: "RET %EAX<imp-use,kill>" This currently has no effect on the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55698 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
244b86aa5261f8cc7e7cb2a018005136379ab76d |
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix addRegisterDead and addRegisterKilled to be more thorough when searching for redundant subregister dead/kill bits. Previously it was common to see instructions marked like this: "RET %EAX<imp-use,kill>, %AX<imp-use,kill>" With this change, addRegisterKilled continues scanning after finding the %EAX operand, so it proceeds to discover the redundant %AX kill and eliminates it, producing this: "RET %EAX<imp-use,kill>" This currently has no effect on the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55698 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f45261fb9b2f429c4f1f5a0270e2f5e127e39467 |
03-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
If TargetSelectInstruction returns true, move to next instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
088cb64f204b806453c5aa7fd9697f523257a89f |
03-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
If TargetSelectInstruction returns true, move to next instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
36fd941fc029c6ea50ed08d26a2bfe4932b9789c |
02-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55668 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d00ed04e9c5e13055f4375af165af2ee4e58735e |
02-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55668 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d2ff647964ed242e67ac12f7d21a58c864309d95 |
02-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Ensure that HandlePHINodesInSuccessorBlocks is run for all blocks, even in FastISel mode in the case where FastISel successfully selects all the instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
61a1f1ceb9f0fd2cb796eba50663c79cbdda63f5 |
02-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Ensure that HandlePHINodesInSuccessorBlocks is run for all blocks, even in FastISel mode in the case where FastISel successfully selects all the instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ed63214fcbebcaf989dbc6a5bf7c3b6df67732f5 |
01-Sep-2008 |
Gabor Greif <ggreif@gmail.com> |
Provide two overloads of AnalyzeNewNode. The first can update the SDNode in an SDValue while the second is called with SDNode* and returns a possibly updated SDNode*. This patch has no intended functional impact, but helps eliminating ugly temporary SDValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
6b54ff33bcf5bdcc966f2f560c8f1daa44e263ba |
01-Sep-2008 |
Gabor Greif <ggreif@gmail.com> |
Provide two overloads of AnalyzeNewNode. The first can update the SDNode in an SDValue while the second is called with SDNode* and returns a possibly updated SDNode*. This patch has no intended functional impact, but helps eliminating ugly temporary SDValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
1189f3ac3b84063f1569eddeacfcb3b79bc25c69 |
01-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
Even though no caller actually uses the new value (what matters is that it is added to the worklist), it seems more logical to return it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
f6789d1b11e3e53af5a32cfe4e72c758df26926d |
01-Sep-2008 |
Duncan Sands <baldrick@free.fr> |
Even though no caller actually uses the new value (what matters is that it is added to the worklist), it seems more logical to return it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
acb04ec4273516242fe87cb0a57a43136805dedd |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Cosmetic changes to Machine LICM. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55578 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
59559ae411283564acf76f16a038cffeb3c2f30d |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Cosmetic changes to Machine LICM. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55578 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
2692d5957482184e767503d9c0ae703163b338e3 |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Another situation where ROTR is cheaper than ROTL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
89f05f5f1df2c1fbc3c6590d545227c11a589c0d |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Another situation where ROTR is cheaper than ROTL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
353dea2f0aca7ddbdad242b9dabb065337744d98 |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
For this pattern, ROTR is the cheaper option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a70293dc8277d8e96fe80efc059334025f4d7857 |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
For this pattern, ROTR is the cheaper option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c5cbda12e933591ce76135aa776c44193255b2e9 |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
- Fix comment so that it describes how the code really works: // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotl x, y) // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotr x, (sub 32, y)) Example: (x == 0xDEADBEEF and y == 4) (x << 4) | (x >> 28) => 0xEADBEEF0 | 0x0000000D => 0xEADBEEFD (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => 0xEADBEEFD - Fix comment and code for second version. It wasn't using the rot* propertly. // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotr x, y) // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotl x, (sub 32, y)) (x << 28) | (x >> 4) => 0xD0000000 | 0x0DEADBEE => 0xDDEADBEE (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => (0xEADBEEFD) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55575 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f3dd73946866550a805bc8dd9b797073135ab3ca |
31-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
- Fix comment so that it describes how the code really works: // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotl x, y) // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotr x, (sub 32, y)) Example: (x == 0xDEADBEEF and y == 4) (x << 4) | (x >> 28) => 0xEADBEEF0 | 0x0000000D => 0xEADBEEFD (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => 0xEADBEEFD - Fix comment and code for second version. It wasn't using the rot* propertly. // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotr x, y) // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotl x, (sub 32, y)) (x << 28) | (x >> 4) => 0xD0000000 | 0x0DEADBEE => 0xDDEADBEE (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => (0xEADBEEFD) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55575 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
dc71563794a6a30f66278af5a9cdccde36b1797e |
31-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8b2235cf951f5004fd1f097ab228d226540a1237 |
31-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
12632d2222d983a1db197929df0f66393a239316 |
30-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
fix some 80-col violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b420b9d7c400aff8027b7cdfc818c9a72b00315d |
30-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
fix some 80-col violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cd04708f59b2777370a7c812c72572b1dae91221 |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 55467 with fix. If copy is being replaced by remat'ed def, transfer the implicit defs onto the remat'ed instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55564 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
b3b1bd72634e76fa8df2243bbf8712c0fb915a2f |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 55467 with fix. If copy is being replaced by remat'ed def, transfer the implicit defs onto the remat'ed instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55564 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
3689ff450ae2d72aadf48c70f499e4368684d1e3 |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fold isRematerializable checks into isSafeToReMat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55563 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a07a9a214b371f0cbc62fe77941971a1ff5063b8 |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fold isRematerializable checks into isSafeToReMat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55563 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
eb9f89287e8ff3daeb9191ecd0cc3241a4f4137d |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Transform (x << (y&31)) -> (x << y). This takes advantage of the fact x86 shift instructions 2nd operand (shift count) is limited to 0 to 31 (or 63 in the x86-64 case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
76a64c7811554a1f8ff4a8a9b8b9c741d6fc87cc |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Transform (x << (y&31)) -> (x << y). This takes advantage of the fact x86 shift instructions 2nd operand (shift count) is limited to 0 to 31 (or 63 in the x86-64 case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cc54e76cc67bbc9badc024ab29053602769bd255 |
30-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix an issue where a use might be selected before a def, and then we didn't respect the pre-chosen vreg assignment when selecting the def. This is the naive solution to the problem: insert a copy to the pre-chosen vreg. Other solutions might be preferable, such as: 1) Passing the dest reg into FastEmit_. However, this would require the higher level code to know about reg classes, which they don't currently. 2) Selecting blocks in reverse postorder. This has some compile time cost for computing the order, and we'd need to measure its impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6420503b3ee467796fa9e120627a8af2eadc34d4 |
30-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix an issue where a use might be selected before a def, and then we didn't respect the pre-chosen vreg assignment when selecting the def. This is the naive solution to the problem: insert a copy to the pre-chosen vreg. Other solutions might be preferable, such as: 1) Passing the dest reg into FastEmit_. However, this would require the higher level code to know about reg classes, which they don't currently. 2) Selecting blocks in reverse postorder. This has some compile time cost for computing the order, and we'd need to measure its impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4529966d996bfb657a977c67b9bb777e5b244e0f |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix 80 col. violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c296a30ea7510c9ec388b1cf8b0498dbba92710d |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix 80 col. violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
17a568b6682874f7a5dfe92728d372421de3e645 |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Back out 55498. It broken Apple style bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
56550ae09a9d0151533e3ca9ab370a4eb0ed1b15 |
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Back out 55498. It broken Apple style bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
99b218218c0ca3ebfdd568ddfeafa07842e9d69d |
29-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a target callback for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55512 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cb9b4d32a9754f2a33c595bc0ddf758093caca9a |
29-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a target callback for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55512 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ba36cb5242eb02b12b277f82b9efe497f7da4d7f |
28-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
1c80d116c6a34e02059593964233f2e641bdbc5b |
28-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
205d92589bc8c59d4bba9ddf89e0eb3c4d548cda |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Implement null and undef values for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55500 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
41e4a503114e3123167e76a456c90c310d90f8d1 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Implement null and undef values for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55500 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a3f8b7a4ce8ab5c46d52077162851105a390a6ac |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize DAGCombiner's worklist processing. Previously it started its work by putting all nodes in the worklist, requiring a big dynamic allocation. Now, DAGCombiner just iterates over the AllNodes list and maintains a worklist for nodes that are newly created or need to be revisited. This allows the worklist to stay small in most cases, so it can be a SmallVector. This has the side effect of making DAGCombine not miss a folding opportunity in alloca-align-rounding.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ef709393e46697d18fbbedc9fe5c5aa279b15ae2 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize DAGCombiner's worklist processing. Previously it started its work by putting all nodes in the worklist, requiring a big dynamic allocation. Now, DAGCombiner just iterates over the AllNodes list and maintains a worklist for nodes that are newly created or need to be revisited. This allows the worklist to stay small in most cases, so it can be a SmallVector. This has the side effect of making DAGCombine not miss a folding opportunity in alloca-align-rounding.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9ffd8b5720d606eb7da702c97ed6491697867949 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move CaseBlock, JumpTable, and BitTestBlock to be members of SelectionDAGLowering instead of being in an anonymous namespace. This fixes warnings about SelectionDAGLowering having fields using anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55497 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2e0fa9da8574ffc5da044f2c027cc46da9855440 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move CaseBlock, JumpTable, and BitTestBlock to be members of SelectionDAGLowering instead of being in an anonymous namespace. This fixes warnings about SelectionDAGLowering having fields using anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55497 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5edd361497f4c78a20fcbb75c6e7e94ff8046ed1 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a FastISel bug where the instructions from lowering the arguments were being emitted after the first instructions of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2c44e9a51341abb17ff11f516a46f026024e03b6 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a FastISel bug where the instructions from lowering the arguments were being emitted after the first instructions of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
91ee5454ae8f15de769a7316b4c36734b6103e45 |
28-Aug-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reduce the size of the Parts vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55483 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ccd63ce576e408a08d9afb66a87109e2685daeb0 |
28-Aug-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reduce the size of the Parts vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55483 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c0bb68b98267c75168e6596d20610a8a8b3c0635 |
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Hook up support for fast-isel of trunc instructions, using the newly working support for EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
75645a085bef73d6bdc7ebaa4ebecf627961d2e1 |
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Hook up support for fast-isel of trunc instructions, using the newly working support for EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
40a468f24909792f000e3ccc1dda7a27b9c34b69 |
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
FastEmitInst_extractsubreg doesn't need to be passed the register class. It can get it from MachineRegisterInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55476 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8b6bf04830a9593fa8ce80f38299bac6c96e2f25 |
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
FastEmitInst_extractsubreg doesn't need to be passed the register class. It can get it from MachineRegisterInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55476 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f641395435ddfe2e3f0d9857fff4f6da77ee5427 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Revert r55467; it causes regressions in UnitTests/Vector/divides, Benchmarks/sim/sim, and others on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55475 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
bdea9b3ba772dfd5459ceb8ebd877fb535d20ea9 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Revert r55467; it causes regressions in UnitTests/Vector/divides, Benchmarks/sim/sim, and others on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55475 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
c748ffa4e4408545b6adf102bfba52001f8a0a92 |
28-Aug-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Correctly resize the Parts array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5c9e03a46f17cde2ccab566713ed212bf7343991 |
28-Aug-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Correctly resize the Parts array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9242cb8b8288664da4147fd6dda43514926a9041 |
28-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a copy isn't coalesced, but its src is defined by trivial computation. Re-materialize the src to replace the copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55467 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
cbe48593bc4048978f388a50de5f8c896d8d2813 |
28-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a copy isn't coalesced, but its src is defined by trivial computation. Re-materialize the src to replace the copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55467 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
e00a8a2a2e11a37fd1ddf2504bd22d225d0994d0 |
28-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
Split the ATOMIC NodeType's to include the size, e.g. ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD. Increased the Hardcoded Constant OpActionsCapacity to match. Large but boring; no functional change. This is to support partial-word atomics on ppc; i8 is not a valid type there, so by the time we get to lowering, the ATOMIC_LOAD nodes looks the same whether the type was i8 or i32. The information can be added to the AtomicSDNode, but that is the largest SDNode; I don't fully understand the SDNode allocation, but it is sensitive to the largest node size, so increasing that must be bad. This is the alternative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
bc18766ddb484864750c40e1b2763ad81120a6ac |
28-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
Split the ATOMIC NodeType's to include the size, e.g. ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD. Increased the Hardcoded Constant OpActionsCapacity to match. Large but boring; no functional change. This is to support partial-word atomics on ppc; i8 is not a valid type there, so by the time we get to lowering, the ATOMIC_LOAD nodes looks the same whether the type was i8 or i32. The information can be added to the AtomicSDNode, but that is the largest SDNode; I don't fully understand the SDNode allocation, but it is sensitive to the largest node size, so increasing that must be bad. This is the alternative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
7c3234c6be0dc0bdf4b5d6f848cd728a77f349d7 |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Reorganize the lifetimes of the major objects SelectionDAGISel works with. SelectionDAG, FunctionLoweringInfo, and SelectionDAGLowering objects now get created once per SelectionDAGISel instance, and can be reused across blocks and across functions. Previously, they were created and destroyed each time they were needed. This reorganization simplifies the handling of PHI nodes, and also SwitchCases, JumpTables, and BitTestBlocks. This simplification has the side effect of fixing a bug in FastISel where successor PHI nodes weren't being updated correctly. This is also a step towards making the transition from FastISel into and out of SelectionDAG faster, and also making plain SelectionDAG faster on code with lots of little blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55450 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0f2d71dbffc79d57fec930214b092cf3ce6b4adc |
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Reorganize the lifetimes of the major objects SelectionDAGISel works with. SelectionDAG, FunctionLoweringInfo, and SelectionDAGLowering objects now get created once per SelectionDAGISel instance, and can be reused across blocks and across functions. Previously, they were created and destroyed each time they were needed. This reorganization simplifies the handling of PHI nodes, and also SwitchCases, JumpTables, and BitTestBlocks. This simplification has the side effect of fixing a bug in FastISel where successor PHI nodes weren't being updated correctly. This is also a step towards making the transition from FastISel into and out of SelectionDAG faster, and also making plain SelectionDAG faster on code with lots of little blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55450 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
8970f00deff00ffce1f35cf00883357e1582daa1 |
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
44e9a2f03a75f20f3218a8a8463e9342b9ea113c |
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55439 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8763c1c54413c9cd0b56e2860edb5856151a69fc |
27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move the check whether it's worth remating to caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55434 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
woAddressInstructionPass.cpp
|
a02c669b712be61831109eabf521e937d577faca |
27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move the check whether it's worth remating to caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55434 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
woAddressInstructionPass.cpp
|
a318dabc0edbcc7a2b54d99b026a093361ec14fc |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel's bitcast code for the case where getRegForValue fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55431 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f2075e053142cf60be2df91c4ea675a913333fe5 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel's bitcast code for the case where getRegForValue fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55431 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
df3b99381f1c211071cc1daf0cc297666877bbcb |
27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor isSafeToReMat out of 2addr pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55430 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
woAddressInstructionPass.cpp
|
75e2ceec552574757669f41dfbe605a6c0a58097 |
27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor isSafeToReMat out of 2addr pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55430 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
woAddressInstructionPass.cpp
|
6336b70541204d1a8377ec1f33748a7260e0a31d |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use TargetLowering to get the types in fast isel, which handles pointer types correctly for our purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1dd5b85daf38ed2ef91dd4b595e2346b6a9580df |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use TargetLowering to get the types in fast isel, which handles pointer types correctly for our purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
151ed61a2f9c3482d35a54d502e7cd147f22a21b |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Don't check TLI.getOperationAction. The FastISel way is to just try to do the action and let the tablegen-generated code determine if there is target-support for an operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
5396e7b841b1173c1e011e3a94824058faa30f64 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Don't check TLI.getOperationAction. The FastISel way is to just try to do the action and let the tablegen-generated code determine if there is target-support for an operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ad368ac2b5f303050e9aaa357e2b806fae38f81b |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a new FastISel method, getRegForValue, which takes care of the details of materializing constants and other values into registers, and make use of it in several places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1e0ff77b66490ccb73f7c9e6093bdc3adebe63e1 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a new FastISel method, getRegForValue, which takes care of the details of materializing constants and other values into registers, and make use of it in several places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
96a9999d79345fa7bc7e2f2a3f28edef4c69e6b5 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment about the current floating-point constant code in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3087240477f138ba016975e1205b375e79393122 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment about the current floating-point constant code in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e5a8dc5cc4647cdfd97c71165d4c8f805b4c78a3 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize ScheduleDAGRRList's topological sort to use one pass instead of two, and to not need a scratch std::vector. Also, compute the ordering immediately in the result array, instead of in another scratch std::vector that is copied to the result array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55421 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
a43387185bc30b5a81a1b6472a8524b80505065f |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize ScheduleDAGRRList's topological sort to use one pass instead of two, and to not need a scratch std::vector. Also, compute the ordering immediately in the result array, instead of in another scratch std::vector that is copied to the result array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55421 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3a09d891a47c3f887bb1d9fec0355dffdc205b38 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize ScheduleDAG's ComputeDepths and ComputeHeights to not need a scratch std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
4c43d5ab346da71dedc99ccd6c3cd7f87e86498b |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize ScheduleDAG's ComputeDepths and ComputeHeights to not need a scratch std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a8b8332e81cb2eb1dfed70ff507e752f7fef5479 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Remove the std::ostream form of PseudoSourceValue's print, which isn't needed anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55419 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
7afc3b7f03c1c226ad4d924b36a6d232999546e4 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Remove the std::ostream form of PseudoSourceValue's print, which isn't needed anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55419 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
10df0fa73e396bbc93a8940e8b53827390c54d10 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Basic FastISel support for floating-point constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
9f28bc56ecd6c87bf4875a6c3ded509ef08b9231 |
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Basic FastISel support for floating-point constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
96c5ea878c96ce123c2c84bafcfb70032b56c9ab |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix handling of inttoptr and ptrtoint when unhandled operands are present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
32e6eeefeacc64395e8a616e876d25a8a4dc1060 |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix handling of inttoptr and ptrtoint when unhandled operands are present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
9d5b41624003daf259b33fc953aa471049700353 |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of inttoptr and ptrtoint in the cases where truncation is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d5d9a90ab4c97946e242ff3072cbff591e8ddb68 |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of inttoptr and ptrtoint in the cases where truncation is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d0533c9998d3baf41848ba559a9b2f2c65296d14 |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Factor out a large amoutn of the cast handling code in fast isel into helper methods. This simultaneously makes the code simpler and adds support for sext as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c619ed247847c6b4b523f8148a9c5a65cfe5fde8 |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Factor out a large amoutn of the cast handling code in fast isel into helper methods. This simultaneously makes the code simpler and adds support for sext as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
97e2568f46f66e67cfa6a61403bddaeba38a252f |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of zext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7c3dd1f2cead8b5e37024f352716b1e7df6d231e |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of zext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55396 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
99a6cb92d173c142073416c81efe6d3daeb80b49 |
27-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
disallow direct access to SDValue::ResNo, provide a getter instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
46bf54702f3d06e26fcc6520ad347540696f263d |
27-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
disallow direct access to SDValue::ResNo, provide a getter instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
13269335a55395f2914c81ddb2401524abb4fa5e |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fptosi of constants in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55393 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
30eba3f242c82aac1d939288be0b1d81b3629692 |
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fptosi of constants in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55393 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3200d92947cd64f82ca748d65d1e58c3d45f440f |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize SelectionDAG's topological sort to use one pass instead of two, and to not need a scratch std::vector. Also, use the SelectionDAG's topological sort in LegalizeDAG instead of having a separate implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
509fca48f04bb2681773ab3a02eff9226f12aba6 |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize SelectionDAG's topological sort to use one pass instead of two, and to not need a scratch std::vector. Also, use the SelectionDAG's topological sort in LegalizeDAG instead of having a separate implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
763d89343be210eb62a13318ca0cc9321ce46bfb |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the bitcast code into its own function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3940b9989ce24b8305ae346ea332f95d3da10701 |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the bitcast code into its own function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
80bc6e2243b7ae99da42bf2e61df4ebccf8d8821 |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make FastISel use the correct argument type when casting GEP indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8d6f1b29ffbe6d270707ea528e26cc4769b7d17e |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make FastISel use the correct argument type when casting GEP indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b71fea248fd7cf9ab2c5737997a3dc5682948dc4 |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Don't select binary instructions with illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0254ba1639d3ab02a8c5be6466f4eed9efe94cf6 |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Don't select binary instructions with illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a843b8d391de28ca0f532b22ab3e791e1e09c47b |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of sitofp, and remove some unnecessary and imprecise legality checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
f579570994627d4a0aa2837019002e62c67b90a3 |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of sitofp, and remove some unnecessary and imprecise legality checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
77a218765ac85b2e0c6ce01bf8a7b07dfe80bead |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use a combination of copyRegToReg and ISD::BIT_CONVERT when doing fast isel of bitcasts, allowing it to support the full range of conversions people might ask for in a correct manner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
540611c238df4f1d298bf21c9ed1c68ca153a43c |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use a combination of copyRegToReg and ISD::BIT_CONVERT when doing fast isel of bitcasts, allowing it to support the full range of conversions people might ask for in a correct manner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
940f83e772ca2007d62faffc83094bd7e8da6401 |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy requested was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
9fa72d9078dbead41d24462d0588135804999171 |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy requested was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
46aa2f5aab3d39e9cba840ecd8068a6531f8f8a9 |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of non-constant fptosi instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
90e7b1e55332b1b54264d016126e5acd7c3f4518 |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of non-constant fptosi instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
09c5d8baa2c068fead50630ec2432a5dd1e7b904 |
26-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
typo fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5fedcd4d0cd4188dfcbd3c5513d0c3f5d8013798 |
26-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
typo fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1146728bfaeb471f675b805ceb27a08d28bbf468 |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Actually recycle SDNode allocations. SelectionDAG is using RecyclingAllocator, but this change is needed for the nodes to actually be recycled. This cuts SelectionDAG's memory usage high-water-mark in half in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0b08b15eca3e5893384df86a140260d68d2205f5 |
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Actually recycle SDNode allocations. SelectionDAG is using RecyclingAllocator, but this change is needed for the nodes to actually be recycled. This cuts SelectionDAG's memory usage high-water-mark in half in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0f84e4e31009eecf2dfcbe6113b65d0919f30254 |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a RetVT parameter to emitted FastISel methods, so that we will be able to pass the desired return type down. This is not currently used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55345 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
3ac15da88f1a81f8a2adc9b20b7e1f154d995395 |
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a RetVT parameter to emitted FastISel methods, so that we will be able to pass the desired return type down. This is not currently used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55345 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b41aec54767a825ac54c8822e787700bb08a3460 |
26-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
993d00682c245c5d33d03fecd71d2c774df2e9d3 |
26-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d894f1d274515db527962b6db2d9983827fdcbd6 |
25-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Expand bitcast support in fast isel to support bitcasts of non-constant values by emitting reg-reg copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0658ade677cfe44b6a154094a8a32ac390b329e1 |
25-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Expand bitcast support in fast isel to support bitcasts of non-constant values by emitting reg-reg copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6d0c25ec3a7ca822e68f73a4481eee43eb5c9485 |
25-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of (integer) immediate materialization pattens, and use them to support bitcast of constants in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4333727d1bd840bbd80eda307c94a2c4aa57d42b |
25-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of (integer) immediate materialization pattens, and use them to support bitcast of constants in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
edfb72c6288118ab9c900a560ded89dfaa107296 |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
simplify PseudoSourceValue printing a bit. Unnest all of PseudoSourceValue.cpp from the llvm namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55293 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
|
24ae2a98650e6390dd3bb2d5d6870370798a728c |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
simplify PseudoSourceValue printing a bit. Unnest all of PseudoSourceValue.cpp from the llvm namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55293 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
|
40ab164d3ae6fddb279ae49ab2f9756b466c640a |
24-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Print PseudoSourceValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55291 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
|
2a65caa6ce4e0c97ac34374c7711be155ba9dc45 |
24-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Print PseudoSourceValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55291 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
|
c56711c212849fe68b8d00597efda6fcb28f891e |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
make sure to flush the stream after dumping, to make sure it goes out immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55288 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b787620a3a34e277e1343651ff4d1bb95e3f93e0 |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
make sure to flush the stream after dumping, to make sure it goes out immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55288 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
62ca32540f950d500227f1863b95cd08ad28099e |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
get MachineConstantPool off std::ostream, onto raw_ostream. It would be really nice if someone converted MachineFunction::print to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55268 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAGPrinter.cpp
|
491f783caa6d53724a49d4746428a0313facbb86 |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
get MachineConstantPool off std::ostream, onto raw_ostream. It would be really nice if someone converted MachineFunction::print to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55268 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAGPrinter.cpp
|
944fac71e082cc2664cc71b4d3f6c72bab7143fb |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Switch the asmprinter (.ll) and all the stuff it requires over to use raw_ostream instead of std::ostream. Among other goodness, this speeds up llvm-dis of kc++ with a release build from 0.85s to 0.49s (88% faster). Other interesting changes: 1) This makes Value::print be non-virtual. 2) AP[S]Int and ConstantRange can no longer print to ostream directly, use raw_ostream instead. 3) This fixes a bug in raw_os_ostream where it didn't flush itself when destroyed. 4) This adds a new SDNode::print method, instead of only allowing "dump". A lot of APIs have both std::ostream and raw_ostream versions, it would be useful to go through and systematically anihilate the std::ostream versions. This passes dejagnu, but there may be minor fallout, plz let me know if so and I'll fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
|
1fefaacfde9c8c1e88d97758b0b3a6aa587698c8 |
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Switch the asmprinter (.ll) and all the stuff it requires over to use raw_ostream instead of std::ostream. Among other goodness, this speeds up llvm-dis of kc++ with a release build from 0.85s to 0.49s (88% faster). Other interesting changes: 1) This makes Value::print be non-virtual. 2) AP[S]Int and ConstantRange can no longer print to ostream directly, use raw_ostream instead. 3) This fixes a bug in raw_os_ostream where it didn't flush itself when destroyed. 4) This adds a new SDNode::print method, instead of only allowing "dump". A lot of APIs have both std::ostream and raw_ostream versions, it would be useful to go through and systematically anihilate the std::ostream versions. This passes dejagnu, but there may be minor fallout, plz let me know if so and I'll fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAG.cpp
|
6ecf50908c78aae0feff1c378fbb75dcf013ed21 |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make MBBMap a DenseMap instead of a std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55220 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
42e10a8a7f9ad7590bd88473b41ebaab9a5f98df |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make MBBMap a DenseMap instead of a std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55220 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
f350b277f32d7d47f86c0e54f4aec4d470500618 |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move the point at which FastISel taps into the SelectionDAGISel process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55219 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
14a6644251df9ccb261bb4e3ab386b738df36633 |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move the point at which FastISel taps into the SelectionDAGISel process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55219 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6679906d9724868bf2198e04952ba42f31d7b7fe |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating shift-by-zero SDNodes in the common case of i8* getelementptr. DAGCombine eliminates these, but this is a fairly common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c8d0a961f0669d8d727e33fb75e97a88483de489 |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating shift-by-zero SDNodes in the common case of i8* getelementptr. DAGCombine eliminates these, but this is a fairly common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6f17966a804f53518aa06fd0b5f035d5b1a51589 |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move SelectionDAG's constructor out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
03405562a8d67da8a86c8864c8a2914482abb7ad |
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move SelectionDAG's constructor out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3c8f36fd03d046ee2a8700c60b5a52887d9f07b9 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Reapply r55191 and r55192. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
e60171e20f9578a2cfa810fd8e7bc6157153f118 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Reapply r55191 and r55192. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
449416deb6d08bbc0939c51e5e82f55decdff601 |
22-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r55190, r55191, and r55192. They broke the build with this error message: {standard input}:17:bad register name `%sil' make[4]: *** [libgcc/./_addvsi3.o] Error 1 make[4]: *** Waiting for unfinished jobs.... {standard input}:23:bad register name `%dil' {standard input}:28:bad register name `%dil' make[4]: *** [libgcc/./_addvdi3.o] Error 1 {standard input}:18:bad register name `%sil' make[4]: *** [libgcc/./_subvsi3.o] Error 1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55200 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
ce1c5c11e59f565a2fcb5e53b407233c999884f1 |
22-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r55190, r55191, and r55192. They broke the build with this error message: {standard input}:17:bad register name `%sil' make[4]: *** [libgcc/./_addvsi3.o] Error 1 make[4]: *** Waiting for unfinished jobs.... {standard input}:23:bad register name `%dil' {standard input}:28:bad register name `%dil' make[4]: *** [libgcc/./_addvdi3.o] Error 1 {standard input}:18:bad register name `%sil' make[4]: *** [libgcc/./_subvsi3.o] Error 1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55200 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
5ed3cbb753ac3cd1967d6e2d37b6985655607559 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix the InsertBranch call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55192 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
fe91948efff85cf0d5fbc60c9434c652694e4f50 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix the InsertBranch call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55192 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e0182ec0e473ae2cd23f6451d2539b7ec449f04e |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Support non-fallthrough unconditional branches in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
2ce6c3194a049b9f59fe79e917c51118e7db2d27 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Support non-fallthrough unconditional branches in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
3b7753be2e899cf3a79835a8ff810e869035c87b |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for PHINodes. Machine PHI nodes are not yet updated properly, but that's a separate task. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55187 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8727e81a492c121589909b7583152c28b0eac7e3 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for PHINodes. Machine PHI nodes are not yet updated properly, but that's a separate task. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55187 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
1501cdbf63cff3afd92df6cd249096770334b268 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SmallVector's size calculation so that a size of 0 is handled correctly, and change a few SmallVector uses to use size 0 to more clearly reflect their intent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55181 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
|
e458ea810c21132ec659af98842d5dae560bf8b8 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SmallVector's size calculation so that a size of 0 is handled correctly, and change a few SmallVector uses to use size 0 to more clearly reflect their intent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55181 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
|
2dba6a1bdb7d78b4d1e5e69b81989816193e6b70 |
22-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
consolidate DenseMapInfo implementations, and add one for std::pair. Patch contributed by m-s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55167 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
382d903dddd288dc9f2a2f94a9a367f706e06f3d |
22-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
consolidate DenseMapInfo implementations, and add one for std::pair. Patch contributed by m-s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55167 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
22bb31103de3337f0bb74c7bee16d1817d4dca14 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the predicate check code from DAGISelEmitter.cpp and use it in FastISelEmitter.cpp, and make FastISel subtarget aware. Among other things, this lets it work properly on x86 targets that don't have SSE, where it successfully selects x87 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e97f1a3c474394928caac5f85f8554eab0471a05 |
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the predicate check code from DAGISelEmitter.cpp and use it in FastISelEmitter.cpp, and make FastISel subtarget aware. Among other things, this lets it work properly on x86 targets that don't have SSE, where it successfully selects x87 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a6211d9e83dfce3f8e3109af0d4b9a8e6647eedf |
22-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55154 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
d3d47fe10ad0095b34b568a454231682878cf117 |
22-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55154 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
c8d3a620921740175f500311edeb75ea8666cf27 |
21-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
02d56e123fc3098e559dac247bfe69183dd8baa7 |
21-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55134 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
|
2bb1e3eede14dd8a965506465e2876fb1ae765c2 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add libcalls for the new rounding opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
b215823aff08e6a519995bedf3b27b62ed862e9a |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add libcalls for the new rounding opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
509e84fa7146175c86dec5ef2167290f294dc89e |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add libm-oriented ISD opcodes for rounding operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
c8b20e2ce912e391766ba70e959e8a50ad020db8 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add libm-oriented ISD opcodes for rounding operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
f93cf79505f07cb97597fbc5955462ad7670ca5c |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Have FastISel skip the multiply by 1 for getelementptr on i8*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
747675ca64694761cfeb43aa6c38c5202267a630 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Have FastISel skip the multiply by 1 for getelementptr on i8*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
7a0e6593d03bd2dd21c3ac7dcf189f1da86b16da |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
MVT::getMVT uses iPTR for pointer types, while we need the actual intptr_t type in this case. FastISel can now select simple getelementptr instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
32db96430d11a6891309b8bc2b03f01f1eabca08 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
MVT::getMVT uses iPTR for pointer types, while we need the actual intptr_t type in this case. FastISel can now select simple getelementptr instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
ca84121596640c99887f909f3b9a3ae830391e64 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Elements in DeadNodeSet are checked for use_empty() before they are actually deleted, so it's not necessary to remove re-used nodes from the set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9b93aed3ded5061f3c45401032f12d152a35c0e2 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Elements in DeadNodeSet are checked for use_empty() before they are actually deleted, so it's not necessary to remove re-used nodes from the set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d5fe57d2f980c6bd1a61450f99c254a76d0f1683 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Basic fast-isel support for instructions with constant int operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55099 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
895213e6bfa31d95d7dc01b388c859f8b61a2ec1 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Basic fast-isel support for instructions with constant int operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55099 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
2076aa800e78a2e196eac47cc8413a074a761d8d |
21-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Type of first GEP operand is always the same as the target pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6e0066a16aaa8b4ca87bd319215d6811c515493a |
21-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Type of first GEP operand is always the same as the target pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
cb3718832375a581c5ea23f15918f3ea447a446c |
21-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use raw_ostream throughout the AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55092 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
LFWriter.h
CMetadataPrinter.cpp
LVMTargetMachine.cpp
achOWriter.cpp
achOWriter.h
|
847b99b2df4534498b514c439324e7c60de5c3b7 |
21-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use raw_ostream throughout the AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55092 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
smPrinter/OcamlGCPrinter.cpp
LFWriter.cpp
LFWriter.h
CMetadataPrinter.cpp
LVMTargetMachine.cpp
achOWriter.cpp
achOWriter.h
|
fd903944de8ddcbe88902fa1eca9366eb9641201 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c758a96d041534cc31f7ed393cd7d8d7b83f2aa9 |
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
83785c80968165b30fcdd111ceb2c28d38bcff86 |
21-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55085 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
d486a9d33864b8a5bc62d9bd148dda5a26a494b3 |
21-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55085 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
f990b571c5c4828206b4e14ae7f95d36739b4336 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Simplify the BuildMI calls even more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55077 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0fb23e3f764d090d0ad1331d38aafd329d94c4d5 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Simplify the BuildMI calls even more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55077 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
bb466331e7e50d03497ce40ee344870236fd9c32 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Simplify FastISel's constructor argument list, make the FastISel class hold a MachineRegisterInfo member, and make the MachineBasicBlock be passed in to SelectInstructions rather than the FastISel constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
7bc5a3d9a8791f8c097df5482f8594a4f73a2e5f |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Simplify FastISel's constructor argument list, make the FastISel class hold a MachineRegisterInfo member, and make the MachineBasicBlock be passed in to SelectInstructions rather than the FastISel constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
electionDAG/SelectionDAGISel.cpp
|
2385852b5b9b82e15eb4502d71b5f916882418d7 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Dump the instruction that foiled ISel even when -debug is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55075 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7dfbbd201354b9316d1ab5470fbee878935bac5c |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Dump the instruction that foiled ISel even when -debug is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55075 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fb018d0433f7b52c3f1235e675276adb1f92d597 |
20-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't hoist instructions that define a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55074 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
84eead6c6aaa8ff881c344844a41fbb71baf3805 |
20-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't hoist instructions that define a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55074 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
cb34cd7b5e4de914c1177a683f9cbb146ad50634 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make more use of the BuildMI API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
00d2fd7f460c14102d6cc148da34bcc102b08e8e |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make more use of the BuildMI API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
4cbe0662abb2cd6025eff51e19574a48f1a83b97 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Minor code reorganization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
47d5918f9e6bb7b799dc122bab1eb6a508d1c58d |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Minor code reorganization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
77ad79689d755c49146f534107421cb3d9703fed |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Minor whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55070 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a4c482f2135949a043b0b7ba3cbaa8765c08ff51 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Minor whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55070 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b7864a9e23be526f4f8cde529a57c8943c61c0c7 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
67645aa871e122d44398facfe2af150d9380868e |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
d4207893014f2d36f31fce607405336fc38cd4b7 |
20-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Kill off SimpleBBISel, it's replaced by FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/SimpleBBISel.cpp
electionDAG/SimpleBBISel.h
|
ae3c2e4c6e3365c33f0206785a4cd93dc236d6e6 |
20-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Kill off SimpleBBISel, it's replaced by FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/SimpleBBISel.cpp
electionDAG/SimpleBBISel.h
|
a267651b7ec4f96e01b31f541d446758bf8da8a9 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Disable DAGCombine's alignment inference in "fast" codegen mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
|
ea12c0c272e09ac5a313bc78dcf78438da1c3832 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Disable DAGCombine's alignment inference in "fast" codegen mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55059 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
|
b8d2f550b84523e8a73198f98e5d450ec3b4fee7 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Change the FoldingSetNodeID usage for objects which carry alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55058 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAG.cpp
|
98beebe566fa5b99ec93de1296613776cec31143 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Change the FoldingSetNodeID usage for objects which carry alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55058 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/SelectionDAG.cpp
|
c53ec498857aa3e6d4fc17bd67dd282dcfc821da |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use BitVector instead of std::vector<unsigned char>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4c9d123db7057dbaeb83092b8e1f0974e734e116 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use BitVector instead of std::vector<unsigned char>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7a30bc4e7c034ecd0a3bcbfb385ac2a129e6583c |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Avoid an empty-if-body warning in release builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
f5027d2a556421d1ccdd64736011b89197343e71 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Avoid an empty-if-body warning in release builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
08293f6b6cd4ca3a7d6c02dc747e8432193422c7 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55049 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
e8e20236fb7d41e3d03d4de4eeca3f3fef537645 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55049 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
e6798b757acb3a2077c2498e9913fff2f5e4325c |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to recognize that the last block in the function does not have a fall-through successor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
65e1f6f7249de7e3d9b008382df095f4e4d9c5bd |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to recognize that the last block in the function does not have a fall-through successor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
cc8430f742b0f1e567292c8a776e94fc1c930b2a |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a leak in the FastISel code that Chris pointed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55031 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d0e0bb53cf9f0709feb854430a54b5c039016705 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a leak in the FastISel code that Chris pointed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55031 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3e697cfa979538c77459a3e4237e9bc1ac638761 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add support for running SelectionDAG if FastISel fails. This is under a command-line option, so that the default behavior is an abort, which is useful for exposing code that isn't supported yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
869a5adbeb67720acdafb0e8c6c2edc52cbcedc4 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add support for running SelectionDAG if FastISel fails. This is under a command-line option, so that the default behavior is an abort, which is useful for exposing code that isn't supported yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a7f2dff98e68ed8b2ac32f953768c04f26b52bea |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to recognize unhandled operands, such as constants that aren't available as virtual registers (for now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
06b9c5110a9ea5ca98a858a83f7427c52bea1a5e |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to recognize unhandled operands, such as constants that aren't available as virtual registers (for now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
8014e865800cc911697a4c0c42f077df9fcc9805 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for floating-point operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
c712e8fc1d8b1d522d68ab95b4fe8e9c320dc579 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for floating-point operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
bdedd4477331b3b0d28d74658baf05f675f2d195 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for several more binary operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
e9ab71e437e58383dd42cc1759c2a224b08370f2 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for several more binary operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
78eca170e9ac5db7fd525f9bbf27090fefcbb646 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add code to call FastISel, and a command-line option to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
91ad312e590695f0a3b407f589903992d555cee1 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add code to call FastISel, and a command-line option to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6f2766d59744bb3d48867f3151643eac7111e773 |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Support unconditional fall-through branches in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
0193cd4779ab0f4f0bf5cec1dc8e61039d8263ad |
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Support unconditional fall-through branches in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
a41e47afc19d2beb741edae16e3918aadade325d |
20-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Allow the fast-path spilling code to attempt folding, but still leaving out remat and splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55012 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
51dcfbe96f66305314f5605c189ca7fc9aa1b301 |
20-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Allow the fast-path spilling code to attempt folding, but still leaving out remat and splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55012 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8133a52eb5e69078c184eb2339d60d4c82e2a363 |
19-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use the BuildMI overload that sets up a destination register instead of the one that doesn't and then adding it manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
6065377fb50e758e7f189fd2431e47c8cee43cf9 |
19-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use the BuildMI overload that sets up a destination register instead of the one that doesn't and then adding it manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
32155acb8af11fbe21553ef4056c555dcc4a0b99 |
19-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Handle the case where target-specific fastisel code doesn't have a desired opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
54ad58161ba867d2e40e76a37d8852003e09e687 |
19-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Handle the case where target-specific fastisel code doesn't have a desired opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
712c9f069048e18c1b3782046487f5e1f74b2483 |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
The fast-path still needs to set kill markers and spill/restore points as appropriate. With this patch, all of MultiSource/Applications and all of SPEC2000/2006 pass with the SimpleSpiller and this fast-path enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55000 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ae600bf03eabb8b4ca2388ab4093d3b115281d69 |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
The fast-path still needs to set kill markers and spill/restore points as appropriate. With this patch, all of MultiSource/Applications and all of SPEC2000/2006 pass with the SimpleSpiller and this fast-path enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55000 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3b26693d33f77dc8c1ad358c3008c1b6e38c7be4 |
19-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Delete a dead field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54995 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
feafff79ec2705a1001e3980cbda9301947d1d39 |
19-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Delete a dead field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54995 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
fcbcfaa95f6ca975094d0a832ecdc3f342d2ff46 |
19-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
[PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54994 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
19e86e1a45f99ce15949ea2cb04ba7eb447d4770 |
19-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
[PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54994 91177308-0d34-0410-b5e6-96231b3b80d8
CStrategy.cpp
|
65a7bd8b8e111c51a51278ab46f1a1c91744441b |
19-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
don't use the result of WriteTypeSymbolic or WriteAsOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54978 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAG.cpp
|
2e5c7aee6f777d1350944efd4a83a73788889223 |
19-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
don't use the result of WriteTypeSymbolic or WriteAsOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54978 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
electionDAG/SelectionDAG.cpp
|
724651ab6e5efc6b4a321c6c9f58a3a716072d50 |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Make SimpleSpiller respect subregister indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54968 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a2554f867fc785d0897bbe3fc333948bfd7e1e58 |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Make SimpleSpiller respect subregister indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54968 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ae339babb2a2445e7bb009912a39994718f10d54 |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a flag to enable the fast spilling path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54958 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a92056972e2b26dbce4f8fe2ee3556072a974a57 |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a flag to enable the fast spilling path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54958 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1719731d3d8ab6a986d67912f35daaad4f6910db |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix a few more bugs: 1) Assign stack slots to new temporaries. 2) Don't insert an interval into the return vector more than once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54956 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
06ab6d7f5d71f9c939f88d2519482ad1d42fcc1b |
19-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix a few more bugs: 1) Assign stack slots to new temporaries. 2) Don't insert an interval into the return vector more than once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54956 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9a032931453209505f6765a35be108ae5ea39b3b |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix several bugs in the new fast-path: 1) Remove an incorrect assertion. 2) Set the stack slot weight properly. 3) Resize the VirtRegMap when needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54949 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
268000d17d94168fff4884fc622c1aa28f7285ed |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix several bugs in the new fast-path: 1) Remove an incorrect assertion. 2) Set the stack slot weight properly. 3) Resize the VirtRegMap when needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54949 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
133f10f9bddc857d86fab89cfe5573f2515ae7cf |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Clients of addIntervalForSpills expect the added intervals to be returned sorted by starting index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54939 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1cf81693af5626bbe196955fff612141a7c0115c |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Clients of addIntervalForSpills expect the added intervals to be returned sorted by starting index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54939 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8dc2cbe793ff577f69c17426d6dfaef94ad69191 |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Simplify the fast-patch interval spilling by using MachineRegisterInfo::reg_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54930 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fcfae3ebd73ceb1f7c035fb7f01038d4eff9fa84 |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Simplify the fast-patch interval spilling by using MachineRegisterInfo::reg_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54930 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d6664311acbd05a8a710ccea8f9f5fdbfa35f834 |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Resurrect some ancient code to add spill ranges without attempting folding, remat, or splitting. This code has been updated to current APIs in so far as it compiles and, in theory, works, but does not take advantage of recent advancements. For instance, it could be improved by using MachineRegisterInfo::use_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54924 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
29042789b97f1898acc637713aa5189053131631 |
18-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Resurrect some ancient code to add spill ranges without attempting folding, remat, or splitting. This code has been updated to current APIs in so far as it compiles and, in theory, works, but does not take advantage of recent advancements. For instance, it could be improved by using MachineRegisterInfo::use_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54924 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d3361e996b272084d8ebe5bae8a0d420206c8e37 |
18-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't hoist instructions that have implicit uses or defines. Before, it was hoisting out some "test" and "cmp" instructions. This was obvious badness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54908 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
478993815335b6a1ccc49553a05d9963afebd319 |
18-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't hoist instructions that have implicit uses or defines. Before, it was hoisting out some "test" and "cmp" instructions. This was obvious badness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54908 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
8715367182244e784b9f5688baf1ed607768e687 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Don't require Registry specializations to define random static variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54902 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadataPrinter.cpp
CStrategy.cpp
|
f1bbd1f3e1067c0494af9527f06dc3da265930ae |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Don't require Registry specializations to define random static variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54902 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadataPrinter.cpp
CStrategy.cpp
|
a08f5186b0687d1110af5d669a84d59e6413aa68 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Drop an unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54901 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
a069940d5217d56525dbb76188a8fa4a8c1f85c4 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Drop an unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54901 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/OcamlGCPrinter.cpp
|
5eca075b74d62c621b160aa216b4cd50829a2cc7 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Rename some GC classes so that their roll will hopefully be clearer. In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
Cs.cpp
LVMTargetMachine.cpp
camlGC.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackGC.cpp
|
1aed599aac357d2aaf0df6f4683d59f6455bae0d |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Rename some GC classes so that their roll will hopefully be clearer. In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
Cs.cpp
LVMTargetMachine.cpp
camlGC.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackGC.cpp
|
418b6e875f844261064c5dd43e76cb401117ac74 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Don't instantiate GC metadata for declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54895 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
CStrategy.cpp
|
46c16c5696d6c94551ffc77e88ed1ae857884b55 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Don't instantiate GC metadata for declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54895 91177308-0d34-0410-b5e6-96231b3b80d8
CMetadata.cpp
CStrategy.cpp
|
4a8978b61c0536d57bfa32bc5c590fdb6d0113a4 |
17-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix merge error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54891 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCMetadataPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
camlGCPrinter.cpp
|
7800a19b18ec441d907773591adf895801a2d38b |
17-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix merge error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54891 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter/AsmPrinter.cpp
smPrinter/OcamlGCMetadataPrinter.cpp
smPrinter/OcamlGCPrinter.cpp
camlGCPrinter.cpp
|
abb247fc036d55d06b06853cae66ab055269d605 |
17-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move all assembler printing related stuff into new libAsmPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54885 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
smPrinter/Makefile
smPrinter/OcamlGCMetadataPrinter.cpp
warfWriter.cpp
akefile
|
eb7f720c42be56b140c4e02cbd699cb082e5b0c9 |
17-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move all assembler printing related stuff into new libAsmPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54885 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
smPrinter/AsmPrinter.cpp
smPrinter/DwarfWriter.cpp
smPrinter/Makefile
smPrinter/OcamlGCMetadataPrinter.cpp
warfWriter.cpp
akefile
|
9e422dd4f630fe4d253143371488e25bfe5b0a79 |
17-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out asmprinters from collector interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54884 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5eb4d097eb9e8f3f5fce4554b794db5b20e58b7c |
17-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out asmprinters from collector interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54884 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5a29c9eed157af51a8d338b5a225b146881819e8 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54881 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ollector.cpp
ollectorMetadata.cpp
ollectors.cpp
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
Cs.cpp
LVMTargetMachine.cpp
camlCollector.cpp
camlGC.cpp
camlGCPrinter.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
hadowStackGC.cpp
|
f194af2c195199ed66d8a1a9df60acf69bb14410 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54881 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ollector.cpp
ollectorMetadata.cpp
ollectors.cpp
CMetadata.cpp
CMetadataPrinter.cpp
CStrategy.cpp
Cs.cpp
LVMTargetMachine.cpp
camlCollector.cpp
camlGC.cpp
camlGCPrinter.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
hadowStackGC.cpp
|
c317a60c2714a5b90700a11ba646285cb754a5d3 |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54880 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ollector.cpp
ollectors.cpp
camlCollector.cpp
|
3385c9b3aefbeb3fedca07320b1a7eedc68f220d |
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54880 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ollector.cpp
ollectors.cpp
camlCollector.cpp
|
fad86b003a839cef40ec8ce8408322f4913368ca |
17-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Rework the routines that convert AP[S]Int into a string. Now, instead of returning an std::string by value, it fills in a SmallString/SmallVector passed in. This significantly reduces string thrashing in some cases. More specifically, this: - Adds an operator<< and a print method for APInt that allows you to directly send them to an ostream. - Reimplements APInt::toString to be much simpler and more efficient algorithmically in addition to not thrashing strings quite as much. This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the asmprinter. This also fixes a bug I introduced into the asmwriter in a previous patch w.r.t. alias printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAG.cpp
|
89b36587e1795cf3f9b480e77508448181d2ab3c |
17-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Rework the routines that convert AP[S]Int into a string. Now, instead of returning an std::string by value, it fills in a SmallString/SmallVector passed in. This significantly reduces string thrashing in some cases. More specifically, this: - Adds an operator<< and a print method for APInt that allows you to directly send them to an ostream. - Reimplements APInt::toString to be much simpler and more efficient algorithmically in addition to not thrashing strings quite as much. This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the asmprinter. This also fixes a bug I introduced into the asmwriter in a previous patch w.r.t. alias printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAG.cpp
|
ffe31d7bf1e070650b0ff9ebfac815ea172a82bb |
16-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. This makes JIT asmprinter-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
c200b1113703eaae82f7232f07c5f185a566cf0e |
16-Aug-2008 |
asl <asl@91177308-0d34-0410-b5e6-96231b3b80d8> |
Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. This makes JIT asmprinter-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54843 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
cd1dcbd4fb67c711f013833821ba9b68fea72dd1 |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Convert several std::vectors over to SmallVector, and use reserve() as appropriate for cases where std::vector is still used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54820 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ba926a3fd35afe26e02871df1a4a7af7def840ce |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Convert several std::vectors over to SmallVector, and use reserve() as appropriate for cases where std::vector is still used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54820 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
bbf55832831482a73fa59fcd1746f9272e82a144 |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use SmallSet instead of std::set to save allocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54810 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
7ba9a8fce7b62cd3ec4eb74cbbcb991b046af6bb |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use SmallSet instead of std::set to save allocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54810 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
79e6ed9d4733ef6bfaf6e6ae71a013c8b226b7c9 |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Move MachineInstr::getOpcode inline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54807 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
29bf84e051bb3798e12fe28df10761f8af1a0b40 |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Move MachineInstr::getOpcode inline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54807 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
44eb65cf58e3ab9b5621ce72256d1621a18aeed7 |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Convert uses of std::vector in TargetInstrInfo to SmallVector. This change had to be propoagated down into all the targets and up into all clients of this API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54802 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
|
d131b5b3c78084f3b452b97a678c16e815f0a0d8 |
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Convert uses of std::vector in TargetInstrInfo to SmallVector. This change had to be propoagated down into all the targets and up into all clients of this API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54802 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
impleRegisterCoalescing.cpp
argetInstrInfoImpl.cpp
|
e285a74f7cf9dd3ccf4fe758576cf83301f8a43e |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make FastISel's constructor protected, and give it a destructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
eeb6e3049f0a62d2d61b87cc02ec5f7372731ab3 |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make FastISel's constructor protected, and give it a destructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
eaa009d963f0715257a26c6bf32ce6dd14326415 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove more uses of std::set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54787 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
43ada1d6727973fd9e0e60548e566ed8c4189b0b |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove more uses of std::set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54787 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
7f8613e5b8398b688080e3c944ab8c11593e1ed0 |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Improve support for vector casts in LLVM IR and CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54784 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
29c3cef3955599d8b5433a74150531ffbd115837 |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Improve support for vector casts in LLVM IR and CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54784 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAG.cpp
|
22ae99908258dd5631fde7128a94c418ed08eae5 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Speed up addRegisterDead by adding more fast checks before performing the expensive subregister query, and by increasing the size of the subregister hashtable so that there are fewer collisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54781 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
c11fa059e7594240b6ccc23dcf0d921465239053 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Speed up addRegisterDead by adding more fast checks before performing the expensive subregister query, and by increasing the size of the subregister hashtable so that there are fewer collisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54781 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a8c763b3071ae1a58ee8baeb282331245527e004 |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use empty() instead of begin() == end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54780 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
oopAligner.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
|
c8424dea0d4d223edbf5b6ed10d92d0567fd3c2c |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use empty() instead of begin() == end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54780 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
oopAligner.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
|
97382166dd09ffafa91015cbf752bac4497abc08 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of a use of std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54770 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
4a472711c76faa15bdb773de9c542af0f672f6f6 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of a use of std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54770 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
a60832b0187642d01fd726dc766cd62587f6add0 |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bogus srem rule - a negative value srem'd by a power-of-2 can have a non-negative result; for example, -16%16 is 0. Also, clarify the related comments. This fixes PR2670. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2275be08f6b263b0fd20e0e37109f371ad4974fd |
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bogus srem rule - a negative value srem'd by a power-of-2 can have a non-negative result; for example, -16%16 is 0. Also, clarify the related comments. This fixes PR2670. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
289983123ba4170c8a27e9638935818f8142bc89 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Expunge the last uses of std::map from LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54766 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
feab1a8e51cbc9733543ffea47af7ea7380ad7b3 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Expunge the last uses of std::map from LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54766 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
20e2839cb975a2d4ee931e1ea4c4660a36ef0177 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Move r2iMap_ over to DenseMap from std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54765 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
36bb2baee6402816b6a99690b05f5abd52e770d3 |
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Move r2iMap_ over to DenseMap from std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54765 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6ab6422f25f3deb1041130ff6bb285b22586ab32 |
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Allow SelectionDAG to create EXTRACT_VECTOR_ELT nodes with non-constant indices. Only a few of the peephole checks require a constant index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
101124c57c4e622a92f8a0275b914a7a3b5f26fa |
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Allow SelectionDAG to create EXTRACT_VECTOR_ELT nodes with non-constant indices. Only a few of the peephole checks require a constant index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
03857b29d8271a23943254579e6cf7b7df4b1bd3 |
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Make the allocation of LiveIntervals explicit, rather than holding them in the r2iMap_ by value. This will prevent references to them from being invalidated if the map is changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54763 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
348d1d86f8e4ad7f9acc6d2a66c34c54afaa2d9a |
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Make the allocation of LiveIntervals explicit, rather than holding them in the r2iMap_ by value. This will prevent references to them from being invalidated if the map is changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54763 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
b0cf29c5cfff797284b3660dc233e135feb65d9a |
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Initial checkin of the new "fast" instruction selection support. See the comments in FastISelEmitter.cpp for details on what this is. This is currently experimental and unusable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
b75dead2c1c85c970e5ed73096f76a0c00a7f1d5 |
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Initial checkin of the new "fast" instruction selection support. See the comments in FastISelEmitter.cpp for details on what this is. This is currently experimental and unusable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54751 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/FastISel.cpp
|
925a7e8ed6522f291b4ae559ccfa56db461016e3 |
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGISel's FastISel to Fast, to begin to make room for the new FastISel instruction selection code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
04dcf8d17ba3de19b9b517dbcf26b31d5ed8f5a5 |
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGISel's FastISel to Fast, to begin to make room for the new FastISel instruction selection code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
32767955a462a493f419e00421836cf89c23ad3b |
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54742 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
21a7f6092adad106b6c7487d2163dab27cd87ae9 |
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54742 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
27d6681496a77aed117ec2d8bcee0d48cdf9072d |
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
1) Merge entire live intervals instead of parts of them. 2) Conditionalize temporary insertion if we don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54741 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
a9253c721f3f29572a1d982e1bcc2a6790c5b625 |
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
1) Merge entire live intervals instead of parts of them. 2) Conditionalize temporary insertion if we don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54741 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
04f4f4f447806cd92a2fb6f4b66d11f6d5003a82 |
12-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Correct the filename in the top-of-file comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6be552e80d2b91fcad05e220a0abf35840298b83 |
12-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Correct the filename in the top-of-file comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8cea8ff34c7fb7a64b6fd247b9db0d097d1ffeea |
11-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Take the FrameOffset into account when computing the alignment of stack objects. This fixes PR2656. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54646 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b0a2ff9a86e197df8886c974c988bb1608242aa4 |
11-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Take the FrameOffset into account when computing the alignment of stack objects. This fixes PR2656. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54646 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
08db7367b1d498f13c581c143802e7d4cf32c403 |
09-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Fix some typos. Apparently I think C needs a power-of operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54574 91177308-0d34-0410-b5e6-96231b3b80d8
camlCollector.cpp
|
86302f25b62161b85f211df3d763854d3ec2c85e |
09-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Fix some typos. Apparently I think C needs a power-of operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54574 91177308-0d34-0410-b5e6-96231b3b80d8
camlCollector.cpp
|
7a61d701c0870642e075e90b6a1ad03a8ac9bc67 |
08-Aug-2008 |
Eric Christopher <echristo@apple.com> |
Have IRBuilder take a template argument on whether or not to preserve names. This can save a lot of allocations if you aren't going to be looking at the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54546 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
730102bf69237ff12d61019d65cd860656adf3fa |
08-Aug-2008 |
Eric Christopher <echristo@apple.com> |
Have IRBuilder take a template argument on whether or not to preserve names. This can save a lot of allocations if you aren't going to be looking at the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54546 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
f5b6a47bb57fb5ffc734416d4d5d993e1a06273b |
08-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Handle visibility printing with all generality. Remove bunch of duplicate code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54540 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
78d69aa0e6ad2d32243e3b4e8ff28d6e4572313d |
08-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Handle visibility printing with all generality. Remove bunch of duplicate code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54540 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
b12ab97bbdb86e978bbaba62f3dbb402b53010da |
08-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Reduce the entries in a phi before testing it for deadness, because removing the entries might make it dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54535 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
45d4b48e5871672750bdb88f704dc7d8e831e0bf |
08-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Reduce the entries in a phi before testing it for deadness, because removing the entries might make it dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54535 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
381cb07544a2bc119e39969d7d508a6247773e1c |
08-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton of simple basic block instruction selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/SimpleBBISel.cpp
electionDAG/SimpleBBISel.h
|
b11ac88a997a2d07c5400c43a2217225fc896ce2 |
08-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton of simple basic block instruction selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/SimpleBBISel.cpp
electionDAG/SimpleBBISel.h
|
d6227385fc499a8b8bc23766735f1d809d194378 |
08-Aug-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Don't crash printing the asm for a ConstantExpr PtrToInt just because the int is narrower than the pointer. This testcase emits: .byte (((17) - 16) & 255) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54517 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
95353adcb56796c4d56a24630beaa1e5de1955a7 |
08-Aug-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Don't crash printing the asm for a ConstantExpr PtrToInt just because the int is narrower than the pointer. This testcase emits: .byte (((17) - 16) & 255) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54517 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e36bfe678df09f46e1eac60b15105c1ccd2c5382 |
07-Aug-2008 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add the remaining fp_round libcalls: FPROUND_F80_F32, FPROUND_PPCF128_F32, FPROUND_F80_F64, FPROUND_PPCF128_F64 Support for soften float fp_round operands is added, Mips needs this to round f64->f32. Also added support to soften float FABS result, Mips doesn't support double fabs results while in 'single float only' mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
b1f11b5b89b0733baeefe1cdbda652674934fe8c |
07-Aug-2008 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add the remaining fp_round libcalls: FPROUND_F80_F32, FPROUND_PPCF128_F32, FPROUND_F80_F64, FPROUND_PPCF128_F64 Support for soften float fp_round operands is added, Mips needs this to round f64->f32. Also added support to soften float FABS result, Mips doesn't support double fabs results while in 'single float only' mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
724acf1c52fcd844637a189e7490c3069ef359f2 |
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Do a dominator walk when scheduling copies, rather than a DFS on the CFG. Also, fix a few problems when creating live intervals for temporaries created by phi elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54483 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
e8bddf3c3891b61009a614cbe19b0fb900aa96f5 |
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Do a dominator walk when scheduling copies, rather than a DFS on the CFG. Also, fix a few problems when creating live intervals for temporaries created by phi elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54483 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
e3d920699c6df959f3e0844aeadd983b2955b23e |
07-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Re-enable elimination of unnecessary SUBREG_TO_REG instructions in LowerSubregs, and fix an x86-64 isel bug that this exposed. SUBREG_TO_REG for x86-64 implicit zero extension is only safe for isel to generate when the source is known to always have zeros in the high 32 bits. The EXTRACT_SUBREG instruction does not clear the high 32 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54444 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
47a419d5d39a59a6c763ff8f47d2f4ca3d0f4dfa |
07-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Re-enable elimination of unnecessary SUBREG_TO_REG instructions in LowerSubregs, and fix an x86-64 isel bug that this exposed. SUBREG_TO_REG for x86-64 implicit zero extension is only safe for isel to generate when the source is known to always have zeros in the high 32 bits. The EXTRACT_SUBREG instruction does not clear the high 32 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54444 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
39fd6e81b1b0de8b820155dc6a0dae226c109de6 |
07-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Factor code that finalize PHI nodes, jump tables, etc. out of SelectBasicBlock. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
61828a851435cf03ce60b1f3c66f6b062f063637 |
07-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Factor code that finalize PHI nodes, jump tables, etc. out of SelectBasicBlock. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54438 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9200e81a1828f7d3aa59a48c52317e1beeeac0b1 |
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
SDISel's constant branch folding can fold away self-loops, which doesn't result in any dead blocks, but rather an incorrect phi input. Add code to UnreachableMachineBlockElim to get rid of these entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54432 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
c11ae74f1fd8dad8517849495716b33c20896f79 |
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
SDISel's constant branch folding can fold away self-loops, which doesn't result in any dead blocks, but rather an incorrect phi input. Add code to UnreachableMachineBlockElim to get rid of these entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54432 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
883771f86a111c43ce7c30085a1f4820b66f5712 |
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Correct handle cases where two phis are coalesced together, and correct break up the case where two different phis want to coalesce with the same vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54426 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
c4f163edfdc9d26cf564c99f9df306157d8d1c0f |
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Correct handle cases where two phis are coalesced together, and correct break up the case where two different phis want to coalesce with the same vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54426 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
aa111080dfb161054255c9c367779f1ea2581849 |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Oops, didn't mean to commit this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54425 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ee7b97c18de0c0ab2cff845eff51d0d8a4b25c83 |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Oops, didn't mean to commit this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54425 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9860b71b6a23bc0ae620d7dfc621ea1ffafbf8d8 |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to try to coalesce input vregs that are the same as the output vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54422 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
95d1b6999b03c0425e891c99bcbe8b52c6753371 |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to try to coalesce input vregs that are the same as the output vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54422 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
9b49120408e6c0e10e18ce38cae7120c954fe708 |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Only trim a live interval if the register is not used after the PHI node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54421 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
78d3c0d30c12583a4cf2301b2d674f470d08c3ab |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Only trim a live interval if the register is not used after the PHI node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54421 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
788d04152a132121dfc04e63382c1e87e7b9607f |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Only remap each VNInfo once when doing renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54420 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d45a11ac9bcf958d5296bf7571934c20a1008291 |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Only remap each VNInfo once when doing renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54420 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
24d79ba2ef120ed9708ac10fc9fa146334df00c7 |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix breakage on ARM/2008-04-10-ScavengerAssert.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54378 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
0e67df6283f6fd31c13d09a94a84a7afbc27ba0e |
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix breakage on ARM/2008-04-10-ScavengerAssert.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54378 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
e3b8a48d3285cdaf3593af9d4b658e15df037b9f |
05-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2596: out of bound reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54375 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
547df1a7004df315a73894f377d31cc5a9fd9b5b |
05-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2596: out of bound reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54375 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
5d2f8072d41bcde63c9f4267efe2d50bacc1e5f3 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Correctly handle replacement and removal of PHIs with one incoming register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54374 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
b12a5b04f0195d0e2a148ddf0eac707c789b52d8 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Correctly handle replacement and removal of PHIs with one incoming register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54374 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
71ac0be6bb8ef79b79b3b9874cb2886fbb04d2d5 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Oops, we were already checking for dead phis. Handle this the proper way, then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54371 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
222ea6aa45912951b866645343f587e64f9e851f |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Oops, we were already checking for dead phis. Handle this the proper way, then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54371 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
e7b8205e6ec63502c6375077faf0887ddf776ba0 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to update live intervals for dead PHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54369 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
a55b0a7291054836a0db304c09af51da6ac2dbd9 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to update live intervals for dead PHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54369 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
3bc9c6f3e75dba02c1cc647b1f56ee1f39919046 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove the -disable-correct-folding option, which was ugly and is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2ddb96c9496a9180501ef2bc03c1203776d9a2a7 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove the -disable-correct-folding option, which was ugly and is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
430b8a22e2717d3dfb6b4f096bc23c9538fd7959 |
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix several const-correctness issues, resolving some -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
333948fb559121b6d3a79f2d86c270fe4eb13b7d |
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix several const-correctness issues, resolving some -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
4fa393aae146891b33bfe072addb12bf44d61449 |
05-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove #if 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54347 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d78e8640acc1e24354dbb3909b5429683423586a |
05-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove #if 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54347 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
068b4ff5531062a0c6e93d038c24fcf209527406 |
05-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2568: Fix bug that cause redudant kill marker after its live interval has been extended due to coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54346 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
eed97ef5d0254bc5e89ef434c4e4857922fbc3d1 |
05-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2568: Fix bug that cause redudant kill marker after its live interval has been extended due to coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54346 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
59c0d4fcde6f112dd8e83293c6aa6b7138a05424 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove unneeded iteration. Thanks to Dan for the feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54337 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
7a5d914f5c4e8860dfa5c68c156e560d1fa38fea |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove unneeded iteration. Thanks to Dan for the feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54337 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
6ac8df7f611b5b129af7192ad931862fc8169aae |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
This option doesn't need to be a target option. It can be in SDISel instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c55989acf9cd3d4eef3448e082e935a5324b36f1 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
This option doesn't need to be a target option. It can be in SDISel instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bd3ba461eb5578a81ba09ff7bd7eb271d1130196 |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
- Fix SelectionDAG to generate correct CFGs. - Add a basic machine-level dead block eliminator. These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54333 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
electionDAG/SelectionDAGISel.cpp
nreachableBlockElim.cpp
|
fb6914f85e270628cdda612e7e6c250110c5977c |
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
- Fix SelectionDAG to generate correct CFGs. - Add a basic machine-level dead block eliminator. These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54333 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
electionDAG/SelectionDAGISel.cpp
nreachableBlockElim.cpp
|
6f498b0a8eeb69a9aa20319e2c803b1d58525547 |
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDISel lowering of PHI nodes to use ComputeValueVTs. This allows it to work correctly on aggregate values. This fixes PR2623. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
802a48abd6ec7eadcb04f37c77c92c0e43d2ac26 |
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDISel lowering of PHI nodes to use ComputeValueVTs. This allows it to work correctly on aggregate values. This fixes PR2623. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1f565bcff6781d0a4395b4c386f7168df13ddbca |
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs. This allows it to work correctly on nested aggregate values. This fixes PR2625. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
89ce05fbcb1cd2804169883559f10b8d8113ec23 |
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs. This allows it to work correctly on nested aggregate values. This fixes PR2625. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7232464bdaae5e6e48986a1e3b9a95fac7aa7bdf |
31-Jul-2008 |
Dale Johannesen <dalej@apple.com> |
Add a flag to disable jump table generation (all switches use the binary search algorithm) for environments that don't support it. PPC64 JIT is such an environment; turn the flag on for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54248 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
493492f301ac4a2a4355c95164a49c3d3e51377c |
31-Jul-2008 |
Dale Johannesen <dalej@apple.com> |
Add a flag to disable jump table generation (all switches use the binary search algorithm) for environments that don't support it. PPC64 JIT is such an environment; turn the flag on for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54248 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
75dcf08243d19a40d2e1cc12057bf9c00ca3df3b |
31-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Improve dagcombining for sext-loads and sext-in-reg nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
759ed2963a64ee04da967847866cd67f62764aac |
31-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Improve dagcombining for sext-loads and sext-in-reg nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0b12aef49087b57d276ed760a83525d1e2602144 |
30-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move SelectionDAG::viewGraph() out of line; as an inline function it isn't always visible to gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
8c8928602025b9cedf099605aaaf15ea6268992e |
30-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move SelectionDAG::viewGraph() out of line; as an inline function it isn't always visible to gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
90d33ee746f354030a4144c4ffa028599663615b |
30-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Don't look for leaf values to store when lowering stores of empty structs. This fixes PR2612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4a136fc9156329b73728717877251e00c430dff2 |
30-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Don't look for leaf values to store when lowering stores of empty structs. This fixes PR2612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d723f722b2457dd847ece84f9cfa7cfae33f9bb0 |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Use existing LiveInterval methods to simplify live interval merging. Thanks to Evan for pointing these out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54225 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
54bf2bcbccae6e82ec7cbbc9c110c97195ba1801 |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Use existing LiveInterval methods to simplify live interval merging. Thanks to Evan for pointing these out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54225 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
912923925f790427a77781b8a0469fa832c7740d |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Value numbers whose def index is a special sentinel value should not be remapped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54218 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ad45783e93509a9d0131cac2fe8a797870f56355 |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Value numbers whose def index is a special sentinel value should not be remapped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54218 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9382b9310f008a3347e565d76aadda6a97351de9 |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
More fixes for corner cases when remapping live range indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54186 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
edbeff29f441329dcf0f7150150cc8e58f0d8d33 |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
More fixes for corner cases when remapping live range indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54186 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b9fb8d1e69aa910eb6bb03d3d66e5a2e25a20cd8 |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
When merging live intervals, we also need to merge in any live ranges that are inputs to two-address instructions that themselves define a range we already care about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54185 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
7f937b3ec0135683dff5d75734b803f984e9a63d |
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
When merging live intervals, we also need to merge in any live ranges that are inputs to two-address instructions that themselves define a range we already care about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54185 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
83ea1f8e19dc1fae54a3e40689ad0a76a8ff3992 |
29-Jul-2008 |
Owen Anderson <resistor@mac.com> |
When merging a PHI operand's live interval into the PHI's live interval, we need to merge over all liveranges in the operand's interval that share the relevant value number, not just the range that immediately precedes the PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54174 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
766a5428898004cc5f4cd9067ec7a50c4465cb73 |
29-Jul-2008 |
Owen Anderson <resistor@mac.com> |
When merging a PHI operand's live interval into the PHI's live interval, we need to merge over all liveranges in the operand's interval that share the relevant value number, not just the range that immediately precedes the PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54174 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
a0c032f9b2eeae3a436850eaca54de4c6a5f23b6 |
29-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Don't decrement the BB remap when we don't need to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54173 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3fe23ede7821a156ed0914b0ba11c3e4e644c73d |
29-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Don't decrement the BB remap when we don't need to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54173 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
68d4d1d49c813d10047ad116e897a17d67112c10 |
29-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2609. If a label is deleted, then it needs to be marked invalid regardless of whether it is a debug, an exception handling or (hopefully) a GC label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54172 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
342271d198b74e10df0c6132c39994d291ad57a8 |
29-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2609. If a label is deleted, then it needs to be marked invalid regardless of whether it is a debug, an exception handling or (hopefully) a GC label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54172 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
24dc346a16397bf740d8d961cd1ebec8d2f46957 |
29-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Fix broken CellSPU lowering, re-instate braces in Legalize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54168 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7569e76ac7241ab4d3d59d30699a1c38fda61190 |
29-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Fix broken CellSPU lowering, re-instate braces in Legalize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54168 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f09d131126cd60552f09d4fb1c078c085139dcf2 |
29-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Disable a fix in the previous patch, since it breaks CellSPU. The CellSPU codegen is broken, but needs to be fixed before we can put this back in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e5493112eabf9297fa39a4c959303c90b2fbda22 |
29-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Disable a fix in the previous patch, since it breaks CellSPU. The CellSPU codegen is broken, but needs to be fixed before we can put this back in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5bc1ea0736a5785ed596d58beeff2ab23909e33d |
29-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Add vector shifts to the IR, patch by Eli Friedman. CodeGen & Clang work coming next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
bb1ce94fe83d9d97f9dcd1e6f8943bc4a0b2e63c |
29-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Add vector shifts to the IR, patch by Eli Friedman. CodeGen & Clang work coming next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
fed90b6d097d50881afb45e4d79f430db66dd741 |
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fold the useful features of alist and alist_node into ilist, and a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2fcbc7e8303dfee61147d76bbf16ed0297133c77 |
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fold the useful features of alist and alist_node into ilist, and a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0471a79f2000eb1eb4458e7b3dcd254172fae739 |
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54136 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4306f139d75d3847ae8bdc6b12fff8ffeb4bc67e |
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54136 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
29cdb26bbae007c0c1fe620136f8dfc8a2d1e84d |
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make the ScheduleDAG's GraphRoot edge be blue and dashed too, like the SelectionDAG's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
a7cc4ffa7b2817bba430ffbc8c70436ee4b917af |
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make the ScheduleDAG's GraphRoot edge be blue and dashed too, like the SelectionDAG's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
475871a144eb604ddaf37503397ba0941442e5fb |
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Rename SDOperand to SDValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
8181bd1f95ae9994edb390dd9acd0b7b12375219 |
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Rename SDOperand to SDValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
8968450305c28444edc3c272d8752a8db0c2f34a |
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Tidy SDNode::use_iterator, and complete the transition to have it parallel its analogue, Value::value_use_iterator. The operator* method now returns the user, rather than the use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54127 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
0c97f1da6784c4097fd6c9d1a15813ad9802cc5b |
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Tidy SDNode::use_iterator, and complete the transition to have it parallel its analogue, Value::value_use_iterator. The operator* method now returns the user, rather than the use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54127 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
2a6299543fa22f389158409e897fe7099fda3812 |
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Rename isOnlyUseOf to isOnlyUserOf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
07fadb01ea99e46adea484af8f884662a21e9a5c |
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Rename isOnlyUseOf to isOnlyUserOf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4ddc41e58cae9236b7959cbed62a5a052f05e70e |
27-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Some binary operations were being treated as unary operations! Add support for softening some additional unary operations like fp_to_sint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
ba23c3b860fce7b2dd11e3ed321540470b192955 |
27-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Some binary operations were being treated as unary operations! Add support for softening some additional unary operations like fp_to_sint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
a279a896ecd1601060adcc6563488f27b12319ef |
26-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix the issues originally addressed in r54070. After thinking about it some more, I realized that the right thing to do is to have StrongPHIElimination use its knowledge of the PHIs before they're erased to update the intervals appropriate. This is both simpler and more accurate than the alternative, which was having LIA figure it out when it renumbered things, plus it's just the right thing to do! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54077 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
32be027c49be99b605395c4dc50fce4ed07ef716 |
26-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix the issues originally addressed in r54070. After thinking about it some more, I realized that the right thing to do is to have StrongPHIElimination use its knowledge of the PHIs before they're erased to update the intervals appropriate. This is both simpler and more accurate than the alternative, which was having LIA figure it out when it renumbered things, plus it's just the right thing to do! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54077 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0a7615af25542d5e7d824b520f94094cdc8a2179 |
26-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Revert my previous patch. In retrospect, this is completely the wrong way to fix this problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54072 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a7d223a2cf294308e8efe4e8efe9d705fc5af65d |
26-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Revert my previous patch. In retrospect, this is completely the wrong way to fix this problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54072 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0c525ca72f9cbebf92fc7eabc0f0d9d95cf59c2d |
26-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Special cases are needed in renumbering when dealing with renumbering after a PHI has been removed. The interval previously defined by the PHI needs to be extended to the beginning of its basic block, and the intervals that were inputs need to be trimmed to the end of their basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54070 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
815e4dd7b1efd42daae6e7b8bf1101322a65b3c5 |
26-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Special cases are needed in renumbering when dealing with renumbering after a PHI has been removed. The interval previously defined by the PHI needs to be extended to the beginning of its basic block, and the intervals that were inputs need to be trimmed to the end of their basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54070 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
020decc2b4a193a22314e174808269a5ea430dfe |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
In order to avoid reprocessing a register more than once, we need to add it to the handled set so it will get filtered out in future iterations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54065 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
80fcff0d5b74373076f3e49634dfe7c69f03bc52 |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
In order to avoid reprocessing a register more than once, we need to add it to the handled set so it will get filtered out in future iterations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54065 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
55c64358d1c04990cd5f50785d3e3b27447dac21 |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Remove live interval entries for an interval if we're eliminating its only VN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54062 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
faed201a4a9f6351a07e039ed6d8fd698109d7ba |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Remove live interval entries for an interval if we're eliminating its only VN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54062 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
8d0cc0af5a4b4c08eb74b6e36761651b63816d06 |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Properly remap live ranges whose end indices are the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54061 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
30d056d917b1d6cc03b416688430050b7b37cf6c |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Properly remap live ranges whose end indices are the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54061 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d7dcbecdbcf5d7a1efc5ed65ddcc26bb8c20c1e6 |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Make the remapping of interval indices (particularly ending indices) more robust. This is tricky business, and will probably take a few more iterations to get the last kinks out of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54043 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cadb9b18d0c31620db3f83c40152f7aa98ca0232 |
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Make the remapping of interval indices (particularly ending indices) more robust. This is tricky business, and will probably take a few more iterations to get the last kinks out of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54043 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4c8f87038ddc0fbcce751f0e2e7c0e564abca096 |
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Disable the new aggressive remat logic introduced in 54000; it causes some regressions, such as PR2595. Also, there is a significant code-quality issue in SPEC 464.h264ref and a few others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54014 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f14c94f6c2d439a2d9eff5f88ef5f8e1cbe17c72 |
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Disable the new aggressive remat logic introduced in 54000; it causes some regressions, such as PR2595. Also, there is a significant code-quality issue in SPEC 464.h264ref and a few others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54014 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
92879f3a9e6625d4a17a3d93e6250a59b0497660 |
25-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
When splitting a vector shuffle, fixed which type we used for the hi part git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54007 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2e89b1112ee8434f877fa135000fad0eb2199245 |
25-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
When splitting a vector shuffle, fixed which type we used for the hi part git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54007 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8b4588fa64f0ebfbb7d2b9b4af8c682ddddf29c0 |
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use AliasAnalysis::pointsToConstantMemory in SDISel to avoid unnecessary dependencies with constant load nodes. This allows them to be scheduled freely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e45821b0546acd571b7c22ee4cd32ac5437913bd |
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use AliasAnalysis::pointsToConstantMemory in SDISel to avoid unnecessary dependencies with constant load nodes. This allows them to be scheduled freely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6d69ba8a6901c69d78488cbc41f8dbf080618fde |
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enable rematerialization of constants using AliasAnalysis::pointsToConstantMemory, and knowledge of PseudoSourceValues. This unfortunately isn't sufficient to allow constants to be rematerialized in PIC mode -- the extra indirection is a complication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54000 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
seudoSourceValue.cpp
|
e342753a069f6082c331523c0cb9881ecfde43ae |
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enable rematerialization of constants using AliasAnalysis::pointsToConstantMemory, and knowledge of PseudoSourceValues. This unfortunately isn't sufficient to allow constants to be rematerialized in PIC mode -- the extra indirection is a complication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54000 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
seudoSourceValue.cpp
|
c12417edc9fe88918e09b58716bdb26bd9618239 |
24-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Store the predecessor MBB in the PHIUnion, rather than an index, since the indices will change after renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53985 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
afe9039190469578aa55f8bdb1dec7b76c480194 |
24-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Store the predecessor MBB in the PHIUnion, rather than an index, since the indices will change after renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53985 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
7fbad27cfb7298c707e50af10609d463900d7211 |
23-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Enable the insertion of empty indices into LiveInterals, thereby making renumbering possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53961 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4065ac9c927a1659f22a28109d7c1c26adae9dab |
23-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Enable the insertion of empty indices into LiveInterals, thereby making renumbering possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53961 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
496bac5b084474ac33109bad24c1ef94c843e16f |
23-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix a compile-time regression introduced by my heuristic-changing patch. I forgot to multiply the instruction count by a constant factor in a few places, which caused the register allocator to require many more iterations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53959 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
50ca1a232b23265d72dc745102abd9492cff55db |
23-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix a compile-time regression introduced by my heuristic-changing patch. I forgot to multiply the instruction count by a constant factor in a few places, which caused the register allocator to require many more iterations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53959 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
fc74abfba5128544a750fce22fdf13eb0403e3ce |
23-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enable first-class aggregates support. Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
29474e9327b30f3f79a5ce3d4264cc23e1e6dcdb |
23-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enable first-class aggregates support. Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
11e56cb4dc73bbb0bdc083042657ea3a5aad63f2 |
23-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for VSETCC. Fixes PR2575. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53938 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
f871b535b84b7edca3587afa730019772474b6b0 |
23-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for VSETCC. Fixes PR2575. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53938 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
a1566f2e12ce87a5bca30bc0189a0cdbb40136a4 |
23-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Change the heuristics used in the coalescer, register allocator, and within live intervals itself to use an instruction count approximation that is not affected by inserting empty indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53937 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
a0e6513323c190e4994a80706f7aadf365655e2a |
23-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Change the heuristics used in the coalescer, register allocator, and within live intervals itself to use an instruction count approximation that is not affected by inserting empty indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53937 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
292578676524036842aecb2d932e3995dddd9c2a |
22-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix pr2566: incorrect assumption about bit_convert. It doesn't not have to output a vector value. Patch by Nicolas Capens! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
76b20d1829f7204eb3aa614241cd41e3c22da264 |
22-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix pr2566: incorrect assumption about bit_convert. It doesn't not have to output a vector value. Patch by Nicolas Capens! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
694caf56f15bec971d493069a1613a8f992f510a |
22-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make the GraphRoot edge look like a chain edge, which is more accurate, and use the right result number, in the off chance that the graph root has multiple result values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
7951f804442942b1befc8c583e442854d4040723 |
22-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make the GraphRoot edge look like a chain edge, which is more accurate, and use the right result number, in the off chance that the graph root has multiple result values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
c91d0b9bddb01c132fb2fe85a6f6c9205c690f13 |
22-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Another buildbot test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53896 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
5b4796a690a5cc2b96d1027e4fc14360518d7c2b |
22-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Another buildbot test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53896 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
4e97401e1fe39f5b847ab778880e0d272977dd8b |
22-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Trivial check-in to test buildbot. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53889 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
dc7b5a5b17d817f630b676ec683da841bfa40591 |
22-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Trivial check-in to test buildbot. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53889 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
79acd2b51ff81db67d8383ec117039cb99fdc04d |
22-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix grammaros in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7d919eaea1320859914e1deab20e2d2781af5b68 |
22-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix grammaros in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
358033102ffaef4d1afb1c0b7e96440906f0b48f |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enhance the GraphWriter support for edge destinations, and teach the SelectionDAG graph writer to make use of them. Now, nodes with multiple values are displayed as such, with incoming edges pointing to the specific value they use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
b38a0053b72ab70719e3b280ed90949c5e79598d |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enhance the GraphWriter support for edge destinations, and teach the SelectionDAG graph writer to make use of them. Now, nodes with multiple values are displayed as such, with incoming edges pointing to the specific value they use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
2dbc167294c1a7a4cd7a43f86bff104afd6110e5 |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
After early-lowering the FORMAL_ARGUMENTS node, delete it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53874 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
890404fa0e973d1cb983c10631a0094b6be2fe7f |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
After early-lowering the FORMAL_ARGUMENTS node, delete it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53874 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
462dc7f4960e5074ddf4769ec8b2ef1ba7a4d2c8 |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add titles to the various SelectionDAG viewGraph calls that include useful information like the name of the block being viewed and the current phase of compilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
b552df7665675a434d8f60a0535f7ba21b1f7851 |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add titles to the various SelectionDAG viewGraph calls that include useful information like the name of the block being viewed and the current phase of compilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
80f3d46968c56bb93597248d7e0157e746c5ce1b |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix uses of underscore-capital names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53870 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
4ae08288321dce3826a0da22b917e95bb7efd365 |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix uses of underscore-capital names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53870 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
6116a73da420d9b414a34ce2599dc7f6476e23fc |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Now that the MachineInstr leaks are fixed, enable leak checking in the MachineInstr clone code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53868 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ce232957a7412d95d03ff1764b356dd821fd0004 |
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Now that the MachineInstr leaks are fixed, enable leak checking in the MachineInstr clone code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53868 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d038e04188047eca4749d025ef1f05f7ae660bca |
21-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add VerifyNode, a place to put sanity checks on generic SDNode's (nodes with their own constructors should do sanity checking in the constructor). Add sanity checks for BUILD_VECTOR and fix all the places that were producing bogus BUILD_VECTORs, as found by "make check". My favorite is the BUILD_VECTOR with only two operands that was being used to build a vector with four elements! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
d3ace285922063c12ec57627134b564b5d7b9f7c |
21-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add VerifyNode, a place to put sanity checks on generic SDNode's (nodes with their own constructors should do sanity checking in the constructor). Add sanity checks for BUILD_VECTOR and fix all the places that were producing bogus BUILD_VECTORs, as found by "make check". My favorite is the BUILD_VECTOR with only two operands that was being used to build a vector with four elements! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
fbbd701bbd7b8dacd657cd686113f3412bd48bc1 |
20-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Pull r53795 from Gaz into mainline: If .loc and .file aren't used, always emit the "debug_line" section. This requires at least one entry in the line matrix. So if there's nothing to emit into the matrix, emit an end of matrix value anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53803 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
1983a2a6fdcd777d6d3a757baa61307b5ddcb227 |
20-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Pull r53795 from Gaz into mainline: If .loc and .file aren't used, always emit the "debug_line" section. This requires at least one entry in the line matrix. So if there's nothing to emit into the matrix, emit an end of matrix value anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53803 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
1ed9922794cda9dbe295e74674b909287e544632 |
19-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak in LiveIntervalAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53779 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
4ce1a527c1586c262bbc981101f3bfea2ed8dfd1 |
19-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak in LiveIntervalAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53779 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
|
c3e26727c18e15b64098fc7f397e09147cd78eeb |
18-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Softfloat support for FDIV. Patch by Richard Pennington. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
788a6e23ebd29db3137ee4d0ac03f83057578c04 |
18-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Softfloat support for FDIV. Patch by Richard Pennington. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
f8ac645c59094b1165af6a06af3cc63af96a1dd9 |
18-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Eliminate unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53772 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
cc8209c892e8a2f535a033c92e1efea4dba3406e |
18-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Eliminate unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53772 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
77926da196908244598627408babdc5254b4a991 |
18-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Revert 53729, after waking up in the middle of the night realising that it was wrong :) I think the reason the same type was being used for the shufflevec of indices as for the actual indices is so that if one of them needs splitting then so does the other. After my patch it might be that the indices need splitting but not the rest, yet there is no good way of handling that. I think the right solution is to not have the shufflevec be an operand at all: just have it be the list of numbers it actually is, stored as extra info in the node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
41903b53e0cd2acd6751827431a6c46a778e80ab |
18-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Revert 53729, after waking up in the middle of the night realising that it was wrong :) I think the reason the same type was being used for the shufflevec of indices as for the actual indices is so that if one of them needs splitting then so does the other. After my patch it might be that the indices need splitting but not the rest, yet there is no good way of handling that. I think the right solution is to not have the shufflevec be an operand at all: just have it be the list of numbers it actually is, stored as extra info in the node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fa82857e413578c35b39f5dc1e7ea8525e02e6bf |
18-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix a LocalSpiller leak. This fixes tramp3d-v4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53766 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
d6da6e28cbf9f6be789124e015f255e4af50cf83 |
18-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix a LocalSpiller leak. This fixes tramp3d-v4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53766 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
2c3f7ae3843bdc9dcfe85393e178211976c1f9bd |
18-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Re-introduce LeakDetector support for MachineInstrs and MachineBasicBlocks. Fix a leak that this turned up in LowerSubregs.cpp. And, comment a leak in LiveIntervalAnalysis.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53746 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineInstr.cpp
|
8b3b5171b5dd6ae6ec4c305cb16f8c17f5dc9a8e |
18-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Re-introduce LeakDetector support for MachineInstrs and MachineBasicBlocks. Fix a leak that this turned up in LowerSubregs.cpp. And, comment a leak in LiveIntervalAnalysis.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53746 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineInstr.cpp
|
dc5f936bf898a945b7b5a823d00ef9b336f2dc6a |
17-Jul-2008 |
Dan Gohman <gohman@apple.com> |
When printing MemOperand nodes, only use print() for PseudoSourceValue values, which never have names. Use getName() for all other values, because we want to print just a short summary of the value, not the entire instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53738 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
e36d39c5431dffa42167c3fecc5520eb0f2588ce |
17-Jul-2008 |
Dan Gohman <gohman@apple.com> |
When printing MemOperand nodes, only use print() for PseudoSourceValue values, which never have names. Use getName() for all other values, because we want to print just a short summary of the value, not the entire instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53738 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
76a4d58998ca41d04f03d21afe0257c36d9ce303 |
17-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Subreg live interval valno may not have a corresponding def machineinstr since it's less precise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53734 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0d5c14bf053b0baffe6e53667caa0e17820c34f5 |
17-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Subreg live interval valno may not have a corresponding def machineinstr since it's less precise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53734 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f1bb7f1d3e6b06185580ad4b4c343d402bf0a453 |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Use a legal type for elements of the vector_shuffle mask. These are just indices into the shuffled vector so their type is unrelated to the type of the shuffled elements (which is what was being used before). This fixes vec_shuffle-11.ll when using LegalizeTypes. What seems to have happened is that Dan's recent change r53687, which corrected the result type of the shuffle, somehow caused LegalizeTypes to notice that the mask operand was a BUILD_VECTOR with a legal type but elements of an illegal type (i64). LegalizeTypes legalized this by introducing a new BUILD_VECTOR of i32 and bitcasting it to the old type. But the mask operand is not supposed to be a bitcast but a straight BUILD_VECTOR of constants, causing a crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53729 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
22d073b0f0f5eb22ec7f27591feae615aa5bb5ed |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Use a legal type for elements of the vector_shuffle mask. These are just indices into the shuffled vector so their type is unrelated to the type of the shuffled elements (which is what was being used before). This fixes vec_shuffle-11.ll when using LegalizeTypes. What seems to have happened is that Dan's recent change r53687, which corrected the result type of the shuffle, somehow caused LegalizeTypes to notice that the mask operand was a BUILD_VECTOR with a legal type but elements of an illegal type (i64). LegalizeTypes legalized this by introducing a new BUILD_VECTOR of i32 and bitcasting it to the old type. But the mask operand is not supposed to be a bitcast but a straight BUILD_VECTOR of constants, causing a crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53729 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e8be6c63915e0389f1eef6b53c64300d13b2ce99 |
17-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk replacement of multiple values. This is slightly more efficient than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically could be optimized even further. However, an important property of this new function is that it handles the case where the source value set and destination value set overlap. This makes it feasible for isel to use SelectNodeTo in many very common cases, which is advantageous because SelectNodeTo avoids a temporary node and it doesn't require CSEMap updates for users of values that don't change position. Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to handle operand lists more efficiently, and to correctly handle a number of corner cases to which its new wider use exposes it. This commit also includes a change to the encoding of post-isel opcodes in SDNodes; now instead of being sandwiched between the target-independent pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel opcodes are now represented as negative values. This makes it possible to test if an opcode is pre-isel or post-isel without having to know the size of the current target's post-isel instruction set. These changes speed up llc overall by 3% and reduce memory usage by 10% on the InstructionCombining.cpp testcase with -fast and -regalloc=local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
bd68c79fb898ebb9b42140fb39bab3baf3cb8f4e |
17-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk replacement of multiple values. This is slightly more efficient than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically could be optimized even further. However, an important property of this new function is that it handles the case where the source value set and destination value set overlap. This makes it feasible for isel to use SelectNodeTo in many very common cases, which is advantageous because SelectNodeTo avoids a temporary node and it doesn't require CSEMap updates for users of values that don't change position. Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to handle operand lists more efficiently, and to correctly handle a number of corner cases to which its new wider use exposes it. This commit also includes a change to the encoding of post-isel opcodes in SDNodes; now instead of being sandwiched between the target-independent pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel opcodes are now represented as negative values. This makes it possible to test if an opcode is pre-isel or post-isel without having to know the size of the current target's post-isel instruction set. These changes speed up llc overall by 3% and reduce memory usage by 10% on the InstructionCombining.cpp testcase with -fast and -regalloc=local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
79ada108dd0d85af15d301be5479992a2d54e5ba |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for what seems to be the only missing ppc long double operations: FNEG and FP_EXTEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
38a9de35d55d7a5a3224cea99528fae4067bdc2b |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for what seems to be the only missing ppc long double operations: FNEG and FP_EXTEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
f00e74f4d64385e6b2ee29887114e7c8abdf1f17 |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Turn LegalizeTypes back off again for the moment: it is breaking Darwin bootstrap due to missing functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
31ddf4c7cd7e66064d2bac0de8d4aa4f883ef1a8 |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Turn LegalizeTypes back off again for the moment: it is breaking Darwin bootstrap due to missing functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b2ff885aaed8f9b033b16ca78d645650efc32433 |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Factorize some code for determining which libcall to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53713 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
f68dffb360f3174503e553a9d3b1ca8a85a79081 |
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Factorize some code for determining which libcall to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53713 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
7a9a5af6a06058e86e9eae5a5486f651aeeda2ec |
16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix the result type of a VECTOR_SHUFFLE+BIT_CONVERT dagcombine. This was turned up by some new SelectionDAG assertion checks that I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53687 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4c2199063ce303203e69cfbaeeac4485db4cc827 |
16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix the result type of a VECTOR_SHUFFLE+BIT_CONVERT dagcombine. This was turned up by some new SelectionDAG assertion checks that I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53687 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
95db39a9de48f69f4d764335b492b83a698c7854 |
16-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for promoting and expanding AssertZext and AssertSext. Needed when passing huge integer parameters with the zeroext or signext attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53684 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
5d55dd1f8c8452d6c57563a545864f046867db33 |
16-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for promoting and expanding AssertZext and AssertSext. Needed when passing huge integer parameters with the zeroext or signext attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53684 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
c0d6012b31afa2220306afa27db1b02e18427776 |
16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix a comment to say nonnegative instead of positive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53681 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
8baf6efe727fae10682480f424bcc0b15978841f |
16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix a comment to say nonnegative instead of positive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53681 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c5e1f98fdf44993c2bfe4c1ef633b2358cd718c1 |
16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add an assert to check for empty flags for MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53680 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
78f9a467bafe90ce2211b12faae6ee029df9cecd |
16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add an assert to check for empty flags for MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53680 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
05c397d52a145c8844790d6491c4c51d4bbfed7c |
16-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Reorder methods alphabetically. No functionality change. While this is not a wonderful organizing principle, it does make it easy to find routines, and clear where to insert new ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
f0b594c39bf02032fe570d1c6cb9a92325177def |
16-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Reorder methods alphabetically. No functionality change. While this is not a wonderful organizing principle, it does make it easy to find routines, and clear where to insert new ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
|
7f1d8aeef6ce0075e5dd144c669614813738be24 |
16-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Turn on LegalizeTypes by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
991e158149cc55baf31b1c927da62be5eb88739d |
16-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Turn on LegalizeTypes by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4093d8301021c9dde8d3577903366cfb8b5d82d0 |
15-Jul-2008 |
Dan Gohman <gohman@apple.com> |
SelectionDAG::AssignNodeIds is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ee9ed4b0ee802ea8414e7dee7dcb4664d0c739de |
15-Jul-2008 |
Dan Gohman <gohman@apple.com> |
SelectionDAG::AssignNodeIds is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
90a7b8fba69503c950aa598fac2edc77123b6bf0 |
15-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Don't sort SDNodes by their addresses in SelectionDAG::dump. Instead, just use the AllNodes order, which is at least relatively stable across runs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5fafd4262faf2ac59dd3480d34408ea04f750c10 |
15-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Don't sort SDNodes by their addresses in SelectionDAG::dump. Instead, just use the AllNodes order, which is at least relatively stable across runs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
295a7cddbdbafc4f91d96c6779034f0afef1829a |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for fabs on ppc long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
0172480d059f95ca622d1177f7d34e0e601713ca |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for fabs on ppc long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
c07e6e53f757da1a7c79c66ed53f2844de85a77e |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for promotion of bswap. In LegalizeDAG the value is zero-extended to the new type before byte swapping. It doesn't matter how the extension is done since the new bits are shifted off anyway after the swap, so extend by any old rubbish bits. This results in the final assembler for the testcase being one line shorter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
0d4f8ac1aedb0b78bd089dcb0b7ceed83e054532 |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for promotion of bswap. In LegalizeDAG the value is zero-extended to the new type before byte swapping. It doesn't matter how the extension is done since the new bits are shifted off anyway after the swap, so extend by any old rubbish bits. This results in the final assembler for the testcase being one line shorter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
8d56a6f4d8b010d4c582225a08ece971613f6fe3 |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for promotion of SIGN_EXTEND_INREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53603 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
c3444388f5a69418a0b2c427b23e33a6c46c759c |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for promotion of SIGN_EXTEND_INREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53603 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
bf304c20651b80309af4c0fb3a14c0d73eaa984f |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Reorder the integer promotion methods alphabetically. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53602 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
495efad527f8d4e03e12860b44aba7cdfba1b57b |
15-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Reorder the integer promotion methods alphabetically. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53602 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
2920d2b7b601d9dfcec783cb91316f35b6811be1 |
15-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed potential bug if the source and target of a bit convert have different alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
36b59ac6b0e4d5e56d61d92d6b53364db73c36a2 |
15-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed potential bug if the source and target of a bit convert have different alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5e84368b26415b3bb7f3f8d9cff3e05938dd82d0 |
14-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reapply 53476 and 53480, with a fix so that it properly updates the BB member to the current basic block after emitting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
368a08b238a4d0a938b7639930f149dbdeb71259 |
14-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reapply 53476 and 53480, with a fix so that it properly updates the BB member to the current basic block after emitting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
91d49f5ba1374df9db98b6ee45402ddaa84d08b0 |
14-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Improve debug output for MemOperandSDNode. PseudoSourceValue nodes don't have value names, so use print instead of getName() to get a useful string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53563 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
6295ea2cf304f9fa01dd8584b6fc1cd1dbdb354e |
14-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Improve debug output for MemOperandSDNode. PseudoSourceValue nodes don't have value names, so use print instead of getName() to get a useful string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53563 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
2b062994a62a5e1db930e52f46e734f3d8c87a29 |
14-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix edito in the PseudoSourceValue name list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53562 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
660c02c239bbb0c1c041ad610d6015c261e9675d |
14-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix edito in the PseudoSourceValue name list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53562 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
189a2b32f8dfcf35de60e04800ecac4553578e0d |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
I don't think BUILD_PAIR can have a vector result. Remove support for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
f2c3e77e07a3c464841820783eaad7ca9b97626f |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
I don't think BUILD_PAIR can have a vector result. Remove support for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
a489be59ef460fc1f699a62c21ecb3f630c6dbf0 |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Tighten up some checks. Fix FPOWI splitting for non-power-of-two vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
ae7b70f5789cc14f7db5e1ca691b12ca2d1cd73f |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Tighten up some checks. Fix FPOWI splitting for non-power-of-two vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
262e04b3078e38c8dc5cdc40bf51e7cd467fd57a |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
An INSERT_VECTOR_ELT can insert a larger value than the vector element type. Don't forget to handle this when the insertion index is not a constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53556 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
38b7a7cc96b46cee339eebbffb578e9e3945cf79 |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
An INSERT_VECTOR_ELT can insert a larger value than the vector element type. Don't forget to handle this when the insertion index is not a constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53556 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
8cc364c5cc210c56808011a5ebad28a719f106b7 |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
According to the docs, it is possible to have an extending load of a vector. Handle this case when splitting vector loads. I'm not completely sure what is supposed to happen, but I think it means hi should be set to undef. LegalizeDAG does not consider this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
953a83d09f658d621cd27ce874567f221b88e8db |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
According to the docs, it is possible to have an extending load of a vector. Handle this case when splitting vector loads. I'm not completely sure what is supposed to happen, but I think it means hi should be set to undef. LegalizeDAG does not consider this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
28c05ac995c8063ecf4e05ef7c0879467ca98221 |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
There should be no extending loads or truncating stores of one-element vectors. Also, neaten the handling of INSERT_VECTOR_ELT when the inserted type is larger than the vector element type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
692bd6e01bd264f322a3516737b6bae5708a77ac |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
There should be no extending loads or truncating stores of one-element vectors. Also, neaten the handling of INSERT_VECTOR_ELT when the inserted type is larger than the vector element type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeVectorTypes.cpp
|
d164ea2fb07ab3540121ffe1c59ad2cdc0a7a0a3 |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Ignore TargetConstant with an illegal type. These are used for passing huge immediates in inline ASM from the front-end straight down to the ASM writer. Of course this is a hack, but it is simple, limited in scope, works in practice, and is what LegalizeDAG does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
42e89f49db9df19c3d2f4fa428f740031f150a07 |
14-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Ignore TargetConstant with an illegal type. These are used for passing huge immediates in inline ASM from the front-end straight down to the ASM writer. Of course this is a hack, but it is simple, limited in scope, works in practice, and is what LegalizeDAG does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53553 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
b9890ae3c35ad7d8e49261650d5b98f49f97a705 |
12-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53504 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c3c41c98299d01d0962a45d2432908988721abea |
12-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53504 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
79a796c2b17c7ebd4dd489b5de1078fc2148adba |
12-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2536: a nasty spiller bug. If a two-address instruction uses a register but the use portion of its live range is not part of its liveinterval, it must be defined by an implicit_def. In that case, do not spill the use. e.g. 8 %reg1024<def> = IMPLICIT_DEF 12 %reg1024<def> = INSERT_SUBREG %reg1024<kill>, %reg1025, 2 The live range [12, 14) are not part of the r1024 live interval since it's defined by an implicit def. It will not conflicts with live interval of r1025. Now suppose both registers are spilled, you can easily see a situation where both registers are reloaded before the INSERT_SUBREG and both target registers that would overlap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53503 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c33577bb74e48f0211386d667198c4098d47cddb |
12-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2536: a nasty spiller bug. If a two-address instruction uses a register but the use portion of its live range is not part of its liveinterval, it must be defined by an implicit_def. In that case, do not spill the use. e.g. 8 %reg1024<def> = IMPLICIT_DEF 12 %reg1024<def> = INSERT_SUBREG %reg1024<kill>, %reg1025, 2 The live range [12, 14) are not part of the r1024 live interval since it's defined by an implicit def. It will not conflicts with live interval of r1025. Now suppose both registers are spilled, you can easily see a situation where both registers are reloaded before the INSERT_SUBREG and both target registers that would overlap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53503 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b5eec33dcde63bee6048d54bee2a376737028e5c |
12-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Back out 53476 and 53480 for now. Somehow they cause llc to miscompile 179.art. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53502 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
58a6a6b201041761b7ae929694542c4580ee3fe3 |
12-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Back out 53476 and 53480 for now. Somehow they cause llc to miscompile 179.art. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53502 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
a54cf176613f9ae8301519a61b8935652c0fb8ae |
12-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Include a frame index in the "fixed stack" pseudo source value instead of using the frame index for the SVOffset, which was inconsistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53486 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
1fc34bc02d40d5f55a5d9f8ed5ce32bdeb533491 |
12-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Include a frame index in the "fixed stack" pseudo source value instead of using the frame index for the SVOffset, which was inconsistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53486 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
5e76c3be731b516f51270d4334fb61c1af20f21d |
12-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix an obsolete top-level comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e39d99044c056315bc96527d72fde5850e583502 |
12-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix an obsolete top-level comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
0f4012f4759a6c6ca28f11ed1eb98feb8ab1481b |
12-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Factor out debugging code into the common base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
4195c05b0dd629d5f31a1511f7627ea6e36f2fb1 |
12-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Factor out debugging code into the common base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
dbe2a5a26925cd3ed8a4c2cf02c8273fcf9919d7 |
11-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add support for putting NamedRegionTimers in TimerGroups, and use a timer group for the timers in SelectionDAGISel. Also, Split scheduling out from emitting, to give each their own timer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53476 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
5e29bafdd4026d91dfcc021dab82e21975b98911 |
11-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add support for putting NamedRegionTimers in TimerGroups, and use a timer group for the timers in SelectionDAGISel. Also, Split scheduling out from emitting, to give each their own timer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53476 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
dc2fbddd9d204e904b8e61d1da1428579e7c55af |
11-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Trim unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53471 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
electionDAG/CallingConvLower.cpp
|
02983113c9d593fc6d0e7c769e88754a980da8bd |
11-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Trim unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53471 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
electionDAG/CallingConvLower.cpp
|
92e0834ac7d9ff2539706522ef521bd2319dc15f |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove an apparently useless routine: there should be no need to split the result of a vector RET node, since they are always already legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53462 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
758ef8357de3f04f8c7a2cbd9b9571a322c035da |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove an apparently useless routine: there should be no need to split the result of a vector RET node, since they are always already legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53462 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
ac6cecec189ba9689c42543c3106c02b96d788da |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
It is pointless to turn a UINT_TO_FP into an SINT_TO_FP libcall plus additional operations: it might as well be a direct UINT_TO_FP libcall. So only turn it into an SINT_TO_FP if the target has special handling for SINT_TO_FP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
25df46a15574ee05b1a18202d6eb6fbca2ac74f3 |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
It is pointless to turn a UINT_TO_FP into an SINT_TO_FP libcall plus additional operations: it might as well be a direct UINT_TO_FP libcall. So only turn it into an SINT_TO_FP if the target has special handling for SINT_TO_FP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/TargetLowering.cpp
|
9bed0f58eb7f5e9e22d062f3880a5fabfdd0dfdd |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add two missing SINT_TO_FP libcalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
3f71497401444fc6eace071a129048e1256119a4 |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add two missing SINT_TO_FP libcalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
edfba7e707a4f2f2e800843a7ef980c27d7f4eff |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Port a shift-by-1 optimization from LegalizeDAG: it was presumably added after the rest of the code was copied to LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
9b9e7a456de7cb654bb0f34dfb59aebb15717eae |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Port a shift-by-1 optimization from LegalizeDAG: it was presumably added after the rest of the code was copied to LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
dddc6291fb5274282a20d5923b50535d456d34a4 |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for 128 bit shifts and 32 bit shifts on 16 bit machines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
8783398a4cfee14740a03dfb3084694ce6d23e02 |
11-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for 128 bit shifts and 32 bit shifts on 16 bit machines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
c563e1d8fe2e0e9bb47e99ec55c277404969287e |
11-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the soft-float handling of FCOPYSIGN that Duncan noticed when working on legalizetypes. Both legalizetypes and legalizeops now produce hte same code for CodeGen/ARM/fcopysign.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e6fa1454f1f990ebe5e3ab79c80eedd3930d9dc6 |
11-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the soft-float handling of FCOPYSIGN that Duncan noticed when working on legalizetypes. Both legalizetypes and legalizeops now produce hte same code for CodeGen/ARM/fcopysign.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
70587ea813986bb0dbef71610091d496e28c22a6 |
11-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
make legalize types be a command line option: -enable-legalize-types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b29a6a47e8b6be7a868d0aa838186cd73c1c79ab |
11-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
make legalize types be a command line option: -enable-legalize-types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fdeb4b3f1d5a17afdf9a9b3a27ea60bee5972ebd |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make stack slot coloring's debug output more consistent with other passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53415 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
d01117dbe736fc77f3aba6145ace32882ae7b355 |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make stack slot coloring's debug output more consistent with other passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53415 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
bdb10fe0f6d0de760a8b040d531aa3ef3af6f4b7 |
10-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Change StackSlotForVirtReg (which maps vregs to frame indices) from std::map to IndexedMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53414 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
33dc971d51e7d07d0a535f0c7d45bedaa7870b15 |
10-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Change StackSlotForVirtReg (which maps vregs to frame indices) from std::map to IndexedMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53414 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
5ac319ac7125b009adddcc49294d2e040c4a91e5 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for 128 bit multiplicative operations. Lack of these caused a bootstrap failure with Fortran on x86-64 with LegalizeTypes turned on. While there, be nice to 16 bit machines and support expansion of i32 too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
05de150b9ca151d912e57656b61bbecc11a595db |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for 128 bit multiplicative operations. Lack of these caused a bootstrap failure with Fortran on x86-64 with LegalizeTypes turned on. While there, be nice to 16 bit machines and support expansion of i32 too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
be1ad4de2900451626c8d4ace07b9ea16099ea1d |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add a mysteriously missing libcall, FPTOSINT_F80_I32. Be nice to 16 bit machines by supporting FP_TO_XINT expansion for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
d27dafec5358dbe5bdc764060a156c8b535d07db |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add a mysteriously missing libcall, FPTOSINT_F80_I32. Be nice to 16 bit machines by supporting FP_TO_XINT expansion for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/TargetLowering.cpp
|
03dc093a2e63d20984c8fd67809fa762f1e31f1a |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a FIXME: use an apint in CTTZ legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
3e1c701db4f40baa420d7e829d92b2e7ed003e3f |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a FIXME: use an apint in CTTZ legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
ae099d54428f4113f8a71c53314975fb8a8e8bbc |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove PromoteIntRes_FP_ROUND - not sure what it was doing there: FP_ROUND returns a float, not an integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53405 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
0767358e0d5a8460a03953846d4a13bace723f36 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove PromoteIntRes_FP_ROUND - not sure what it was doing there: FP_ROUND returns a float, not an integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53405 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
c5ffb45934a5f6c19b6279a42622f1b4d9e7ec88 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Make sure the alignment of the temporary created in CreateStackStoreLoad is good enough for both the source and destination types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
079db020f8f3d0c6bc54872f1a509f75a4831e65 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Make sure the alignment of the temporary created in CreateStackStoreLoad is good enough for both the source and destination types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
f4e4629ee8c218f892ad8ae3e182fe40bc160895 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Make the LegalizeType method naming scheme more regular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53403 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
c5b0c2b113d6bf8546d9cedfe8ca3fddef536161 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Make the LegalizeType method naming scheme more regular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53403 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
e1d97b1a748e96d5ca479c38cfd1775d6469bf80 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Don't barf when dumping a constant that contains a ginormous value (eg: i128 -1). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53402 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
52a36a2571511f6c0ebd3df4bfed014c5d0e65a1 |
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Don't barf when dumping a constant that contains a ginormous value (eg: i128 -1). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53402 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ef0732d25a9882c947984ae3f2afbef5463ba00f |
10-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53394 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLocal.cpp
|
f1107fd43d82a369fd53b60b202b6c3bcd7b362d |
10-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53394 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLocal.cpp
|
743a1e6a9ced9152e24a70b7dd87153eb55c772f |
10-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Use DenseMap instead of std::map in local register allocation. This improves the time on instcombine from .31s to .22s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53390 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
8050fa1460ad6c856ea20b6d3276accdd5a899f3 |
10-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Use DenseMap instead of std::map in local register allocation. This improves the time on instcombine from .31s to .22s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53390 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ecee36ece65957e3756ec63b6413eac25fff1b24 |
10-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix 403.gcc. Finally got the check for two-address-ness correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53389 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
348946ae146886743c344a3cfc817cd5f18b8abc |
10-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix 403.gcc. Finally got the check for two-address-ness correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53389 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
eacdef21c65308fe5169b53bdbc2757bd75fdc0e |
10-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Revert r53367, which was breaking things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53378 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
4560c26a3aff6f500efa414d3007abadf728946a |
10-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Revert r53367, which was breaking things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53378 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b9c33c32292d0ae5da2d75623a84a0e7796a2b63 |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Simplify hasNUsesOfValue and hasAnyUsesOfValue even more. This makes their special-case checks of use_size() less beneficial, so remove them. This eliminates all but one use of use_size(), which is in AssignTopologicalOrder, which uses it only once for each node, and so can reasonably afford to recompute it, as this allows the UsesSize field of SDNode to be removed altogether. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
de5b8cc1b2d1cc030a388c8092e6eff11e63e04e |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Simplify hasNUsesOfValue and hasAnyUsesOfValue even more. This makes their special-case checks of use_size() less beneficial, so remove them. This eliminates all but one use of use_size(), which is in AssignTopologicalOrder, which uses it only once for each node, and so can reasonably afford to recompute it, as this allows the UsesSize field of SDNode to be removed altogether. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1373c1c3951ddd785d4f7f83c0bc89df699d22a0 |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
hasAnyUseOfValue can check SDUse nodes of its users directly instead of examining every operand of every user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a965173e103a03b86ae4dcbd2b5c4c2e186ae2ca |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
hasAnyUseOfValue can check SDUse nodes of its users directly instead of examining every operand of every user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1ea58a52a4296afff10e9db1e54928f38e6d74c6 |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move MemoryVT out of LSBaseNode into MemSDNode, allowing the getMemOperand function to be moved into the base class as well and made non-virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7ad1ccaddf096ca75d84d589765f930ab7a2894a |
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move MemoryVT out of LSBaseNode into MemSDNode, allowing the getMemOperand function to be moved into the base class as well and made non-virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d41141942239c10c9979106e82ab45f22ad7c16c |
09-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid creating expensive comment string if it's not going to be printed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53369 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
6181e06e65b1ea8dab32737555e3ed23b2705191 |
09-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid creating expensive comment string if it's not going to be printed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53369 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
eb580ee133594a821d971352c9b93dd2689def05 |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Loosen our check here. Local regalloc only cares that the reg is used and def'd by the same instruction, but about the details of the relationship. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53367 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
add4c88f11f8f4ba34ec38da85e8056a6e10f810 |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Loosen our check here. Local regalloc only cares that the reg is used and def'd by the same instruction, but about the details of the relationship. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53367 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
492f276cbc7be564c6af7b302618ee5436e4619c |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move the IsVolatile and SVOffset fields into the MemSDNode base class, and store IsVolatile and Alignment in a more compact form. This makes AtomicSDNode slightly larger, but it shrinks LoadSDNode and StoreSDNode, which are much more common and are the largest of the SDNode subclasses. Also, this lets the isVolatile() and getAlignment() accessors be non-virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
846947a7b701b3bd92d7ee80554280ff885d91ea |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move the IsVolatile and SVOffset fields into the MemSDNode base class, and store IsVolatile and Alignment in a more compact form. This makes AtomicSDNode slightly larger, but it shrinks LoadSDNode and StoreSDNode, which are much more common and are the largest of the SDNode subclasses. Also, this lets the isVolatile() and getAlignment() accessors be non-virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dd4b47c9b27eec402b56b27159c4323dd9aa5e94 |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Don't use an expensive check for two-address-ness when we have the information sitting around to determine it much more quickly, This speeds up the local register allocator from 0.37s to 0.31s on instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53359 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
771624006c4f5630db309f44d69ea7724277f7b0 |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Don't use an expensive check for two-address-ness when we have the information sitting around to determine it much more quickly, This speeds up the local register allocator from 0.37s to 0.31s on instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53359 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
9094db17b41e9c59a47a8cacd1b44916b05219b1 |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Factor local liveness computation out into its own function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53352 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ff01ccff60f7f47744ca3f73ca5cbb82e6a1497a |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Factor local liveness computation out into its own function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53352 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
85e6815d83d2b0027b5197aa17b5f32074bc9a8e |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reuse the MO variable instead of recomputing it in RegAllocLocal. Keep RegAllocSimple in sync. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53351 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
egAllocSimple.cpp
|
7f31037a53c27b13ef35fa785d5807ced80352b0 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reuse the MO variable instead of recomputing it in RegAllocLocal. Keep RegAllocSimple in sync. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53351 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
egAllocSimple.cpp
|
88cef2480f1c3977c70eb549ecf83f5a2c99a7a8 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Give RegAllocSimple a TargetInstrInfo member to keep it consistent with RegAllocLocal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53347 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
ef83bfc94ecf8e400644c63592b3ee417f0d20fc |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Give RegAllocSimple a TargetInstrInfo member to keep it consistent with RegAllocLocal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53347 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
88490546240c1f1e3ded46a103c2b4f53c19a008 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
RegAllocLocal has a TargetInstrInfo data member. Use it instead of having local variables duplicate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53346 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
245462c737ea57219ce5fda82cfad6d93dd43cad |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
RegAllocLocal has a TargetInstrInfo data member. Use it instead of having local variables duplicate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53346 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
0383bc014c82ce3979416e5fe28caaca59142a05 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use find with std::map, when that's what's needed, instead of lower_bound with extra checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53344 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
egAllocSimple.cpp
|
7fb3d54c9213e7e51ae90493f193f6f9497e8377 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use find with std::map, when that's what's needed, instead of lower_bound with extra checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53344 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
egAllocSimple.cpp
|
e87f52d722d4184becb2ecaf4500dd01d176bfc2 |
09-Jul-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Switch to new section name handling facility git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53316 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7f3fa2c8c29f17e7d1ee5d178ab1c72b2d43d91c |
09-Jul-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Switch to new section name handling facility git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53316 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
dd1c20d2580236280694a22264fa26b36cb8fbe6 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove some unneeded includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53289 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
|
cef41b324c8fe02da3e6232762aac79a4b893f8b |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove some unneeded includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53289 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
|
b5508e423727b2c56a136cb1a20647f831d53982 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Redo LegalizeTypes soft float support for SINT_TO_FP and UINT_TO_FP. This now produces the same code as LegalizeDAG (the previous code was based on a mistaken idea of what LegalizeDAG did in this case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53288 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
a89216d3b32fbdaf76eb4999d441ffaa5262b34c |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Redo LegalizeTypes soft float support for SINT_TO_FP and UINT_TO_FP. This now produces the same code as LegalizeDAG (the previous code was based on a mistaken idea of what LegalizeDAG did in this case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53288 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
452911c468a8d3b7571a3eb9aeff37c3880adb94 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Forgot to update the chain result when softening loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53287 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
1e4e4c198fcec51f1113aaf1cdd9b37f3ac63d99 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Forgot to update the chain result when softening loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53287 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
f8568b464f65f26efd0d7615dcf3f72a09bdf088 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes soft float support for FP_TO_SINT and FP_TO_UINT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
ad8879c32142bf822e8e6380c20363391bcddd28 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes soft float support for FP_TO_SINT and FP_TO_UINT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
851b1ee83f7a0e7f88cd378bf3849809b19dfd01 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for powi soft float. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53285 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
ac3e399e292a826f305e831a2030fdb4909945c7 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for powi soft float. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53285 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
ddc7aa3417fbd9719dd021a9fff383addfc49eb3 |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Make the role of MVT::i32 clearer here, and add a note since it is not clear whether it is correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
488328d081d9fb9ec48273bbac01a8a1c495d7fc |
09-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Make the role of MVT::i32 clearer here, and add a note since it is not clear whether it is correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
1afe5c3ff8f37a94e47379ff9535b5e03faca020 |
09-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Missed alignment argument on stores lowered from memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
757ec3147604ed7c1d03ad13df6c90fa929e72bd |
09-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Missed alignment argument on stores lowered from memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3e30cbb457509aff5645286f29d7d34adfe625bb |
09-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Make the DICountVisitor not a visitor. This keeps us from calling virtual functions and junk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53279 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
5591f60c580b221eede1f019d3a0d877a6d61a94 |
09-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Make the DICountVisitor not a visitor. This keeps us from calling virtual functions and junk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53279 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
f877b735ad4987f26cafcbaf22aa4c2199458b5d |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
const-ify SelectionDAG::getNodeValueTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a36422a0679c4cabf61d802a63d6beda43b24783 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
const-ify SelectionDAG::getNodeValueTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4e526b9a5b36d9bac170c03df0a5d6fb76740ae2 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
It's no longer necessary to test if a MachineBasicBlock's parent is non-null. It now always is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53263 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
073688225a85d6adb89d412fdffb0cba0851d216 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
It's no longer necessary to test if a MachineBasicBlock's parent is non-null. It now always is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53263 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f1bf29e648a25a440d3dcf5a445b30c4129c9bca |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Verify that MachineMemOperand alignment is a non-zero power of 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53262 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9b4f0791051f063387e0a90a4bee2945334bc7b5 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Verify that MachineMemOperand alignment is a non-zero power of 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53262 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9c6e70eca9a49c146b26621cbcbb9464ceeac024 |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for computing an alignment value, and make it available to getAtomic in addition to just getLoad and getStore, to prevent MachineMemOperands with 0 alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9e3a342ffca179370dfe8637d4d80e236a8f0d2d |
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for computing an alignment value, and make it available to getAtomic in addition to just getLoad and getStore, to prevent MachineMemOperands with 0 alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0966f0f0e4902481b2d0e4d65813a5d32207192c |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix the build. Apparently MachineInstr& is no longer implicitly convertable to MachineBasicBlock::iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53260 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
074e69a3609c0be00b9770a0602d2410f492754e |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix the build. Apparently MachineInstr& is no longer implicitly convertable to MachineBasicBlock::iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53260 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
491fccc4b4df32a14f33fa87cb3799cf45bb5fdd |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Make the local register allocator compute (purely local) liveness information for itself rather than depending on LiveVariables. This decreases compile time from: 0.5909s (LV + Regalloc) to 0.421s (just regalloc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53256 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
9196a390739a41384391100d354b3693fb04d152 |
09-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Make the local register allocator compute (purely local) liveness information for itself rather than depending on LiveVariables. This decreases compile time from: 0.5909s (LV + Regalloc) to 0.421s (just regalloc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53256 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
33d9b356ab7d75eba8eb70745051794fe8fcc558 |
08-Jul-2008 |
Dale Johannesen <dalej@apple.com> |
Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53253 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
ca0eb2c252984687bbf562947cf46682e90f8cf0 |
08-Jul-2008 |
Dale Johannesen <dalej@apple.com> |
Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53253 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
71e8685633e7938ee752004cceedccbd0d850527 |
08-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not CSE DEBUG_LOC, DBG_LABEL, DBG_STOPPOINT, DECLARE, and EH_LABEL SDNode's. This improves compile time slightly at -O0 -g. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53246 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
d6f5768dcc9e5956742ae6ea6af5f610080489ee |
08-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not CSE DEBUG_LOC, DBG_LABEL, DBG_STOPPOINT, DECLARE, and EH_LABEL SDNode's. This improves compile time slightly at -O0 -g. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53246 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
7ba11c552b8a25ad1272b44d96e886a784dae0b7 |
08-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove custom expansion from LegalizeTypes when doing soft float: experiments show that targets aren't expecting this for results or for operands. Add support select/select_cc result soft float and correct operand soft float for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
9ad22121801c7031f51715d5796388a0c60decaa |
08-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Remove custom expansion from LegalizeTypes when doing soft float: experiments show that targets aren't expecting this for results or for operands. Add support select/select_cc result soft float and correct operand soft float for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
3a2eb297afd2d5d57dfd041cdd5a1db2ceaa89b1 |
08-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add missing select_cc libcall line, somehow omitted in LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
2235f6373a486a15340af3cfa7fbf709665e2c23 |
08-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add missing select_cc libcall line, somehow omitted in LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
ab8faba2fb17e540751adf75161a25b18c94b818 |
08-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak C++ tests on x86 Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53237 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
1cd2dc58ece0d6d278677a339042cf4db78ecd5e |
08-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak C++ tests on x86 Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53237 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
28124ac6066795e69046371936f73faa09f15aba |
08-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for FP_ROUND and FP_EXTEND soft float. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
75ee49e55747b7027802d40d14c5cac923544457 |
08-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for FP_ROUND and FP_EXTEND soft float. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
77c8f7674db1a3c57fa9d8916957a01f9961ef9c |
08-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid unnecessary string construction during asm printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
76443dc7b2033c24134bd7c896813aa34b2c1951 |
08-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid unnecessary string construction during asm printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53215 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
8e5f2c6f65841542e2a7092553fe42a00048e4c7 |
08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for MachineInstrs, MachineBasicBlocks, and MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53212 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
HIElimination.cpp
electionDAG/ScheduleDAG.cpp
argetInstrInfoImpl.cpp
irtRegMap.cpp
|
221a4371f95ebdb25ac7d4363accb35c88cb5ea4 |
08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for MachineInstrs, MachineBasicBlocks, and MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53212 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
HIElimination.cpp
electionDAG/ScheduleDAG.cpp
argetInstrInfoImpl.cpp
irtRegMap.cpp
|
0e5f1306b059b62d7725f324e087efbc8e7a782d |
08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for SDNodes. The pool is allocated once for each function, and reused across SelectionDAGs. This drastically reduces the number of calls to malloc/free made during instruction selection, and improves memory locality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53211 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ed825d11548be9f8268490d26d0d0bab0347d6fd |
08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for SDNodes. The pool is allocated once for each function, and reused across SelectionDAGs. This drastically reduces the number of calls to malloc/free made during instruction selection, and improves memory locality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53211 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4925567f85ea60019a9cd45b8230fa72a1bd78df |
07-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the canonical way to get an empty structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53206 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
993b3dd3d5cf100b4d59b9e5c62acb56c53fb7ac |
07-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the canonical way to get an empty structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53206 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
667a68b96aad48c053d6678ee5cb6d440072e81a |
07-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Use StringMap for greater justice! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53202 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
e63647899d5a8a702a3e6de6998e6a1789b1df54 |
07-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Use StringMap for greater justice! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53202 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
0fe9c6e7babb3c0731d9cb864ec498ec4184760f |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDNode::MorphNodeTo (a function used by by SelectNodeTo) to properly track dead nodes that are on the original SDNode's operand list but not the new one, and have no other uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b997a4e4f92a1b9b4be917a32bc21cb52a63c399 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDNode::MorphNodeTo (a function used by by SelectNodeTo) to properly track dead nodes that are on the original SDNode's operand list but not the new one, and have no other uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ce42e404a26454f4332c2c350c75ad27bbbb16f7 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move MachineMemOperand's constructor out of line, to avoid a #include dependency on Support/MathExtras.h in the header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53200 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ac6f892ed0130543aa55a7891644c7599aacbb78 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move MachineMemOperand's constructor out of line, to avoid a #include dependency on Support/MathExtras.h in the header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53200 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fd3ff032b8a46bc56170e544fc9f104e5e66eef4 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use of operator* is redundant and confusing here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53197 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
|
8ca75f0779ae9c540f18a8058b9f923ec887069f |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use of operator* is redundant and confusing here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53197 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
|
4542611bb9793e8376d7d5f33b4a1e2d11712894 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Minor const-correctness fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53196 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
e4da641adc6f0989b558036c9c238ff3ce050669 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Minor const-correctness fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53196 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
03bafaf802579d0c659af6f2bc1ca539ac0704ca |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Assert that all MachineInstrs update PhysRegUseDefLists in their cleanup code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53194 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
604db2aeb99f94376a8babaa04ea94d04d53a027 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Assert that all MachineInstrs update PhysRegUseDefLists in their cleanup code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53194 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
6d9cdd56173fb915a9e3a8f0f6b5a8ed9bed1098 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Remove most of the uses of SDOperandPtr, usually replacing it with a simple const SDOperand*, which is what's usually needed. For AddNodeIDOperands, which is small, just duplicate the function to accept an SDUse*. For SelectionDAG::getNode - Add an overload that accepts SDUse* that copies the operands into a temporary SDOperand array, but also has special-case checks for 0 through 3 operands to avoid the copy in the common cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
703ce5d0c363816b7cac7310461fad4fc3796267 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Remove most of the uses of SDOperandPtr, usually replacing it with a simple const SDOperand*, which is what's usually needed. For AddNodeIDOperands, which is small, just duplicate the function to accept an SDUse*. For SelectionDAG::getNode - Add an overload that accepts SDUse* that copies the operands into a temporary SDOperand array, but also has special-case checks for 0 through 3 operands to avoid the copy in the common cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53183 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1002c0203450620594a85454c6a095ca94b87cb2 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
|
e887fdff72486ad0e83f402c8c105fa91fff1036 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
|
6b345ee9b2833cf1b2f79dc16d06d4060bec36ef |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make DenseMap's insert return a pair, to more closely resemble std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
55d1966e9afdeeb33e7611bc0ac9b4b4268d68d3 |
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Make DenseMap's insert return a pair, to more closely resemble std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
21cacc4de88098a6f2ccfcde18ccec0aa6654f3e |
07-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
LegalizeSetCCOperands should legalize the result of ExpandLibCall. Patch by Richard Osborne. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
18a1ab1d6b0f8e6ae6d85b922e27b5467ef444e6 |
07-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
LegalizeSetCCOperands should legalize the result of ExpandLibCall. Patch by Richard Osborne. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8870ce951d3f545edc8a5ce89ce3e7cdbf38eb25 |
07-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Prevent option name conflict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53166 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
31376589fcfc44bd3e17ab514d5569bd771d156f |
07-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Prevent option name conflict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53166 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
990f032907ae171cc3d465a694e8e6d2a6545f57 |
07-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes soft-float support for stores of a float value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
6627c56987be5203d44db5e3206f4a4f2b1bbe71 |
07-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes soft-float support for stores of a float value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
|
364d73ddab43b699ab90240f11b7a2eb5cf69bd8 |
05-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed generating incorrect aligned stores that I backout of r53031 that fixed problems in EmitStackConvert where the source and target type have different alignment by creating a stack slot with the max alignment of source and target type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
55854cc1b3acd8103c1dc674dad5de4b7a41d33d |
05-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed generating incorrect aligned stores that I backout of r53031 that fixed problems in EmitStackConvert where the source and target type have different alignment by creating a stack slot with the max alignment of source and target type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
126d90770bdb17e6925b2fe26de99aa079b7b9b3 |
04-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Rather than having a different custom legalization hook for each way in which a result type can be legalized (promotion, expansion, softening etc), just use one: ReplaceNodeResults, which returns a node with exactly the same result types as the node passed to it, but presumably with a bunch of custom code behind the scenes. No change if the new LegalizeTypes infrastructure is not turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
ac496a17678473310a3c468a8ac5a5a30426876c |
04-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Rather than having a different custom legalization hook for each way in which a result type can be legalized (promotion, expansion, softening etc), just use one: ReplaceNodeResults, which returns a node with exactly the same result types as the node passed to it, but presumably with a bunch of custom code behind the scenes. No change if the new LegalizeTypes infrastructure is not turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeVectorTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
ececf99c07febbcaeec73822519f0d36d3ee50c4 |
04-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Linux also does not require exception handling moves in order to get correct debug info. Since I can't imagine how any target could possibly be any different, I've just stripped out the option: now all the world's like Darwin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53134 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
cbc28b1d8bceba8861692157c8725070cdb54a59 |
04-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Linux also does not require exception handling moves in order to get correct debug info. Since I can't imagine how any target could possibly be any different, I've just stripped out the option: now all the world's like Darwin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53134 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
c04f46567c3ebf64257d8f03e29d80a69606a6bc |
04-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't return std::vector by value, but pass it in by reference to be filled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53123 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
75091f9f5f90908dfdaa725b690d1f18020904f4 |
04-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't return std::vector by value, but pass it in by reference to be filled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53123 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
10fff6078a7bc42f142c536bd55e9569253b280b |
04-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert my previous check-in that split up MachineModuleInfo. It turns out to slow the compiler down at -O0 some 30% or more. Ooops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53120 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
4de8de500e6cfb18604557d24a18d684227e95e6 |
04-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert my previous check-in that split up MachineModuleInfo. It turns out to slow the compiler down at -O0 some 30% or more. Ooops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53120 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
a122f2f51e4cc9edc5f1c4020e51909b585a0f90 |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Backed out 53031. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
639dee91a803062997a3714d45dc1ac5ac6dc258 |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Backed out 53031. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
9f1c8317a4676945b4961ddb9827ef2412551620 |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
e52c191890057ab4cec065505b0b27f8586eb1b5 |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
2ebc11ac6d19ec806da97bd4f2d49a27932d09fb |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reapply r52988, "Simplify addRegisterKilled and addRegisterDead." The 254.gap failure was not due to this mod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53068 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9d90c638c42e609fcc1302b00690e9a587633e9c |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reapply r52988, "Simplify addRegisterKilled and addRegisterDead." The 254.gap failure was not due to this mod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53068 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9b44c1f2a0ebe31e670994cfe131c7c3e0e80494 |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Avoid unnecessarily copying APInt objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53065 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1b1a3c6492001e401d5b74d35a4a28abd59c41bc |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Avoid unnecessarily copying APInt objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53065 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5b9f60bc22582e80b081d4277a47d8b7fa14e3f4 |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use std::replace instead of std::find and push_back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53063 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
c2c8ebb7a73489bdc18da99aa3c2d180d200346c |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use std::replace instead of std::find and push_back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53063 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
be04dc1413bdab0c8687a8086792af6cfd7540c0 |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers. - CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53061 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
woAddressInstructionPass.cpp
|
d1c7e8fcf6f334f747da3f04418adccb2ca2cac8 |
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers. - CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53061 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
woAddressInstructionPass.cpp
|
f660c171c838793b87b7e58e91609cecf256378d |
03-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Make LiveVariables even more optional, by making it optional in the call to TargetInstrInfo::convertToThreeAddressInstruction Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53058 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c6959726ab99e740101d8b5b663aee5fa1332791 |
03-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Make LiveVariables even more optional, by making it optional in the call to TargetInstrInfo::convertToThreeAddressInstruction Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53058 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
cd920d9ecfcefff13c3619a32b58399cac2e3630 |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Replace a few uses of SelectionDAG::getTargetNode with SelectionDAG::SelectNodeTo in the instruction selector. This updates existing nodes in place instead of creating new ones. Go back to selecting ISD::DBG_LABEL nodes into TargetInstrInfo::DBG_LABEL nodes instead of leaving them unselected, now that SelectNodeTo allows us to update them in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
7eced110b0549fe8f7b400bbad655586d42d8765 |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Replace a few uses of SelectionDAG::getTargetNode with SelectionDAG::SelectNodeTo in the instruction selector. This updates existing nodes in place instead of creating new ones. Go back to selecting ISD::DBG_LABEL nodes into TargetInstrInfo::DBG_LABEL nodes instead of leaving them unselected, now that SelectNodeTo allows us to update them in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
8b69135f05cc2b8fff0f50bc826666b1da0661c4 |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Revert r52988. It broke 254.gap on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53050 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
560eec5f23ac38ac2c6a0f0c957862fa0db05c41 |
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Revert r52988. It broke 254.gap on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53050 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
802af11460f090fe53710c44c061a70e5bd7aa2d |
02-Jul-2008 |
Owen Anderson <resistor@mac.com> |
TwoAddressInstructionPass doesn't really require LiveVariables, it just needs to update it if it's already around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53049 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b92321782ef4216b5f098104edb60e9d4fa6cc5f |
02-Jul-2008 |
Owen Anderson <resistor@mac.com> |
TwoAddressInstructionPass doesn't really require LiveVariables, it just needs to update it if it's already around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53049 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
4bdcb61af33399d4e01fdf3c47ca1f1f5356e370 |
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add a new getMergeValues method that does not need to be passed the list of value types, and use this where appropriate. Inappropriate places are where the value type list is already known and may be long, in which case the existing method is more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
698842f7b62573cc6a3af154727e5d59daea4c1d |
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add a new getMergeValues method that does not need to be passed the list of value types, and use this where appropriate. Inappropriate places are where the value type list is already known and may be long, in which case the existing method is more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
bee98c66c0c3d1f43244cdf237e572a9df031e40 |
02-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed problem in EmitStackConvert where the source and target type have different alignment by creating a stack slot with the max alignment of source and target type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53031 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
cd0e9b32e09067519485bf89a55f8b69c3c42eee |
02-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed problem in EmitStackConvert where the source and target type have different alignment by creating a stack slot with the max alignment of source and target type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53031 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
349db1738d58d52cae2ab1e06cbd128dd9f0aab6 |
02-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
instead of aborting on shifts of i1, just implicitly fold them. The dag combiner can produce a shift of i1 when folding icmp i1's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53030 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a113d3e7f84958bf2289297d014e2512a84ce80e |
02-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
instead of aborting on shifts of i1, just implicitly fold them. The dag combiner can produce a shift of i1 when folding icmp i1's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53030 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8dd5af562b8ab9ddf4c6e3a74ca3c4f66dcd0e9e |
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Fix typo compounded by a cut-and-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
8bed0bd41e91f45f3219103e8dfee33fbeb61a1d |
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Fix typo compounded by a cut-and-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
3a38e5e3c465c10fe5f859114f9077cb00cc17b9 |
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Let AnalyzeNewNode take care of calling ExpungeNode. This makes sure that all new nodes are expunged, not just those the top node of a new subtree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
136fbc0e3e8697881c95e73249b5c6985e16970f |
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Let AnalyzeNewNode take care of calling ExpungeNode. This makes sure that all new nodes are expunged, not just those the top node of a new subtree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
c6be777208f4539af400ac694d9d1dc8b992bc80 |
02-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Use a faster priority comparison function if -fast. - Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53010 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
f2639ba040bb28433c7fc4c1ce89ed49e3e02f6d |
02-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Use a faster priority comparison function if -fast. - Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53010 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
fce6e546aab64602c41eeb83381b7617f97d0069 |
02-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
Add a new (simple) StringMap::clear method, patch by Pratik Solanki! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53008 91177308-0d34-0410-b5e6-96231b3b80d8
ollectorMetadata.cpp
|
7749f9f9529ad333869157d4bf269863e3a08569 |
02-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
Add a new (simple) StringMap::clear method, patch by Pratik Solanki! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53008 91177308-0d34-0410-b5e6-96231b3b80d8
ollectorMetadata.cpp
|
3a43a7f8b247cb3c6273bda3b595155117584e84 |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the canonical form for getting an empty structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53003 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
271b732731691c699d13e2e9eac2465f68d76c38 |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the canonical form for getting an empty structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53003 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
12432cfc59862e6a71b4f320677a41788cdd0860 |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Sorry. I couldn't sleep at night knowing I put these ugly casts into the source tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53001 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
|
9ac67a7edd2c6dabdcc11b2efd46f0e4458c3bf3 |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Sorry. I couldn't sleep at night knowing I put these ugly casts into the source tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53001 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
|
aa8f8889a861aadc061aec71fb7ed7f628848a2d |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Darwin doesn't need exception handling information for the "move" info when debug information is being output, because it's leet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52994 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
ac9639d279b57ccece43fa9742d78f0877b99e85 |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Darwin doesn't need exception handling information for the "move" info when debug information is being output, because it's leet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52994 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
6547e406cf934346db7a206b61bcf09635afff0d |
02-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid creating expensive comment string if it's not going to be printed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
0eeed443610f78fe77f9c170e80c75d363c79207 |
02-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid creating expensive comment string if it's not going to be printed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
4474c792c6ef21862dd166fd0de59d70c4c8d489 |
02-Jul-2008 |
Owen Anderson <resistor@mac.com> |
No need to use std::distance. We can just count the number of operands much more cheaply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cd9bc792c442008a8bf75d9a4c9146ce9f45cd89 |
02-Jul-2008 |
Owen Anderson <resistor@mac.com> |
No need to use std::distance. We can just count the number of operands much more cheaply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1096734011a1ed403cc3a35e5f05f0f56873725d |
02-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Simplify addRegisterKilled and addRegisterDead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52988 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
152ad1398164aad60fa4e1a97b760d6a80a7bb8e |
02-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Simplify addRegisterKilled and addRegisterDead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52988 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a28cd12b064d6af333e6c16499ad26c27d010450 |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
- Update comments. - Don't use GlobalVariable::LinkageTypes when unsigned works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52987 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
|
4a41e4379b0ac99656e3dd40b0c23141fd29da35 |
02-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
- Update comments. - Don't use GlobalVariable::LinkageTypes when unsigned works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52987 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
|
62bc8a44868bd86e96bdbd2f0d66dda690cc66ad |
01-Jul-2008 |
Dale Johannesen <dalej@apple.com> |
Fix longstanding thinko: don't exclude predessors of exit blocks from tail merging consideration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52985 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
92e846666363737a1b5d288a81f00d14ffe68782 |
01-Jul-2008 |
Dale Johannesen <dalej@apple.com> |
Fix longstanding thinko: don't exclude predessors of exit blocks from tail merging consideration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52985 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
6518c6ed7ea609696304bbbe848342cacd001f12 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a compile time warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2410863be0ab9f2c169053724a1471d69284a5f3 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a compile time warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
25995093e785f4794b3590f3df70fbfe834a00a1 |
01-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Add a version of AsmPrinter::EOL that takes a const char* so that we don't have to do as many implicit std::string constructions. Unfortunately, this doesn't appear to translate to a real speedup in practice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
367bfbb1143c437fd1733d985d260513303d2e85 |
01-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Add a version of AsmPrinter::EOL that takes a const char* so that we don't have to do as many implicit std::string constructions. Unfortunately, this doesn't appear to translate to a real speedup in practice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
f1a792bc59a4d65d0e346109c681768e07e62be5 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do run ComputeLiveOutVRegInfo with -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
598f94dc9f2d5dd645b23473388f203d1547dd97 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do run ComputeLiveOutVRegInfo with -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4576f6d7a9c0f2c6a3b6c5d4d8a3063bbf763ae5 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not use computationally expensive scheduling heuristics with -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
9b77cae1df76d8be0771563f55dc72b1cdab648c |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not use computationally expensive scheduling heuristics with -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52971 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
ebffb660a68384dd8b5e2ff36d68e94a3920611b |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Apply Chris' suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
19733c4a5e3c954dc7f96af361d2f71ed61f9443 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Apply Chris' suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
528bc028774513ee76125f85ceb8f704f5901cc8 |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Minimize duplicated code in AsmPrinter::printLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52944 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7d54640a828d664d50851eff82d49213bc134614 |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Minimize duplicated code in AsmPrinter::printLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52944 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
4406604047423576e36657c7ede266ca42e79642 |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollector.cpp
warfWriter.cpp
achineInstr.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
fa607c9cc5d2bd142ad8352bdf5e446517562688 |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollector.cpp
warfWriter.cpp
achineInstr.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
ee4dc16d75e0d06ab434745c116137c4c6332ffc |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Suppress compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
e661893f00c2c4911b026810b49cb83938c1472b |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Suppress compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
|
9ef4c5302eb547936f6586ece880f31104d2f801 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't run stack slot coloring if -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52933 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2ea55507ac8f9c08ece82880c86d12fa07e81aff |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't run stack slot coloring if -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52933 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
99fe47bc81d53762454ff112ab34378b00299b5a |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use a simpler but equivalent form of RecordSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0849b9ef0517d2f4459f19c7f83dda2057caa3ed |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use a simpler but equivalent form of RecordSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f667480d84a99a34adcac217e1a4c9fb7e2bfae6 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add timing report for various sub-passes under SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
419b0e56ff8245b7e1993d637af94ae4f364fc55 |
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add timing report for various sub-passes under SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d19a53ba1d4629f69821f37ca824c65e6df8e8f9 |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
std::ostream and std::string microoptimizations for asm printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52929 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
12ebe3f690e44934d98dceac5e3fd95b16ec06be |
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
std::ostream and std::string microoptimizations for asm printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52929 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
cf8462f3004d3fc72217d09e4b3f135d68a50e9d |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use reserve. SelectionDAG::allnodes_size is linear, but that doesn't appear to outweigh the benefit of reducing heap traffic. If it does become a problem, we should teach SelectionDAG to keep a count of how many nodes are live, because there are several other places where that information would be useful as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
93466f8e2c9e8f3e769f5d357799a577b01e16bc |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use reserve. SelectionDAG::allnodes_size is linear, but that doesn't appear to outweigh the benefit of reducing heap traffic. If it does become a problem, we should teach SelectionDAG to keep a count of how many nodes are live, because there are several other places where that information would be useful as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7f460203b0c5350e9b2c592f438e40f7a7de6e45 |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its purpose, and give it a custom SDNode subclass so that it doesn't need to have line number, column number, filename string, and directory string, all existing as individual SDNodes to be the operands. This was the only user of ISD::STRING, StringSDNode, etc., so remove those and some associated code. This makes stop-points considerably easier to read in -view-legalize-dags output, and reduces overhead (creating new nodes and copying std::strings into them) on code containing debugging information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52924 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
472d12c47f1704853971a564e03c5490ce5066b7 |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its purpose, and give it a custom SDNode subclass so that it doesn't need to have line number, column number, filename string, and directory string, all existing as individual SDNodes to be the operands. This was the only user of ISD::STRING, StringSDNode, etc., so remove those and some associated code. This makes stop-points considerably easier to read in -view-legalize-dags output, and reduces overhead (creating new nodes and copying std::strings into them) on code containing debugging information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52924 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
db8d56b825efeb576d67b9dbe39d736d93306222 |
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Split scheduling from instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
34fd4f3c0eb0d6c2ea2d2208a68bf693ca123d18 |
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Split scheduling from instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
edec8d89dfaebd7050df4acafe3d01fa755ffd0d |
30-Jun-2008 |
Dale Johannesen <dalej@apple.com> |
No need to align the stack if there are no stack objects. Fixes a couple of tests on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52921 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c46d81416f6a8aea60d31109c79ebc5753aba93c |
30-Jun-2008 |
Dale Johannesen <dalej@apple.com> |
No need to align the stack if there are no stack objects. Fixes a couple of tests on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52921 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
fdb99838a30eba6ee4e7ae8c8077b4f8d62cf560 |
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unneeded include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52920 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
66bf3bac4890e8cd5364cb2055051f939acd3720 |
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unneeded include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52920 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
a44b674a42b6ca57128c4eb5a358298ed3bb1406 |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Replace some std::vectors that showed up in heap profiling with SmallVectors. Change the signature of TargetLowering::LowerArguments to avoid returning a vector by value, and update the two targets which still use this directly, Sparc and IA64, accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e0208146435b75f91cab9943f7e1a0fe4259e706 |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Replace some std::vectors that showed up in heap profiling with SmallVectors. Change the signature of TargetLowering::LowerArguments to avoid returning a vector by value, and update the two targets which still use this directly, Sparc and IA64, accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
117b64b3f8277e8882d711ea859bed380a3e6f14 |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Correct the allocation size for CCState's UsedRegs member, which only needs one bit for each register. UsedRegs is a SmallVector sized at 16, so this eliminates a heap allocation/free for every call and return processed by Legalize on most targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
a1ee9e855c4c0dcb317bd222f31fb0558ef04958 |
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Correct the allocation size for CCState's UsedRegs member, which only needs one bit for each register. UsedRegs is a SmallVector sized at 16, so this eliminates a heap allocation/free for every call and return processed by Legalize on most targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
6f7e1cddf63f91af84996d59cdb5809088ac3fe3 |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
ExpungeNode is only needed for new nodes! This fixes CodeGen/PowerPC/2008-06-19-LegalizerCrash.ll when using the new LegalizeTypes infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52903 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
14d6be397cba6f3c6a18d58bf2be31830a68804a |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
ExpungeNode is only needed for new nodes! This fixes CodeGen/PowerPC/2008-06-19-LegalizerCrash.ll when using the new LegalizeTypes infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52903 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
d3ca9fc9984d036146886a40ad3f73aaf7a424eb |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for VAARG. As noted in a comment, this is wrong for types like x86 long double and i1, but no worse than what is done in LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52898 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
b8b42275d8f3f3a191b5aeb20277d12248534d4c |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for VAARG. As noted in a comment, this is wrong for types like x86 long double and i1, but no worse than what is done in LegalizeDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52898 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
7fc8ab81f5f46dcba0f76b1c546a1d11ccbebe26 |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for promoting select_cc operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52895 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
b6e31d36beabbacadb07d03ca172513c6a8d131f |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for promoting select_cc operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52895 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
f9516208e57364ab1e7d8748af1f59a2ea5fb572 |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Revert the SelectionDAG optimization that makes it impossible to create a MERGE_VALUES node with only one result: sometimes it is useful to be able to create a node with only one result out of one of the results of a node with more than one result, for example because the new node will eventually be used to replace a one-result node using ReplaceAllUsesWith, cf X86TargetLowering::ExpandFP_TO_SINT. On the other hand, most users of MERGE_VALUES don't need this and for them the optimization was valuable. So add a new utility method getMergeValues for creating MERGE_VALUES nodes which by default performs the optimization. Change almost everywhere to use getMergeValues (and tidy some stuff up at the same time). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f19591c91ec39496d58bf4835640d25abc026da9 |
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Revert the SelectionDAG optimization that makes it impossible to create a MERGE_VALUES node with only one result: sometimes it is useful to be able to create a node with only one result out of one of the results of a node with more than one result, for example because the new node will eventually be used to replace a one-result node using ReplaceAllUsesWith, cf X86TargetLowering::ExpandFP_TO_SINT. On the other hand, most users of MERGE_VALUES don't need this and for them the optimization was valuable. So add a new utility method getMergeValues for creating MERGE_VALUES nodes which by default performs the optimization. Change almost everywhere to use getMergeValues (and tidy some stuff up at the same time). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0ff39b3feb10477c224138156941234f5fa46f58 |
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag. - Correctly handle memcpy from constant string which is zero-initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52891 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
833501d6dd954a79e24dee9bc266f02274ea0c22 |
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag. - Correctly handle memcpy from constant string which is zero-initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52891 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
80c1a5622a26794873b0d44e27c04926cd6c6be1 |
30-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Implement split and scalarize for SELECT_CC, fixing PR2504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52887 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c74714523d746f78b2b2c519cea065060aa6f886 |
30-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Implement split and scalarize for SELECT_CC, fixing PR2504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52887 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6d116bc7ced56a820d33b0dd35ee36af8a810eab |
29-Jun-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Revert (52748 and friends): Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. This unbreaks llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52884 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
9480db79170be31a39f639e2880303824f1b727c |
29-Jun-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Revert (52748 and friends): Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. This unbreaks llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52884 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
03a5707955788fc333c6767c054341b12075eff9 |
28-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Really fix the bootstrap failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
12cc93b7b21304912b47600ab30bd33c6e7089c9 |
28-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Really fix the bootstrap failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b746b82113df707df9555450991eab75b18ffa1b |
28-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Add back the capability to include nul characters in strings with GetConstantStringInfo. This will hopefully restore llvm-gcc to happy bootstrap land. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9575737397ad43c8e3ba5960afc86a6a7d6cd92e |
28-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Add back the capability to include nul characters in strings with GetConstantStringInfo. This will hopefully restore llvm-gcc to happy bootstrap land. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
77455617fbc5e06591187be83aa349f6be8a95f8 |
28-Jun-2008 |
Dan Gohman <gohman@apple.com> |
When folding a bitcast into a load or store, preserve the alignment information of the original load or store, which is checked to be at least as good, and possibly better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
55a11de4de3c9da6bb48695174b615db6b4fa720 |
28-Jun-2008 |
Dan Gohman <gohman@apple.com> |
When folding a bitcast into a load or store, preserve the alignment information of the original load or store, which is checked to be at least as good, and possibly better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
01b2e236b571e7c22ee8493b7ea19eda9830d75c |
28-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Looks like this condition is inverted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52841 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
dd562a0055475b417e7fd346581375fc1b73ab04 |
28-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Looks like this condition is inverted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52841 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f0e9c56540367e9e7d0c746b839a1446612498c8 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Reduce number of times .size() is called on a vector. Rename some variables to match normal naming scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52820 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
266486d86b34fbe70b46aef6876dfc0a3b72b595 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Reduce number of times .size() is called on a vector. Rename some variables to match normal naming scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52820 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
bffdf66b8050b45188cb265f27e81c41277ab0ca |
27-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use a SmallSet when we can to reduce memory allocations. This speeds up a particular testcase from 0.0302s to 0.0222s in LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52819 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
9a4cb15ecabfd1d9b58ba9262fad749ac7ecff3d |
27-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use a SmallSet when we can to reduce memory allocations. This speeds up a particular testcase from 0.0302s to 0.0222s in LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52819 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
07c68f9b6f2d1009f8c239c27e351fd8246879f5 |
27-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
simplify this check, GetConstantStringInfo validates that a global is constant already. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52812 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
915da66f02e0208cad90a01ac9f7a9e01dc1fc8d |
27-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
simplify this check, GetConstantStringInfo validates that a global is constant already. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52812 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0ac1b6d768411cb84fbf7df3ff759331b816d111 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Cruft left from patch revert...sorry. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52808 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
ff424a9d3445e0322897947e332d8b594f56ee42 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Cruft left from patch revert...sorry. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52808 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
914c970899ce3281a8d14d924ec1bfe335624ac6 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting broken patch r52803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52806 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
0e679b876edb3f06c137f575e52474dc0c0676b2 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting broken patch r52803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52806 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
b827c26e1e49944e44604402d2414b259dba6900 |
27-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Don't perform expensive queries checking for super and sub registers when we know that there aren't any. This speed up LiveVariables on instcombine at -O0 -g from 0.3855s to 0.3503s. Look for more improvements in this area soon! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52804 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
bf00c8120c63583bf2fdad5ee70bf3e4e5be8c49 |
27-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Don't perform expensive queries checking for super and sub registers when we know that there aren't any. This speed up LiveVariables on instcombine at -O0 -g from 0.3855s to 0.3503s. Look for more improvements in this area soon! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52804 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e6b6bae536a382ca76c738275b82c73b026cd6bf |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
- Remove a use of std::vector. - Make sure that we're not recalculating the size of a vector that never changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52803 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
ecc696f1491bc35db26cb0e10bd016f8d98e79e6 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
- Remove a use of std::vector. - Make sure that we're not recalculating the size of a vector that never changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52803 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
305635abeae1d20519b60856c89479e8b7b5d4dd |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Refactor the DebugInfoDesc stuff out of the MachineModuleInfo file. Clean up some uses of std::vector, where it's return std::vector by value. Yuck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52800 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
e15b119252ef67b84346bf18fd32365834d62602 |
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Refactor the DebugInfoDesc stuff out of the MachineModuleInfo file. Clean up some uses of std::vector, where it's return std::vector by value. Yuck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52800 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfoDesc.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
f77e46be6d7c15656009c1e96423c4cdc3e60aa2 |
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
duncan points out that isOperationLegal includes a check for type legality. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9532f02ba80b8149c8c74c74f89248f47a7d9c93 |
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
duncan points out that isOperationLegal includes a check for type legality. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8342cfff9a221dd69c1d9c615414ec3b8c8db776 |
26-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Don't create a whole new string just to copy the elements into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52785 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
19fcb61031376f8a1895b58b38e4f5e72563dad7 |
26-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Don't create a whole new string just to copy the elements into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52785 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
b5dae003252d8e650a32bfdf33cba5aed8e41e40 |
26-Jun-2008 |
Dale Johannesen <dalej@apple.com> |
Fixes the last x86-64 test failure in compat.exp: <16 x float> is 64-byte aligned (for some reason), which gets us into the stack realignment code. The computation changing FP-relative offsets to SP-relative was broken, assiging a spill temp to a location also used for parameter passing. This fixes it by rounding up the stack frame to a multiple of the largest alignment (I concluded it wasn't fixable without doing this, but I'm not very sure.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52750 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
97215d6dc8d84cc93a8ea441d80a73c1ad24a172 |
26-Jun-2008 |
Dale Johannesen <dalej@apple.com> |
Fixes the last x86-64 test failure in compat.exp: <16 x float> is 64-byte aligned (for some reason), which gets us into the stack realignment code. The computation changing FP-relative offsets to SP-relative was broken, assiging a spill temp to a location also used for parameter passing. This fixes it by rounding up the stack frame to a multiple of the largest alignment (I concluded it wasn't fixable without doing this, but I'm not very sure.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52750 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
0d2b0aba424bd3959bb5c807873def8f53e57a3c |
26-Jun-2008 |
Eric Christopher <echristo@apple.com> |
Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52748 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
3e73cd98c44d52f50e91bbad8267c68c9cdf906e |
26-Jun-2008 |
Eric Christopher <echristo@apple.com> |
Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52748 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAG.cpp
|
cda8875433ef74c39c4151d1a58df0588168b2e2 |
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
when we know the signbit of an input to uint_to_fp is zero, change it to sint_to_fp on targets where that is cheaper (and visaversa of course). This allows us to compile uint_to_fp to: _test: movl 4(%esp), %eax shrl $23, %eax cvtsi2ss %eax, %xmm0 movl 8(%esp), %eax movss %xmm0, (%eax) ret instead of: .align 3 LCPI1_0: ## double .long 0 ## double least significant word 4.5036e+15 .long 1127219200 ## double most significant word 4.5036e+15 .text .align 4,0x90 .globl _test _test: subl $12, %esp movl 16(%esp), %eax shrl $23, %eax movl %eax, (%esp) movl $1127219200, 4(%esp) movsd (%esp), %xmm0 subsd LCPI1_0, %xmm0 cvtsd2ss %xmm0, %xmm0 movl 20(%esp), %eax movss %xmm0, (%eax) addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8e0e2bdc2b04f49b23bfced688b02162ea842683 |
26-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
when we know the signbit of an input to uint_to_fp is zero, change it to sint_to_fp on targets where that is cheaper (and visaversa of course). This allows us to compile uint_to_fp to: _test: movl 4(%esp), %eax shrl $23, %eax cvtsi2ss %eax, %xmm0 movl 8(%esp), %eax movss %xmm0, (%eax) ret instead of: .align 3 LCPI1_0: ## double .long 0 ## double least significant word 4.5036e+15 .long 1127219200 ## double most significant word 4.5036e+15 .text .align 4,0x90 .globl _test _test: subl $12, %esp movl 16(%esp), %eax shrl $23, %eax movl %eax, (%esp) movl $1127219200, 4(%esp) movsd (%esp), %xmm0 subsd LCPI1_0, %xmm0 cvtsd2ss %xmm0, %xmm0 movl 20(%esp), %eax movss %xmm0, (%eax) addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6b098dee286cc6fe5a5a476464d92dec5602e406 |
26-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Remember which MachineOperand we were processing, so we don't have to scan the list to find it again later. This speeds up live intervals from 0.37s to 0.30s on instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52745 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5b691fc253bcd96e88601ef93115cd926d476faf |
26-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Remember which MachineOperand we were processing, so we don't have to scan the list to find it again later. This speeds up live intervals from 0.37s to 0.30s on instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52745 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
48b0b882c75f4f05000c53bc29e52096e1e51be3 |
26-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fix the text in an assert string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52744 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
2d70201e8e52f22f05c384fe336dc60d0b7134af |
26-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fix the text in an assert string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52744 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
ab26227c8c9adce91a606a3691d4da08a9c8551c |
25-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into a shift. - Add a readme entry for a missing vector_shuffle optimization that results in awful codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
57db53ba66a5d7dfc7361df50bdf635fa94f4743 |
25-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into a shift. - Add a readme entry for a missing vector_shuffle optimization that results in awful codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
041cde26eaf4ef6171ff1a44aeedd08d7a1cba6c |
25-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for expanding PPC 128 bit floats. For this it is convenient to permit floats to be used with EXTRACT_ELEMENT, so I tweaked things to allow that. I also added libcalls for ppcf128 to i32 forms of FP_TO_XINT, since they exist in libgcc and this case can certainly occur (and does occur in the testsuite) - before the i64 libcall was being used. Also, the XINT_TO_FP result seemed to be wrong when the argument is an i128: the wrong fudge factor was added (the i32 and i64 cases were handled directly, but the i128 code fell through to some generic softening code which seemed to think it was i64 to f32!). So I fixed it by adding a fudge factor that I found in my breakfast cereal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
1568af892e006cb64363b5e2d23e1098005e7da2 |
25-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for expanding PPC 128 bit floats. For this it is convenient to permit floats to be used with EXTRACT_ELEMENT, so I tweaked things to allow that. I also added libcalls for ppcf128 to i32 forms of FP_TO_XINT, since they exist in libgcc and this case can certainly occur (and does occur in the testsuite) - before the i64 libcall was being used. Also, the XINT_TO_FP result seemed to be wrong when the argument is an i128: the wrong fudge factor was added (the i32 and i64 cases were handled directly, but the i128 code fell through to some generic softening code which seemed to think it was i64 to f32!). So I fixed it by adding a fudge factor that I found in my breakfast cereal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
11ac797f5ed142f11aafde3dd76c28a73d84282e |
25-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Add/complete support for integer and float select_cc and friends. This code could be factorized a bit but I'm not sure that it's worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
2499e1da9c01b9ef87b30956aec5546da1852ec2 |
25-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Add/complete support for integer and float select_cc and friends. This code could be factorized a bit but I'm not sure that it's worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
fd4418fc9b4725c44210c169c4d6500be468ca70 |
25-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove the OrigVT member from AtomicSDNode, as it is redundant with the base SDNode's VTList. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c70fa75851d6d762833c7d21a5c7790b585e6147 |
25-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove the OrigVT member from AtomicSDNode, as it is redundant with the base SDNode's VTList. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
28873106309db515d58889a4c4fa3e0a92d1b60e |
25-Jun-2008 |
Mon P Wang <wangmp@apple.com> |
Added MemOperands to Atomic operations since Atomics touches memory. Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52706 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6bde9ec4129ed4b265c5b172cfe9b34d1e0247d2 |
25-Jun-2008 |
Mon P Wang <wangmp@apple.com> |
Added MemOperands to Atomic operations since Atomics touches memory. Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52706 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
601ca4b434f5c67503a30575cc36b688b0d959e6 |
25-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable two-address remat by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52701 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d2b9d30c8992c1c3a9b487f47f9885e75e53518e |
25-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable two-address remat by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52701 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
873e1b56427eee7879168b50cca8a85b04f18093 |
24-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use SmallVector instead of std::vector for a minor compile time improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52689 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
88dd62339c9a18aee0552a54347551a3f713de0b |
24-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use SmallVector instead of std::vector for a minor compile time improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52689 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
51cd9d6e073932fcb37f1857c66249d6c7d368ee |
24-Jun-2008 |
Dan Gohman <gohman@apple.com> |
A brief survey of priority_queue usage in the tree turned this up as a questionable case, but the code isn't actually needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52657 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
79a9f15a4d9d06205561756f72ea17b41143ccda |
24-Jun-2008 |
Dan Gohman <gohman@apple.com> |
A brief survey of priority_queue usage in the tree turned this up as a questionable case, but the code isn't actually needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52657 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ebcba612b537f45a033ccd9a60bee0c45e2e2ded |
24-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
This situation can occur: ,------. | | | v | t2 = phi ... t1 ... | | | v | t1 = ... | ... = ... t1 ... | | `------' where there is a use in a PHI node that's a predecessor to the defining block. We don't want to mark all predecessors as having the value "alive" in this case. Also, the assert was too restrictive and didn't handle this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52655 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
09d556630a0042c7166fc50ca90a660eab280e21 |
24-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
This situation can occur: ,------. | | | v | t2 = phi ... t1 ... | | | v | t1 = ... | ... = ... t1 ... | | `------' where there is a use in a PHI node that's a predecessor to the defining block. We don't want to mark all predecessors as having the value "alive" in this case. Also, the assert was too restrictive and didn't handle this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52655 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
aabdded3b4e8b87e586c6fed7d0f1d6906eb3351 |
24-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use the new PriorityQueue in ScheduleDAGList too, which also needs arbitrary-element removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
f02ae79c808c7be63992f2c5042af3bd1c5c6bf2 |
24-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use the new PriorityQueue in ScheduleDAGList too, which also needs arbitrary-element removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
b3db9c90d24682340f043a8151063128fe3b220b |
24-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use getMBBEndIdx rather than assuming that the end is right after the last instruction in the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52649 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
747ac3674e5010248eb3a8d10fd32c6e12ef4d39 |
24-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use getMBBEndIdx rather than assuming that the end is right after the last instruction in the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52649 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d17e44769fcd2ca4052ea0cd8890c8290a94a881 |
23-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove option used to debug stack coloring bugs. It's no longer needed since stack coloring is now bug free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52644 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
e75f53665af72b127cdca7610f07e5d0963f331f |
23-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove option used to debug stack coloring bugs. It's no longer needed since stack coloring is now bug free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52644 91177308-0d34-0410-b5e6-96231b3b80d8
tackSlotColoring.cpp
|
8cb8245cf117fc4a4f0a6549d9a773a12895550c |
23-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Move a DenseMap's declaration outside of a loop, and just call clear() on each iteration. This avoids allocating and deallocating all of DenseMap's memory on each iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3941fe11da8ffc3a5a0c444423ee056acfa3231c |
23-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Move a DenseMap's declaration outside of a loop, and just call clear() on each iteration. This avoids allocating and deallocating all of DenseMap's memory on each iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
99ec779a93cf7a09ac336b63d2d67818960343a1 |
23-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Instead of adding an isSS field to LiveInterval to denote stack slot. Use top bit of 'reg' instead. If the top bit is set, than the LiveInterval represents a stack slot live interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52639 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
tackSlotColoring.cpp
|
922e5f6ad546c1636371b3815b9915429e32cada |
23-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Instead of adding an isSS field to LiveInterval to denote stack slot. Use top bit of 'reg' instead. If the top bit is set, than the LiveInterval represents a stack slot live interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52639 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
tackSlotColoring.cpp
|
0a4627d71f8f836558ef05c9739b560e82412687 |
23-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Duncan pointed out this code could be tidied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52624 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
edb43e7f3dc23f60f50d3524a1329eabf2b291dc |
23-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Duncan pointed out this code could be tidied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52624 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e9c80f4d576bf1ff682958d447c1a60fa9348da3 |
23-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Port some integer multiplication fixes from LegalizeDAG. Bail out with an error if there is no libcall available for the given size of integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
9bdaa203bed2e17b18735b99bc1ceba28646a96c |
23-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Port some integer multiplication fixes from LegalizeDAG. Bail out with an error if there is no libcall available for the given size of integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeIntegerTypes.cpp
|
4a307ecce68f90e0eebf1ded52b947816cdc2304 |
23-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for expanding the result of EXTRACT_ELEMENT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
5275afbfb6ae643383456cf4293041d2c11c6158 |
23-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for expanding the result of EXTRACT_ELEMENT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
|
ab09b7e8f34075c1759127a113f41bdf921f4034 |
23-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Cleanup up LegalizeTypes handling of loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
f6a721c7a51d15f54d103e3f0d9ac2df4cf255c7 |
23-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Cleanup up LegalizeTypes handling of loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
69bfb15ecd71881ec8d01be94af99b6d90d2fe01 |
22-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Make custom lowering of ADD work correctly. This fixes PR2476; patch by Richard Osborne. The same problem exists for a bunch of other operators, but I'm ignoring this because they will be automagically fixed when the new LegalizeTypes infrastructure lands, since it already solves this problem centrally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4c3885b732d7f8b882813ad8f7f5ce526bda3984 |
22-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Make custom lowering of ADD work correctly. This fixes PR2476; patch by Richard Osborne. The same problem exists for a bunch of other operators, but I'm ignoring this because they will be automagically fixed when the new LegalizeTypes infrastructure lands, since it already solves this problem centrally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
56867520990a4fea1353d55f71bb74a0126554e6 |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Simplify some getNode calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6d4bb112c5fbd538b814bac2d241e1f718f711fa |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Simplify some getNode calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2f1d3108e481758da66662f72673741da86312da |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
canClobberPhysRegDefs shouldn't called without checking hasPhysRegDefs; check this with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52603 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3c7b7d2b5b0ce8b1f5605e4d06bef8a7b4663a6c |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
canClobberPhysRegDefs shouldn't called without checking hasPhysRegDefs; check this with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52603 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
317adcc9c6b29fb491d615996ba70b5c415a9eb2 |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use clear() to zero an existing APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
75e24fbd4929f09370b005d9926dcc323a61a41f |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use clear() to zero an existing APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
719de53742167ca3f0e6b2efafb6eac18bd90452 |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use back() instead of [size()-1]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52600 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
3d4360013e5125e6254cd5f91f9e9fd02859b868 |
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use back() instead of [size()-1]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52600 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
8d96144b0e9688a7d252be877d08c0699f879d70 |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove a redundant return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52585 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
5c3794ea2a5e703834a43d8441faf8dbe8386f50 |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove a redundant return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52585 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
94d7a5f8156e62532870fbaf197377b34e52ff2a |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove ScheduleDAG's SUnitMap altogether. Instead, use SDNode's NodeId field, which is otherwise unused after instruction selection, as an index into the SUnit array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
018d7b7b844b0f3a439defbc4636b41ee1365247 |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove ScheduleDAG's SUnitMap altogether. Instead, use SDNode's NodeId field, which is otherwise unused after instruction selection, as an index into the SUnit array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
3627e34486db088661bc7fb6c0dde6a18a543217 |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Add a priority queue class, which is a wrapper around std::priority_queue and provides fairly efficient removal of arbitrary elements. Switch ScheduleDAGRRList from std::set to this new priority queue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52582 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
65ffc0df1c43c46b203e6ff88e53c41f33e21aea |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Add a priority queue class, which is a wrapper around std::priority_queue and provides fairly efficient removal of arbitrary elements. Switch ScheduleDAGRRList from std::set to this new priority queue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52582 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
a1ace76c70ae5332d6f33fce5c0c1e2fdb8cca11 |
21-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for load/store of expanded float types. I don't know if a truncating store is possible here, but added support for it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
0d84c348ed83b6450c6d1a9dba3934eff5c5eaec |
21-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Support for load/store of expanded float types. I don't know if a truncating store is possible here, but added support for it anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.h
|
4c8c83022b501759d8559e224c84ae2a9921ba41 |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Change ScheduleDAG's SUnitMap from DenseMap<SDNode*, vector<SUnit*> > to DenseMap<SDNode*, SUnit*>, and adjust the way cloned SUnit nodes are handled so that only the original node needs to be in the map. This speeds up llc on 447.dealII.llvm.bc by about 2%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
ab16291b9f0afc54993f31c5ba171c9dd7cb4049 |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Change ScheduleDAG's SUnitMap from DenseMap<SDNode*, vector<SUnit*> > to DenseMap<SDNode*, SUnit*>, and adjust the way cloned SUnit nodes are handled so that only the original node needs to be in the map. This speeds up llc on 447.dealII.llvm.bc by about 2%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
c3417609ae6e744a29be6962d4fb7811c0102d17 |
21-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Undo spill weight tweak. Need to investigate the performance regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52572 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
f7b45f47e5f61815ddd9f0481b0afa726d2ef955 |
21-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Undo spill weight tweak. Need to investigate the performance regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52572 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
16c6859651d08946b769ad44f163216ad124175a |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Simplify some template parameterization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6fe96037ff0e10b513259c13ae0627f8f5aad592 |
21-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Simplify some template parameterization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3e172254c136ce8170f17ad01f0706bd6e2e0505 |
20-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enhanced heuristic to determine the *best* register to spill. Instead of picking the register with the lowest spill weight. Consider (up to) 2 additional registers with spill weights that are close to the lowest spill weight. The one with fewest defs and uses that conflicts with the current interval (weighted by loop depth) is the spill candidate. This is not always a win, but there are much more wins than loses and wins tend to be more noticeable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52554 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
c59524504d17c07271387b177c5c7781f21c3305 |
20-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enhanced heuristic to determine the *best* register to spill. Instead of picking the register with the lowest spill weight. Consider (up to) 2 additional registers with spill weights that are close to the lowest spill weight. The one with fewest defs and uses that conflicts with the current interval (weighted by loop depth) is the spill candidate. This is not always a win, but there are much more wins than loses and wins tend to be more noticeable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52554 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
78cd649ad326f79a1f8424ca2b63cea3239a9a52 |
20-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Share some code that is common between integer and float expansion (and sometimes vector splitting too). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
7c667d92c49bdb8938603bf0ff5ee3158945ea25 |
20-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Share some code that is common between integer and float expansion (and sometimes vector splitting too). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesGeneric.cpp
electionDAG/LegalizeVectorTypes.cpp
|
4fc4fd657d4266059dac3849133a3a351b03d99d |
20-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Rename the operation of turning a float type into an integer of the same type. Before it was "promotion", but this is confusing because it is quite different to promotion of integers. Call it "softening" instead, inspired by "soft float". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
8f036b4ae53d52851497a9ddca9f5e3ab77d8fd1 |
20-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Rename the operation of turning a float type into an integer of the same type. Before it was "promotion", but this is confusing because it is quite different to promotion of integers. Call it "softening" instead, inspired by "soft float". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeVectorTypes.cpp
|
3461cc9e9842c7bce46b9d6e114ff8e44d8ba7b9 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Clean up some uses of std::distance, now that we have allnodes_size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
17495ded2595481ff1ba2aa9299b04f8397bc913 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Clean up some uses of std::distance, now that we have allnodes_size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
ab8ec0a26caa754f0376dbdede3a33ad84f23e21 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Teach ReturnInst lowering about aggregate return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4f4a3493984b5c0c21b11f70ac4bc0bfad47bbf1 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Teach ReturnInst lowering about aggregate return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dded0fd398bf744454b2c9c95b68f4a27025f880 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fix the index calculations for the extractvalue lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4ec23c4afb2a38b4ca09c50bd58ac443e61d0919 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fix the index calculations for the extractvalue lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8f36f6d11761246bb4bd4ae1be88a58ba24d96b0 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Simplify the ComputeLinearIndex logic and fix a few bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b23f4f1131c7009cbfe647e0c0be43da582d9a19 |
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Simplify the ComputeLinearIndex logic and fix a few bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c8af52c8980fa4a06f24e6fc08678ff8378088a1 |
20-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
ISD::UNDEF should be expanded recursively / iteratively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b7ba44b44eb7feec1baab61778e044244344e380 |
20-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
ISD::UNDEF should be expanded recursively / iteratively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
04478e56f736325d3567e7c0efe2bb5c2766c63b |
19-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use the transferSuccessors helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52495 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f995c02abcd8025b13cbc08e38837acaed49cbb4 |
19-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use the transferSuccessors helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52495 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
32a3ac79116ce93471cd18ede24452c6af5b290b |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Missed a check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52487 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
a18a2532ff420f7bf84a3a0d7a1979c94586efe7 |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Missed a check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52487 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
29b039976fd682716c6b8ed1cb7084226b2ad84b |
19-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Revert my last patch, which was causing regression test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52485 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
03d96b966db9f1039c6695482157f864e1e670b0 |
19-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Revert my last patch, which was causing regression test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52485 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e00f5de361bcc69d05e07303460e6849668b7169 |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Coalesce copy from one register class to a sub register class. e.g. X86::MOV16to16_. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52480 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
ce236271181d58d6308d0f75fc49dd8719250acd |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Coalesce copy from one register class to a sub register class. e.g. X86::MOV16to16_. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52480 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
1b38ec83f07d5801035567160008cd7cb99a5c1a |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52479 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
a43fc8c36cb7f1bbe1881ad683f4d1373988b035 |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52479 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
bdf34bc12bfc39de02c19fa250e83edb5924a6cf |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Minor spiller tweak to unfavor reload into load/store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52477 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1e99d271185f0e060d9109d8de9852265a6ff12f |
19-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Minor spiller tweak to unfavor reload into load/store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52477 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6c5e5616687e99329ffa790d2b40ab0f9c2e09f7 |
19-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Insert empty slots into the instruction numbering in live intervals, so that we can more easily add new instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52475 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
25de663f8343317f618460e7f145df1484d91945 |
19-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Insert empty slots into the instruction numbering in live intervals, so that we can more easily add new instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52475 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f7acf8f288a3e012df363f18aeca788300ddb416 |
18-Jun-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix the source line debug information for the Windows platform. According to DWARF-2 specification, the line information is provided through an offset in the .debug_line section. Replace the label reference that is used with a section offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52468 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
03449656a5e0c47b8f1720bb4750b91aae70eb15 |
18-Jun-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Fix the source line debug information for the Windows platform. According to DWARF-2 specification, the line information is provided through an offset in the .debug_line section. Replace the label reference that is used with a section offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52468 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
7543e58a779b1bafc730cec0a9a26b896bd1f71a |
18-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Complete support for two-address pass rematerialization. Now *almost* always a win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52452 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
990dd2b465e706d9390b906b6d42991fbfff8d03 |
18-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Complete support for two-address pass rematerialization. Now *almost* always a win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52452 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
625986afea1b040bcf087156e4a0389ffafdbe1e |
18-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52450 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
e3c4f5387879d7287bc6f5ffaf7f07542b360df9 |
18-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52450 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
f26e8557deccd5fb28b56548ca5f7ea25aee31c6 |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Live-through live interval is [mbb start, mbb end+1]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52431 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5ac16ae31a1a7aae5ecc0aa433bd83092f604558 |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Live-through live interval is [mbb start, mbb end+1]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52431 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
739583be564b487ac8581b9261447f0fbd591778 |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
When extending a liveinterval by commuting, don't throw away the live ranges that are not affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52430 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f4bacb4eb239be6a6ea7ffa127b92a000fee24cb |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
When extending a liveinterval by commuting, don't throw away the live ranges that are not affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52430 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
95350b9cd2c7ccdc5d1e2118742c1a43012c7a9f |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to remove SUBREG_TO_REG that looks like identity copies, e.g. movl %eax, %eax on x86-64 actually does a zero-extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52421 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
b8dd4ebdab0aba135dabfba06749c1c4a0c382ac |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to remove SUBREG_TO_REG that looks like identity copies, e.g. movl %eax, %eax on x86-64 actually does a zero-extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52421 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
69b01e92a29ce6d7e435171aeea3fbc987b81586 |
17-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Split type expansion into ExpandInteger and ExpandFloat rather than bundling them together. Rename FloatToInt to PromoteFloat (better, if not perfect). Reorganize files by types rather than by operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/LegalizeVectorTypes.cpp
|
1947a38d00ef1c405ca32611f5443e91814ca5d4 |
17-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Split type expansion into ExpandInteger and ExpandFloat rather than bundling them together. Rename FloatToInt to PromoteFloat (better, if not perfect). Reorganize files by types rather than by operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52408 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeFloatTypes.cpp
electionDAG/LegalizeIntegerTypes.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/LegalizeVectorTypes.cpp
|
ead0d88ad7659dabd66cc3149af97d98256fca84 |
17-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
add a new -enable-value-prop flag for llcbeta, that enables propagation of value info (sign/zero ext info) from one MBB to another. This doesn't handle much right now because of two limitations: 1) only handles zext/sext, not random bit propagation (no assert exists for this) 2) doesn't handle phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
68068cc986bf56a5a8dd748313877042a15bb4b8 |
17-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
add a new -enable-value-prop flag for llcbeta, that enables propagation of value info (sign/zero ext info) from one MBB to another. This doesn't handle much right now because of two limitations: 1) only handles zext/sext, not random bit propagation (no assert exists for this) 2) doesn't handle phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a47c6c37034f4e57bc8187e959da4eadb6e24afa |
17-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Fix spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
10fbb3512c60dd1cff8e6e330aab66dbbb5ea642 |
17-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Fix spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c3de802ad9f0dbbb5c6531b0d30fbe96fc3c36c4 |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not issue identity copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52373 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
b314101dc2607b3f9d2ec089e21aca408078fa45 |
17-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not issue identity copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52373 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
31ec841be1f51a60f5b655aa2a008eb68e48c07a |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Remove special case handling of empty MBBs now that we assign indices to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52345 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4bebfea3c4faaad5bbed03d57451b6418b827dba |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Remove special case handling of empty MBBs now that we assign indices to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52345 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1fbb4545d41e65191ae66a7302276fa5424518c5 |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Re-enable empty block indexing by default, since it doesn't seem to have any impact on code quality or compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52329 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7894e5bbac35100047396161587a0875f93828e1 |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Re-enable empty block indexing by default, since it doesn't seem to have any impact on code quality or compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52329 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ad205a76871b5112a4bf70edca0df9d03b92de49 |
16-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Allow these transforms for types like i256 while still excluding types like i1 (not byte sized) and i120 (loading an i120 requires loading an i64, an i32, an i16 and an i8, which is expensive). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ea93358820c13b1e28c13e1a04ee9c12cdaa990 |
16-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Allow these transforms for types like i256 while still excluding types like i1 (not byte sized) and i120 (loading an i120 requires loading an i64, an i32, an i16 and an i8, which is expensive). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7a15391c8dad7d4ff265b6b8f5aa6bcc50107c7a |
16-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix read after free found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52309 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c766e67967a936a6bcd056ffffff110838957e01 |
16-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix read after free found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52309 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
58dcb0e0cd3fa973b5fd005aecab1df6aeea5cd6 |
16-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add option to commuteInstruction() which forces it to create a new (commuted) instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52308 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
5de1aaf2f10d461d117f83da132515471b860026 |
16-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add option to commuteInstruction() which forces it to create a new (commuted) instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52308 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
355780128986e375c7ac2a75025ac129bb8280bf |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Make indexing empty basic blocks an option for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52306 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d2e874b20d517ede9f6bf2aeeaeb7849f025e192 |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Make indexing empty basic blocks an option for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52306 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8892b6f30792bbc56f40d01a4ae9834a55cf8b1a |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Assign indices to empty basic blocks. This will be necessary for StrongPHIElimination in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52300 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
951b33d76f5f47281d7bd1c2d660499d4d51b291 |
16-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Assign indices to empty basic blocks. This will be necessary for StrongPHIElimination in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52300 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ec87aa87fea8cc5b5961849a34abb79ef7df64bc |
15-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
The transforms in visitEXTRACT_VECTOR_ELT are not valid if the load is volatile. Hopefully all wrong DAG combiner transforms of volatile loads and stores have now been caught. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c218a5aa8938bfc2a48c11b40ba2fad6fdb4484b |
15-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
The transforms in visitEXTRACT_VECTOR_ELT are not valid if the load is volatile. Hopefully all wrong DAG combiner transforms of volatile loads and stores have now been caught. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7d0d8460646d1a06ff561775d40123a4cf65bf4d |
15-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for INSERT_VECTOR_ELT with a non-constant index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52292 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
fc2db139e5e1ac954e2f60d1495a832a40d1b705 |
15-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for INSERT_VECTOR_ELT with a non-constant index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52292 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
184a876ee61dbbd602597f35e18240a5df8f5ee4 |
14-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove a redundant AfterLegalize check. Turn on some code when !AfterLegalize - but since this whole code section is turned off by an "if (0)" it's not really turning anything on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52276 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6ae1a063bf798a5991a9d599613a4bc28e0b269e |
14-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove a redundant AfterLegalize check. Turn on some code when !AfterLegalize - but since this whole code section is turned off by an "if (0)" it's not really turning anything on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52276 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
507a58ac9b20ddcea2e56a014be26b8f8cc0ecb8 |
14-Jun-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
add missing atomic intrinsic from gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
af02d599bddfe945ab551f5a934ec0d7ecab3c0b |
14-Jun-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
add missing atomic intrinsic from gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
87bb991aa83c269295504443fe3ad1cae16f0f76 |
14-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach the spiller to commute instructions in order to fold a reload. This hits 410 times on 444.namd and 122 times on 252.eon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52266 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
5ed91b58a6a6e0ea7c745834be585cbf951a77b3 |
14-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach the spiller to commute instructions in order to fold a reload. This hits 410 times on 444.namd and 122 times on 252.eon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52266 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
d4b9c17fb705c2f58ceef4f37d789ddb56783584 |
13-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Disable some DAG combiner optimizations that may be wrong for volatile loads and stores. In fact this is almost all of them! There are three types of problems: (1) it is wrong to change the width of a volatile memory access. These may be used to do memory mapped i/o, in which case a load can have an effect even if the result is not used. Consider loading an i32 but only using the lower 8 bits. It is wrong to change this into a load of an i8, because you are no longer tickling the other three bytes. It is also unwise to make a load/store wider. For example, changing an i16 load into an i32 load is wrong no matter how aligned things are, since the fact of loading an additional 2 bytes can have i/o side-effects. (2) it is wrong to change the number of volatile load/stores: they may be counted by the hardware. (3) it is wrong to change a volatile load/store that requires one memory access into one that requires several. For example on x86-32, you can store a double in one processor operation, but to store an i64 requires two (two i32 stores). In a multi-threaded program you may want to bitcast an i64 to a double and store as a double because that will occur atomically, and be indivisible to other threads. So it would be wrong to convert the store-of-double into a store of an i64, because this will become two i32 stores - no longer atomic. My policy here is to say that the number of processor operations for an illegal operation is undefined. So it is alright to change a store of an i64 (requires at least two stores; but could be validly lowered to memcpy for example) into a store of double (one processor op). In short, if the new store is legal and has the same size then I say that the transform is ok. It would also be possible to say that transforms are always ok if before they were illegal, whether after they are illegal or not, but that's more awkward to do and I doubt it buys us anything much. However this exposed an interesting thing - on x86-32 a store of i64 is considered legal! That is because operations are marked legal by default, regardless of whether the type is legal or not. In some ways this is clever: before type legalization this means that operations on illegal types are considered legal; after type legalization there are no illegal types so now operations are only legal if they really are. But I consider this to be too cunning for mere mortals. Better to do things explicitly by testing AfterLegalize. So I have changed things so that operations with illegal types are considered illegal - indeed they can never map to a machine operation. However this means that the DAG combiner is more conservative because before it was "accidentally" performing transforms where the type was illegal because the operation was nonetheless marked legal. So in a few such places I added a check on AfterLegalize, which I suppose was actually just forgotten before. This causes the DAG combiner to do slightly more than it used to, which resulted in the X86 backend blowing up because it got a slightly surprising node it wasn't expecting, so I tweaked it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
2418becee47126d941d7c1d879df7de9ed20d550 |
13-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Disable some DAG combiner optimizations that may be wrong for volatile loads and stores. In fact this is almost all of them! There are three types of problems: (1) it is wrong to change the width of a volatile memory access. These may be used to do memory mapped i/o, in which case a load can have an effect even if the result is not used. Consider loading an i32 but only using the lower 8 bits. It is wrong to change this into a load of an i8, because you are no longer tickling the other three bytes. It is also unwise to make a load/store wider. For example, changing an i16 load into an i32 load is wrong no matter how aligned things are, since the fact of loading an additional 2 bytes can have i/o side-effects. (2) it is wrong to change the number of volatile load/stores: they may be counted by the hardware. (3) it is wrong to change a volatile load/store that requires one memory access into one that requires several. For example on x86-32, you can store a double in one processor operation, but to store an i64 requires two (two i32 stores). In a multi-threaded program you may want to bitcast an i64 to a double and store as a double because that will occur atomically, and be indivisible to other threads. So it would be wrong to convert the store-of-double into a store of an i64, because this will become two i32 stores - no longer atomic. My policy here is to say that the number of processor operations for an illegal operation is undefined. So it is alright to change a store of an i64 (requires at least two stores; but could be validly lowered to memcpy for example) into a store of double (one processor op). In short, if the new store is legal and has the same size then I say that the transform is ok. It would also be possible to say that transforms are always ok if before they were illegal, whether after they are illegal or not, but that's more awkward to do and I doubt it buys us anything much. However this exposed an interesting thing - on x86-32 a store of i64 is considered legal! That is because operations are marked legal by default, regardless of whether the type is legal or not. In some ways this is clever: before type legalization this means that operations on illegal types are considered legal; after type legalization there are no illegal types so now operations are only legal if they really are. But I consider this to be too cunning for mere mortals. Better to do things explicitly by testing AfterLegalize. So I have changed things so that operations with illegal types are considered illegal - indeed they can never map to a machine operation. However this means that the DAG combiner is more conservative because before it was "accidentally" performing transforms where the type was illegal because the operation was nonetheless marked legal. So in a few such places I added a check on AfterLegalize, which I suppose was actually just forgotten before. This causes the DAG combiner to do slightly more than it used to, which resulted in the X86 backend blowing up because it got a slightly surprising node it wasn't expecting, so I tweaked it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
edfcf598faab9ce294712551ecf67093acd1c66e |
11-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Sometimes (rarely) nodes held in LegalizeTypes maps can be deleted. This happens when RAUW replaces a node N with another equivalent node E, deleting the first node. Solve this by adding (N, E) to ReplacedNodes, which is already used to remap nodes to replacements. This means that deleted nodes are being allowed in maps, which can be delicate: the memory may be reused for a new node which might get confused with the old deleted node pointer hanging around in the maps, so detect this and flush out maps if it occurs (ExpungeNode). The expunging operation is expensive, however it never occurs during a llvm-gcc bootstrap or anywhere in the nightly testsuite. It occurs three times in "make check": Alpha/illegal-element-type.ll, PowerPC/illegal-element-type.ll and X86/mmx-shift.ll. If expunging proves to be too expensive then there are other more complicated ways of solving the problem. In the normal case this patch adds the overhead of a few more map lookups, which is hopefully negligable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
|
3866b1c7d4aee4a039018c21125059385152eee2 |
11-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Sometimes (rarely) nodes held in LegalizeTypes maps can be deleted. This happens when RAUW replaces a node N with another equivalent node E, deleting the first node. Solve this by adding (N, E) to ReplacedNodes, which is already used to remap nodes to replacements. This means that deleted nodes are being allowed in maps, which can be delicate: the memory may be reused for a new node which might get confused with the old deleted node pointer hanging around in the maps, so detect this and flush out maps if it occurs (ExpungeNode). The expunging operation is expensive, however it never occurs during a llvm-gcc bootstrap or anywhere in the nightly testsuite. It occurs three times in "make check": Alpha/illegal-element-type.ll, PowerPC/illegal-element-type.ll and X86/mmx-shift.ll. If expunging proves to be too expensive then there are other more complicated ways of solving the problem. In the normal case this patch adds the overhead of a few more map lookups, which is hopefully negligable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/SelectionDAG.cpp
|
9ea3f56d07875ecb4ae2cd5bc14a9563b9742553 |
10-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Teach isGAPlusOffset to respect a GlobalAddressSDNode's offset value, which is something that apparently isn't used much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52158 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
004038485ae911c3e289e43006413802d085452e |
10-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Teach isGAPlusOffset to respect a GlobalAddressSDNode's offset value, which is something that apparently isn't used much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52158 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f5025cfa683b4cfb9f04b1e63dac7364a5dbf900 |
09-Jun-2008 |
Dan Gohman <gohman@apple.com> |
CodeGen support for aggregate-value function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1bb942642c7a94942dace21a884ddcc39217070d |
09-Jun-2008 |
Dan Gohman <gohman@apple.com> |
CodeGen support for aggregate-value function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
893076354a9fdb915cda27678570914dfd5732fa |
09-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Various tweaks related to apint codegen. No functionality change for non-funky-sized integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/TargetLowering.cpp
|
eedb3bf6a63653ac4c76e5f64764294742b9c70a |
09-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Various tweaks related to apint codegen. No functionality change for non-funky-sized integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/TargetLowering.cpp
|
8a6ccb5f73cf2e490faa181ad6662633b3ee38df |
09-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Handle empty aggregate values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9115c7e89bca18364dba54ec8c7bba2da39b20d8 |
09-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Handle empty aggregate values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8eab8a2798fe74c98703bdeac64661beea0b4dbc |
09-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove some DAG combiner assumptions about sizes of integer types. Fix the isMask APInt method to actually work (hopefully) rather than crashing because it adds apints of different bitwidths. It looks like isShiftedMask is also broken, but I'm leaving that one to the APInt people (it is not used anywhere). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6a437fb3735376bcf28fb7d3b4f6d7e44c1d3a34 |
09-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove some DAG combiner assumptions about sizes of integer types. Fix the isMask APInt method to actually work (hopefully) rather than crashing because it adds apints of different bitwidths. It looks like isShiftedMask is also broken, but I'm leaving that one to the APInt people (it is not used anywhere). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8e4eb09b1e3571965f49edcdfb56b1375b1b7551 |
08-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove comparison methods for MVT. The main cause of apint codegen failure is the DAG combiner doing the wrong thing because it was comparing MVT's using < rather than comparing the number of bits. Removing the < method makes this mistake impossible to commit. Instead, add helper methods for comparing bits and use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
ec142ee0b2a63ede390353860e0f22201b850d8b |
08-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove comparison methods for MVT. The main cause of apint codegen failure is the DAG combiner doing the wrong thing because it was comparing MVT's using < rather than comparing the number of bits. Removing the < method makes this mistake impossible to commit. Instead, add helper methods for comparing bits and use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
1d685a46bf0c2f54378bc074c0b874bb7d12032e |
07-Jun-2008 |
Dan Gohman <gohman@apple.com> |
CodeGen support for insertvalue and extractvalue, and for loads and stores of aggregate values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
012bf581771137028c245496f21cae0099c3f2df |
07-Jun-2008 |
Dan Gohman <gohman@apple.com> |
CodeGen support for insertvalue and extractvalue, and for loads and stores of aggregate values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2d389e8ad7e98fa50f8d021a7669ba0aab07a571 |
07-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Connect successors before creating the DAG node for the branch. This has no visible functionality change, but enables a future patch where node creation will update the CFG if it decides to create an unconditional rather than a conditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
451a11271e6910c98804acabfe0284ddc5eee348 |
07-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Connect successors before creating the DAG node for the branch. This has no visible functionality change, but enables a future patch where node creation will update the CFG if it decides to create an unconditional rather than a conditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
877333b99dd830c3e8bb7eaa1345ea942d29fc06 |
06-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable stack coloring by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52057 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
EADME.txt
|
25b3598596366ffbd88f65ecb8e0b3c273b35622 |
06-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable stack coloring by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52057 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
EADME.txt
|
3b3adbb7456411957681e590b29697b3af307dd1 |
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Tighten up the abstraction slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52045 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3f5d243a231822874448d0f6353cdbf8c9f22bf9 |
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Tighten up the abstraction slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52045 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
83ec4b6711980242ef3c55a4fa36b2d7a39c1bfb |
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Wrap MVT::ValueType in a struct to get type safety and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
92c439168b552f73b1459d8ce1e31975cdca6d2a |
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Wrap MVT::ValueType in a struct to get type safety and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
9c3c2213647e3f1b71722d61875ebac01b65cb91 |
06-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refine stack slot interval weight computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52040 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
ba221ca2410097537bad9d3a346ae9eb8e332e7c |
06-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refine stack slot interval weight computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52040 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
417dc2f5958b7233011b55bf36b20eae5a50f83f |
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Remove debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52016 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
dbb3acf4655c2327a474a969c37ebe3743a2091f |
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Remove debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52016 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
a9efb264b02d83fab150b6869ef2d372949a1303 |
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use the newly created helper on LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52013 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4d178405b364d8ab64f5c6bec4acf1ffed6ef5cf |
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use the newly created helper on LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52013 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
c4dc132c8a787fc41b6a162121251234aa618965 |
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Add a helper for constructing new live ranges that ended from an instruction to the end of its MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52012 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7399f22868d17689ed5e3c6806808998b9963d93 |
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Add a helper for constructing new live ranges that ended from an instruction to the end of its MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52012 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fb4db316d835fa9774d608ac58336a24c7867192 |
05-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memcpy lowering bug. Even though the memcpy alignment is smaller than the desired alignment, the frame destination alignment may still be larger than the desired alignment. Don't change its alignment to something smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
36cd886d9a864f23b8f6f0231fbbffa5e5256481 |
05-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memcpy lowering bug. Even though the memcpy alignment is smaller than the desired alignment, the frame destination alignment may still be larger than the desired alignment. Don't change its alignment to something smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
75bb734f1d4d50ebb377bd030e2ee002a09be673 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Should not be enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51953 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
557d799fcd5a258872de6fef354ef4e4086e221e |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Should not be enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51953 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
38b425020b102716d58c0833ff9ef56bc1d750c4 |
04-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Correctly construct live intervals for the copies we inserted into the predecessors of a block containing a PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51950 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
28bffa36f38b47fb412000045179d8150c3b48d9 |
04-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Correctly construct live intervals for the copies we inserted into the predecessors of a block containing a PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51950 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
7a315e865ab676099c660fec0b6e65f763b97e39 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51949 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
5ca6eb1d0fca8e081504fd6114744ef592893a5d |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51949 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
3f32d65912b4da23793dab618d981be2ce11c331 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a stack slot coloring pass. Not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
egAllocLinearScan.cpp
tackSlotColoring.cpp
|
14f8a50ce74830eb97811e52914ddca26ffedaa4 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a stack slot coloring pass. Not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveStackAnalysis.cpp
egAllocLinearScan.cpp
tackSlotColoring.cpp
|
d8a46e3a74251989f282ca186893dc90bf48e26d |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
LowerSubregs should not clobber any analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51933 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
375cac23b0efe93bdd869790aee9a5c2e0a6968c |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
LowerSubregs should not clobber any analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51933 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
cb74266cdbcd79efb46f8c1c66ca044cb0ac5f96 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move #include to right place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51932 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
1376d86aa7ca10c805382047296b9451943fb108 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move #include to right place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51932 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
b3dd264f9d356afd6fdc4a3ab17bf2404d062724 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Register if-converter pass for -debug-pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51931 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a911dfe6bf5a3363fdc8df6944a81eafa759fc20 |
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Register if-converter pass for -debug-pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51931 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a0fcc08e6542a0376917b5c76a0af3eb2650c535 |
04-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Change packed struct layout so that field sizes are the same as in unpacked structs, only field positions differ. This only matters for structs containing x86 long double or an apint; it may cause backwards compatibility problems if someone has bitcode containing a packed struct with a field of one of those types. The issue is that only 10 bytes are needed to hold an x86 long double: the store size is 10 bytes, but the ABI size is 12 or 16 bytes (linux/ darwin) which comes from rounding the store size up by the alignment. Because it seemed silly not to pack an x86 long double into 10 bytes in a packed struct, this is what was done. I now think this was a mistake. Reserving the ABI size for an x86 long double field even in a packed struct makes things more uniform: the ABI size is now always used when reserving space for a type. This means that developers are less likely to make mistakes. It also makes life easier for the CBE which otherwise could not represent all LLVM packed structs (PR2402). Front-end people might need to adjust the way they create LLVM structs - see following change to llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51928 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
4afc575cd530a9933527a42e781aacf15481f691 |
04-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Change packed struct layout so that field sizes are the same as in unpacked structs, only field positions differ. This only matters for structs containing x86 long double or an apint; it may cause backwards compatibility problems if someone has bitcode containing a packed struct with a field of one of those types. The issue is that only 10 bytes are needed to hold an x86 long double: the store size is 10 bytes, but the ABI size is 12 or 16 bytes (linux/ darwin) which comes from rounding the store size up by the alignment. Because it seemed silly not to pack an x86 long double into 10 bytes in a packed struct, this is what was done. I now think this was a mistake. Reserving the ABI size for an x86 long double field even in a packed struct makes things more uniform: the ABI size is now always used when reserving space for a type. This means that developers are less likely to make mistakes. It also makes life easier for the CBE which otherwise could not represent all LLVM packed structs (PR2402). Front-end people might need to adjust the way they create LLVM structs - see following change to llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51928 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
3094a4c97af4e81ff3bf9eea1997b86886dffcf2 |
04-Jun-2008 |
Owen Anderson <resistor@mac.com> |
We need to subtract one from this index because live ranges are open at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51922 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
14e21c4c2258cdc127333127f0cb25882dd4012d |
04-Jun-2008 |
Owen Anderson <resistor@mac.com> |
We need to subtract one from this index because live ranges are open at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51922 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
ba12f57ebea3a5b3d0711d194e4584937309bc8b |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Fix spellnig error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7b54de0925ad741408f765a9ccf5b89f7d063b23 |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Fix spellnig error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
eefc845b5f407adf1992602aaac1142b2d583220 |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Find a better place to output hex constants corresponding to integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51904 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e067c3c23b3994597b6e43e32ae36d681387f9e7 |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Find a better place to output hex constants corresponding to integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51904 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a8c63f0fc9feb48f17d702a907f065959c41e337 |
03-Jun-2008 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fixed bug in bad behavior in calculateFrameObjectOffsets, the solution commited is different from the previous patch to avoid int and unsigned comparison git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51899 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
543e04d0418336a8eebceaa9ccc242be48457a40 |
03-Jun-2008 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fixed bug in bad behavior in calculateFrameObjectOffsets, the solution commited is different from the previous patch to avoid int and unsigned comparison git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51899 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
f73ff3aaf64627fb71753032904ee3ab2a7add28 |
03-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not run loop-aligner at -fast (e.g. -O0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51898 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
042de3d7ce35a23c3f0d3bfa1883527e694a95df |
03-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not run loop-aligner at -fast (e.g. -O0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51898 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
4315eee376450972d111c8e263ca8aecc7a3a13b |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Revert this patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51897 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
2c1d0550d65efb30a950cf42764aecac003e1970 |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Revert this patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51897 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
33b625bee429986b2b3bd11108816d256df39334 |
03-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fold adds and subtracts of zero immediately, instead of waiting for dagcombine to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3f76aed6b4602554c3b0929fbe8457223302bc3f |
03-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fold adds and subtracts of zero immediately, instead of waiting for dagcombine to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
83ccc0a50c7c52b2d774c3f4d209a120800ecdc7 |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Minor cosmetic patch so that the hex equivalent of a decimal constant shows up in the assembly language output. Helps with debugging without a HP calculator having to be handy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51885 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5c30b9dbe005d33cbe474a160fea04c5e02747e3 |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Minor cosmetic patch so that the hex equivalent of a decimal constant shows up in the assembly language output. Helps with debugging without a HP calculator having to be handy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51885 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
8bf61e8c2a39bcf070c39848fea83eda57851ebb |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Add necessary 64-bit support so that gcc frontend compiles (mostly). Current issue is operand promotion for setcc/select... but looks like the fundamental stuff is implemented for CellSPU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
67224b24594ea0fdb52ad449d9b849fa713a59c2 |
03-Jun-2008 |
Scott Michel <scottm@aero.org> |
Add necessary 64-bit support so that gcc frontend compiles (mostly). Current issue is operand promotion for setcc/select... but looks like the fundamental stuff is implemented for CellSPU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e3abb0a858ceaea4a4ffa7c1874be8426d2724bc |
02-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Correctly handle removed instructions at the beginning of MBBs when renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51876 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
605bddd9e2da3646696b4815f2f2d248cb257f30 |
02-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Correctly handle removed instructions at the beginning of MBBs when renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51876 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
28307418668f68e055688922ff8394d8a1ba8f15 |
31-May-2008 |
Dan Gohman <gohman@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
055c20167c250d35cf81b86d65160241061d9f77 |
31-May-2008 |
Dan Gohman <gohman@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7645e574d2d50b1a737f91013fba75af61426fcf |
31-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51793 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2e04590644fca2f233cef951ccfb12cb0d78f59a |
31-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51793 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
dbb8137c112130fabdebfa0fa6c8949707ff17f2 |
31-May-2008 |
Owen Anderson <resistor@mac.com> |
The coalescer doesn't need LiveVariables now that we have register use iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51790 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
0146e3b14123d212cd19bda922ce5aa2a7383d1e |
31-May-2008 |
Owen Anderson <resistor@mac.com> |
The coalescer doesn't need LiveVariables now that we have register use iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51790 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
3947e4d142c8a3fd958e62ace0a1333fb9e5a220 |
30-May-2008 |
Owen Anderson <resistor@mac.com> |
Preserve the register coallescer, and update live intervals more correctly by triggering a renumbering after phi elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51780 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
7fb9cde7e293ad6b1cf6881fba135886da79aa2c |
30-May-2008 |
Owen Anderson <resistor@mac.com> |
Preserve the register coallescer, and update live intervals more correctly by triggering a renumbering after phi elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51780 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
493e03851d630804830b0439f9a714b08638ab95 |
30-May-2008 |
Dan Gohman <gohman@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0adb35fab3fbe9094dd38242a3b97dfa4f758b86 |
30-May-2008 |
Dan Gohman <gohman@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7eec0c243320fb2629554681547d7384ea9d0c53 |
30-May-2008 |
Owen Anderson <resistor@mac.com> |
Make the renumbering correct in the face of deleted instructions that have been removed from the LiveIntervals maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51714 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d784874b0e6754238b97fe9bb88759e05c66200b |
30-May-2008 |
Owen Anderson <resistor@mac.com> |
Make the renumbering correct in the face of deleted instructions that have been removed from the LiveIntervals maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51714 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ec58498dc911065c122a2a54fa9d1338f7fb187f |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51704 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
44d37357591b0845b0cbf26e0aaadc1a7bffeaea |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51704 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
21323f3a829df0e6d9b4566a551619a01e269ba6 |
29-May-2008 |
Dan Gohman <gohman@apple.com> |
Expand small memmovs using inline code. Set the X86 threshold for expanding memmove to a more plausible value, now that it's actually being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
42d311cef64ad01eec4e45967dbed33c8aea6b04 |
29-May-2008 |
Dan Gohman <gohman@apple.com> |
Expand small memmovs using inline code. Set the X86 threshold for expanding memmove to a more plausible value, now that it's actually being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fcc6350ac9b99d6590f5256d26bfa489b4531fb3 |
29-May-2008 |
Owen Anderson <resistor@mac.com> |
Revert part of my last patch that I didn't intend to commit yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51694 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
885f9d99645c58cffc35e6e4d4d3c9baa4cb0f15 |
29-May-2008 |
Owen Anderson <resistor@mac.com> |
Revert part of my last patch that I didn't intend to commit yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51694 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4b5b209679f866d3ac6372f963aa7e9906f9a08b |
29-May-2008 |
Owen Anderson <resistor@mac.com> |
Renumbering needs to account for instruction slot offsets when performing lookups in the index maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51691 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5f7420b108f55e89abcfa299c6e65cad18103ef2 |
29-May-2008 |
Owen Anderson <resistor@mac.com> |
Renumbering needs to account for instruction slot offsets when performing lookups in the index maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51691 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f26ffe987cf3643a7bd66bd9f97c34605ba7d08e |
29-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Implement vector shift up / down and insert zero with ps{rl}lq / ps{rl}ldq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dea99367632d9e326909dbac319fbe04f70f3697 |
29-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Implement vector shift up / down and insert zero with ps{rl}lq / ps{rl}ldq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bd0879d7d9790e4bfa4bdcefd3abda0301e37bae |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement "AsCheapAsAMove" for some obviously cheap instructions: xor and the like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51662 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
ba5d5b00b3c34af2a644bdfe24608e21ac2d4eb9 |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement "AsCheapAsAMove" for some obviously cheap instructions: xor and the like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51662 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
8370d38adee63b3a4d87bfe81be4aacc55fe7cda |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Add a flag to indicate that an instruction is as cheap (or cheaper) than a move instruction to execute. This can be used for transformations (like two-address conversion) to remat an instruction instead of generating a "move" instruction. The idea is to decrease the live ranges and register pressure and all that jazz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51660 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
aa25bb1320b4e94d2f90326ab73f2a42e5a4c3b7 |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Add a flag to indicate that an instruction is as cheap (or cheaper) than a move instruction to execute. This can be used for transformations (like two-address conversion) to remat an instruction instead of generating a "move" instruction. The idea is to decrease the live ranges and register pressure and all that jazz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51660 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a8db14796b22ba7798ef94fc831d56c8a11d4e2a |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Check the "isSafeToMove" predicate, which has a series of tests to make sure that it's safe to remat an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51659 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
023520fc86b25d1db939d9de179118f684948d1c |
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Check the "isSafeToMove" predicate, which has a series of tests to make sure that it's safe to remat an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51659 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
745825f431920662e97bdab5c1bcfac62e48c52f |
29-May-2008 |
Owen Anderson <resistor@mac.com> |
Remap VNInfo data as well when doing renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51658 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fdb3f7007546d0927c20df660e1ee4e0dc95dd19 |
29-May-2008 |
Owen Anderson <resistor@mac.com> |
Remap VNInfo data as well when doing renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51658 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
80b3ce65e294a28b88c882d44a5e749a2924c9e3 |
28-May-2008 |
Owen Anderson <resistor@mac.com> |
Factor the numbering computation into a separate method, and add the slightest attempt at some renumbering logic, which is currently unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51652 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f47fbec2e111ac5252e7df2bee1607394d1bcfae |
28-May-2008 |
Owen Anderson <resistor@mac.com> |
Factor the numbering computation into a separate method, and add the slightest attempt at some renumbering logic, which is currently unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51652 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d77d4f98fbdeaf3d1b0ba99b547b7ac4ec43b834 |
28-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2289: vr defined by multiple implicit_def as result of coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51648 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e739519da568ac0fa0683f48ac9f4010877d42e5 |
28-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2289: vr defined by multiple implicit_def as result of coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51648 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
33d3d4ad401e77673b6723ff2bc23ddf3c873351 |
28-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach local register allocator to deal with landing pad MBB's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51647 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
0d17774977d75eb213198d66ec669b42a64413be |
28-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach local register allocator to deal with landing pad MBB's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51647 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b0f65e1348cda5b03c5def307c1dc657c6080233 |
27-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Incorporated feedback: Check that the implicitly defined operands aren't used before deleting the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51609 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b5746702004f4d5f49a290cad54223bd7f2e843b |
27-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Incorporated feedback: Check that the implicitly defined operands aren't used before deleting the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51609 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
43e2a035309f4e353a8bd5547d10125414597e74 |
27-May-2008 |
Duncan Sands <baldrick@free.fr> |
Fix some constructs that gcc-4.4 warns about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51591 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
electionDAG/SelectionDAG.cpp
|
f689071811289c4553024e901981734a4afe90fd |
27-May-2008 |
Duncan Sands <baldrick@free.fr> |
Fix some constructs that gcc-4.4 warns about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51591 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
electionDAG/SelectionDAG.cpp
|
a16157a41098795d5045b197691ef997535ae169 |
26-May-2008 |
Bill Wendling <isanbard@gmail.com> |
The enabling of remat in 2-address conversion breaks this test: Running /Users/void/llvm/llvm.src/test/CodeGen/X86/dg.exp ... FAIL: /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll Failed with exit(1) at line 1 while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll | llc -march=x86 -mattr=+sse2 -stats |& grep {1 .*folded into instructions} child process exited abnormally Make this conditional for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51563 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
c3852fcce9befe6f75438608b2b485b55d844815 |
26-May-2008 |
Bill Wendling <isanbard@gmail.com> |
The enabling of remat in 2-address conversion breaks this test: Running /Users/void/llvm/llvm.src/test/CodeGen/X86/dg.exp ... FAIL: /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll Failed with exit(1) at line 1 while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll | llc -march=x86 -mattr=+sse2 -stats |& grep {1 .*folded into instructions} child process exited abnormally Make this conditional for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51563 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
48f7f237ea5224c44e9c2782836fb7b60d8b5db1 |
26-May-2008 |
Bill Wendling <isanbard@gmail.com> |
A problem that's exposed when machine LICM is enabled. Consider this code: LBB1_3: # bb ... xorl %ebp, %ebp subl (%ebx), %ebp ... incl %ecx cmpl %edi, %ecx jl LBB1_3 # bb Whe using machine LICM, LLVM converts it into: xorl %esi, %esi LBB1_3: # bb ... movl %esi, %ebp subl (%ebx), %ebp ... incl %ecx cmpl %edi, %ecx jl LBB1_3 # bb Two address conversion inserts the copy instruction. However, it's cheaper to rematerialize it, and remat helps reduce register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51562 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3334b27a03824be6bd21ce3fb92f2f951c3cb904 |
26-May-2008 |
Bill Wendling <isanbard@gmail.com> |
A problem that's exposed when machine LICM is enabled. Consider this code: LBB1_3: # bb ... xorl %ebp, %ebp subl (%ebx), %ebp ... incl %ecx cmpl %edi, %ecx jl LBB1_3 # bb Whe using machine LICM, LLVM converts it into: xorl %esi, %esi LBB1_3: # bb ... movl %esi, %ebp subl (%ebx), %ebp ... incl %ecx cmpl %edi, %ecx jl LBB1_3 # bb Two address conversion inserts the copy instruction. However, it's cheaper to rematerialize it, and remat helps reduce register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51562 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0a891ed7d5875a9ccdb93b4472b0f43947d8289b |
24-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 51440 as it breaks a bunch of PIC tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51513 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9c48ca7a32b9df51b6e752fd228f946612637011 |
24-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 51440 as it breaks a bunch of PIC tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51513 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ee335e35acf20d1ed5b781546d647c19b608890e |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Add #includes to make some dependencies explicit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d408d39f59e8fc2445e2cdf90ee1546b3a9c1c57 |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Add #includes to make some dependencies explicit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
679860e31bd7b8f043ba1ccdc5990cb9bafd9055 |
23-May-2008 |
Dale Johannesen <dalej@apple.com> |
Rewrite a loop to avoid using iterators pointing to elements that have been erased. Based on a patch by Nicolas Capens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51485 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
3ecd4258f63b12591d37a3ed291eab3dccdbbbed |
23-May-2008 |
Dale Johannesen <dalej@apple.com> |
Rewrite a loop to avoid using iterators pointing to elements that have been erased. Based on a patch by Nicolas Capens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51485 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a332f17c8c80bb457617052fb35a3f2cecd05493 |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Generalize the new code in instcombine's ComputeNumSignBits for handling and/or to handle more cases (such as this add-sitofp.ll testcase), and port it to selectiondag's ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4afc4259d2a6408f4d58be0d54e30e4ed86325c8 |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Generalize the new code in instcombine's ComputeNumSignBits for handling and/or to handle more cases (such as this add-sitofp.ll testcase), and port it to selectiondag's ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f3061f8210b4be5fc7c92db81258a7e185f187fe |
23-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove warnings about comparison between signed and unsigned expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51465 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
8c33368479221bbf80ef8f1fca85a74a8aebb2c2 |
23-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove warnings about comparison between signed and unsigned expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51465 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
4fa2a3f0efe0081272b09550fef6251d355047e4 |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Use isSingleValueType instead of isFirstClassType to exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f9a85a33113be7403c6321c708741036ce04dcc8 |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Use isSingleValueType instead of isFirstClassType to exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51460 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
399101a5990621b0357009ab1852cc00f410a6c6 |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Use isSingleValueType instead of isFirstClassType to exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51459 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
5e8fbc2c0c34b9d212b77a54c38563b75726e13f |
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Use isSingleValueType instead of isFirstClassType to exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51459 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
abe93d95e8cc721a5b24b8225dc1a92569276c8a |
22-May-2008 |
David Greene <greened@obbligato.org> |
When rewriting defs and uses after spilling, don't set the weight of a live interval to infinity if the instruction being rewritten is an original remat def instruction. We were only checking against the clone of the remat def which doesn't actually appear in the IR at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51440 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6abf37c8aa70df316db6aa7859a98ae413517f73 |
22-May-2008 |
David Greene <greened@obbligato.org> |
When rewriting defs and uses after spilling, don't set the weight of a live interval to infinity if the instruction being rewritten is an original remat def instruction. We were only checking against the clone of the remat def which doesn't actually appear in the IR at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51440 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cff860801e8cac730c3b171e1dc8b66b7900dec6 |
22-May-2008 |
David Greene <greened@obbligato.org> |
Don't attempt to update SpillSlotToUsesMap for stack slots that aren't generated by the spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51439 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
022e2b3a580e725e7f0a2a60b08ed89ecf5eed80 |
22-May-2008 |
David Greene <greened@obbligato.org> |
Don't attempt to update SpillSlotToUsesMap for stack slots that aren't generated by the spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51439 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
f4ea5103714fdb7ff9f88df6fd6325e8bef48e19 |
22-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2343. An *interesting* coalescer bug. BB1: vr1025 = copy vr1024 .. BB2: vr1024 = op = op vr1025 <loop eventually branch back to BB1> Even though vr1025 is copied from vr1024, it's not safe to coalesced them since live range of vr1025 intersects the def of vr1024. This happens when vr1025 is assigned the value of the previous iteration of vr1024 in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51394 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
bab81b14640ff6181577e08a7914d11c8c6dfe78 |
22-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2343. An *interesting* coalescer bug. BB1: vr1025 = copy vr1024 .. BB2: vr1024 = op = op vr1025 <loop eventually branch back to BB1> Even though vr1025 is copied from vr1024, it's not safe to coalesced them since live range of vr1025 intersects the def of vr1024. This happens when vr1025 is assigned the value of the previous iteration of vr1024 in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51394 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c84941be0af3a721183297ebb5e8511157a0c636 |
20-May-2008 |
Dan Gohman <gohman@apple.com> |
Port the fix for the select operator from instcombine's ComputeNumSignBits to SelectionDAG's ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6ffcf26d0ae196b4ddd645a1e43a3e719501d306 |
20-May-2008 |
Dan Gohman <gohman@apple.com> |
Port the fix for the select operator from instcombine's ComputeNumSignBits to SelectionDAG's ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1fdfa6aabf0518373030cdc7db16c281c33a35ce |
20-May-2008 |
Dan Gohman <gohman@apple.com> |
Code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51345 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2e0e0cf63f8a7bd4fc6da6851d0a60e7859994b8 |
20-May-2008 |
Dan Gohman <gohman@apple.com> |
Code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51345 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7a0f1851ec0ac25d94cebc06f8f611a48e5f4326 |
20-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
More local spiller complexity! If local spiller optimization turns some instruction into an identity copy, it will be removed. If the output register happens to be dead (and source is obviously killed), transfer the kill / dead information to last use / def in the same MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51306 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
5f56c26ff3a6ee1d71e91ca86afbc8efe1123a9b |
20-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
More local spiller complexity! If local spiller optimization turns some instruction into an identity copy, it will be removed. If the output register happens to be dead (and source is obviously killed), transfer the kill / dead information to last use / def in the same MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51306 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
b0a6f62c9b2e75fc509d84310a9795ffacbc6796 |
20-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't spill dead def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51305 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
87dc769d90f35ae3713d01245e730ddfd91a4564 |
20-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't spill dead def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51305 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c215b3ef5d9627f5fb6fe9034e46bc29ae592916 |
19-May-2008 |
Dale Johannesen <dalej@apple.com> |
Handle quoted names when constructing $stub's, $non_lazy_ptr's and $lazy_ptr's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51277 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a21b5207101fea6703ac85290dbac506b6915dc2 |
19-May-2008 |
Dale Johannesen <dalej@apple.com> |
Handle quoted names when constructing $stub's, $non_lazy_ptr's and $lazy_ptr's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51277 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7cbd8a3e92221437048b484d5ef9c0a22d0f8c58 |
16-May-2008 |
Gabor Greif <ggreif@gmail.com> |
API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51200 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
a645dd3694fe06586679809ad2ded420666b4665 |
16-May-2008 |
Gabor Greif <ggreif@gmail.com> |
API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51200 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
446efddfcd655131bd0ceeacce9c1166e30ed479 |
16-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
If the result of a BIT_CONVERT is a v1* vector, it doesn't mean its source is a v1* vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51192 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2cc16e768c63832cfabaf3ba69e0f43a148cdffb |
16-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
If the result of a BIT_CONVERT is a v1* vector, it doesn't mean its source is a v1* vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51192 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
419cafb9fb6e77487197933714abec0426ae06c0 |
16-May-2008 |
Duncan Sands <baldrick@free.fr> |
Silence the compiler warning differently. The original method caused gcc-4.2 to complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6517a637609946153088a5d0e37b484968c4ca5c |
16-May-2008 |
Duncan Sands <baldrick@free.fr> |
Silence the compiler warning differently. The original method caused gcc-4.2 to complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
b434513a20c2df00b8c1cceb4858786fc9baad9e |
15-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Actually scalarize the operand to BIT_CONVERT instead of asking someone to do something with a v1 type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
17c39753aef7e13d8d52590b38cb60ef16049dd9 |
15-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Actually scalarize the operand to BIT_CONVERT instead of asking someone to do something with a v1 type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
041e2eb51721bcfecee5d9c9fc409ff185526e47 |
15-May-2008 |
Dan Gohman <gohman@apple.com> |
IR support for extractvalue and insertvalue instructions. Also, begin moving toward making structs and arrays first-class types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51157 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8055f7781b0430973392a8ddf54142afb9bcdd3d |
15-May-2008 |
Dan Gohman <gohman@apple.com> |
IR support for extractvalue and insertvalue instructions. Also, begin moving toward making structs and arrays first-class types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51157 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f0df03134e698ea84e9cc1c28a853f83c02560d5 |
15-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Make use of vector load and store operations to implement memcpy, memmove, and memset. Currently only X86 target is taking advantage of these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8c59037415ea76be1c05ce4d6a70866e0f50f5b0 |
15-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Make use of vector load and store operations to implement memcpy, memmove, and memset. Currently only X86 target is taking advantage of these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
97e60d9e8cf83274a1e4ac6443ed6da76d4b6088 |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use a better idiom to silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51131 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a6fe65a41e6af51def437f4348241ca05c096b30 |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use a better idiom to silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51131 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
35213344672fb5215a36c8dd592a7cc7190445fa |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Really silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
11193bee277ec4263eafe5884401efaabced9592 |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Really silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b2031145e3e64f5f6189a6ff8eac828a304cb150 |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Really silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
328064990075e03dcb709e735fbdc8dd2134a708 |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Really silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
aafce77b17d340aace52bcd49d1944109d82f14a |
14-May-2008 |
Dale Johannesen <dalej@apple.com> |
Add CommonLinkage; currently tentative definitions are represented as "weak", but there are subtle differences in some cases on Darwin, so we need both. The intent is that "common" will behave identically to "weak" unless somebody changes their target to do something else. No functional change as yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51118 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
49c441222d19a0ae12ef357ec90d82da89e08a94 |
14-May-2008 |
Dale Johannesen <dalej@apple.com> |
Add CommonLinkage; currently tentative definitions are represented as "weak", but there are subtle differences in some cases on Darwin, so we need both. The intent is that "common" will behave identically to "weak" unless somebody changes their target to do something else. No functional change as yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51118 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
50871247216dfef8386a112766e972a1792b0b56 |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Silence some compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51115 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
aaa364e68d32387a9bbe7c6ab5f16c273f23e68c |
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Silence some compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51115 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
d64a78c9ed62f2615ca1ea524d1f1942f798c8de |
14-May-2008 |
Dan Gohman <gohman@apple.com> |
When bit-twiddling CondCode values for integer comparisons produces SETOEQ, is it does with (SETEQ & SETULE), map it to SETEQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51112 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f1e8e550d891964106ca26667cb83d38d17fb1ae |
14-May-2008 |
Dan Gohman <gohman@apple.com> |
When bit-twiddling CondCode values for integer comparisons produces SETOEQ, is it does with (SETEQ & SETULE), map it to SETEQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51112 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9c78a399076f8356a53ee67dca9c78e594e34967 |
14-May-2008 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e8e4a418b0fb94b4de818c7c58a4bb4e022867cf |
14-May-2008 |
Dan Gohman <gohman@apple.com> |
Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
77f0b7a50a08614b5ffd58f1864b68a9a30d0cb0 |
13-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Instead of a vector load, shuffle and then extract an element. Load the element from address with an offset. pshufd $1, (%rdi), %xmm0 movd %xmm0, %eax => movl 4(%rdi), %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
411fc17b569bac71b8d0578174d027663202c203 |
13-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Instead of a vector load, shuffle and then extract an element. Load the element from address with an offset. pshufd $1, (%rdi), %xmm0 movd %xmm0, %eax => movl 4(%rdi), %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
6ddba2b933645d308428201e942abe1274fa5085 |
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Change class' public PassInfo variables to by initialized with the address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51022 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLoopInfo.cpp
HIElimination.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
66a636e07c90c7270b673406f2bac1bfea81ea8b |
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Change class' public PassInfo variables to by initialized with the address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51022 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
achineLoopInfo.cpp
HIElimination.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
844731a7f1909f55935e3514c9e713a62d67662e |
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollectorMetadata.cpp
iveIntervalAnalysis.cpp
achineDominators.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
camlCollector.cpp
HIElimination.cpp
asses.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egisterCoalescer.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
089efffd7d1ca0d10522ace38d36e0a67f4fac2d |
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollectorMetadata.cpp
iveIntervalAnalysis.cpp
achineDominators.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achineSink.cpp
camlCollector.cpp
HIElimination.cpp
asses.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egisterCoalescer.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
0d1704b955f9c7ae20e0b3a35b75aaab26e48cfd |
13-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Teach Legalize how to scalarize VSETCC Teach X86 a few more vsetcc patterns. Custom lowering for unsupported ones is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
78ca4f9144ccd3593d3429d370571ad46eefac85 |
13-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Teach Legalize how to scalarize VSETCC Teach X86 a few more vsetcc patterns. Custom lowering for unsupported ones is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9bfa03c6fd8e02b738e0077fd1af7b18eeeeb4c1 |
13-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Xform bitconvert(build_pair(load a, load b)) to a single load if the load locations are at the right offset from each other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
b62904638976dad2609610ffc593e2db617f5476 |
13-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Xform bitconvert(build_pair(load a, load b)) to a single load if the load locations are at the right offset from each other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
30562b7d4403414936da0661d7c6bda392f26c59 |
13-May-2008 |
Dale Johannesen <dalej@apple.com> |
Be more aggressive about tail-merging small blocks if those blocks consist entirely of common instructions; merging will not add an extra branch in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51006 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
daf6ac33236315e1cf8a0e3f1536baac6b9a3d07 |
13-May-2008 |
Dale Johannesen <dalej@apple.com> |
Be more aggressive about tail-merging small blocks if those blocks consist entirely of common instructions; merging will not add an extra branch in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51006 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
ae94dda61a045cb77681940ecc25aba0d2763f74 |
13-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Constify isSourceDefinedByImplicitDef function. Otherwise, just formatting changes that don't change functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51004 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
49beda209a4c747cea107880a99108fb058cfd49 |
13-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Constify isSourceDefinedByImplicitDef function. Otherwise, just formatting changes that don't change functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51004 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
51b2b9e29e4fa828ffd83d36f548bc44a4007822 |
12-May-2008 |
Dale Johannesen <dalej@apple.com> |
Further rework of tail merge algorithm. Not quite semantically identical, but little difference in either results or execution speed; but it's much easier to read, at least IMO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50999 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a3fbac949a9a37f77063b1ab491dd3b20b91e9c2 |
12-May-2008 |
Dale Johannesen <dalej@apple.com> |
Further rework of tail merge algorithm. Not quite semantically identical, but little difference in either results or execution speed; but it's much easier to read, at least IMO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50999 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
ad4196b44ae714a6b95e238d9d96303df74b0429 |
12-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor isConsecutiveLoad from X86 to TargetLowering so DAG combiner can make use of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ef7be08d74f0a08484b852934226eae22eb58c8a |
12-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor isConsecutiveLoad from X86 to TargetLowering so DAG combiner can make use of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
c1b7f52fbeb2b637b1cdb1d5e81b3f2b090b8770 |
12-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert the previous commit. Go ahead and hoist rematerializable instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50990 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
f3f3f03f813a2b8b9d6630ad079a39899e3816f8 |
12-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert the previous commit. Go ahead and hoist rematerializable instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50990 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
b43e9c196542acc80c9e4643809661065710848f |
12-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Add support for vicmp/vfcmp codegen, more legalize support coming. This is necessary to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
9a1ce155ed514899f62701a7750e42eacfa3939f |
12-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Add support for vicmp/vfcmp codegen, more legalize support coming. This is necessary to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
e4fc1ccd4dd66a7421e911528c1af5337c20167b |
12-May-2008 |
Bill Wendling <isanbard@gmail.com> |
One real change - don't hoist something that's trivially rematerializable. It's possible for it to produce worse code than before. The rest of this patch is code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50987 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
62e0f4d2869483f170d9fb91b42179118ca51383 |
12-May-2008 |
Bill Wendling <isanbard@gmail.com> |
One real change - don't hoist something that's trivially rematerializable. It's possible for it to produce worse code than before. The rest of this patch is code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50987 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9ab9ee8209c313713a54db2d9451751d8cfb9e2a |
12-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a missing break in the ISD::FLT_ROUNDS_ handling. Patch by giuma! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e09dc8c5d2f5245161a2a1c57942f54911e72e09 |
12-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a missing break in the ISD::FLT_ROUNDS_ handling. Patch by giuma! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b3e0a6d75c60f01df4fcee4b4309f06ce92a96c9 |
10-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
If all sources of a PHI node are defined by an implicit_def, just emit an implicit_def instead of a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50927 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
7418d080e53c917d409314088b48d032c33e217c |
10-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
If all sources of a PHI node are defined by an implicit_def, just emit an implicit_def instead of a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50927 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
637980edcee4826143100182afe87e273247f013 |
10-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Cosmetic changes: - Comment fixes. - Moar whitespace. - Made ivars "private" by default. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50926 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0628927c8c8dce40a5356c20dff44e623bdb81f5 |
10-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Cosmetic changes: - Comment fixes. - Moar whitespace. - Made ivars "private" by default. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50926 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
6b8583cbf1f8a3df5ae859d3da2ca690ff57f91c |
10-May-2008 |
Dale Johannesen <dalej@apple.com> |
Remove an evil vector bool. Cosmetic refactoring, no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50921 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
865e6256f8fb84be293709a1d83094abfe3827b8 |
10-May-2008 |
Dale Johannesen <dalej@apple.com> |
Remove an evil vector bool. Cosmetic refactoring, no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50921 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
6ae83faadf715c398e637424a764f6b02f0b6df2 |
09-May-2008 |
Dale Johannesen <dalej@apple.com> |
Rewrite tail merging algorithm to handle the case where there are multiple blocks with a large number of common tail instructions more efficiently (compile time optimization). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50916 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
652b7ff7f4599e36cd8306ea461a43ae7a7b4db5 |
09-May-2008 |
Dale Johannesen <dalej@apple.com> |
Rewrite tail merging algorithm to handle the case where there are multiple blocks with a large number of common tail instructions more efficiently (compile time optimization). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50916 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
43b30a828792214612836686c51b96178a48f306 |
08-May-2008 |
Duncan Sands <baldrick@free.fr> |
Get exception handling working again on 64 bit Darwin. This is a hack of course, but it does at least look at the right thing: gotpcrel means that this is already an offset, so an explicit offset is not needed (and wrong). I think this is good enough for the moment: Anton is working on something better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50850 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
4cc3953292e50d24961f84e5f3af90feb24e0dd7 |
08-May-2008 |
Duncan Sands <baldrick@free.fr> |
Get exception handling working again on 64 bit Darwin. This is a hack of course, but it does at least look at the right thing: gotpcrel means that this is already an offset, so an explicit offset is not needed (and wrong). I think this is good enough for the moment: Anton is working on something better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50850 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
0b12ecf6ff6b5d3a144178257b6206f0c4788792 |
08-May-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Turn StripPointerCast() into a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50836 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
|
48fc88fa541d9084daf3ade6e4df2046ad9736e2 |
08-May-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Turn StripPointerCast() into a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50836 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
|
671fa97a4b8c560150104329b517efbf2609297c |
07-May-2008 |
Duncan Sands <baldrick@free.fr> |
Output correct exception handling and frame info on x86-64 linux. This causes no regressions on 32 bit linux and 32 bit ppc. More tests pass on 64 bit ppc with no regressions. I didn't turn on eh on 64 bit linux because the intrinsics needed to compile the eh runtime aren't done yet. But if you turn it on and link with the mainline runtime then eh seems to work fine on x86-64 linux with this patch. Thanks to Dale for testing. The main point of the patch is that if you output that some object is encoded using 4 bytes you had better not output 8 bytes for it: the patch makes everything consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50825 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
96144f95bdfe4d3ed39976d30fb374d8a38c5c28 |
07-May-2008 |
Duncan Sands <baldrick@free.fr> |
Output correct exception handling and frame info on x86-64 linux. This causes no regressions on 32 bit linux and 32 bit ppc. More tests pass on 64 bit ppc with no regressions. I didn't turn on eh on 64 bit linux because the intrinsics needed to compile the eh runtime aren't done yet. But if you turn it on and link with the mainline runtime then eh seems to work fine on x86-64 linux with this patch. Thanks to Dale for testing. The main point of the patch is that if you output that some object is encoded using 4 bytes you had better not output 8 bytes for it: the patch makes everything consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50825 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
7ebc06bfd8df4cd7c477af1e5fec196c32efcfea |
07-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Yet another nasty spiller bug. %ecx = op store %cl<kill>, (addr) (addr) = op %al It's not safe to unfold the last operand and eliminate store even though %cl is marked kill. It's a sub-register use which means one of its super-register(s) may be used below. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50794 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
674b39687d44677ef800e72676216998eb5e8093 |
07-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Yet another nasty spiller bug. %ecx = op store %cl<kill>, (addr) (addr) = op %al It's not safe to unfold the last operand and eliminate store even though %cl is marked kill. It's a sub-register use which means one of its super-register(s) may be used below. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50794 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
42ac929ed968939d22a715769e583aeed8f6c823 |
07-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the ComputeMaskedBits logic for multiply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4c451857fc1d30f82254a9b06938ff30b6abf2a6 |
07-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the ComputeMaskedBits logic for multiply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50793 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b04adddd50dfa4c3fbdad3b15d601402254c1ff5 |
07-May-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make StripPointerCast a common function (should we mak it method of Value instead?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50775 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
|
dd0dfe60781752661c3d39907989121bc7c3d254 |
07-May-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make StripPointerCast a common function (should we mak it method of Value instead?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50775 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
electionDAG/SelectionDAGISel.cpp
hadowStackCollector.cpp
|
4a3f6c88820a204f80ca0fa3f1f2fe09ca10b02f |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Make several variable declarations static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50696 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
asses.cpp
electionDAG/SelectionDAGISel.cpp
|
2c37da52902a619dc12b5dd46040fd223ee7d2eb |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Make several variable declarations static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50696 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
asses.cpp
electionDAG/SelectionDAGISel.cpp
|
84b7df43fb098268f6ce37a3e32bcc2f455ecf96 |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Remove uses of llvm/System/IncludeFile.h that are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50695 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
bc8fb445b0410e05248fb1dc6131e9cc293557fe |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Remove uses of llvm/System/IncludeFile.h that are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50695 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
54eed371314af403ef8307b386b3b5b46c8aa6fb |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Instead of enumerating each opcode that isn't handled that ComputeMaskedBits handles, just use a 'default:'. This avoids TargetLowering's list getting out of date with SelectionDAG's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50693 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
9a77bb65128afa9cccbdc68d1db076eb0dc52107 |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Instead of enumerating each opcode that isn't handled that ComputeMaskedBits handles, just use a 'default:'. This avoids TargetLowering's list getting out of date with SelectionDAG's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50693 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
23e1df8b8d1d1fc8b9a20b80a47b0a2fdffe7f84 |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Correct the value of LowBits in srem and urem handling in ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5a154a1a7f85eb3c2b756a949b66670bed62e32e |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Correct the value of LowBits in srem and urem handling in ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
703bfe69092e8da79fbef2fc5ca07b805ad9f753 |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a broken doxygen comment, and reword it for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50687 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2f51e1f35356d8e88e1edd6b1fa693e69ec1105d |
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a broken doxygen comment, and reword it for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50687 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
63307c335aa08b0d6a75f81d64d79af7e90eb78b |
05-May-2008 |
Mon P Wang <wangmp@apple.com> |
Added addition atomic instrinsics and, or, xor, min, and max. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50663 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
078a62d580cd4e62ecb7940323a953d49a0e72d2 |
05-May-2008 |
Mon P Wang <wangmp@apple.com> |
Added addition atomic instrinsics and, or, xor, min, and max. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50663 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
87c3d4173e6aa565fec5473e646f686d62d94956 |
05-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the ELF writer that caused it to produce malformed ELF headers. The ELF writer still isn't generally usable though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50652 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
8926a64fc1eff484fc6916317409b13b0e3d93d0 |
05-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the ELF writer that caused it to produce malformed ELF headers. The ELF writer still isn't generally usable though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50652 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
a779a9899a5e23bd5198973f4709d66cb4bc2e64 |
05-May-2008 |
Dan Gohman <gohman@apple.com> |
Add AsmPrinter support for emitting a directive to declare that the code being generated does not require an executable stack. Also, add target-specific code to make use of this on Linux on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50634 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a65530a04a5ad39718ea0ac848a7d329117a1b2f |
05-May-2008 |
Dan Gohman <gohman@apple.com> |
Add AsmPrinter support for emitting a directive to declare that the code being generated does not require an executable stack. Also, add target-specific code to make use of this on Linux on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50634 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
1d9cd506774f2d51b7e7315b07fdbcc05efebe4a |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a mistake in the computation of leading zeros for udiv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1b9fb1f4382238ee81e16c59200b1a643869f260 |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a mistake in the computation of leading zeros for udiv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7ceda160b34f67a0514df9a518da2946e52a04ea |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50562 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
14a027d0de763a09b14ea86975d7e03b67f060d2 |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50562 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1fa850bdd26fa51b0e593378a9fc1507154f992d |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Use push_back(...) instead of resize(1, ...), per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
111e04ee9ba119e8b0d66f6b21b10f5ffc59015b |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Use push_back(...) instead of resize(1, ...), per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cba3b44d258ee89f7dae1ea6e67d97258211ff8b |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix uninitialized uses of the FPC variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fc28db227985ffd9b26927c0b64accaa6840b971 |
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix uninitialized uses of the FPC variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6bf30ab347bc00a8dc7115244298d78f7721ea34 |
01-May-2008 |
Chris Lattner <sabre@nondot.org> |
don't randomly miscompile seto/setuo just because we are in ffastmath mode. This fixes rdar://5902801, a miscompilation of gcc.dg/builtins-8.c. Bill, please pull this into Tak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50523 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
98deecafca8ae7b25100b0c0a9a0d5b16e08caeb |
01-May-2008 |
Chris Lattner <sabre@nondot.org> |
don't randomly miscompile seto/setuo just because we are in ffastmath mode. This fixes rdar://5902801, a miscompilation of gcc.dg/builtins-8.c. Bill, please pull this into Tak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50523 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
30e62c098b5841259f8026df1c5c45c7c1182a38 |
30-Apr-2008 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Tail call optimization improvements: Move platform independent code (lowering of possibly overwritten arguments, check for tail call optimization eligibility) from target X86ISelectionLowering.cpp to TargetLowering.h and SelectionDAGISel.cpp. Initial PowerPC tail call implementation: Support ppc32 implemented and tested (passes my tests and test-suite llvm-test). Support ppc64 implemented and half tested (passes my tests). On ppc tail call optimization is performed if caller and callee are fastcc call is a tail call (in tail call position, call followed by ret) no variable argument lists or byval arguments option -tailcallopt is enabled Supported: * non pic tail calls on linux/darwin * module-local tail calls on linux(PIC/GOT)/darwin(PIC) * inter-module tail calls on darwin(PIC) If constraints are not met a normal call will be emitted. A test checking the argument lowering behaviour on x86-64 was added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a0032726c05cbb509988f05746de940adcbdf20d |
30-Apr-2008 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Tail call optimization improvements: Move platform independent code (lowering of possibly overwritten arguments, check for tail call optimization eligibility) from target X86ISelectionLowering.cpp to TargetLowering.h and SelectionDAGISel.cpp. Initial PowerPC tail call implementation: Support ppc32 implemented and tested (passes my tests and test-suite llvm-test). Support ppc64 implemented and half tested (passes my tests). On ppc tail call optimization is performed if caller and callee are fastcc call is a tail call (in tail call position, call followed by ret) no variable argument lists or byval arguments option -tailcallopt is enabled Supported: * non pic tail calls on linux/darwin * module-local tail calls on linux(PIC/GOT)/darwin(PIC) * inter-module tail calls on darwin(PIC) If constraints are not met a normal call will be emitted. A test checking the argument lowering behaviour on x86-64 was added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
21d972ad046f93669657eb7efb89ad2d0fe05ef8 |
30-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Add comments for previous patch as requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50463 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
388f20fc98e81283c086e9e28f2771bbb0397928 |
30-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Add comments for previous patch as requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50463 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
82747a54849d22c3a0b7c3b56399da9b9e020ee0 |
30-Apr-2008 |
Scott Michel <scottm@aero.org> |
Fix custom target lowering for zero/any/sign_extend: make sure that DAG.UpdateNodeOperands() is called before (not after) the call to TLI.LowerOperation(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ac54d007432a173a8a37493143c3237cbd1c86b8 |
30-Apr-2008 |
Scott Michel <scottm@aero.org> |
Fix custom target lowering for zero/any/sign_extend: make sure that DAG.UpdateNodeOperands() is called before (not after) the call to TLI.LowerOperation(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7b251e0474466d067192339599e38b9be000b6a3 |
30-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Make eh_frame objects by 8-byte aligned on 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50451 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
837d7abadb936c8e0f35fdbd2f0f4447b9f7d26b |
30-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Make eh_frame objects by 8-byte aligned on 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50451 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
a0201d52049be8dcefffe4304a49690a831bcb34 |
29-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Use std::set instead of std::priority_queue for the RegReductionPriorityQueue. This removes the existing bottleneck related to the removal of elements from the middle of the queue. Also fixes a subtle bug in ScheduleDAGRRList::CapturePred: It was updating the state of the SUnit before removing it. As a result, the comparison operators were working incorrectly and this SUnit could not be removed from the queue properly. Reviewed by Evan and Dan. Approved by Dan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50412 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
85078e24b21a2e70e3a697a36bc0732fac3c0187 |
29-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Use std::set instead of std::priority_queue for the RegReductionPriorityQueue. This removes the existing bottleneck related to the removal of elements from the middle of the queue. Also fixes a subtle bug in ScheduleDAGRRList::CapturePred: It was updating the state of the SUnit before removing it. As a result, the comparison operators were working incorrectly and this SUnit could not be removed from the queue properly. Reviewed by Evan and Dan. Approved by Dan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50412 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3fb2968f2febbcd8e05270270858b6f2afd4b342 |
29-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
make the vector conversion magic handle multiple results. We now compile test2/test3 to: _test2: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End addps %xmm1, %xmm0 ret _test3: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End paddd %xmm1, %xmm0 ret as expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
626164a792c07c1ab6559db74ba73059324cbf8c |
29-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
make the vector conversion magic handle multiple results. We now compile test2/test3 to: _test2: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End addps %xmm1, %xmm0 ret _test3: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End paddd %xmm1, %xmm0 ret as expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
41f6259a4b54d2dc58a4040e942b37f00d306b7b |
29-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add support for multiple return values in inline asm. This is a step towards PR2094. It now compiles the attached .ll file to: _sad16_sse2: movslq %ecx, %rax ## InlineAsm Start %ecx %rdx %rax %rax %r8d %rdx %rsi ## InlineAsm End ## InlineAsm Start set %eax ## InlineAsm End ret which is pretty decent for a 3 output, 4 input asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
08bbcb86f1d0ee66fec76739504f362dd9a2976a |
29-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add support for multiple return values in inline asm. This is a step towards PR2094. It now compiles the attached .ll file to: _sad16_sse2: movslq %ecx, %rax ## InlineAsm Start %ecx %rdx %rax %rax %r8d %rdx %rsi ## InlineAsm End ## InlineAsm Start set %eax ## InlineAsm End ret which is pretty decent for a 3 output, 4 input asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8509fcf8ebc6435d1b8081de62f93b29d707b341 |
29-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Another extract_subreg coalescing bug. e.g. vr1024<2> extract_subreg vr1025, 2 If vr1024 do not have the same register class as vr1025, it's not safe to coalesce this away. For example, vr1024 might be a GPR32 while vr1025 might be a GPR64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50385 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ed3e66b3ff668b088e69a5fbc6c54a623cabb88b |
29-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Another extract_subreg coalescing bug. e.g. vr1024<2> extract_subreg vr1025, 2 If vr1024 do not have the same register class as vr1025, it's not safe to coalesce this away. For example, vr1024 might be a GPR32 while vr1025 might be a GPR64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50385 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
33bf38ad881fa3d403cc81209d0ae796f94f125e |
29-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in RegsForValue::getCopyToRegs() that causes cyclical scheduling units. If it's creating multiple CopyToReg nodes that are "flagged" together, it should not create a TokenFactor for it's chain outputs: c1, f1 = CopyToReg c2, f2 = CopyToReg c3 = TokenFactor c1, c2 ... = user c3, ..., f2 Now that the two CopyToReg's and the user are "flagged" together. They effectively forms a single scheduling unit. The TokenFactor is now both an operand and a successor of the Flagged nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
80cb49ea90ad34a368bba08c09c3ad026e4ce898 |
29-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in RegsForValue::getCopyToRegs() that causes cyclical scheduling units. If it's creating multiple CopyToReg nodes that are "flagged" together, it should not create a TokenFactor for it's chain outputs: c1, f1 = CopyToReg c2, f2 = CopyToReg c3 = TokenFactor c1, c2 ... = user c3, ..., f2 Now that the two CopyToReg's and the user are "flagged" together. They effectively forms a single scheduling unit. The TokenFactor is now both an operand and a successor of the Flagged nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
187db7b950e57e2f1f10b57e7ee2a7f38e8965c0 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Evan pointed out that folding sext to zext may not be correct if the zext is not legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5b37f9d6ad40098a7b3cf8308092cc64919ac9e4 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Evan pointed out that folding sext to zext may not be correct if the zext is not legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ebc3a3a3b2adb3bf5a1dae0c0e6572be79375efd |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Delete an unused constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4457edb33078af6468ccb030629416e20d1a6cf7 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Delete an unused constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
10a6b7ab656ddce1acfa1216311d2564edaecbe3 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment to CreateRegForValue that clarifies the handling of aggregate types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b901881157917b841f8c3be685dca44fdfeb29ca |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment to CreateRegForValue that clarifies the handling of aggregate types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0fe00906c8f1d1e455c780b221299a1349cc7094 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Rewrite the comments for RegsForValue and its members, and reorder some of the members for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50365 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
65b2f4cc5077b45c120817ffcded4ea26310342e |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Rewrite the comments for RegsForValue and its members, and reorder some of the members for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50365 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b20d4f8d499c4c5315de69bd22c652665a7e3ab8 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Don't call size() on each iteration of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3a163d253056f54c7b4430487a8fe34300ab94fa |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Don't call size() on each iteration of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1f13c686df75ddbbe15b208606ece4846d7479a8 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix the SVOffset values for loads and stores produced by memcpy/memset expansion. It was a bug for the SVOffset value to be used in the actual address calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
65118f43f2da7c789cd2fde6908bdac8774a2304 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix the SVOffset values for loads and stores produced by memcpy/memset expansion. It was a bug for the SVOffset value to be used in the actual address calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
23e8b715267a64381e2fff8c208da1f24b387b83 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Teach InstCombine's ComputeMaskedBits what SelectionDAG's ComputeMaskedBits knows about cttz, ctlz, and ctpop. Teach SelectionDAG's ComputeMaskedBits what InstCombine's knows about SRem. And teach them both some things about high bits in Mul, UDiv, URem, and Sub. This allows instcombine and dagcombine to eliminate sign-extension operations in several new cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bec1605c43a6375d755c88e1269d9176433bfecd |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Teach InstCombine's ComputeMaskedBits what SelectionDAG's ComputeMaskedBits knows about cttz, ctlz, and ctpop. Teach SelectionDAG's ComputeMaskedBits what InstCombine's knows about SRem. And teach them both some things about high bits in Mul, UDiv, URem, and Sub. This allows instcombine and dagcombine to eliminate sign-extension operations in several new cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8f0ad582e81e24f2ab35f9e9d2308339c8e8cbeb |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Teach DAGCombine to convert (sext x) to (zext x) when the sign-bit of x is known to be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
415e13afea66fb0fea6a13c9988a96185e064dd8 |
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Teach DAGCombine to convert (sext x) to (zext x) when the sign-bit of x is known to be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6833b0601bdd53957db049b13dfa2e6a9e56f65f |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Another collection of random cleanups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
02d73b3d12833492ea166bfec530b38c29ba55c1 |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Another collection of random cleanups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b606dba13ba84721cc297174c2eb1275bc642604 |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Remove the SmallVector ctor that converts from a SmallVectorImpl. This conversion open the door for many nasty implicit conversion issues, and can be easily solved by initializing with (V.begin(), V.end()) when needed. This patch includes many small cleanups for sdisel also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
622811e23626f12f8f9933b12077b8bd79394db1 |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Remove the SmallVector ctor that converts from a SmallVectorImpl. This conversion open the door for many nasty implicit conversion issues, and can be easily solved by initializing with (V.begin(), V.end()) when needed. This patch includes many small cleanups for sdisel also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8eaff0449c70a7baa75c6ec5d1d90ea9ac2dad5a |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
switch RegsForValue::Regs to be a SmallVector to avoid heap thrash on tiny (usually single-element) vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50335 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8c036649d7c3422d0ebbbfda6c3f6467cb556595 |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
switch RegsForValue::Regs to be a SmallVector to avoid heap thrash on tiny (usually single-element) vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50335 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f899fce0c0492a6fa405323c073b3380260e5806 |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
move static function out of anon namespace, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5f2006ebaa1d2042088a50d6c0ec0686be117e99 |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
move static function out of anon namespace, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
acf8b01fd6dd7a796d490795886bdfa67f074631 |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Another step to getting multiple result inline asm to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5f32330dcddd37e71a86a617b56661d396f6ff3a |
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Another step to getting multiple result inline asm to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
24e1a9d3115a5bf4e1c21092ede0f6dfc0a810ad |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f9fde546b68041fc780392289e6846b72e04892b |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5a09690446a36f94f990db7d18d9b9ac8587888a |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Implement a signficant optimization for inline asm: When choosing between constraints with multiple options, like "ir", test to see if we can use the 'i' constraint and go with that if possible. This produces more optimal ASM in all cases (sparing a register and an instruction to load it), and fixes inline asm like this: void test () { asm volatile (" %c0 %1 " : : "imr" (42), "imr"(14)); } Previously we would dump "42" into a memory location (which is ok for the 'm' constraint) which would cause a problem because the 'c' modifier is not valid on memory operands. Isn't it great how inline asm turns 'missed optimization' into 'compile failed'?? Incidentally, this was the todo in PowerPC/2007-04-24-InlineAsm-I-Modifier.ll Please do NOT pull this into Tak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50315 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
4486c2ee43064fb60afad606262474cb993dd188 |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Implement a signficant optimization for inline asm: When choosing between constraints with multiple options, like "ir", test to see if we can use the 'i' constraint and go with that if possible. This produces more optimal ASM in all cases (sparing a register and an instruction to load it), and fixes inline asm like this: void test () { asm volatile (" %c0 %1 " : : "imr" (42), "imr"(14)); } Previously we would dump "42" into a memory location (which is ok for the 'm' constraint) which would cause a problem because the 'c' modifier is not valid on memory operands. Isn't it great how inline asm turns 'missed optimization' into 'compile failed'?? Incidentally, this was the todo in PowerPC/2007-04-24-InlineAsm-I-Modifier.ll Please do NOT pull this into Tak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50315 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
507ffd2423cfd0f5204c69e44c50aa3c759609d8 |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
isa+cast -> dyn_cast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50314 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
786c4281ce5f801746cb649d5e0e502b5d0bbd97 |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
isa+cast -> dyn_cast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50314 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4376fea6631d41fff3f2a7c6186faed9eff59619 |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch of inline asm code out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
4cf8c700dac90d58430ee14db6cf851463569c91 |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch of inline asm code out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
5e764233f398b6929b67701672a5e78fec20ce2e |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
A few inline asm cleanups: - Make targetlowering.h fit in 80 cols. - Make LowerAsmOperandForConstraint const. - Make lowerXConstraint -> LowerXConstraint - Make LowerXConstraint return a const char* instead of taking a string byref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
eca405c6ff03fda968effe2458f21a4a23974fe5 |
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
A few inline asm cleanups: - Make targetlowering.h fit in 80 cols. - Make LowerAsmOperandForConstraint const. - Make lowerXConstraint -> LowerXConstraint - Make LowerXConstraint return a const char* instead of taking a string byref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
23ce502cb7d9d06a1786d276a10be42e65759eca |
25-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Remove the code from CodeGenPrepare that moved getresult instructions to the block that defines their operands. This doesn't work in the case that the operand is an invoke, because invoke is a terminator and must be the last instruction in a block. Replace it with support in SelectionDAGISel for copying struct values into sequences of virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
30a71f593f2dc9af3ef7fa13720496d5c9d6fc1a |
25-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Remove the code from CodeGenPrepare that moved getresult instructions to the block that defines their operands. This doesn't work in the case that the operand is an invoke, because invoke is a terminator and must be the last instruction in a block. Replace it with support in SelectionDAGISel for copying struct values into sequences of virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6867991d541d08ca95d86841eca5f7c1d5096864 |
25-Apr-2008 |
Nate Begeman <natebegeman@mac.com> |
Pull the code to perform an INSERT_VECTOR_ELT in memory out into its own function, and then use it to fix a bug in SplitVectorOp that expected inserts to always have constant insertion indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7c9e4b71d0c8f3fb0fc22b8ce1c114be6a925741 |
25-Apr-2008 |
Nate Begeman <natebegeman@mac.com> |
Pull the code to perform an INSERT_VECTOR_ELT in memory out into its own function, and then use it to fix a bug in SplitVectorOp that expected inserts to always have constant insertion indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a971dbdde27fd4ff53dbebdd4aaf87826d081aa2 |
24-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Check if a register is livein before removing it. It may have already been removed. - Do not iterate over SmallPtrSet, the order of iteration is not deterministic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50209 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
impleRegisterCoalescing.cpp
|
194fe7c13dc1024c84921ff702b0913c61dbe85d |
24-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Check if a register is livein before removing it. It may have already been removed. - Do not iterate over SmallPtrSet, the order of iteration is not deterministic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50209 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
impleRegisterCoalescing.cpp
|
67780f108ccb509dffe3ff63d3826ea6accb1bb1 |
23-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Use isa instead of dyn_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6b8524380d079983e9257e664013f9a2dccac6e1 |
23-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Use isa instead of dyn_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3dc34f682dfdfbf75c2b883e21a953d41df4f3a0 |
23-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Add support to codegen for getresult instructions with undef operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
10e4bdf5d1cf60d1c7bbfbb780996290fc2b94a7 |
23-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Add support to codegen for getresult instructions with undef operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b013f5094c3bdb36472da996d63d5c0f75b6d4d3 |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Unbreak JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50173 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
9cba34cf8554c2b2bdddcc4e3a7a54e5fd6b1153 |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Unbreak JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50173 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
769b481e9f57b9fa2acf6c5fe0a94877520fcec3 |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add facility for pre-RA passes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50165 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
339d24598c243698efed3667feab4db21f2af185 |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add facility for pre-RA passes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50165 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
aadc780a56820c263dca141b2b9f9e39355f6991 |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use precomputed value, if any git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50164 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7e5c3f018baab49b79a77dacc5a8383cd38f80c4 |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use precomputed value, if any git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50164 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
874384e20f618d6ac932628db64e048757213fcd |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50160 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
958c93eab46cd35fa38de9556ffa9a1037663e35 |
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50160 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
639cdc210b86302bfa03e2a88266ef0d4aba102c |
21-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix an out-of-bounds access in -view-sunit-dags in the case of an empty ScheduleDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
66d5eaf43e9e37ebe38f08d2974b325fb912a393 |
21-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix an out-of-bounds access in -view-sunit-dags in the case of an empty ScheduleDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
9dd2ce46c58dd05f0835df77f308396715890d66 |
20-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Check we aren't trying to convert PPC long double. This fixes the testsuite failure on ppcf128-4.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
90c25d16c7db440514e86cec1843736b9bd46904 |
20-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Check we aren't trying to convert PPC long double. This fixes the testsuite failure on ppcf128-4.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
02a260aa11a2e1b2c14335274d3c42ca3f3eabc0 |
20-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Switch to using Simplified ConstantFP::get API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
5e0610fe159d5f82f0d339a6148a693b53de2f08 |
20-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Switch to using Simplified ConstantFP::get API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
37bcda3de96a9c41dc1aa05615ca3df869119026 |
18-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Implement a bit more softfloat support in LegalizeTypes. Correct the load logic so that it actually works, and also teach it to handle floating point extending loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesFloatToInt.cpp
|
f45437511403930c7ad473fda878da4fab1c0d9a |
18-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Implement a bit more softfloat support in LegalizeTypes. Correct the load logic so that it actually works, and also teach it to handle floating point extending loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesFloatToInt.cpp
|
4cc04564567686e62ec5aed7ef9efc7b3ef973aa |
18-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Add some more FIXME's for indexed loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
|
8aa1c9dd86b498c7296377c3819f1335b5d256a0 |
18-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Add some more FIXME's for indexed loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
|
41edfb8ae119d6cf6579046619dd2820ec876065 |
18-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Provide an explicit list of operands to MakeLibcall, rather than having it suck them out of a node. Add a bunch of new libcalls, and remove dead softfloat code (dead, because FloatToInt is used not Expand in this case). Note that indexed stores probably aren't handled properly, likewise for loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
|
37d64ec5fdac3c4d014a48ea5d44b515a9465c06 |
18-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Provide an explicit list of operands to MakeLibcall, rather than having it suck them out of a node. Add a bunch of new libcalls, and remove dead softfloat code (dead, because FloatToInt is used not Expand in this case). Note that indexed stores probably aren't handled properly, likewise for loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
|
a8f720d695e00192cc5816e10a7c52ade8446813 |
18-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Correct comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49913 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
254dc4b457c9e6785fbf5540184ae190849ab128 |
18-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Correct comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49913 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
883d260045500864a42dd8728f8c117a59720658 |
18-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Not safe to "kill" a register if its live range extends pass the end of block branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49911 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6727334bf90ffe698e5b744fb0319d358c7a3fbf |
18-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Not safe to "kill" a register if its live range extends pass the end of block branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49911 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
35b31bea0dc9e16d4c384a6a78404bdd791b6693 |
18-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Remove the implicit conversion from SDOperandPtr to SDOperand*; this may fix a build error on Visual Studio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1d47f5c106360e5e367255ae2633cd37051ce67a |
18-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Remove the implicit conversion from SDOperandPtr to SDOperand*; this may fix a build error on Visual Studio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
639f493ebf31632574738735bb367729ca187282 |
17-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Be more careful with insert_subreg and extract_subreg where either source or destination operand has already been coalesced with another register that's defined by a insert_subreg or extract_subreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49843 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
dcf29c300706e7fe7d612a8302fcecff984a5838 |
17-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Be more careful with insert_subreg and extract_subreg where either source or destination operand has already been coalesced with another register that's defined by a insert_subreg or extract_subreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49843 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f2317782697e05787dbae01c013bfdf642ed6299 |
17-Apr-2008 |
Bill Wendling <isanbard@gmail.com> |
Use correct name for method in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49841 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
edb53bee0e4a7687ac1c82cc0a32d2b88d30a0b2 |
17-Apr-2008 |
Bill Wendling <isanbard@gmail.com> |
Use correct name for method in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49841 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
499c1bd358917ad64ed3dcc32492dd38e1a47706 |
17-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Correct the SrcValue information in the Expand code for va_copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49839 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6b9a08e56759b0296b7b9ae4db2caa21e42d5379 |
17-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Correct the SrcValue information in the Expand code for va_copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49839 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
621d157676940640f5d496a52b2936e37b81f1b4 |
17-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a sub-register indice propagation bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49832 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
89571f33fa2f9e73908a9348d3ed545c398f5ccf |
17-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a sub-register indice propagation bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49832 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
51cc3c13eac78da242f0518fc42580e48dd5304f |
16-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function the stub will resolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49814 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
2b483b5fb10fd3e6223b824726c9403bb47c1e1c |
16-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function the stub will resolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49814 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
9c1e06e18721206c736512f3448997b41145019c |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
After reading memory that's already freed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49810 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
c4d008126ed54536e5a46850ac6fcec5ed8da642 |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
After reading memory that's already freed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49810 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
52e724ad7e679ee590f4bd763d55280586a8f1bc |
16-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Infrastructure for getting the machine code size of a function and an instruction. X86, PowerPC and ARM are implemented git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49809 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
cb162a0601c07804318bea53afe3f10f87567ef0 |
16-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Infrastructure for getting the machine code size of a function and an instruction. X86, PowerPC and ARM are implemented git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49809 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
ff7a3e557e09181cf1042fb79f877aed62fd7501 |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2226. Avoid using uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49807 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
35e3f15e14e474f0223f85760384aef26d4e308a |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2226. Avoid using uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49807 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
76249966eec8d318534b416f33f878c6bd01d1ee |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Empty basic block should have an empty range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49800 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
11c9164b6fcbadcbf5b76942764480d7225bcd40 |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Empty basic block should have an empty range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49800 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9cac5259fe237120a0c347d6d14e549005148f1b |
16-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Ongoing work on improving the instruction selection infrastructure: Rename SDOperandImpl back to SDOperand. Introduce the SDUse class that represents a use of the SDNode referred by an SDOperand. Now it is more similar to Use/Value classes. Patch is approved by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49795 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
98b8fcb96689930537f70ffb0023da9dce797a2f |
16-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Ongoing work on improving the instruction selection infrastructure: Rename SDOperandImpl back to SDOperand. Introduce the SDUse class that represents a use of the SDNode referred by an SDOperand. Now it is more similar to Use/Value classes. Patch is approved by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49795 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
0d4bdde3270a8ed182a685a580031d6d5d743164 |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme. This patch also fixed a couple of nasty corner cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49784 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
1c3ee66468a5912864b93a419e6154e4b65fb0c6 |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme. This patch also fixed a couple of nasty corner cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49784 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
9b6d7b9fb36b5cf87d291881dfcea399796f7826 |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49783 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
794d0f72b54aa348e8b844d786f6ef1611f5a7ed |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49783 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d94950c47382ba1f1de20fa45aac2a294d05908d |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid read after free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49760 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
45be50f1fb45a4a78f7216211275f8e1539b587d |
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid read after free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49760 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5a2d335c4cdc2bf870f04b8ca20c8032638d1961 |
16-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix the new scheduler assertion checks to work when the scheduler has inserted no-ops. This fixes the 2006-07-03-schedulers.ll regression on ppc32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8701816221817cfb8b8b67ca06cc9a39bacbcbde |
16-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix the new scheduler assertion checks to work when the scheduler has inserted no-ops. This fixes the 2006-07-03-schedulers.ll regression on ppc32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6ccbbd89906157187ac04b2b3237c4aee7acd095 |
15-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Change Divided flag to Split, as suggested by Evan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4fda257b66463f9974368255d5a5222057234db7 |
15-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Change Divided flag to Split, as suggested by Evan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
80792f3ddec43aff7f0758c9096f8cb53dcc1e40 |
15-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Treat EntryToken nodes as "passive" so that they aren't added to the ScheduleDAG; they don't correspond to any actual instructions so they don't need to be scheduled. This fixes a bug where the EntryToken was being scheduled multiple times in some cases, though it ended up not causing any trouble because EntryToken doesn't expand into anything. With this fixed the schedulers reliably schedule the expected number of units, so we can check this with an assertion. This requires a tweak to test/CodeGen/X86/loop-hoist.ll because it ends up getting scheduled differently in a trivial way, though it was enough to fool the prcontext+grep that the test does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
b7ba05e1b60c2f922940f069b495b099653f63d2 |
15-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Treat EntryToken nodes as "passive" so that they aren't added to the ScheduleDAG; they don't correspond to any actual instructions so they don't need to be scheduled. This fixes a bug where the EntryToken was being scheduled multiple times in some cases, though it ended up not causing any trouble because EntryToken doesn't expand into anything. With this fixed the schedulers reliably schedule the expected number of units, so we can check this with an assertion. This requires a tweak to test/CodeGen/X86/loop-hoist.ll because it ends up getting scheduled differently in a trivial way, though it was enough to fool the prcontext+grep that the test does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
89bf0a6b05c8c353890c88ed1c10dec96a9a7bd8 |
15-Apr-2008 |
Dan Gohman <gohman@apple.com> |
In -view-sunit-dags, display "special" chain dependencies as cyan instead of blue to distinguish them from regular dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
75d89e23a0ef82f58b1a7470c22fe17c78f69346 |
15-Apr-2008 |
Dan Gohman <gohman@apple.com> |
In -view-sunit-dags, display "special" chain dependencies as cyan instead of blue to distinguish them from regular dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
b91c89dfb9a7d119eb2184e3fda8af12d71713a6 |
14-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating MERGE_VALUES nodes for single values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
849d7c6f56c212b6e77cbe78f6285d1dc78a023b |
14-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating MERGE_VALUES nodes for single values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
29e4bdbf27c5f03b12dd2bc41d9ccb0d5f3dfdf4 |
14-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix const-correctness issues with the SrcValue handling in the memory intrinsic expansion code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49666 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
64fd1a959022d190ca01e9a8ab665ea97c03546c |
14-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix const-correctness issues with the SrcValue handling in the memory intrinsic expansion code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49666 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3541af73b6b8a083cf2d7784438d60e8bcce3883 |
14-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Reverse sense of unwind-tables option. This means stack tracebacks on Darwin x86-64 won't work by default; nevertheless, everybody but me thinks this is a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49663 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
b369e8de1e2ee83f2cec829a86684ee382da6853 |
14-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Reverse sense of unwind-tables option. This means stack tracebacks on Darwin x86-64 won't work by default; nevertheless, everybody but me thinks this is a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49663 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
9701c8a18fd3888d20f4cd8fcebc6bc99f005c0a |
14-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Fix /test/CodeGen/PowerPC/big-endian-actual-args.ll for linux/ppc32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49652 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
78dda99fdb44b376c644d836eda4cfae2115fb24 |
14-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Fix /test/CodeGen/PowerPC/big-endian-actual-args.ll for linux/ppc32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49652 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ddc016cc8592fe5c9379feb42a1fb4fb63164a91 |
14-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Initial libcall support for LegalizeTypes. This is much simpler than in LegalizeDAG because calls are not yet expanded into call sequences: that happens after type legalization has finished. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
|
5e7b04a9fb9bf0a6696c1f3d5d76f8bca23b2480 |
14-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Initial libcall support for LegalizeTypes. This is much simpler than in LegalizeDAG because calls are not yet expanded into call sequences: that happens after type legalization has finished. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
|
4a6da60787fcc66c521288fbd139cf8afdca5957 |
13-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes can sometimes have deleted nodes in its maps. Add some sanity checks that catch this kind of thing. Hopefully these can be removed one day (once all problems are fixed!) but for the moment it seems wise to have them in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
4ac8ecc756bd6829ca06c4289548d3eed31c3fa7 |
13-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes can sometimes have deleted nodes in its maps. Add some sanity checks that catch this kind of thing. Hopefully these can be removed one day (once all problems are fixed!) but for the moment it seems wise to have them in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
c0cb28fd3abee9a8b40856990e04f1af2f9bd7b8 |
13-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Add a divided flag for the first piece of an argument divided into mulitple parts. Fixes PR1643 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
46253ddfa7d06facd4a16cd5bd80771c15a6918f |
13-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Add a divided flag for the first piece of an argument divided into mulitple parts. Fixes PR1643 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
89f6d88db334ba088672ae0753deb7d7b7509bac |
13-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Merge LLVMBuilder and FoldingBuilder, calling the result IRBuilder. Patch by Dominic Hamon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49604 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
a989c7e045dcad58bb58b9fb0cb75ee901f7879e |
13-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Merge LLVMBuilder and FoldingBuilder, calling the result IRBuilder. Patch by Dominic Hamon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49604 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
460a14e09c2af630fc1e840dcb3e0f725663067b |
12-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Factor some libcall code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f1db7c87bdd7136e5511cc38cafeb33421e3af36 |
12-Apr-2008 |
Duncan Sands <baldrick@free.fr> |
Factor some libcall code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
707e0184233f27e0e9f9aee0309f2daab8cfe7f8 |
12-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal on any current target and aren't optimized in DAGCombiner. Instead of using intermediate nodes, expand the operations, choosing between simple loads/stores, target-specific code, and library calls, immediately. Previously, the code to emit optimized code for these operations was only used at initial SelectionDAG construction time; now it is used at all times. This fixes some cases where rep;movs was being used for small copies where simple loads/stores would be better. This also cleans up code that checks for alignments less than 4; let the targets make that decision instead of doing it in target-independent code. This allows x86 to use rep;movs in low-alignment cases. Also, this fixes a bug that resulted in the use of rep;stos for memsets of 0 with non-constant memory size when the alignment was at least 4. It's better to use the library in this case, which can be significantly faster when the size is large. This also preserves more SourceValue information when memory intrinsics are lowered into simple loads/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
e8b391ea3cf33a68b0c5eeafc448c53b412dd61f |
12-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal on any current target and aren't optimized in DAGCombiner. Instead of using intermediate nodes, expand the operations, choosing between simple loads/stores, target-specific code, and library calls, immediately. Previously, the code to emit optimized code for these operations was only used at initial SelectionDAG construction time; now it is used at all times. This fixes some cases where rep;movs was being used for small copies where simple loads/stores would be better. This also cleans up code that checks for alignments less than 4; let the targets make that decision instead of doing it in target-independent code. This allows x86 to use rep;movs in low-alignment cases. Also, this fixes a bug that resulted in the use of rep;stos for memsets of 0 with non-constant memory size when the alignment was at least 4. It's better to use the library in this case, which can be significantly faster when the size is large. This also preserves more SourceValue information when memory intrinsics are lowered into simple loads/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f2b24ca2c71e0287dce732e4d984b8fcb77d072e |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not add empty live intervals to handled_. They should never be undone for backtracking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49544 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
1fbf9c23e1b8ed61498bb1538ede7c767d809217 |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not add empty live intervals to handled_. They should never be undone for backtracking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49544 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
f870fbc554ac862ad6d45cf97148739802a3ed12 |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a PHI node has a single implicit_def source, replace it with an implicit_def instead of a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49543 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
59d4300a7d29bfd41729354184ad8df8383dfcba |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a PHI node has a single implicit_def source, replace it with an implicit_def instead of a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49543 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
4cce6b4c7882ef0cc993d931b90bf33985c96110 |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use of implicit_def is not part of live interval. Create empty intervals for the uses when the live interval is being spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49542 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
7b88cbc7b5f682871b062601fbfd5c0305b9a6af |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use of implicit_def is not part of live interval. Create empty intervals for the uses when the live interval is being spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49542 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
78256a199edba827b5356fcd041f60f92c9f205f |
11-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
detabify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5bd3d9b7997c69b4131ea0288f83ff3e8e87a061 |
11-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
detabify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d2012d0c4bf0df01b5cbb35bceaf80c232d0d7b7 |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove implicit_def instructions that become dead as result of coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49513 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0f4178d2428de85a98c574d3cdd29f095d9a6072 |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove implicit_def instructions that become dead as result of coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49513 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5d3600f5766e93cb459ef6108fba00c052aa6388 |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Allow registers defined by implicit_def to be clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49512 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
f50b23d71072f1c763165412cf48590afda09ad4 |
11-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Allow registers defined by implicit_def to be clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49512 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
172b70c62a315de654a4d1683dbb5544e67afa90 |
10-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
A copy instruction may use a register multiple times on some targets. Change them all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49491 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4d89f4665cfba575b2721acd4b93fa549231e369 |
10-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
A copy instruction may use a register multiple times on some targets. Change them all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49491 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f0785153e51a60ede0a85bf98c1c1e6ada9054f6 |
10-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49469 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.h
|
4670e526ba94f58488d7163a1784004cb35ee79d |
10-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49469 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.h
|
80b09fe8bc1d2755ef9a6b03b8862a657db42f06 |
10-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach branch folding pass about implicit_def instructions. Unfortunately we can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49461 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
682e4aa034649aa38ea7a4996e16c97dd7ad0030 |
10-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach branch folding pass about implicit_def instructions. Unfortunately we can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49461 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7e073baedb8232b9519dbe15ea141ff98ccfe6ae |
09-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- More aggressively coalescing away copies whose source is defined by an implicit_def. - Added insert_subreg coalescing support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49448 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
909ab8b41a1f6072d24af951b70511d8a586d8ac |
09-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- More aggressively coalescing away copies whose source is defined by an implicit_def. - Added insert_subreg coalescing support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49448 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
f20d943bc60551e8e674c0ad53ebc008ed66982e |
09-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Missed a hasInterval check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49415 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
48383898b9643f2a40239e8262f2cfa71795d46f |
09-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Missed a hasInterval check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49415 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4e1b79459fcf72216cdc42a59953e172c60e15ca |
08-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Implement new llc flag -disable-required-unwind-tables. Corresponds to -fno-unwind-tables (usually default in gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49361 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
a9b3e482b2edd1cfee555b48ad85260af9d3971c |
08-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Implement new llc flag -disable-required-unwind-tables. Corresponds to -fno-unwind-tables (usually default in gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49361 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
36b5c1338a03453ba1c110b120269ca972fb65a3 |
07-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Rename MemOperand to MachineMemOperand. This was suggested by review feedback from Chris quite a while ago. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49348 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
1fad9e6ca2c608b4cd09275e3c302ebc18ebc33a |
07-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Rename MemOperand to MachineMemOperand. This was suggested by review feedback from Chris quite a while ago. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49348 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
dc1adac582fa120861f18ae7221bfe1421fea59f |
07-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Re-commit of the r48822, where the infinite looping problem discovered by Dan Gohman is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
05650fd0ba74ad3356d1bc5d1f07ff194b16b82e |
07-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Re-commit of the r48822, where the infinite looping problem discovered by Dan Gohman is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
409a3d0837a10b6eef50eab953c2fa95399f7883 |
06-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Silence warning when no assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49284 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
845e05c8223fcb8e918df5794a50704e9699d7c0 |
06-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Silence warning when no assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49284 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
4fea2e982d79132715711dfcfdc46abf15239217 |
06-Apr-2008 |
Torok Edwin <edwintorok@gmail.com> |
Prefer to expand mask for xor to -1, so we have a chance to turn it into a not. If it cannot be expanded, it will keep the old behaviour and try to shrink the constant. Part of enhancement for PR2191. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
405b243971627c037b7f48a009dfcf5c159ef1a5 |
06-Apr-2008 |
Edwin Török <edwintorok@gmail.com> |
Prefer to expand mask for xor to -1, so we have a chance to turn it into a not. If it cannot be expanded, it will keep the old behaviour and try to shrink the constant. Part of enhancement for PR2191. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
051a950000e21935165db56695e35bade668193b |
06-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
API changes for class Use size reduction, wave 1. Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
hadowStackCollector.cpp
|
d6da1d0d17e2605363504f044664696f4d85b30f |
06-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
API changes for class Use size reduction, wave 1. Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
hadowStackCollector.cpp
|
1dc7869025d91906e8305e921ddb82dac780d70e |
05-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
1. IMPLICIT_DEF can *re-define* any register. 2. Coalescer can now create an interesting situation where a register def can reaches itself without being killed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49246 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
667e5e85469fa34d5b743218987160a5815aef89 |
05-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
1. IMPLICIT_DEF can *re-define* any register. 2. Coalescer can now create an interesting situation where a register def can reaches itself without being killed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49246 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
a4091d34f3c05717eb5bb66a1257a0c1005e6dfa |
05-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Make sure both PendingLoads and PendingExports are flushed before an invoke. Failure to do this causes references in the landing pad to variables that were not set. Fixes g++.dg/eh/delayslot1.C g++.dg/eh/fp-regs.C g++.old-deja/g++.brendan/eh1.C git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1f68ca86fbb3cb1fbf05b8d64a7c3d1a7c9ab44e |
05-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Make sure both PendingLoads and PendingExports are flushed before an invoke. Failure to do this causes references in the landing pad to variables that were not set. Fixes g++.dg/eh/delayslot1.C g++.dg/eh/fp-regs.C g++.old-deja/g++.brendan/eh1.C git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fc5423d561bb7624bf328e3ed554efce6e296cbc |
04-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Undo PHI elimination copy placement patch. This causes coalescing (performace) issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49198 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
3bca6ca424cd682c4ab174e82cd831b58c46859e |
04-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Undo PHI elimination copy placement patch. This causes coalescing (performace) issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49198 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
e04f7365452e9c08f89d26187adcc08bf72233e5 |
04-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
This is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49197 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
c7fe333d42d6290fbf9116e8ed31a4fde776571b |
04-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
This is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49197 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
51dd8c9224e58c12a846327bd8cfab7b639a9905 |
03-Apr-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
if some functions don't have debug info, we were outputing the same label at the start of each of those functions. This makes assemblers unhappy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49176 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
42f9140ba4c213f29d988b2734bb4261dc326246 |
03-Apr-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
if some functions don't have debug info, we were outputing the same label at the start of each of those functions. This makes assemblers unhappy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49176 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
db9b1c33294d11c73a212f29080d7da68f4f2403 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Turn copies of implicit_def into implicit_def instructions. - Be smarter about coalescing copies from implicit_def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49168 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
014c9ffceb8ec48f4b92828a0839d2a6e3edf6d8 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Turn copies of implicit_def into implicit_def instructions. - Be smarter about coalescing copies from implicit_def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49168 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
f30a49d9e02bdf9ba9703f8f1f52a3c6186e0065 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Special handling of zero-sized live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49167 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
a31869970a34a76e43efff81fa863a6b250e9999 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Special handling of zero-sized live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49167 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
419852ca8a01aecde4c0e20af6b7bd6450e70f87 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Treat a live range defined by an implicit_def as a zero-sized one. - Eliminate an implicit_def when it's being spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49166 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
70f68e9f8d3bf8589f6d1441d025be1c82261807 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Treat a live range defined by an implicit_def as a zero-sized one. - Eliminate an implicit_def when it's being spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49166 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
576a27043d95d0b9b8a010bccfd38ed9c0afa739 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- PHI elimination also eliminates implicit_def that fits into a PHI node rather than copying it. - Be (slightly) smarter about where to place the copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49165 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
7b66cd16f069f83ecf879a72066f217e62be6151 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- PHI elimination also eliminates implicit_def that fits into a PHI node rather than copying it. - Be (slightly) smarter about where to place the copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49165 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
8a50f1fcf0147d4ba959dc48066ddf281d5bc7e6 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Start of a series of patches related to implicit_def. There is no point in creating a long live range defined by an implicit_def. Scheduler now duplicates implicit_def instruction for each of its uses. Therefore, if an implicit_def node has multiple uses, it will become a number of very short live ranges, rather than a long one. This will make coalescer's job easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
19da42df554776cd1ea82c3946f788751307b378 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Start of a series of patches related to implicit_def. There is no point in creating a long live range defined by an implicit_def. Scheduler now duplicates implicit_def instruction for each of its uses. Therefore, if an implicit_def node has multiple uses, it will become a number of very short live ranges, rather than a long one. This will make coalescer's job easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
6397c64441ddce3822ab0e712f224a11bd75811c |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Backing out 48222 temporarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
91624382f6e3d48485d23b4b1e67f85e9287c8f0 |
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Backing out 48222 temporarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
dedf502fba8e9a009212233810ce1bcbe10619d0 |
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Make EH work with unnamed functions. Reenable running StripSymbols when EH is on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49110 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e73bcbb57b0bebe06a2e97c538b61ce2a432f07c |
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Make EH work with unnamed functions. Reenable running StripSymbols when EH is on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49110 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
ea1d9cdc4e4f4e4570acddb7c4a63f703b110dad |
02-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49105 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
251fa15cb518dca9a3707f4bfb8dc4f3c0370f25 |
02-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49105 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
1088317675dd34a1823f427e472fb9e43c616cb1 |
02-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove #include<map> from LiveVariables.h. Not referenced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49099 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
egAllocLocal.cpp
|
0d34ac96dedd210999f3f9730d982149c2267f85 |
02-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove #include<map> from LiveVariables.h. Not referenced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49099 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
egAllocLocal.cpp
|
e00406281d94ebb9c69b7803311936f07994da43 |
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Cosmetic changes per EH patch review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49096 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
62f0a6d2fd2a4898b01ffeb8572dd5ebaaa1cfd3 |
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Cosmetic changes per EH patch review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49096 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
52b1733df4bb3cafa7a81384da7e81a1fa66cea5 |
02-Apr-2008 |
Owen Anderson <resistor@mac.com> |
In some situations, we need to check for local interferences between the PHI node and its inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49070 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
07aa2ecae340471411fce0625e8a6b12c8b5df8a |
02-Apr-2008 |
Owen Anderson <resistor@mac.com> |
In some situations, we need to check for local interferences between the PHI node and its inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49070 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
59df878391b5a10d184636fed608f6a9cb29761f |
02-Apr-2008 |
Owen Anderson <resistor@mac.com> |
Correctly mark a valno that was previous defined by a PHI node as having an unknown defining inst after PHI elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49069 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
2d24f3cbecf3ef365c026eeb774f4b1a2a2f6bbc |
02-Apr-2008 |
Owen Anderson <resistor@mac.com> |
Correctly mark a valno that was previous defined by a PHI node as having an unknown defining inst after PHI elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49069 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
1532f3ddd77c362dd5f613af06b4de636e3c5b0e |
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Recommitting EH patch; this should answer most of the review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49064 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
8553576e0c959305b88e548148b0a472c94ffca8 |
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Recommitting EH patch; this should answer most of the review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49064 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
LVMTargetMachine.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
3c75ba858b4e2070993cc1241ba74ead17f647d6 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-materialization is for uses only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49053 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
71f75b446345d0b940d727cb09bd1e0beb3b3bd6 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Re-materialization is for uses only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49053 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b6d5b1439047609c050576f3dc52b722e76bd30b |
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Revert 49006 for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49046 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
748a85ca991f61e8e097c6f42d721009b2f61936 |
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Revert 49006 for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49046 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
78216bc9f89ee819f325f79eebdc9d6365cd80ed |
01-Apr-2008 |
Owen Anderson <resistor@mac.com> |
Don't dereference MBB->end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49043 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
ff63c6848deeff6ddb414d654532a14b2b38b673 |
01-Apr-2008 |
Owen Anderson <resistor@mac.com> |
Don't dereference MBB->end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49043 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
9845eb5b033db5ba5213d0b8dba958c1e168ccd3 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
More soft fp fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f99a775e11793fe01dbcf5c5b06a75f06bc21bd6 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
More soft fp fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
db45d1c649aa2e7c71accd8ad460aa764886cab3 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cadb43c532ea8019824b2f98fe20e60107563f0c |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6ad2f930da0ebadb0e000397cea8384c650877bb |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49013 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4a2f6df680cfd81dc50fe8af722905fbd60ccb05 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49013 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
110cf48752dcf86c6d95698c08805f1dd534ac83 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak ARM / Thumb soft FP support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a87400339fcb3e087996e7ad534816d640c8b716 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak ARM / Thumb soft FP support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1544e4713be68edcf042de5aed7265dff7169d9d |
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Emit exception handling info for functions which are not marked nounwind, or for all functions when -enable-eh is set, provided the target supports Dwarf EH. llvm-gcc generates nounwind in the right places; other FEs will need to do so also. Given such a FE, -enable-eh should no longer be needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49006 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
80caa49bb50211658df49e9340fc562e7c3db625 |
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Emit exception handling info for functions which are not marked nounwind, or for all functions when -enable-eh is set, provided the target supports Dwarf EH. llvm-gcc generates nounwind in the right places; other FEs will need to do so also. Given such a FE, -enable-eh should no longer be needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49006 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
427f4c106ac14dcf323dc1bbaf1b8040da03c3c7 |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to fold a load from GV stub or constantpool into a two-address use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49002 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4c7ab52dd1c8c290c89bc13f4351628a15ea9e7f |
01-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
It's not safe to fold a load from GV stub or constantpool into a two-address use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49002 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ca1267c02b025cc719190b05f9e1a5d174a9caf7 |
31-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move reMaterialize() from TargetRegisterInfo to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48995 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
irtRegMap.cpp
|
7d73efce9cfa7af4e1747dbd8c4bf2b948816777 |
31-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move reMaterialize() from TargetRegisterInfo to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48995 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
irtRegMap.cpp
|
b061c4bc44caf62a16adad6047cda60785c2d0a4 |
31-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix a DAGCombiner optimization to respect volatile qualification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
729b5ff1c51532b0301074a9fe3b80304c114b01 |
31-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix a DAGCombiner optimization to respect volatile qualification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
24d2f8a212f08bf21360122cc00acf2657af91f9 |
31-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
The support for remat of instructions with a register operand is hackish, to say the least. Since the register operand guaranteed to be PIC base and that it is already live at all uses, we are making sure it will not be spilled after its uses are rematerialized for both performance and correctness reasons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48976 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8adc74ecad20030969b85ec45e393f69e17c8a66 |
31-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
The support for remat of instructions with a register operand is hackish, to say the least. Since the register operand guaranteed to be PIC base and that it is already live at all uses, we are making sure it will not be spilled after its uses are rematerialized for both performance and correctness reasons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48976 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bc91bd34f1d2e4fdfef691fbe9015eabdeec8071 |
31-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Fix a major bug in the DFS calculation. Thanks for Christopher Lamb for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48973 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
8c3448af500b005ef2dff3f8ca858fe0f53f4f1a |
31-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Fix a major bug in the DFS calculation. Thanks for Christopher Lamb for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48973 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
d27c991cebe48fdf82b5d9eec6c2a1a244f82622 |
30-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Fix "Control reaches the end of non-void function" warnings, patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2b06cd3076bbc4547d58109722c79b33366d594d |
30-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Fix "Control reaches the end of non-void function" warnings, patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fd5da6c991ad0bb5c0b6ce797d56c49ad3f73803 |
29-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48947 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f066822d7fdc0a0d5942e4c815f4110991d11b8a |
29-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48947 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c7c00361ce1457f4a033ae6246aa54d0d5bfb1d5 |
29-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove some unneeded code for LiveInterval joining, and fix a bug in the Phi elimination algorithm where we were accidentally reasoning about the source rather than the destination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48936 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
df0caea2813771e1aeac4b77f437f6ba47ee2e08 |
29-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove some unneeded code for LiveInterval joining, and fix a bug in the Phi elimination algorithm where we were accidentally reasoning about the source rather than the destination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48936 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
2a88a5c92f898623d5cceb6cd1019427a1749999 |
28-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
ifdef out a dead function. Should this be removed? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2e120bfdb3320317c8ddf00e959fbf2489a52ac5 |
28-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
ifdef out a dead function. Should this be removed? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e10efce22502d1a1855d25baf1458660f4ba6f33 |
28-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Rename getAnyLoad to getLoad is suggested by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48914 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/SelectionDAG.cpp
|
b258971288d6212ea14387c2c464e1e1c8b94813 |
28-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Rename getAnyLoad to getLoad is suggested by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48914 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/SelectionDAG.cpp
|
02bee85a70c32d51542e1da1d0569903f943dd96 |
28-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
New entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48908 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
ced85adc8e1f686e69244edd1c2c097fa248393f |
28-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
New entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48908 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
14ea39cf3c62fad781b8a00cda9e4a15e61520dc |
27-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Implement LegalizeTypes support for softfloat LOAD. In order to handle indexed nodes I had to introduce a new constructor, and since I was there I factorized the code in the various load constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48894 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/SelectionDAG.cpp
|
9a2f4dce36bc801ca8dbe3b2b5ccd1a90d201c6e |
27-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Implement LegalizeTypes support for softfloat LOAD. In order to handle indexed nodes I had to introduce a new constructor, and since I was there I factorized the code in the various load constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48894 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/SelectionDAG.cpp
|
86e1ebf9bbde7408a1d7859ea207981457e11cc2 |
27-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating chain dependencies from CopyToReg nodes to load and store nodes. This doesn't currently have much impact the generated code, but it does produce simpler-looking SelectionDAGs, and consequently simpler-looking ScheduleDAGs, because there are fewer spurious dependencies. In particular, CopyValueToVirtualRegister now uses the entry node as the input chain dependency for new CopyToReg nodes instead of calling getRoot and depending on the most recent memory reference. Also, rename UnorderedChains to PendingExports and pull it up from being a local variable in SelectionDAGISel::BuildSelectionDAG to being a member variable of SelectionDAGISel, so that it doesn't have to be passed around to all the places that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9fe5bd631213c33d670cb9648f42f994bfb011a8 |
27-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating chain dependencies from CopyToReg nodes to load and store nodes. This doesn't currently have much impact the generated code, but it does produce simpler-looking SelectionDAGs, and consequently simpler-looking ScheduleDAGs, because there are fewer spurious dependencies. In particular, CopyValueToVirtualRegister now uses the entry node as the input chain dependency for new CopyToReg nodes instead of calling getRoot and depending on the most recent memory reference. Also, rename UnorderedChains to PendingExports and pull it up from being a local variable in SelectionDAGISel::BuildSelectionDAG to being a member variable of SelectionDAGISel, so that it doesn't have to be passed around to all the places that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d7d3ea00c0a26e2545d4ba01825d8358075264e7 |
27-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Fix spelling. Thanks, Duncan! :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48873 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
74cd1228f65ee9ddcbf5f51f768bb83bc849e470 |
27-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Fix spelling. Thanks, Duncan! :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48873 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
95d4184e7218d7ec21b5b8d693dd3b14146eefdc |
27-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Speed-up the SumOfUnscheduledPredsOfSuccs by introducing a new function called LimitedSumOfUnscheduledPredsOfSuccs. It terminates the computation after a given treshold is reached. This new function is always faster, but brings real wins only on bigger test-cases. The old function SumOfUnscheduledPredsOfSuccs is left in-place for now and therefore a warning about an unused static function is produced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
887332e4c70670894ba6cf853c1f3b411b223985 |
27-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Speed-up the SumOfUnscheduledPredsOfSuccs by introducing a new function called LimitedSumOfUnscheduledPredsOfSuccs. It terminates the computation after a given treshold is reached. This new function is always faster, but brings real wins only on bigger test-cases. The old function SumOfUnscheduledPredsOfSuccs is left in-place for now and therefore a warning about an unused static function is produced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
7a963fa8ee2ad90ef456e36c116c046bf2ba8199 |
27-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory bug: increment an iterator of a deleted machine instr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48853 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
478568db8d03be318f362e666e3a808b1ca873a8 |
27-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory bug: increment an iterator of a deleted machine instr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48853 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d9ffd4cb92c95806b05df2d9f9e2be5c27cfe7fd |
27-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Fix a bug in Darwin EH: FDE->CIE pointer must be relocatable. Describe why .set is needed better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48848 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
0ebb243bdd92764a4c0b000c269b601fd7649a9c |
27-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Fix a bug in Darwin EH: FDE->CIE pointer must be relocatable. Describe why .set is needed better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48848 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
0c2843285269aa56a0781853cb25b6f03aa0bd99 |
26-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
One more coalescer fix wrt deadness propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48837 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9d6bb9bb87b4da46be567e6e544fbc68802660cb |
26-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
One more coalescer fix wrt deadness propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48837 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ed70cbb3f367bc0f77d34d22163abbe4879526bc |
26-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid commuting a def MI in order to coalesce a copy instruction away if any use of the same val# is a copy instruction that has already been coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48833 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
9714850cee82f19572701dd7cfd8b202aba27b4c |
26-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid commuting a def MI in order to coalesce a copy instruction away if any use of the same val# is a copy instruction that has already been coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48833 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
e326332acd5fefb9854118603b4d07d4e44b64c5 |
26-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Use a linked data structure for the uses lists of an SDNode, just like LLVM Value/Use does and MachineRegisterInfo/MachineOperand does. This allows constant time for all uses list maintenance operations. The idea was suggested by Chris. Reviewed by Evan and Dan. Patch is tested and approved by Dan. On normal use-cases compilation speed is not affected. On very big basic blocks there are compilation speedups in the range of 15-20% or even better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
0664ef9d7e3b538fc448fe42e8557aa52d8d6d51 |
26-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Use a linked data structure for the uses lists of an SDNode, just like LLVM Value/Use does and MachineRegisterInfo/MachineOperand does. This allows constant time for all uses list maintenance operations. The idea was suggested by Chris. Reviewed by Evan and Dan. Patch is tested and approved by Dan. On normal use-cases compilation speed is not affected. On very big basic blocks there are compilation speedups in the range of 15-20% or even better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
8dba9afd086f72db920db81a3d73c7297390cda7 |
26-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Fixed some spelling errors. Thanks, Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48819 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
186d9b73181e9f74bd6b835cb4aa7d919d5c0953 |
26-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Fixed some spelling errors. Thanks, Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48819 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e513ba49589bcf8fdf7dad658e20db21d6ef4758 |
26-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Some improvements related to the computation of isReachable. This fixes Bugzilla #1835 (http://llvm.org/bugs/show_bug.cgi?id=1835). This patched is reviewed by Tanya and Dan. Dan tested and approved it. The reason for the bad performance of the old algorithm is that it is very naive and scans every time all nodes of the DAG in the worst case. This patch introduces a new algorithm based on the paper "Online algorithms for maintaining the topological order of a directed acyclic graph" by David J.Pearce and Paul H.J.Kelly. This is the MNR algorithm. It has a linear time worst-case and performs much better in most situations. The paper can be found here: http://fano.ics.uci.edu/cites/Document/Online-algorithms-for-maintaining-the-topological-order-of-a-directed-acyclic-graph.html The main idea of the new algorithm is to compute the topological ordering of the SNodes in the DAG and to maintain it even after DAG modifications. The topological ordering allows for very fast node reachability checks. Tests on very big input files with tens of thousands of instructions in a BB indicate huge speed-ups (up to 10x compilation time improvement) compared to the old version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48817 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d7997a09b665eaa2aa637a59ae2d5948e86f6145 |
26-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Some improvements related to the computation of isReachable. This fixes Bugzilla #1835 (http://llvm.org/bugs/show_bug.cgi?id=1835). This patched is reviewed by Tanya and Dan. Dan tested and approved it. The reason for the bad performance of the old algorithm is that it is very naive and scans every time all nodes of the DAG in the worst case. This patch introduces a new algorithm based on the paper "Online algorithms for maintaining the topological order of a directed acyclic graph" by David J.Pearce and Paul H.J.Kelly. This is the MNR algorithm. It has a linear time worst-case and performs much better in most situations. The paper can be found here: http://fano.ics.uci.edu/cites/Document/Online-algorithms-for-maintaining-the-topological-order-of-a-directed-acyclic-graph.html The main idea of the new algorithm is to compute the topological ordering of the SNodes in the DAG and to maintain it even after DAG modifications. The topological ordering allows for very fast node reachability checks. Tests on very big input files with tens of thousands of instructions in a BB indicate huge speed-ups (up to 10x compilation time improvement) compared to the old version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48817 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d382f8a32de02e04db5f88e881fe11db4040be40 |
26-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Dead PHI instructions need to be handled specially. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48811 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
015ae44c10cae1cab90fd14fa27a73aa8f782964 |
26-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Dead PHI instructions need to be handled specially. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48811 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
e4ded8937a8fcc164b2315c9b85440230a2b84cb |
25-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove some debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48803 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
b70215e35c59625448e790279a7e3ca96971784c |
25-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove some debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48803 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
403dad66604a88d896bd43a39a289c164b7e581d |
25-Mar-2008 |
Owen Anderson <resistor@mac.com> |
StrongPHIElimination doesn't support swapping live intervals like the coalescer does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48802 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
8344fa85a07e2df80c5bd7b9370d3baa5b7c4ea4 |
25-Mar-2008 |
Owen Anderson <resistor@mac.com> |
StrongPHIElimination doesn't support swapping live intervals like the coalescer does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48802 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
cfbb2f074da2842e42956d3b4c21e91b37f36f06 |
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
A quick nm audit turned up several fixed tables and objects that were marked read-write. Use const so that they can be allocated in a read-only segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48800 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
seudoSourceValue.cpp
electionDAG/ScheduleDAG.cpp
|
12300e1e31559e34d96e533506f74f7cb77020a2 |
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
A quick nm audit turned up several fixed tables and objects that were marked read-write. Use const so that they can be allocated in a read-only segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48800 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
seudoSourceValue.cpp
electionDAG/ScheduleDAG.cpp
|
62c7b8c3713f7178991fac299abcb04e3818ca65 |
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Avoid outputing spaces at the ends of lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48797 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
35a5415d68ca68cf51788b42d92be5ccd3181df3 |
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Avoid outputing spaces at the ends of lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48797 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
73ee9c3fb1f15cbfb2f91a4f645834c94a76a949 |
25-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Do not align loops if optimizing for size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48794 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
70570249ade1085682dee8daa3aca9ff187e2481 |
25-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Do not align loops if optimizing for size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48794 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
26471c48b3d49bdbcfcc05cb9a575b5fa123fbbf |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48792 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
5d00cb423a9033583f5bdb46d5bfee2dd23cf02e |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48792 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
cffbd2562a5e3ba435dd2b622710ec272c634da5 |
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d0088429325fea57087191b91b1be2119a608e58 |
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
a2fb634defce316ec972aa6f3ca3a941b4656f5e |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
lastRegisterUse() should ignore identity copies. Those will be erased. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48759 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0013e453bf3652f7341a3ba1149ba173891c1c79 |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
lastRegisterUse() should ignore identity copies. Those will be erased. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48759 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ea10046ebc7aa103e8434ef63c4350d676dc20f3 |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unneeded test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e40b51cd8322c5b9f51ffbc1589280db05f7d97b |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unneeded test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6f83fc8afb7f31185a90f14a1b7dbf51492b0e92 |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
If the coalescer commuted a def MI to allow coalescing, it can changed a previously coalesced copy into an non-identity copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48752 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8e5f24264a26020ecb2aaa7f4b7cbdb2d7c7d8fb |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
If the coalescer commuted a def MI to allow coalescing, it can changed a previously coalesced copy into an non-identity copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48752 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
af8c563e11a9efd848bd5402819e0649883a777d |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an assertion to catch register of illegal class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48751 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
af091bdebb11e275b620a7638533fbd1ed388b10 |
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an assertion to catch register of illegal class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48751 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9a31444ee6395b8c9b9eeb15581751f365665618 |
24-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove #include<iostream>, which I was using for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48739 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0add94be6c5c602747805bc0cbaf8222d1e48f7b |
24-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove #include<iostream>, which I was using for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48739 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4c931fc6e2a901f86ef20d5844bcad3cfd99c781 |
24-Mar-2008 |
Dan Gohman <gohman@apple.com> |
APIntify SelectionDAG's EXTRACT_ELEMENT code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
452b4ce4d8ec5ac79706f7811fc8f4405aaa650c |
24-Mar-2008 |
Dan Gohman <gohman@apple.com> |
APIntify SelectionDAG's EXTRACT_ELEMENT code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e46611e6bc41bb6e7256e03b42b4796033167b91 |
24-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Be sure to remove intervals after we've joined them. Also, remove some duplicated code. With this pass, StrongPHIElim can compile very simple testcases correctly. There's still a ways to go before it's ready for prime time, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48719 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
394f6bcb45d25f2685dc2b54b0b211c0b35e2737 |
24-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Be sure to remove intervals after we've joined them. Also, remove some duplicated code. With this pass, StrongPHIElim can compile very simple testcases correctly. There's still a ways to go before it's ready for prime time, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48719 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
c73ede0a9beaee2e11d004f816a8207d9bd79072 |
22-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Another comments fixing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
851493043e6cf5b16727dd2e1ed291152555ea34 |
22-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Another comments fixing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
08b1173971a51eb89d7d6ee0992c39170c86994a |
22-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach DAG combiner to commute commutable binary nodes in order to achieve sdisel CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48673 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
d111358ce048c11a4e114418731ee892da23abdc |
22-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach DAG combiner to commute commutable binary nodes in order to achieve sdisel CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48673 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
c9235d2e855c56e9aa157969f8132a05f9ba89d8 |
22-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Don't include <map> in Pass.h, which doesn't need it. This requires adding <map> to many files that actually do need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48667 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
achOWriter.h
egAllocSimple.cpp
|
249ddbfb29dfc2335f98984878c52b2c77703417 |
22-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Don't include <map> in Pass.h, which doesn't need it. This requires adding <map> to many files that actually do need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48667 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
achOWriter.h
egAllocSimple.cpp
|
4145bd509d0be0ea2ebea693a7ad15948480d982 |
21-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix -view-sunit-dags to support cross-rc-copy nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
d0627015cec0b75f7044b7aef28f6e802e0f4648 |
21-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix -view-sunit-dags to support cross-rc-copy nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
70366b96a5d70b232c3d42e76b83e6b54190bdb7 |
21-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
A couple of kill marker maintainence bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48653 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
08cab3dfbb542126195b2593e5d6a99bc687ef26 |
21-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
A couple of kill marker maintainence bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48653 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
276dcbdc8db6614cfd5004dc7dc35e437ddf9c58 |
21-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Introduce a new node for holding call argument flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
c93fae3679c1b0ce8da92aaf825630fcc8580a00 |
21-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Introduce a new node for holding call argument flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
b9b042800445178e2dff1c83ead3d08d3f36dc29 |
20-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Check even more carefully before applying this DAGCombine transform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
21e8a955ef3481976b562d7f10db967f6def3d2d |
20-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Check even more carefully before applying this DAGCombine transform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
260e07ec8ceb98337a9eeb5377d97dfcc0058a25 |
20-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix this xform: (sra (shl X, m), result_size) -> (sign_extend (trunc (shl X, result_size - n - m))) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ca0e80fc6b927e48363387a8f721883141f8b2b3 |
20-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix this xform: (sra (shl X, m), result_size) -> (sign_extend (trunc (shl X, result_size - n - m))) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
71a2cb25ebc818383dd0f80475bc166f834e8d99 |
20-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
detabify llvm, patch by Mike Stump! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48577 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
|
6734c3a8ea14d2bbdf7704794f3df2e0a28aacb2 |
20-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
detabify llvm, patch by Mike Stump! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48577 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
|
15cbde3cf6542ec9c120f59d5d8f3586f5f332c6 |
19-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Fix X86's isTruncateFree to not claim that truncate to i1 is free. This fixes Bill's testcase that failed for r48491. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fc5c164b753c9ca42901514c645c70e5b61c5c11 |
19-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Fix X86's isTruncateFree to not claim that truncate to i1 is free. This fixes Bill's testcase that failed for r48491. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
82a6d23700d5bb42fcbbc3ae17a7c85e97888ad1 |
19-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a coalescer bug caused by a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48526 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5064c0d5424fae66e67b2b4d96ee7e697042c29b |
19-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a coalescer bug caused by a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48526 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
94202018c51d662c793a77a5e8239f3a35e11e60 |
19-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix live variables issues: 1. If part of a register is re-defined, an implicit kill and an implicit def are added to denote read / mod / write. However, this should only be necessary if the register is actually read later. This is a performance issue. 2. If a sub-register is being defined, and it doesn't have a previous use, do not add a implicit kill to the last use of a super-register: = EAX, AX<imp-use,kill> ... AX = In this case, EAX is live but AX is killed, this is wrong and will cause the coalescer to do bad things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48521 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
97a51300996b99fe55d568c339748538e65f4d98 |
19-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix live variables issues: 1. If part of a register is re-defined, an implicit kill and an implicit def are added to denote read / mod / write. However, this should only be necessary if the register is actually read later. This is a performance issue. 2. If a sub-register is being defined, and it doesn't have a previous use, do not add a implicit kill to the last use of a super-register: = EAX, AX<imp-use,kill> ... AX = In this case, EAX is live but AX is killed, this is wrong and will cause the coalescer to do bad things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48521 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
2974e49019b05ee4bec175a8d9cc736a512e3254 |
18-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r48491. It's breaking test/CodeGen/X86/xorl.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48510 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c74ab2edfd76cd9b0e903082ad1c73d19ffb61bc |
18-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r48491. It's breaking test/CodeGen/X86/xorl.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48510 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cf49819877addffa29cbb33dc6aab963868e74ee |
18-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Make conversions of i8/i16 to ppcf128 work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6a779c89400c76ed380648e254436b56859206ed |
18-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Make conversions of i8/i16 to ppcf128 work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
981576c8182d9099030153772ac2c40ef79290fb |
18-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Target independent DAG transform to use truncate for field extraction + sign extend on targets where this is profitable. Passes nightly on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48491 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c1ca3cc7cbbf824cc877d65d211e4a0199447821 |
18-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Target independent DAG transform to use truncate for field extraction + sign extend on targets where this is profitable. Passes nightly on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48491 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3c88d742d4e89e9b2ed7bd10822d18748b97d488 |
18-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite code that propagate isDead information after a dead copy is coalesced. This remove some ugly spaghetti code and fixed a number of subtle bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48490 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
04a848204f6a9b1ac3b840eeeef4ab7cce9ca4d5 |
18-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite code that propagate isDead information after a dead copy is coalesced. This remove some ugly spaghetti code and fixed a number of subtle bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48490 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
755ebab37db73798bb0732f5c6e2ffeeea090559 |
17-Mar-2008 |
Owen Anderson <resistor@mac.com> |
A first attempt at updating live intervals, with code lifted from the coalescer. This doesn't really work, but gets us farther than before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48446 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
8247b96636a9faabef091945a2116dc215dcd857 |
17-Mar-2008 |
Owen Anderson <resistor@mac.com> |
A first attempt at updating live intervals, with code lifted from the coalescer. This doesn't really work, but gets us farther than before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48446 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
c9298235251b014e86a7368d92b589d093acb64a |
16-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Make insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass. Add a new TII, subreg_to_reg, which is like insert_subreg except that it takes an immediate implicit value to insert into rather than a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48412 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
76d72daac239517dd47b3ab462af7642fd10fefd |
16-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Make insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass. Add a new TII, subreg_to_reg, which is like insert_subreg except that it takes an immediate implicit value to insert into rather than a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48412 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
20ccded7dec5b90e58f649f4fb95b166a642b8cb |
15-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove isImplicitDef TargetInstrDesc flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48381 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fdc1706d009363c2e0008684b1813721f2d6e82a |
15-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove isImplicitDef TargetInstrDesc flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48381 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
da47e6e0d003c873da960361549e57ee4617c301 |
15-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48380 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/ScheduleDAG.cpp
|
3c0eda5a21a0e79a345fc9da0489fdbb5ef6b07e |
15-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48380 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/ScheduleDAG.cpp
|
23a1d0c1613002073e4340deb34449a61826c93c |
14-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Do not generate special entries in the dwarf eh table for nounwind calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
85127f6fa8c6916862f4e81550a404dd6cc708a2 |
14-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Do not generate special entries in the dwarf eh table for nounwind calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c17ba8a28d2f83dd320745c0c9994464845ac990 |
14-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2138. Apparently any modification to a std::multimap (including remove entries for a different key) can invalidate multimap iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48371 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
de1935953967adc69ef19c96c087660974207f21 |
14-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2138. Apparently any modification to a std::multimap (including remove entries for a different key) can invalidate multimap iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48371 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
d1ba3338d1b0084122c32a8085e41a8dd5e91edc |
14-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Simplify using getIntPtrConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesSplit.cpp
|
1f59dc09e6670841f26d6db940843573ad6d7946 |
14-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Simplify using getIntPtrConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesSplit.cpp
|
5922f561c65968ef1865cc8434d191041e450602 |
14-Mar-2008 |
Nate Begeman <natebegeman@mac.com> |
Tabs -> spaces Use getIntPtrConstant in a couple places to shorten stuff up Handle splitting vector shuffles with undefs in the mask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8bb3cb3b98d017204540a51407fdb82ed555d16c |
14-Mar-2008 |
Nate Begeman <natebegeman@mac.com> |
Tabs -> spaces Use getIntPtrConstant in a couple places to shorten stuff up Handle splitting vector shuffles with undefs in the mask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
db2d773fe6e53995c49c11ba34271fc559e286a1 |
14-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Livein copy scheduling fixes: do not coalesce physical register copies, correctly determine the safe location to insert the copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a96f9644e3cde848afe811fba9f4efdbdea26950 |
14-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Livein copy scheduling fixes: do not coalesce physical register copies, correctly determine the safe location to insert the copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
002e5d0a170dadd5c307e0b00d8c7970835837e6 |
13-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48344 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
9d24dc7472df0ac5c3c516987979058673ef02f6 |
13-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48344 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
c438f35df99989ac1d1e80236d72f22ea5ec6a8c |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Undo tweak. It had no obvious benefit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48341 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
390333360f9271ab8f346a6ba7494a1291842e9e |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Undo tweak. It had no obvious benefit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48341 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
a2248682ae7d18444188d54f01ea3bb9e434db6c |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48337 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0da7d78f8a3dff5d9bfd08468c3538ea400a3257 |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48337 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0099ae2468c6c7c1e73f4df539d6e3e1ccdfafaa |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't try to sink 3-address instruction if convertToThreeAddress created more than one instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48336 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
fdde77ba11234b3770dcaf9704874d0a581c2ac2 |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't try to sink 3-address instruction if convertToThreeAddress created more than one instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48336 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f3ff6992a3750293c056255b4b8a6f429f6e168e |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unused command line option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48334 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
1a1af002a8d584b2ad9d1af45f0a79d85b889986 |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unused command line option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48334 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
875357d213ab1830efa1e3e9de0fcde95df7eefc |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
TwoAddressInstructionPass enhancement. After it converts a two address instruction into a 3-address one, sink it past the instruction that kills the read-mod-write register if its definition is used past the kill. This reduces the number of live register by one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48333 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
0c85fe6cbeeb5256f98d859198e04fa846b8b2c9 |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
TwoAddressInstructionPass enhancement. After it converts a two address instruction into a 3-address one, sink it past the instruction that kills the read-mod-write register if its definition is used past the kill. This reduces the number of live register by one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48333 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
6634e26aa11b0e2eabde8b3b463bb943364f8d9d |
13-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects. Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48329 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
b371e03ea7aa690d7ceb3a795e710751e918d350 |
13-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects. Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48329 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
1c9b8cf28c868ce2def95ba73be8ff437dba0c33 |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unused options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48319 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e6b934fb6968f76d57149896b887aac6c500dacd |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unused options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48319 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b27087f5aa574f875598f4a309b7dd687c64a455 |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor some code out of MachineSink into a MachineInstr query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48311 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineSink.cpp
|
be85662cf2ca0df74ad595ac2a2deae7e4799f6b |
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor some code out of MachineSink into a MachineInstr query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48311 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineSink.cpp
|
9e23336d0c99fc5cae04037ead6d8f2b677e8764 |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Experimental scheduler change to schedule / coalesce the copies added for function livein's. Take 2008-03-10-RegAllocInfLoop.ll, the schedule looks like this after these copies are inserted: entry: 0x12049d0, LLVM BB @0x1201fd0, ID#0: Live Ins: %EAX %EDX %ECX %reg1031<def> = MOVPC32r 0 %reg1032<def> = ADD32ri %reg1031, <es:_GLOBAL_OFFSET_TABLE_>, %EFLAGS<imp-def> %reg1028<def> = MOV32rr %EAX %reg1029<def> = MOV32rr %EDX %reg1030<def> = MOV32rr %ECX %reg1027<def> = MOV8rm %reg0, 1, %reg0, 0, Mem:LD(1,1) [0x1201910 + 0] %reg1025<def> = MOV32rr %reg1029 %reg1026<def> = MOV32rr %reg1030 %reg1024<def> = MOV32rr %reg1028 The copies unnecessarily increase register pressure and it will end up requiring a physical register to be spilled. With -schedule-livein-copies: entry: 0x12049d0, LLVM BB @0x1201fa0, ID#0: Live Ins: %EAX %EDX %ECX %reg1031<def> = MOVPC32r 0 %reg1032<def> = ADD32ri %reg1031, <es:_GLOBAL_OFFSET_TABLE_>, %EFLAGS<imp-def> %reg1024<def> = MOV32rr %EAX %reg1025<def> = MOV32rr %EDX %reg1026<def> = MOV32rr %ECX %reg1027<def> = MOV8rm %reg0, 1, %reg0, 0, Mem:LD(1,1) [0x12018e0 + 0] Much better! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
8725a1177fdd441520736f8f4af0f9a65ba07818 |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Experimental scheduler change to schedule / coalesce the copies added for function livein's. Take 2008-03-10-RegAllocInfLoop.ll, the schedule looks like this after these copies are inserted: entry: 0x12049d0, LLVM BB @0x1201fd0, ID#0: Live Ins: %EAX %EDX %ECX %reg1031<def> = MOVPC32r 0 %reg1032<def> = ADD32ri %reg1031, <es:_GLOBAL_OFFSET_TABLE_>, %EFLAGS<imp-def> %reg1028<def> = MOV32rr %EAX %reg1029<def> = MOV32rr %EDX %reg1030<def> = MOV32rr %ECX %reg1027<def> = MOV8rm %reg0, 1, %reg0, 0, Mem:LD(1,1) [0x1201910 + 0] %reg1025<def> = MOV32rr %reg1029 %reg1026<def> = MOV32rr %reg1030 %reg1024<def> = MOV32rr %reg1028 The copies unnecessarily increase register pressure and it will end up requiring a physical register to be spilled. With -schedule-livein-copies: entry: 0x12049d0, LLVM BB @0x1201fa0, ID#0: Live Ins: %EAX %EDX %ECX %reg1031<def> = MOVPC32r 0 %reg1032<def> = ADD32ri %reg1031, <es:_GLOBAL_OFFSET_TABLE_>, %EFLAGS<imp-def> %reg1024<def> = MOV32rr %EAX %reg1025<def> = MOV32rr %EDX %reg1026<def> = MOV32rr %ECX %reg1027<def> = MOV8rm %reg0, 1, %reg0, 0, Mem:LD(1,1) [0x12018e0 + 0] Much better! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d8742eeb2f7cabc45a1c3736a2780bf87ba684ba |
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Initial soft-float support for LegalizeTypes. I rewrote the fcopysign expansion from LegalizeDAG to get rid of what seems to be a bug: the use of sign extension means that when copying the sign bit from an f32 to an f64, the upper 32 bits of the f64 (now an i64) are set, not just the top bit... I also generalized it to work for any sized floating point types, and removed the bogosity: SDOperand Mask1 = (SrcVT == MVT::f64) ? DAG.getConstantFP(BitsToDouble(1ULL << 63), SrcVT) : DAG.getConstantFP(BitsToFloat(1U << 31), SrcVT); Mask1 = DAG.getNode(ISD::BIT_CONVERT, SrcNVT, Mask1); (here SrcNVT is an integer with the same size as SrcVT). As far as I can see this takes a 1 << 63, converts to a double, converts that to a floating point constant then converts that to an integer constant, ending up with... 1 << 63 as an integer constant! So I just generate this integer constant directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesSplit.cpp
|
40d4e512f1a420a79f8d8fca7abc6dc16add6059 |
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Initial soft-float support for LegalizeTypes. I rewrote the fcopysign expansion from LegalizeDAG to get rid of what seems to be a bug: the use of sign extension means that when copying the sign bit from an f32 to an f64, the upper 32 bits of the f64 (now an i64) are set, not just the top bit... I also generalized it to work for any sized floating point types, and removed the bogosity: SDOperand Mask1 = (SrcVT == MVT::f64) ? DAG.getConstantFP(BitsToDouble(1ULL << 63), SrcVT) : DAG.getConstantFP(BitsToFloat(1U << 31), SrcVT); Mask1 = DAG.getNode(ISD::BIT_CONVERT, SrcNVT, Mask1); (here SrcNVT is an integer with the same size as SrcVT). As far as I can see this takes a 1 << 63, converts to a double, converts that to a floating point constant then converts that to an integer constant, ending up with... 1 << 63 as an integer constant! So I just generate this integer constant directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesFloatToInt.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesSplit.cpp
|
b576931ca23ccd71bc702f3cdee1b365314bbf4f |
12-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Change VirtRegMap's dump to dump to cerr, not DOUT, so that it can be called from within a debuger without having -debug specified on the command-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48298 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ecb9ad5742b5dba1c834e0c79eff2214454e3193 |
12-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Change VirtRegMap's dump to dump to cerr, not DOUT, so that it can be called from within a debuger without having -debug specified on the command-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48298 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
39e33acf0aba655c96d3e37703b506cbf470c483 |
12-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48297 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
7d45f4d34423fed46e8e846bee602a3d8735d3a6 |
12-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48297 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
87a8615015ad85f1a95f79da221c7da9428d2208 |
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesScalarize.cpp
|
877c7a6838d51a6acd5e7bbf2c379fdcabd423a0 |
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesScalarize.cpp
|
25eb043759c23b61769108f78382eb9701c41db2 |
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Don't try to extract an i32 from an f64. This getCopyToParts problem was noticed by the new LegalizeTypes infrastructure. In order to avoid this kind of thing in the future I've added a check that EXTRACT_ELEMENT is only used with integers. Once LegalizeTypes is up and running most likely BUILD_PAIR and EXTRACT_ELEMENT can be removed, in favour of using apints instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48294 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c4d85175a252066fde78c3c79a22fc9618351976 |
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Don't try to extract an i32 from an f64. This getCopyToParts problem was noticed by the new LegalizeTypes infrastructure. In order to avoid this kind of thing in the future I've added a check that EXTRACT_ELEMENT is only used with integers. Once LegalizeTypes is up and running most likely BUILD_PAIR and EXTRACT_ELEMENT can be removed, in favour of using apints instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48294 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c8e3b147eea6155eb047340205730b5332259bb6 |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Clean up my own mess. X86 lowering normalize vector 0 to v4i32. However DAGCombine can fold (sub x, x) -> 0 after legalization. It can create a zero vector of a type that's not expected (e.g. v8i16). We don't want to disable the optimization since leaving a (sub x, x) is really bad. Add isel patterns for other types of vector 0 to ensure correctness. It's highly unlikely to happen other than in bugpoint reduced test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a15896ec75ccbfbd12600d9cd16dc42c4c39a8ac |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Clean up my own mess. X86 lowering normalize vector 0 to v4i32. However DAGCombine can fold (sub x, x) -> 0 after legalization. It can create a zero vector of a type that's not expected (e.g. v8i16). We don't want to disable the optimization since leaving a (sub x, x) is really bad. Add isel patterns for other types of vector 0 to ensure correctness. It's highly unlikely to happen other than in bugpoint reduced test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
dfd07eab24394659ad445d6f7998fa31c1908d73 |
12-Mar-2008 |
Owen Anderson <resistor@mac.com> |
We also need to collect the VN IDs for the PHI instructions for later updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48278 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f7093fd0d3bd4f372c06b1c4f5b7852c13a105ae |
12-Mar-2008 |
Owen Anderson <resistor@mac.com> |
We also need to collect the VN IDs for the PHI instructions for later updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48278 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0031671b414f3abb9f2b97a073207957749c80bc |
12-Mar-2008 |
Owen Anderson <resistor@mac.com> |
When we're determining what registers to coallesce, track the VNInfo IDs for the definitions that feed the PHI instructions. We'll need these IDs in order to update LiveIntervals properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48277 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
44cccb0aca26985bbb6247accbe994d56cbea9a8 |
12-Mar-2008 |
Owen Anderson <resistor@mac.com> |
When we're determining what registers to coallesce, track the VNInfo IDs for the definitions that feed the PHI instructions. We'll need these IDs in order to update LiveIntervals properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48277 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0cec956d814123140759cd25fec8f07e65b43849 |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Total brain cramp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
74b7f7bbd7426f5b292f30348fff9b744a81e75f |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Total brain cramp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
17d5f5496c96236764fdf3e278cecca334c6d25e |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Set NextMII after issuing a physical register spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48263 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
e52af91e43455bd4cd3e397ee80b02bd2fd1bff9 |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Set NextMII after issuing a physical register spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48263 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
4191b96f41b83d32ee7aa761c0d466622dac9c01 |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Minor debug output bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48261 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7c76af2de9a06943da4cce9e356ca829da11c017 |
12-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Minor debug output bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48261 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
4d86e2a6b8edc814165a3e63f55bfaea0b8f224d |
11-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Correctly propagate thread-local flag from aliasee to alias. This fixes PR2137 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48257 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dd9dc5d5ecbb3e3982f34022311a5513b3ffbba6 |
11-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Correctly propagate thread-local flag from aliasee to alias. This fixes PR2137 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48257 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bfae83139dcb4fffd50b939e1b1224b0126f04d4 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Use PassManagerBase instead of FunctionPassManager for functions that merely add passes. This allows them to be used with either FunctionPassManager or PassManager, or even with a custom new kind of pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48256 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achOWriter.cpp
|
e34aa7774f75505a532c5b1de6af79704ad72f81 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Use PassManagerBase instead of FunctionPassManager for functions that merely add passes. This allows them to be used with either FunctionPassManager or PassManager, or even with a custom new kind of pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48256 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achOWriter.cpp
|
22c9e65643e0c6b43be37a19e59491ef0081092c |
11-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Honour aliases visibility during asm emission git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48249 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a6f01837a80670935b26080daf0d19bea2fc98cd |
11-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Honour aliases visibility during asm emission git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48249 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c1f53c742620dd4f2460685477303002bba8a8d8 |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Transfer physical register spill info when load / store folding happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48246 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
1eeb2efcf4b484b9da8d7b4ffa965786bb834896 |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Transfer physical register spill info when load / store folding happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48246 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
9736028d84de3a72dd8db5f49cfaa07280154a0e |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Use the correct value for InSignBit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
343b4d98232b0f59fa45ab9645226cb0d4baf424 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Use the correct value for InSignBit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ef5d194aaa7d09937759447bceca0ff80bee1261 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Initial codegen support for functions and calls with multiple return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3fdea2e28b849b59e22bef28019faba58b9e4775 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Initial codegen support for functions and calls with multiple return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1fab4a6bbb6eb5d44d35c8aade2493143b44d288 |
11-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Recommitting parts of r48130. These do not appear to cause the observed failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48223 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
d0c8eaaf4275ec4f39b0798393a9dc5182100f4b |
11-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Recommitting parts of r48130. These do not appear to cause the observed failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48223 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
ea2378138fed05c907f698812a06356a5c8fd2ec |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use TargetRegisterInfo::getPhysicalRegisterRegClass. Remove duplicated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48221 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
eef4cf189cac1bf9ea25b9898ba209f980a39586 |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use TargetRegisterInfo::getPhysicalRegisterRegClass. Remove duplicated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48221 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
676dd7c80b6f91178452535ac45ca58feb23cc42 |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48218 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
irtRegMap.cpp
irtRegMap.h
|
14cc83fc39c895bb5a8b6055fa4d7b1e454c685d |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48218 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
irtRegMap.cpp
irtRegMap.h
|
ac7613a3263caa80d735f3fbf2b9f7b81deabc08 |
11-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Some LegalizeTypes code factorization and minor enhancements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesSplit.cpp
|
664d27f26fa667a4eb83b2e482f673346b193cf1 |
11-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Some LegalizeTypes code factorization and minor enhancements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesSplit.cpp
|
5d03f21744f30988b962f023bd397bb5c6a20178 |
11-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
compile: double test() {} into: _test: fldz ret instead of: _test: subl $12, %esp #IMPLICIT_DEF %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e6465dde721ff9ad5d5407dc4616fe8cab9b8eef |
11-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
compile: double test() {} into: _test: fldz ret instead of: _test: subl $12, %esp #IMPLICIT_DEF %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c5733ac5d31b4cac5af0bc769411386d931237ba |
11-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
variadic instructions don't have operand info for variadic arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48208 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
92d5128d2864330cd5dce9658f59c5aac983ddcb |
11-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
variadic instructions don't have operand info for variadic arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48208 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
034f60ed24c53c1e37f7695965f782faec2dff2b |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Generalize ExpandIntToFP to handle the case where the operand is legal and it's the result that requires expansion. This code is a little confusing because the TargetLoweringInfo tables for [US]INT_TO_FP use the operand type (the integer type) rather than the result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8b232ff522973d2cf38a44c9ded1fe849f92c7f8 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Generalize ExpandIntToFP to handle the case where the operand is legal and it's the result that requires expansion. This code is a little confusing because the TargetLoweringInfo tables for [US]INT_TO_FP use the operand type (the integer type) rather than the result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48206 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b7795801001a1537fc6debb37f6d8658bcf6b517 |
11-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
If a register operand comes from the variadic part of a node, don't verify the register constraint matches what the instruction expects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
c3d37ab086626e06154b2466a28dcc3bb27189b2 |
11-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
If a register operand comes from the variadic part of a node, don't verify the register constraint matches what the instruction expects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
524f9617428d6f28f345b6b5177d7873b930085c |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily revert 48175. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48204 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
145d0a29b8b1dc404823eff76892565ad3f9dd56 |
11-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily revert 48175. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48204 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
6cf9b8adf43b0a460fb4ba8ddbff2787f5aa9d5e |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
395097646538ea94d3573408b183d9ae9b8a9f20 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
45f36ea448cabcbd18b1cb0e29af8c70366baf55 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Correctly clone FlaggedNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
b100d80af680c01590c05f0f2cf2d31868e9c9a1 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Correctly clone FlaggedNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
f25275cb3c930b579707e33c22c1e1c5682b89d3 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
APInt-ify this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48194 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesExpand.cpp
|
1f6796f8476548629cb443920bc602614ca65ddd |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
APInt-ify this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48194 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesExpand.cpp
|
a2e9485e34f1348526ed104dbdc194673e291077 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Implement more support for fp-to-i128 and i128-to-fp conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
ec51f643a9a098c6d32ac7ab7c775bdf0d332b89 |
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Implement more support for fp-to-i128 and i128-to-fp conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
a3413804f41f6155d6d4ab8a8ff1abf7c424c3a5 |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
If the register allocator ran out of registers, just abort for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48175 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9f4b42ca3cbe7dbdf5a04a61b40b062f6f57fb09 |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
If the register allocator ran out of registers, just abort for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48175 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
76c605b18ee74e2c521a02431ab9e1ce6912d827 |
10-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix mul expansion to check the correct number of bits for zero extension when checking if an unsigned multiply is safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2594d94fcc0f5c4ffc32059dec5209efa97d55a6 |
10-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Fix mul expansion to check the correct number of bits for zero extension when checking if an unsigned multiply is safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
62fcc41d958bf9b8cee43271789136cb7100705f |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Somewhat better solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cf31b8d763edf30c4d8cb9080de2c81a3764ef09 |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Somewhat better solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d2cde68855125b6815b1575f29cd96927614b0cd |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Default ISD::PREFETCH to expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8d51ab3e4bb3f45ab8818519c5d27154cecf8b72 |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Default ISD::PREFETCH to expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
4499e495eabe8de7d595416a03c56af4688df507 |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 48125, 48126, and 48130 for now to unbreak some x86-64 tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48167 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
bd97af057e8e7d03ae8300e570483ffbb3c40e5a |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 48125, 48126, and 48130 for now to unbreak some x86-64 tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48167 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
5b8f82e35b51bf007de07a7ca9347d804084ddf8 |
10-Mar-2008 |
Scott Michel <scottm@aero.org> |
Give TargetLowering::getSetCCResultType() a parameter so that ISD::SETCC's return ValueType can depend its operands' ValueType. This is a cosmetic change, no functionality impacted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
502151f4cd47b5b42462b95736a0c2ab1d57072a |
10-Mar-2008 |
Scott Michel <scottm@aero.org> |
Give TargetLowering::getSetCCResultType() a parameter so that ISD::SETCC's return ValueType can depend its operands' ValueType. This is a cosmetic change, no functionality impacted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
074223a124e945ee67cacedb99e777265a0c6cb6 |
10-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Minor cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48142 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6a49807ca9861f93d97b941adea0841f7cf0f911 |
10-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Minor cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48142 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
4ff3f1cc573594058a98ffa8f198a81739c523b1 |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Fix a subtle bug in RemoveCopyByCommutingDef. ALR is the live range where the source is defined; BLR is the live range which is defined by the copy. If ALR and BLR overlaps and end of BLR extends beyond end of ALR, e.g. A = or A, B ... B = A ... C = A<kill> ... = B then do not add kills of A to the newly created B interval. - Also fix some kill info update bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48141 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
23910c709081629310454ea14906d536a009b9da |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Fix a subtle bug in RemoveCopyByCommutingDef. ALR is the live range where the source is defined; BLR is the live range which is defined by the copy. If ALR and BLR overlaps and end of BLR extends beyond end of ALR, e.g. A = or A, B ... B = A ... C = A<kill> ... = B then do not add kills of A to the newly created B interval. - Also fix some kill info update bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48141 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
ff247d2ed41dac50d99c5ff534b12f33bb57310a |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Doh git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ba0f30fd59e32c2bfb1ce949fa95ebb05f4d65cc |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Doh git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
eb37ecc88256a9bce6536f9172fc18ac548ac8df |
10-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Move StrongPHIElimination after live interval analysis. This will make things happier down the road. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48138 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
b1e19f5da55d7ac1842423dd99dd0357911801c4 |
10-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Move StrongPHIElimination after live interval analysis. This will make things happier down the road. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48138 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f79e60649a5edea03bdccf8521d77c15cbb33af4 |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid creating BUILD_VECTOR of all zero elements of "non-normalized" type (e.g. v8i16 on x86) after legalizer. Instruction selection does not expect to see them. In all likelihood this can only be an issue in a bugpoint reduced test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8628067377765b56339e988ca44e206b7ceb48cc |
10-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid creating BUILD_VECTOR of all zero elements of "non-normalized" type (e.g. v8i16 on x86) after legalizer. Instruction selection does not expect to see them. In all likelihood this can only be an issue in a bugpoint reduced test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3feb0170a8d65984ce5c01a85e7dfd4005f8bb35 |
10-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Allow insert_subreg into implicit, target-specific values. Change insert/extract subreg instructions to be able to be used in TableGen patterns. Use the above features to reimplement an x86-64 pseudo instruction as a pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48130 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
5615ce4ec4c1b68fd48f4a19bc19a4f77c97c20a |
10-Mar-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Allow insert_subreg into implicit, target-specific values. Change insert/extract subreg instructions to be able to be used in TableGen patterns. Use the above features to reimplement an x86-64 pseudo instruction as a pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48130 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
electionDAG/ScheduleDAG.cpp
|
b8cafe3427a168414400e5dfcbea78996792d2c3 |
10-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Increase ISD::ParamFlags to 64 bits. Increase the ByValSize field to 32 bits, thus enabling correct handling of ByVal structs bigger than 0x1ffff. Abstract interface a bit. Fixes gcc.c-torture/execute/pr23135.c and gcc.c-torture/execute/pr28982b.c in gcc testsuite (were ICE'ing on ppc32, quietly producing wrong code on x86-32.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGISel.cpp
|
322e3b73f704add3cd636a47381bacf1c6b2aa00 |
10-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Increase ISD::ParamFlags to 64 bits. Increase the ByValSize field to 32 bits, thus enabling correct handling of ByVal structs bigger than 0x1ffff. Abstract interface a bit. Fixes gcc.c-torture/execute/pr23135.c and gcc.c-torture/execute/pr28982b.c in gcc testsuite (were ICE'ing on ppc32, quietly producing wrong code on x86-32.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGISel.cpp
|
4c55c633d9fd795e0e39642daa07e592c7a285aa |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
remove an extraneous (and ugly) default argument, thanks Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48117 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
96d0b96930844d116fcde59f0d97dd0d41f8fb97 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
remove an extraneous (and ugly) default argument, thanks Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48117 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4468c1fd1c3dcc2cca7b881eb9f37f018405d2d9 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
fp_round's produced by getCopyFromParts should always be exact, because they are produced by calls (which are known exact) and by cross block copies which are known to be produced by extends. This improves: define double @test2() { %tmp85 = call double asm sideeffect "fld0", "={st(0)}"() ret double %tmp85 } from: _test2: subl $20, %esp # InlineAsm Start fld0 # InlineAsm End fstpl 8(%esp) movsd 8(%esp), %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $20, %esp #FP_REG_KILL ret to: _test2: # InlineAsm Start fld0 # InlineAsm End #FP_REG_KILL ret by avoiding a f64 <-> f80 trip git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48108 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a7355b6a9de4d8a358a9ba6872ddfe909be27692 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
fp_round's produced by getCopyFromParts should always be exact, because they are produced by calls (which are known exact) and by cross block copies which are known to be produced by extends. This improves: define double @test2() { %tmp85 = call double asm sideeffect "fld0", "={st(0)}"() ret double %tmp85 } from: _test2: subl $20, %esp # InlineAsm Start fld0 # InlineAsm End fstpl 8(%esp) movsd 8(%esp), %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $20, %esp #FP_REG_KILL ret to: _test2: # InlineAsm Start fld0 # InlineAsm End #FP_REG_KILL ret by avoiding a f64 <-> f80 trip git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48108 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f30e1cf9b7f96395768e710b4707ecd5587e1185 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
teach X86InstrInfo::copyRegToReg how to copy into ST(0) from an RFP register class. Teach ScheduleDAG how to handle CopyToReg with different src/dst reg classes. This allows us to compile trivial inline asms that expect stuff on the top of x87-fp stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
0d12872f84c388a13107a4b96fe7f3ab9200f5f0 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
teach X86InstrInfo::copyRegToReg how to copy into ST(0) from an RFP register class. Teach ScheduleDAG how to handle CopyToReg with different src/dst reg classes. This allows us to compile trivial inline asms that expect stuff on the top of x87-fp stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48107 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
02b6d25a2702d8857b82d333f290550e3c6ec4dc |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Add ScheduleDAG support for copytoreg where the src/dst register are in different register classes, e.g. copy of ST(0) to RFP*. This gets some really trivial inline asm working that plops things on the top of stack (PR879) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e6fdb067f070ac3b648fb93a6a81c430d139fdbf |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Add ScheduleDAG support for copytoreg where the src/dst register are in different register classes, e.g. copy of ST(0) to RFP*. This gets some really trivial inline asm working that plops things on the top of stack (PR879) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d9c4c450bf3836cf71047364253d582a6cdaf5ad |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
fix 80 col violation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48100 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
4e15fcc62ddd8f9f2c3f61499427e41eb815ddc0 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
fix 80 col violation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48100 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d43d85ccc9cb8d4cd00e5cf38827f50b415255ff |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
extend fp values with FP_EXTEND not FP_ROUND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f8eb9e8d1dd327ffe9ece689f2959e235f161aa8 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
extend fp values with FP_EXTEND not FP_ROUND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f9d95c8835bc4f9072c33e1f9ebaa581a4d3268d |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Fix two problems in SelectionDAGLegalize::ExpandBUILD_VECTOR's handling of BUILD_VECTORS that only have two unique elements: 1. The previous code was nondeterminstic, because it walked a map in SDOperand order, which isn't determinstic. 2. The previous code didn't handle the case when one element was undef very well. Now we ensure that the generated shuffle mask has the undef vector on the RHS (instead of potentially being on the LHS) and that any elements that refer to it are themselves undef. This allows us to compile CodeGen/X86/vec_set-9.ll into: _test3: movd %rdi, %xmm0 punpcklqdq %xmm0, %xmm0 ret instead of: _test3: movd %rdi, %xmm1 #IMPLICIT_DEF %xmm0 punpcklqdq %xmm1, %xmm0 ret ... saving a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d8cee73bf7f87593fc6a64fb729757b8e3192adc |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Fix two problems in SelectionDAGLegalize::ExpandBUILD_VECTOR's handling of BUILD_VECTORS that only have two unique elements: 1. The previous code was nondeterminstic, because it walked a map in SDOperand order, which isn't determinstic. 2. The previous code didn't handle the case when one element was undef very well. Now we ensure that the generated shuffle mask has the undef vector on the RHS (instead of potentially being on the LHS) and that any elements that refer to it are themselves undef. This allows us to compile CodeGen/X86/vec_set-9.ll into: _test3: movd %rdi, %xmm0 punpcklqdq %xmm0, %xmm0 ret instead of: _test3: movd %rdi, %xmm1 #IMPLICIT_DEF %xmm0 punpcklqdq %xmm1, %xmm0 ret ... saving a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48060 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f3ba434781daa1c2b16f77a91e5209c21ce12428 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Teach SD some vector identities, allowing us to compile vec_set-9 into: _test3: movd %rdi, %xmm1 #IMPLICIT_DEF %xmm0 punpcklqdq %xmm1, %xmm0 ret instead of: _test3: #IMPLICIT_DEF %rax movd %rax, %xmm0 movd %rdi, %xmm1 punpcklqdq %xmm1, %xmm0 ret This is still not ideal. There is no reason to two xmm regs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48058 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9f0705c05e504a58860a90d04bcd3984fb605556 |
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Teach SD some vector identities, allowing us to compile vec_set-9 into: _test3: movd %rdi, %xmm1 #IMPLICIT_DEF %xmm0 punpcklqdq %xmm1, %xmm0 ret instead of: _test3: #IMPLICIT_DEF %rax movd %rax, %xmm0 movd %rdi, %xmm1 punpcklqdq %xmm1, %xmm0 ret This is still not ideal. There is no reason to two xmm regs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48058 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
27b7db549e4c5bff4579d209304de5628513edeb |
08-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Implement x86 support for @llvm.prefetch. It corresponds to prefetcht{0|1|2} and prefetchnta instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48042 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
d1d68074a0e6eebbfdde72a29e14f1cd3e831c67 |
08-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Implement x86 support for @llvm.prefetch. It corresponds to prefetcht{0|1|2} and prefetchnta instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48042 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
d93ae242d3bb0a306c05a03dad9bf3ec8eba8ceb |
08-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Something that kills a super-register also kills the sub-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48038 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
8580f03c8acaab3ce437fa367439726b446cf654 |
08-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Something that kills a super-register also kills the sub-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48038 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
d68f47c6fd744e051f7f2d97b6366d40bf27c438 |
07-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a register scavenger bug. If a def is re-defining part of a super register, there must be an implicit def of the super-register on the MI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48024 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
3b8021173b5bc1194eec787971f2909960c7a631 |
07-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a register scavenger bug. If a def is re-defining part of a super register, there must be an implicit def of the super-register on the MI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48024 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
ed1fcd8987a7d39ca69bfa3cbf14b270738f029c |
07-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
When setting the "unused" info, take into account something like this: %r3<def> = OR %x3<kill>, %x3 We don't want to mark the %r3 as unused even though it's a sub-register of %x3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48003 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
7bd225597ac7aca2fde7b9d99173b6b9600603d8 |
07-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
When setting the "unused" info, take into account something like this: %r3<def> = OR %x3<kill>, %x3 We don't want to mark the %r3 as unused even though it's a sub-register of %x3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48003 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
eb49c4e008522df75f1b3f17ec0e2644eb4b1259 |
06-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47998 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
eadaf4495d25535c9fed7d696a5891eb6ad302ce |
06-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47998 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2cf36e07722d1e82250fc2d87d16b4b1be88a04e |
06-Mar-2008 |
Gabor Greif <ggreif@gmail.com> |
some more spelling changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47996 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
026615962c3eb1fc9dfa0093be6082411a60e94f |
06-Mar-2008 |
Gabor Greif <ggreif@gmail.com> |
some more spelling changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47996 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
433f6f62ca858c20d5d3f561e63818c2fda06ebe |
06-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Constant fold SIGN_EXTEND_INREG with ashr not lshr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7faa1d74f8d347615a0ff54eb05f8f0ac35af448 |
06-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Constant fold SIGN_EXTEND_INREG with ashr not lshr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ecb2a8b9bc727308a0ccfbd92c87b7533c68aab8 |
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a coalescer bug wrt how dead copy interval is shortened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47966 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
e4dc3b26de711866d996d9c88052d70413492dc4 |
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a coalescer bug wrt how dead copy interval is shortened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47966 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
0ea0356dff38dfd0420b8c0a2fdf2fae7898c024 |
05-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Clarify that CALLSEQ_START..END may not be nested, and add some protection against creating such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ac246275b5c9541579515501e87c8b0763d9f6a1 |
05-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Clarify that CALLSEQ_START..END may not be nested, and add some protection against creating such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ec4a5672f86a42730d8fcf98243322520eaffb33 |
05-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Generalize FP constant shrinking optimization to apply to any vt except ppc long double. This allows us to shrink constant pool entries for x86 long double constants, which in turn allows us to use flds/fldl instead of fldt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47938 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d037d4843c6cf1c39fa1f076f0d623de6e051b05 |
05-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Generalize FP constant shrinking optimization to apply to any vt except ppc long double. This allows us to shrink constant pool entries for x86 long double constants, which in turn allows us to use flds/fldl instead of fldt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47938 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
aa2acbbbf06348f20274f4eeb77f9761c654a589 |
05-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Improve comment, pass in the original VT so that we can shrink a long double constant all the way to float, not stopping at double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e718cc5ccad55fcd0b9692f5286dc3bedbb22fcc |
05-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Improve comment, pass in the original VT so that we can shrink a long double constant all the way to float, not stopping at double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
34bc178e4da0105f3a50a00cc06ca1193c529bcb |
05-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Codegen support for i128 UINT_TO_FP. This just fixes a bug in r47928 (Int64Ty is the correct type for the constant pool entry here) and removes the asserts, now that the code is capable of handling i128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
a193dba5ce64cabea28aa0aca64d60010045b124 |
05-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Codegen support for i128 UINT_TO_FP. This just fixes a bug in r47928 (Int64Ty is the correct type for the constant pool entry here) and removes the asserts, now that the code is capable of handling i128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
6fd599fa6916bd9438dbea7994cf2437bdf4ab8c |
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a target lowering hook to control whether it's worthwhile to compress fp constant. For x86, if sse2 is available, it's not a good idea since cvtss2sd is slower than a movsd load and it prevents load folding. On x87, it's important to shrink fp constant since fldt is very expensive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
35190fd544eaee770b191618bd86af1ef7401758 |
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a target lowering hook to control whether it's worthwhile to compress fp constant. For x86, if sse2 is available, it's not a good idea since cvtss2sd is slower than a movsd load and it prevents load folding. On x87, it's important to shrink fp constant since fldt is very expensive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d19189e9905e14a4001a8ca6fc4effb6a3f88e45 |
05-Mar-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
64bit CAS on 32bit x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47929 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8158082b53401707d47ecdb844129ebc146962a5 |
05-Mar-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
64bit CAS on 32bit x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47929 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d91446de7a89a22c8ea1cbfd40fe2528467a4ccb |
05-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Codegen support for i128 SINT_TO_FP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/TargetLowering.cpp
|
c98645c3c1eba211e43a494f0dbd90a0ab9f2c90 |
05-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Codegen support for i128 SINT_TO_FP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/TargetLowering.cpp
|
6130f66eaae89f8878590796977678afa8448926 |
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. Remove duplicated functions that basically do the same thing as findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
HIElimination.cpp
egAllocLocal.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
trongPHIElimination.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
c7daf1f37a8c97e5ffc44f52e818cf127fae178e |
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. Remove duplicated functions that basically do the same thing as findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
HIElimination.cpp
egAllocLocal.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
trongPHIElimination.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
d86449e77435508db465fbb20c80581a1c269f85 |
04-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Some improvements related to the computation of heights, depths of SUnits. The basic idea is that all these algorithms are computing the longest paths from the root node or to the exit node. Therefore the existing implementation that uses and iterative and potentially exponential algorithm was changed to a well-known graph algorithm based on dynamic programming. It has a linear run-time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
1db9b82cde7ec2f31498139c832041017886b36c |
04-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Some improvements related to the computation of heights, depths of SUnits. The basic idea is that all these algorithms are computing the longest paths from the root node or to the exit node. Therefore the existing implementation that uses and iterative and potentially exponential algorithm was changed to a well-known graph algorithm based on dynamic programming. It has a linear run-time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
ef12057737229452c17983faa20857dba441ef05 |
04-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor ExpandConstantFP so it can optimize load from constpool of types larger than f64 into extload from smaller types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
354be06edd36dc6d9496555a24811ced0c487695 |
04-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor ExpandConstantFP so it can optimize load from constpool of types larger than f64 into extload from smaller types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
76782f49d88bbf2853ba663a1469d8324ddcbfcc |
04-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Did I say 'e = getNumOperands()'? I meant --e, of course. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47875 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
634763372ec2479a34442dc8947bef34149c46d5 |
04-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Did I say 'e = getNumOperands()'? I meant --e, of course. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47875 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
917be6814e0a4e529d290be5d806a054bbbc4a27 |
04-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename isOperand() to isOperandOf() (and other similar methods). It always confuses me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
d93876883cdbc14819ea260c0aa839ad707c149a |
04-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename isOperand() to isOperandOf() (and other similar methods). It always confuses me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
405abffd5eb1ad1841491e51943b598c935f309b |
04-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Miscellaneous clean-ups based on Evan's feedback: - Cleaned up how the prologue-epilogue inserter loops over the instructions. - Instead of restarting the processing of an instruction if we remove an implicit kill, just update the end iterator and make sure that the iterator isn't incremented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47870 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
rologEpilogInserter.cpp
|
696e129dd8fd79d621f9be58652bac9f1aa1a058 |
04-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Miscellaneous clean-ups based on Evan's feedback: - Cleaned up how the prologue-epilogue inserter loops over the instructions. - Instead of restarting the processing of an instruction if we remove an implicit kill, just update the end iterator and make sure that the iterator isn't incremented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47870 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
rologEpilogInserter.cpp
|
220a823f8d044b7e9484999c9ec73e3cbe6d251c |
04-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Misc. APInt-ification in the DAGCombiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d047c3e716d3b54f67222de86173979575bddc0c |
04-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Misc. APInt-ification in the DAGCombiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bb271ff9fe1b92e8c0fdb54334f92803b344ee6a |
04-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
463db8ccdd26cf466e1cd122691ebaa623c0609a |
04-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3370dd70aebf6b3c92d84c20245078c00290dffa |
03-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Yet more APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
04ec2f0e14e0597be5bcf862a12906f4462dbd39 |
03-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Yet more APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6c6cd1ccb5de1ebab7089c8ce339889f33fa2577 |
03-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d00055a5f156158ba4367c259ae4afb6a155fa1b |
03-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
050f550aeb3938d8e202156473fac5eabf0fa703 |
03-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
97f1f8e4d8ef60749cda3d14ac76613dc3b124f5 |
03-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47864 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4a23d72ec21d1bdfda69fd16c9fc10cec39f1fed |
03-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Go through the machine instruction's operands to make sure that we're not marking both a super- and sub-register as "killed". This removes implicit uses that are marked as "killed". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47862 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d0b7dfc7ba2dc76f2c70fe9fd6f93b9e4b34311f |
03-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Go through the machine instruction's operands to make sure that we're not marking both a super- and sub-register as "killed". This removes implicit uses that are marked as "killed". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47862 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a0a570cec647b860a724f4f70a191bc83cdcc947 |
03-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Make the register scavenger update the bookkeeping values for sub/super registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47861 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
d566c1ae9842d82e90da6b1e8e190bd368bfb3e0 |
03-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Make the register scavenger update the bookkeeping values for sub/super registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47861 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
988a5782d3ce3cddc65d57d6aac7312d33ed59ab |
03-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Multiple instructions can be inserted when eliminating frame indexes. We need the register scavenger to process all of those new instructions instead of just the last one inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47860 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e53cc5ab5de6356f74463c2bd092e32ac2c45dd6 |
03-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Multiple instructions can be inserted when eliminating frame indexes. We need the register scavenger to process all of those new instructions instead of just the last one inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47860 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
26ed8697d4733f4ad588ef117ec4387560770ad0 |
01-Mar-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
all but CAS working on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47798 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7dfe23f07fa1482f30c658938ea87936c76bbc93 |
01-Mar-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
all but CAS working on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47798 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3c8b59c546b5d56b2cae74da55e26eb994ed36bf |
01-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Add MVT::is128BitVector and is64BitVector. Shrink unaligned load/store code using them. Per review of unaligned load/store vector patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47782 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f8c1e85b7f2cd1d72d83dfcf2bd47665de7cb3d5 |
01-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Add MVT::is128BitVector and is64BitVector. Shrink unaligned load/store code using them. Per review of unaligned load/store vector patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47782 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
84d4a2b4ad0874a46642bb568b45720d55e46b64 |
01-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor / clean up code; remove td list scheduler special tie breaker (no real benefit). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
dbde7f9d7779b2b5e8e5311f34090e89564bbfd9 |
01-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor / clean up code; remove td list scheduler special tie breaker (no real benefit). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
05548eb174dd694b651de334b73197a62e5071f1 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't fill eh frames even though these are text sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47765 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
7e7d194e5ee11b6a68f23b973cc765c49492c1e4 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't fill eh frames even though these are text sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47765 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
97e3c01eb4ee6afff602ad11a2f2788ed7c83580 |
29-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
If we reload a virtual register that's already been assigned, we want to mark that instruction as its "last use". This fixes PR1925. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47758 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
f49e8397a4b49b95e80e6e777256601f5de8513d |
29-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
If we reload a virtual register that's already been assigned, we want to mark that instruction as its "last use". This fixes PR1925. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47758 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
4f658e9e4b2c7c25779c304a90f460615d35e555 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2112: don't run loop aligner if target doesn't have a TargetLowering object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47755 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
329344e006d93fe339b87dd927a987dbce84f34f |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR2112: don't run loop aligner if target doesn't have a TargetLowering object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47755 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
bec2c0c7e1827385bcc7efa390795e4b7b4aea77 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
No need for coalescer to update kills. Only copies are coalesced and those instructions will be deleted. Doh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47749 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
a3e0d87ba907bd35cd9b6f28573433377e95d145 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
No need for coalescer to update kills. Only copies are coalesced and those instructions will be deleted. Doh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47749 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
8f14da172d6705eccd4da2547321f0aac50c1a96 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove redundant #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47748 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
9be0de20d094c3aec4f1e6e8c65f1cf4c4f0c1b6 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove redundant #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47748 91177308-0d34-0410-b5e6-96231b3b80d8
oopAligner.cpp
|
6c231501f80e1ff05e3cada3d051b1c826d1f478 |
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
161652c4f46b9229efd09b99833bdd719f441e57 |
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c7773bf90ee4398ccdeb847db6330cf4507b832b |
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use the new convertFromAPInt instead of convertFromZeroExtendedInteger, which allows more of the surrounding arithmetic to be done with APInt instead of uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47745 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
88ae8c59b426349f31f355df183a3e5106651e88 |
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use the new convertFromAPInt instead of convertFromZeroExtendedInteger, which allows more of the surrounding arithmetic to be done with APInt instead of uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47745 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c6f9a06238daebd41620ccc795f289c607393f00 |
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use the new APInt-enabled form of getConstant instead of converting an APInt into a uint64_t to call getConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5d797ecc7df83576facdddaf82be4b3cf537a27d |
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use the new APInt-enabled form of getConstant instead of converting an APInt into a uint64_t to call getConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d703ed6aed98c8156829399efbafb13a3cca0b69 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added option -align-loops=<true/false> to disable loop aligner pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47736 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
oopAligner.cpp
|
7e29ba04d0e41ee632ee6e46ab9d10e54d379d62 |
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added option -align-loops=<true/false> to disable loop aligner pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47736 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
oopAligner.cpp
|
28d08fdb9f6572cafd5aae95c7caffa3cd136d8e |
28-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Interface of getByValTypeAlignment differed between generic & x86 versions; change generic to follow x86 and improve comments. Add PPC version (not right for non-Darwin.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47734 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
88945f8d5d28848e86c85019f5e2ded869eebe3c |
28-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Interface of getByValTypeAlignment differed between generic & x86 versions; change generic to follow x86 and improve comments. Add PPC version (not right for non-Darwin.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47734 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
cd9f1747ab72f9863924fbdf43493d9fa6256719 |
28-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Fix an assertion message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b1d1ab90321e2e4ce57a5b6c49c420630beafc38 |
28-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Fix an assertion message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
643afa55e72835e5e17c9f33876b883469d56814 |
28-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Keep track how many commutes are performed by the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
7f6ade38ab2d9fb479f9e7dfa186d80a3bc106aa |
28-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Keep track how many commutes are performed by the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e07415d4006b923ed1d2057ffa5a493353e28f9e |
28-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
implement expand for ISD::DECLARE by just deleting it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47708 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
203cd0593702c58ca57e2fadfbf4a03f8740ea51 |
28-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
implement expand for ISD::DECLARE by just deleting it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47708 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fb8075d03f5c87bd57dcc9c5f2304f6b13c55aad |
28-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to 16-byte boundaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47703 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
fConversion.cpp
oopAligner.cpp
achineBasicBlock.cpp
electionDAG/TargetLowering.cpp
|
45c1edb4f781571f11fefb07a46a2c0f08523650 |
28-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to 16-byte boundaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47703 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
fConversion.cpp
oopAligner.cpp
achineBasicBlock.cpp
electionDAG/TargetLowering.cpp
|
8155d64c2ffab8b17e0fd8e3b7a66fcef6a8ec9d |
27-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Handle load/store of misaligned vectors that are the same size as an int type by doing a bitconvert of load/store of the int type (same algorithm as floating point). This makes them work for ppc Altivec. There was some code that purported to handle loads of (some) vectors by splitting them into two smaller vectors, but getExtLoad rejects subvector loads, so this could never have worked; the patch removes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dc0ee195adc8a097560ec42e275d43d2cb8ca863 |
27-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Handle load/store of misaligned vectors that are the same size as an int type by doing a bitconvert of load/store of the int type (same algorithm as floating point). This makes them work for ppc Altivec. There was some code that purported to handle loads of (some) vectors by splitting them into two smaller vectors, but getExtLoad rejects subvector loads, so this could never have worked; the patch removes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
21b3f31f8f7d77b9c3a35012139df92ba40e7c92 |
27-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in dead spill slot elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47687 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
10b8c6bd927b899fcaa9b6c9a020019679dd5390 |
27-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in dead spill slot elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47687 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
18714aeaed2a74bfc85dc5abe24a9193882406c5 |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Remove the `else', at Evan's insistence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7e7aa2cbbb88303157290790eedf2318e02cfe20 |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Remove the `else', at Evan's insistence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
052e976f856fc66fce47d75be893480776906539 |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add a FIXME about the VECTOR_SHUFFLE evil hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesSplit.cpp
|
9b6bc8a987ea10f5b2786fd756e9798ce79dd970 |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add a FIXME about the VECTOR_SHUFFLE evil hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesSplit.cpp
|
077f9b20d0e8659d00a09046a63e28edf0665ffe |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for EXTRACT_VECTOR_ELT. The approach taken is different to that in LegalizeDAG when it is a question of expanding or promoting the result type: for example, if extracting an i64 from a <2 x i64>, when i64 needs expanding, it bitcasts the vector to <4 x i32>, extracts the appropriate two i32's, and uses those for the Lo and Hi parts. Likewise, when extracting an i16 from a <4 x i16>, and i16 needs promoting, it bitcasts the vector to <2 x i32>, extracts the appropriate i32, twiddles the bits if necessary, and uses that as the promoted value. This puts more pressure on bitcast legalization, and I've added the appropriate cases. They needed to be added anyway since users can generate such bitcasts too if they want to. Also, when considering various cases (Legal, Promote, Expand, Scalarize, Split) it is a pain that expand can correspond to Expand, Scalarize or Split, so I've changed the LegalizeTypes enum so it lists those different cases - now Expand only means splitting a scalar in two. The code produced is the same as by LegalizeDAG for all relevant testcases, except for 2007-10-31-extractelement-i64.ll, where the code seems to have improved (see below; can an expert please tell me if it is better or not). Before < vs after >. < subl $92, %esp < movaps %xmm0, 64(%esp) < movaps %xmm0, (%esp) < movl 4(%esp), %eax < movl %eax, 28(%esp) < movl (%esp), %eax < movl %eax, 24(%esp) < movq 24(%esp), %mm0 < movq %mm0, 56(%esp) --- > subl $44, %esp > movaps %xmm0, 16(%esp) > pshufd $1, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movd %xmm0, (%esp) > movq (%esp), %mm0 > movq %mm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) < movaps %xmm0, (%esp) < movl 12(%esp), %eax < movl %eax, 28(%esp) < movl 8(%esp), %eax < movl %eax, 24(%esp) < movq 24(%esp), %mm0 < movq %mm0, 56(%esp) --- > subl $44, %esp > movaps %xmm0, 16(%esp) > pshufd $3, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movhlps %xmm0, %xmm0 > movd %xmm0, (%esp) > movq (%esp), %mm0 > movq %mm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) --- > subl $44, %esp < movl 16(%esp), %eax < movl %eax, 48(%esp) < movl 20(%esp), %eax < movl %eax, 52(%esp) < movaps %xmm0, (%esp) < movl 4(%esp), %eax < movl %eax, 60(%esp) < movl (%esp), %eax < movl %eax, 56(%esp) --- > pshufd $1, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movd %xmm0, (%esp) > movd %xmm1, 12(%esp) > movd %xmm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) --- > subl $44, %esp < movl 24(%esp), %eax < movl %eax, 48(%esp) < movl 28(%esp), %eax < movl %eax, 52(%esp) < movaps %xmm0, (%esp) < movl 12(%esp), %eax < movl %eax, 60(%esp) < movl 8(%esp), %eax < movl %eax, 56(%esp) --- > pshufd $3, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movhlps %xmm0, %xmm0 > movd %xmm0, (%esp) > movd %xmm1, 12(%esp) > movd %xmm0, 8(%esp) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
|
01b3246f1ea2b41da19465decc29d78e6e98f1ff |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for EXTRACT_VECTOR_ELT. The approach taken is different to that in LegalizeDAG when it is a question of expanding or promoting the result type: for example, if extracting an i64 from a <2 x i64>, when i64 needs expanding, it bitcasts the vector to <4 x i32>, extracts the appropriate two i32's, and uses those for the Lo and Hi parts. Likewise, when extracting an i16 from a <4 x i16>, and i16 needs promoting, it bitcasts the vector to <2 x i32>, extracts the appropriate i32, twiddles the bits if necessary, and uses that as the promoted value. This puts more pressure on bitcast legalization, and I've added the appropriate cases. They needed to be added anyway since users can generate such bitcasts too if they want to. Also, when considering various cases (Legal, Promote, Expand, Scalarize, Split) it is a pain that expand can correspond to Expand, Scalarize or Split, so I've changed the LegalizeTypes enum so it lists those different cases - now Expand only means splitting a scalar in two. The code produced is the same as by LegalizeDAG for all relevant testcases, except for 2007-10-31-extractelement-i64.ll, where the code seems to have improved (see below; can an expert please tell me if it is better or not). Before < vs after >. < subl $92, %esp < movaps %xmm0, 64(%esp) < movaps %xmm0, (%esp) < movl 4(%esp), %eax < movl %eax, 28(%esp) < movl (%esp), %eax < movl %eax, 24(%esp) < movq 24(%esp), %mm0 < movq %mm0, 56(%esp) --- > subl $44, %esp > movaps %xmm0, 16(%esp) > pshufd $1, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movd %xmm0, (%esp) > movq (%esp), %mm0 > movq %mm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) < movaps %xmm0, (%esp) < movl 12(%esp), %eax < movl %eax, 28(%esp) < movl 8(%esp), %eax < movl %eax, 24(%esp) < movq 24(%esp), %mm0 < movq %mm0, 56(%esp) --- > subl $44, %esp > movaps %xmm0, 16(%esp) > pshufd $3, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movhlps %xmm0, %xmm0 > movd %xmm0, (%esp) > movq (%esp), %mm0 > movq %mm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) --- > subl $44, %esp < movl 16(%esp), %eax < movl %eax, 48(%esp) < movl 20(%esp), %eax < movl %eax, 52(%esp) < movaps %xmm0, (%esp) < movl 4(%esp), %eax < movl %eax, 60(%esp) < movl (%esp), %eax < movl %eax, 56(%esp) --- > pshufd $1, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movd %xmm0, (%esp) > movd %xmm1, 12(%esp) > movd %xmm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) --- > subl $44, %esp < movl 24(%esp), %eax < movl %eax, 48(%esp) < movl 28(%esp), %eax < movl %eax, 52(%esp) < movaps %xmm0, (%esp) < movl 12(%esp), %eax < movl %eax, 60(%esp) < movl 8(%esp), %eax < movl %eax, 56(%esp) --- > pshufd $3, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movhlps %xmm0, %xmm0 > movd %xmm0, (%esp) > movd %xmm1, 12(%esp) > movd %xmm0, 8(%esp) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
|
8745b52853c9b1d1370005d7cb42587ebe2a7193 |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for legalizing the mask operand of a VECTOR_SHUFFLE. The mask is a vector of constant integers. The code in LegalizeDAG doesn't bother to legalize the mask, since it's basically just storage for a bunch of constants, however LegalizeTypes is more picky. The problem is that there may not exist any legal vector-of-integers type with a legal element type, so it is impossible to create a legal mask! Unless of course you cheat by creating a BUILD_VECTOR where the operands have a different type to the element type of the vector being built... This is pretty ugly but works - all relevant tests in the testsuite pass, and produce the same assembler with and without LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
3574980dcd2148403eeee50bc09e12d6afac9c69 |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for legalizing the mask operand of a VECTOR_SHUFFLE. The mask is a vector of constant integers. The code in LegalizeDAG doesn't bother to legalize the mask, since it's basically just storage for a bunch of constants, however LegalizeTypes is more picky. The problem is that there may not exist any legal vector-of-integers type with a legal element type, so it is impossible to create a legal mask! Unless of course you cheat by creating a BUILD_VECTOR where the operands have a different type to the element type of the vector being built... This is pretty ugly but works - all relevant tests in the testsuite pass, and produce the same assembler with and without LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
4f069e6db1772a7e6cd8bfc360d819b56557badc |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47669 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
|
25ff37c21b2ddca6e93da7f511f64b03da4eb2cb |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47669 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
|
be680dcea6858c438c6615326ae1c098ff448ae1 |
27-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't track max alignment during stack object allocations since they can be deleted later. Let PEI compute it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47668 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b8447aae4812dac6c6c6c8cb976c6501b59f6dc1 |
27-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't track max alignment during stack object allocations since they can be deleted later. Let PEI compute it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47668 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e90a615f37aaee2ad9259c0ef21586d5e4142147 |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Support for legalizing MEMBARRIER. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesPromote.cpp
|
3ee041a58ff07dee5fe2eac3924dea27da84fe28 |
27-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Support for legalizing MEMBARRIER. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47667 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesPromote.cpp
|
6ef781f3ce0d0311004adba9d1e7dbd7950918dd |
27-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Final de-tabification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
irtRegMap.cpp
|
6c02cd29b5ca35947c8414e7a20667066db64409 |
27-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Final de-tabification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
irtRegMap.cpp
|
d36531249a9a9500e516148e7e72d4c0a7a4d0ee |
27-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Spiller now remove unused spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47657 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineFunction.cpp
rologEpilogInserter.cpp
irtRegMap.cpp
irtRegMap.h
|
da872539ba284fe9ded04f4231f88c90fc77ea5c |
27-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Spiller now remove unused spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47657 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineFunction.cpp
rologEpilogInserter.cpp
irtRegMap.cpp
irtRegMap.h
|
1953ecb0a6fc8520b34b52fd04f7476a7eb4613f |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Teach Legalize how to expand an EXTRACT_ELEMENT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
550c846758f3d72920a35e4f8484c604c7f98b3c |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Teach Legalize how to expand an EXTRACT_ELEMENT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b3564aa8367fc38efdab0a812868f6f93b9d883e |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert the last remaining users of the non-APInt form of ComputeMaskedBits to use the APInt form, and remove the non-APInt form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
63f4e461c48befdc3a6fcd0e0abf5252efeb3a6a |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert the last remaining users of the non-APInt form of ComputeMaskedBits to use the APInt form, and remove the non-APInt form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7b8d4a9eef4eb02e561227b50c9d119cea4e8860 |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert SimplifyDemandedMask and ShrinkDemandedConstant to use APInt. Change several cases in SimplifyDemandedMask that don't ever do any simplifying to reuse the logic in ComputeMaskedBits instead of duplicating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
1160779f02d5369e4d9012ee1078798e866c6772 |
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert SimplifyDemandedMask and ShrinkDemandedConstant to use APInt. Change several cases in SimplifyDemandedMask that don't ever do any simplifying to reuse the logic in ComputeMaskedBits instead of duplicating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47648 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
fe42462164b7dfcb31922b358fbaf8d9db7eb8d2 |
26-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Use a smallvector for inactiveCounts and initialize it lazily instead of init'ing it maximally to zeros on entry. getFreePhysReg is pretty hot and only a few elements are typically used. This speeds up linscan by 5% on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47631 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9f6dc2c9c71233db4d01af5a1c15b3d8730d114a |
26-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Use a smallvector for inactiveCounts and initialize it lazily instead of init'ing it maximally to zeros on entry. getFreePhysReg is pretty hot and only a few elements are typically used. This speeds up linscan by 5% on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47631 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
e6d088acc90e422451e098555d383d4d65b6ce6b |
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename PrintableName to Name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47629 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
9b0baebd71c4f66b7b3f4a9d2ffdde9dc9ded8a7 |
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename PrintableName to Name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47629 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
74ab84c31ef64538a1b56e1f282e49303412ad17 |
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool would have been a Godsend here! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47625 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineLICM.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
8eeb97927530a1e53c3529a9b93f94239056d1b4 |
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool would have been a Godsend here! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47625 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineLICM.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
4d535cadf159d30619464f61f1386ffc9a340597 |
26-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable -coalescer-commute-instrs by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47623 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
7823251bfc67e9a156eae9dc51de4aed0339557b |
26-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable -coalescer-commute-instrs by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47623 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d4cf992230a6cc4d76022c5d47dbd23115bdec44 |
26-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid aborting on invalid shift counts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4b8d000a42364bf84df5172e9710f196c731ebe4 |
26-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid aborting on invalid shift counts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
aeecb6c73ae05100eec57e9521beb87635f1f26e |
26-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix PR2096, a regression introduced with my patch last night. This also fixes cfrac, flops, and 175.vpr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
46360036d82cc38520778bed3da820050e35d812 |
26-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix PR2096, a regression introduced with my patch last night. This also fixes cfrac, flops, and 175.vpr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
212a11c417e272cc8fd12e66cfe5110c47559e17 |
26-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a nasty bug in LegalizeTypes (spotted in CodeGen/PowerPC/illegal-element-type.ll): suppose a node X is processed, and processing maps it to a node Y. Then X continues to exist in the DAG, but with no users. While processing some other node, a new node may be created that happens to be equal to X, and thus X will be reused rather than a truly new node. This can cause X to "magically reappear", and since it is in the Processed state in will not be reprocessed, so at the end of type legalization the illegal node X can still be present. The solution is to replace X with Y whenever X gets resurrected like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
|
1464b445bf0d3ff9aaf5c2a3255578579b195234 |
26-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Fix a nasty bug in LegalizeTypes (spotted in CodeGen/PowerPC/illegal-element-type.ll): suppose a node X is processed, and processing maps it to a node Y. Then X continues to exist in the DAG, but with no users. While processing some other node, a new node may be created that happens to be equal to X, and thus X will be reused rather than a truly new node. This can cause X to "magically reappear", and since it is in the Processed state in will not be reprocessed, so at the end of type legalization the illegal node X can still be present. The solution is to replace X with Y whenever X gets resurrected like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
|
f059deb8dd420b611c8b1a6d70720baf3ea19d51 |
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
De-tabify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47598 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
059e62c8b6a5833a8d7d91c0591184c5d020e310 |
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
De-tabify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47598 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c886c460e4fc305a1b79d1e7782584c7aa7aa91f |
26-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
This is possible: vr1 = extract_subreg vr2, 3 ... vr3 = extract_subreg vr1, 2 The end result is vr3 is equal to vr2 with subidx 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47592 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f2e67b7afa4f1023875d6ca2d0b9835ed9a38e60 |
26-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
This is possible: vr1 = extract_subreg vr2, 3 ... vr3 = extract_subreg vr1, 2 The end result is vr3 is equal to vr2 with subidx 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47592 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
0254e7033a1d879357e582dcdc1943e656192768 |
26-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix isNegatibleForFree to not return true for ConstantFP nodes after legalize. Just because a constant is legal (e.g. 0.0 in SSE) doesn't mean that its negated value is legal (-0.0). We could make this stronger by checking to see if the negated constant is actually legal post negation, but it doesn't seem like a big deal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e0992b832c3cf73bccf557910a69c652a1e55c5f |
26-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix isNegatibleForFree to not return true for ConstantFP nodes after legalize. Just because a constant is legal (e.g. 0.0 in SSE) doesn't mean that its negated value is legal (-0.0). We could make this stronger by checking to see if the negated constant is actually legal post negation, but it doesn't seem like a big deal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47591 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5c80760fdf71659c5bdf45cd85d173df454dfb41 |
26-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor inline asm constraint matching code out of SDIsel into TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
bcd6644c2f0d424a393716c558faa207ace9709b |
26-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor inline asm constraint matching code out of SDIsel into TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f6283fd27be06021fbe262341be56331bc67786c |
25-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Make some static variables const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47566 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
84d0096ffb5d477628d081c17c2fba2086274765 |
25-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Make some static variables const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47566 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2e68b6f52d0979575b2f02ed29717d907ba0684c |
25-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert MaskedValueIsZero and all its users to use APInt. Also add a SignBitIsZero function to simplify a common use case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
07961cd7921c5cc75e77890a1435e41f6423f42f |
25-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert MaskedValueIsZero and all its users to use APInt. Also add a SignBitIsZero function to simplify a common use case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
e83a27516cf5b6cc92ead99c17bbd77bca7ae06b |
25-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
All remat'ed loads cannot be folded into two-address code. Not just argument loads. This change doesn't really have any impact on codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47557 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
990c07146e1579eb6eeb501d431e0a5f8646de3d |
25-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
All remat'ed loads cannot be folded into two-address code. Not just argument loads. This change doesn't really have any impact on codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47557 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1a9c9df1db4ab3bf39f0395a7086576b4491d50b |
25-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
In debug builds check that the key property holds: all result and operand types are legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
a80ff7ca83b73b0d25af379df41f262462dc1683 |
25-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
In debug builds check that the key property holds: all result and operand types are legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
79a0c1e46c4f7d8a2a06f4ef3e2c54d883c7fe25 |
25-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Correctly determine whether a argument load can be folded into its uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47545 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
70e40deb364a03de234fe587934fb671fa16ce6b |
25-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Correctly determine whether a argument load can be folded into its uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47545 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
14fd63cae875b8e41c70f4408b2185abf82d1d60 |
24-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add support to LegalizeTypes for building legal vectors out of illegal elements (BUILD_VECTOR). Uses and beefs up BUILD_PAIR, though it didn't really have to. Like most of LegalizeTypes, does not support soft-float. This cures all "make check" vector building failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
|
b59c7b2902878afea0d53fa05285b338fa5878ed |
24-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add support to LegalizeTypes for building legal vectors out of illegal elements (BUILD_VECTOR). Uses and beefs up BUILD_PAIR, though it didn't really have to. Like most of LegalizeTypes, does not support soft-float. This cures all "make check" vector building failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
|
181eb737b28628adc4376b973610a02039385026 |
24-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Some platforms use the same name for 32-bit and 64-bit registers (like %r3 on PPC) in their ASM files. However, it's hard for humans to read during debugging. Adding a new field to the register data that lets you specify a different name to be printed than the one that goes into the ASM file -- %x3 instead of %r3, for instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47534 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
733f0fd605dccb7e93842ec66494c30b35ea5cd3 |
24-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Some platforms use the same name for 32-bit and 64-bit registers (like %r3 on PPC) in their ASM files. However, it's hard for humans to read during debugging. Adding a new field to the register data that lets you specify a different name to be printed than the one that goes into the ASM file -- %x3 instead of %r3, for instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47534 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
249ded3fa8884f91fded869fb6e251b8aebb0376 |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rematerialization logic was overly conservative when it comes to loads from fixed stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47529 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d02019304361f2aa8d5966338011fb30cffffe14 |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rematerialization logic was overly conservative when it comes to loads from fixed stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47529 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
298bbe82cb390235f7b8ab4bd550feff909e0c3d |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
If remating a machine instr with virtual register operand, make sure the vr is avaliable at all uses regardless of whether it would be folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47526 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
dc6c8b56f6841b7d1c41d2d67d47742ac444537c |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
If remating a machine instr with virtual register operand, make sure the vr is avaliable at all uses regardless of whether it would be folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47526 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
dd3465eed17cdf226bdb465e604dfa851d36029d |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47520 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c2855324fb3a9a48f9c0f8311feb5e1de971aa1f |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47520 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
313d4b809326f3e04814f94e5b8ae05649d8e0f6 |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix spill weight updating bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47507 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c7666af8ae90f76b7e6de93a492500af3de6b5ed |
23-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix spill weight updating bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47507 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
672e55060147defd6397be4f07cb880b2f8ab151 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Same isPhysRegAvailable bug as local register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47500 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
07741321958290d72124005585f7fad8b20de8b9 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Same isPhysRegAvailable bug as local register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47500 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
bcfa1ca9768a0ff0e4c2935832287d7bb9921cec |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47499 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
f90128d75721be00ebb000a879277e39558851f1 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47499 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
9af7090392efa7bf1b7eae274b9231518af8303b |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add debugging printfs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47496 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
d409cdf2793adc1c84f4018a491df1b758f88e57 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add debugging printfs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47496 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b2fd65f936292f4dcd5ef5ee62175552779c1c82 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Make sure reload of implicit uses are issued before remat's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47492 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
64e5b32dfec97ddea967e5bdb9beef6650f9428c |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Make sure reload of implicit uses are issued before remat's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47492 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
08e78b18b8ef2c939ee95469662c98e23846d860 |
22-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Pass alignment on ByVal parameters, from FE, all the way through. It is now used for codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9b398787935ab9e5d9f74c4c2b751ebf61211ea8 |
22-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Pass alignment on ByVal parameters, from FE, all the way through. It is now used for codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d70dbb5d627a0408eccf88033143efa62ee0e6c0 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable re-materialization of instructions which have virtual register operands if the definition of the operand also reaches its uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47475 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
a37ecfeea3b595916a7380dbf1184b9ad9b1d5f4 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable re-materialization of instructions which have virtual register operands if the definition of the operand also reaches its uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47475 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
becda48f88db41f879e5433d063982eeaa614438 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47468 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
1d19abe0af2e96d4cb7853fd5964128ac905b0a2 |
22-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47468 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9e255b7df5a0a629920706e086e78ef89bf2f183 |
22-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Fix a regression in 403.gcc and 186.crafty introduced in 47383. To test that a value is >= 32, check that all of the high bits are zero, not just one or more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
eb3f11721f17186a725c5a541ef9a069d104610e |
22-Feb-2008 |
Dan Gohman <djg@cray.com> |
Fix a regression in 403.gcc and 186.crafty introduced in 47383. To test that a value is >= 32, check that all of the high bits are zero, not just one or more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47467 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
69e6a8d5a8c486bcdd2c19238171b01d470ba45f |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Make the clobber analysis a bit more smart: we only are careful about early clobbers if the clobber list contains a *register* not some thing like {memory}, {dirflag} etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
17ac43108dab399ad5f8e03448228d10850dc286 |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Make the clobber analysis a bit more smart: we only are careful about early clobbers if the clobber list contains a *register* not some thing like {memory}, {dirflag} etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0fe71e9bb19ff1781813184e41a8aaaae4dd2908 |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Treat clobber operands like early clobbers: if we have any, we force sdisel to do all regalloc for an asm. This leads to gross but correct codegen. This fixes the rest of PR2078. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
75a19169fd7a788ccdb6a2db91c0a393fc7b243a |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Treat clobber operands like early clobbers: if we have any, we force sdisel to do all regalloc for an asm. This leads to gross but correct codegen. This fixes the rest of PR2078. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1d5e8196c02ade7d2253165e99436ce415de9fda |
21-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Clear PhysRegPartUse for the sub register as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47453 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
f01bd9e712501f9e9b5803ab0c11e96851a82775 |
21-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Clear PhysRegPartUse for the sub register as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47453 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
20b76ab3c75fa34cd997444d2d456c2e22d4bfdd |
21-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Adjust the MaxAlignment for the special register scavenging spill slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47452 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
ffe75c2d07ed465345a5fba30f433a4f8d375dd9 |
21-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Adjust the MaxAlignment for the special register scavenging spill slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47452 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
304983b93e14a3f7b84c8e41f5dfc56750dba1b0 |
21-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Help testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47448 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ec41c7cb9747d47b1c037e353a7916fa117a4321 |
21-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Help testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47448 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c1c7bd610a1647d8e7eaeb4cc38ca1a85ae5e271 |
21-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Better names as per Evan's request git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2205e3b404764988bdf78b76e965447159c29e8a |
21-Feb-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
Better names as per Evan's request git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ab0b949e0e9de452f3b052b11634ab761e008b23 |
21-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47430 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
e44f390d1a02e4ab6beffd7e3a4178e0557cbc8a |
21-Feb-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47430 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f9853bc0d439d89c97979265593287c2ce81acb2 |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for matching mem operands. This fixes PR1133, patch by Eli Friedman. This implements CodeGen/Generic/2008-02-20-MatchingMem.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
58d032b16d90a5343811caf6ada67ac22343c91a |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for matching mem operands. This fixes PR1133, patch by Eli Friedman. This implements CodeGen/Generic/2008-02-20-MatchingMem.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7cbeb2431c7264d0848d1343f43914f970828ac7 |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a (harmless) but where vregs were added to the used reg lists for inline asms. Fix PR2078 by marking aliases of registers used when a register is marked used. This prevents EAX from being allocated when AX is listed in the clobber set for the asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bd0818be2be161868702925c005843212596be59 |
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a (harmless) but where vregs were added to the used reg lists for inline asms. Fix PR2078 by marking aliases of registers used when a register is marked used. This prevents EAX from being allocated when AX is listed in the clobber set for the asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
063284c001666c0a3906acbe0a26dc7cae5f081c |
21-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Clean up some spilling code using MachineRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47416 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
44fccf2dfc1c0eefcd80cc0308877c11af757c4b |
21-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Clean up some spilling code using MachineRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47416 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c927cc8731724a91733781c816b89d234c265d8c |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove one of the fixmes that I put in there. From Evan: No need to go up more levels. A def of a register also sets its sub-registers (so if PhysRegInfo[SuperReg] is NULL, it means SuperReg's super registers are not previously defined). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47399 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
384458df873130d71100701cd1db47c10fccfd71 |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove one of the fixmes that I put in there. From Evan: No need to go up more levels. A def of a register also sets its sub-registers (so if PhysRegInfo[SuperReg] is NULL, it means SuperReg's super registers are not previously defined). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47399 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
55574c2ceab1b7c4dd1cc47d2fb328bc3728d29c |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Improve some comments explaining the "handle kills" stuff better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47395 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
bd88ee06427b87e0455997b74ba6b0dac7778e29 |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Improve some comments explaining the "handle kills" stuff better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47395 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
fe8276cec27332f590186a78b7d0091ba4a9dbac |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47389 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
65150ff018ea28431bc3628f3323d7dc405a547d |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47389 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
c40a84a87727608bbc5c68b3bf5c6d96fb22aa00 |
20-Feb-2008 |
Devang Patel <dpatel@apple.com> |
assert is more effective reminder then FIXME tag for unimplemented features. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a3ad242196b41529db8e203611f69c34aae083b6 |
20-Feb-2008 |
Devang Patel <dpatel@apple.com> |
assert is more effective reminder then FIXME tag for unimplemented features. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f83b1f63ddf27aaba791393940f37709ebbda33b |
20-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for scalarizing a vector store and splitting extract_subvector. This fixes nine "make check" testcases, for example 2008-02-04-ExtractSubvector.ll and (partially) CodeGen/Generic/vector.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/SelectionDAG.cpp
|
bd13a81015ff9a56076fe48db0a3d77f9bdd765f |
20-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for scalarizing a vector store and splitting extract_subvector. This fixes nine "make check" testcases, for example 2008-02-04-ExtractSubvector.ll and (partially) CodeGen/Generic/vector.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/SelectionDAG.cpp
|
91dc17ba4991e971c7e89e07642b10817aa28055 |
20-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert Legalize to use the APInt form of ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
ece0a8855c33d52debe1f0d2e63768e7491920fc |
20-Feb-2008 |
Dan Gohman <djg@cray.com> |
Convert Legalize to use the APInt form of ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
b5660dc8223bd5eb3d21d9855692617fcdec5663 |
20-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47382 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a789bffed03de68a28fc8699e30b9da0d607541c |
20-Feb-2008 |
Dan Gohman <djg@cray.com> |
Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47382 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
948d8eadec92cc5f31f196de41dd6dfe8579a0c6 |
20-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert DAGCombiner to use the APInt form of ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bea075fa33f12f318cedaac3439a011263c9b7e6 |
20-Feb-2008 |
Dan Gohman <djg@cray.com> |
Convert DAGCombiner to use the APInt form of ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ca93a43e8409c6dc5ccf2c9762fb513f9d318372 |
20-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use APInt::intersects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9150729ef08471591bce55e77adeefc4362dbe24 |
20-Feb-2008 |
Dan Gohman <djg@cray.com> |
Use APInt::intersects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4aefd6b7d4dadf8109221a89742725c116d8f8e0 |
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix newly-introduced 4.3 warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47375 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocLocal.cpp
|
6a4a93397215f7c1b10885726431fde515edde77 |
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix newly-introduced 4.3 warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47375 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocLocal.cpp
|
4c71dfe356716e6bc1993ef5efdced08b68fe612 |
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Update gcc 4.3 warnings fix patch with recent head changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47368 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
fConversion.cpp
iveInterval.cpp
egAllocBigBlock.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
irtRegMap.cpp
|
53422f6643586cded61578fdd22bc3a94b5f9c91 |
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Update gcc 4.3 warnings fix patch with recent head changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47368 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
fConversion.cpp
iveInterval.cpp
egAllocBigBlock.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
irtRegMap.cpp
|
ae9f3a3b7c915f725aef5a7250e88eaeddda03c6 |
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47367 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
357a27dc855c3247c2a73120fbcb98e708564400 |
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47367 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
6d794746b7ae1ed531f08c04dd29d79c13b35075 |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Added some comments and reformatted others. No functionality change. Added two "FIXMEs" for code that looks dubious to me (but I could be wrong). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47366 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
85b03769dd6b0e85b3624a49dd78894b621e7b43 |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Added some comments and reformatted others. No functionality change. Added two "FIXMEs" for code that looks dubious to me (but I could be wrong). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47366 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
420cdebbcb95f3881ab3518fd3bb670837669e43 |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
More constification of things. More comments added. No functionality changes. (Sorry for any formatting changes that creeped in.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47362 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
0fa65bd06d6ee25913d80f31d3c2a32b2dc4becf |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
More constification of things. More comments added. No functionality changes. (Sorry for any formatting changes that creeped in.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47362 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
19fc1d3742ccba2d8dde5d69c5593e1a0b83fefa |
20-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix an incredibly subtle bug exposed by Ted's change to APInt profiling. AddNodeIDNode does profiling for a ConstantSDNode, but so does SelectionDAG::getConstant. This profiling should be moved to a common static function in ConstantSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f5e3e189858abfe3c24ef72b62bb6d94940a3e30 |
20-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix an incredibly subtle bug exposed by Ted's change to APInt profiling. AddNodeIDNode does profiling for a ConstantSDNode, but so does SelectionDAG::getConstant. This profiling should be moved to a common static function in ConstantSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
90a3868fe5702caaa56082cde2edb6521de73e01 |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
No functionality change: - Constified some MachineOperand values. - Added/Modified some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47358 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
b88bca9bb65c364b5c42b69272c0a32a51ef6562 |
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
No functionality change: - Constified some MachineOperand values. - Added/Modified some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47358 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
40a04216daaaee119665e023019c005306ec48ac |
19-Feb-2008 |
Devang Patel <dpatel@apple.com> |
Add GetResultInst. First step for multiple return value support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d081ef080a26343b4314b9a1e08d4b3136cd5dd8 |
19-Feb-2008 |
Devang Patel <dpatel@apple.com> |
Add GetResultInst. First step for multiple return value support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
31886dbe370118dbb291b01d58699243a82bc4e1 |
19-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
PR1909: Tail merging pass ran wild. It makes no sense to merge blocks in order to save a single instruction since a branch will be inserted for each BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47301 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
55d13357af43c3f9575c37823852a3017615c354 |
19-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
PR1909: Tail merging pass ran wild. It makes no sense to merge blocks in order to save a single instruction since a branch will be inserted for each BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47301 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
efec751a1b786724862ceff52748df94873a807e |
19-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type. - X86 now normalize SCALAR_TO_VECTOR to (BIT_CONVERT (v4i32 SCALAR_TO_VECTOR)). Get rid of X86ISD::S2VEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47290 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
d1045a634ff2156c6666ad36c747a265c1d902ee |
19-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type. - X86 now normalize SCALAR_TO_VECTOR to (BIT_CONVERT (v4i32 SCALAR_TO_VECTOR)). Get rid of X86ISD::S2VEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47290 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
a9407f593778c3eff02dbb1fa11129865a59c6d3 |
18-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Remove the previous check which broke coalescer-commute3.ll - For now, conservatively ignore copy MI whose source is a physical register. Commuting its def MI can cause a physical register live interval to be live through a loop (since we know it's live coming into the def MI). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47281 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d3ba6c0a66783650c17483eb56b32ab6a9c9d8a1 |
18-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Remove the previous check which broke coalescer-commute3.ll - For now, conservatively ignore copy MI whose source is a physical register. Commuting its def MI can cause a physical register live interval to be live through a loop (since we know it's live coming into the def MI). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47281 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8dd25288f9c79596e531b32c1b0bdfadcee7ffb9 |
18-Feb-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
New helper function getMBBFromIndex() that given an index in any instruction of an MBB returns a pointer the MBB. Reviewed by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47267 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7b197ee2b5ab508b1d3e800ba04f0aabd1757608 |
18-Feb-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
New helper function getMBBFromIndex() that given an index in any instruction of an MBB returns a pointer the MBB. Reviewed by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47267 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
96cfff0906915a060e543db8e0e4a74c674ef7c0 |
18-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
For now, avoid commuting def MI for copy MI's whose source is not killed. That simply trade a live interval for another and because only the non-two-address operands can be folded into loads, may end up pessimising code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47262 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
37743896699e67b66e1a457678aa024e680e9125 |
18-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
For now, avoid commuting def MI for copy MI's whose source is not killed. That simply trade a live interval for another and because only the non-two-address operands can be folded into loads, may end up pessimising code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47262 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d497d9fab6e90499c703f3e672ec001dbfa074f9 |
16-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
I cannot find a libgcc function for this builtin. Therefor expanding it to a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0531ec5fcd743940a1e3074e94d764cfdbc8c135 |
16-Feb-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
I cannot find a libgcc function for this builtin. Therefor expanding it to a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
051bb7b07504be9f848f7cce802e62ed24980bc5 |
16-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Teach LegalizeTypes how to expand the operands of br_cc. This fixes 5 "make check" failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
|
4932e5861eea26356643819e6f27e66895c3ca1e |
16-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Teach LegalizeTypes how to expand the operands of br_cc. This fixes 5 "make check" failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
|
559f4224d634579aa2ca7ec6a59e67db14038c9d |
16-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor some code; check if commuteInstruction is able to commute the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47208 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
b820508449c9b43cef82f837efc9be4f4df8c67c |
16-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor some code; check if commuteInstruction is able to commute the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47208 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
22c5c1b2dfcb1da6a7ebfebea903401fc77d56e6 |
16-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
llvm.memory.barrier, and impl for x86 and alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
785610d18b401d3138edf13037d21d7ec89e748a |
16-Feb-2008 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
llvm.memory.barrier, and impl for x86 and alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
527c250a9080a5b6cf0053a6215037c3769ff4a0 |
16-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47200 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
d1d3a208bd85e6518e9024e68c6024d2254a0d94 |
16-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47200 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
42a77880a83b76112a1f42ce16b46dbde01cd0a8 |
16-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Rename CountMemOperands to ComputeMemOperandsEnd to reflect what it actually does. Simplify CountOperands a little by reusing ComputeMemOperandsEnd. And reword some comments for both. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
ce2564683245b224c3c763cce2a17de8a5299f70 |
16-Feb-2008 |
Dan Gohman <djg@cray.com> |
Rename CountMemOperands to ComputeMemOperandsEnd to reflect what it actually does. Simplify CountOperands a little by reusing ComputeMemOperandsEnd. And reword some comments for both. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
94ebde1d45dcd7e209663c49a1cf1a4589191df1 |
16-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Revert 47177, which was incorrect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
71fd07b3d2774cfd751514f453b3fa4836e6cd83 |
16-Feb-2008 |
Dan Gohman <djg@cray.com> |
Revert 47177, which was incorrect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0123b7dcfa9be97588926407163deb8d603487ce |
16-Feb-2008 |
Scott Michel <scottm@aero.org> |
Make tblgen a little smarter about constants smaller than i32. Currently, tblgen will complain if a sign-extended constant does not fit into a data type smaller than i32, e.g., i16. This causes a problem when certain hex constants are used, such as 0xff for byte masks or immediate xor values. tblgen will try the sign-extended value first and, if the sign extended value would overflow, it tries to see if the unsigned value will fit. Consequently, a software developer can now safely incant: (XORHIr16 R16C:$rA, 0xffff) which is somewhat clearer and more informative than incanting: (XORHIr16 R16C:$rA, (i16 -1)) even if the two are bitwise equivalent. Tblgen also outputs the 64-bit unsigned constant in the generated ISel code when getTargetConstant() is invoked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ac7091cb9cc8672cb11befc1a333f79752be0fc6 |
16-Feb-2008 |
Scott Michel <scottm@aero.org> |
Make tblgen a little smarter about constants smaller than i32. Currently, tblgen will complain if a sign-extended constant does not fit into a data type smaller than i32, e.g., i16. This causes a problem when certain hex constants are used, such as 0xff for byte masks or immediate xor values. tblgen will try the sign-extended value first and, if the sign extended value would overflow, it tries to see if the unsigned value will fit. Consequently, a software developer can now safely incant: (XORHIr16 R16C:$rA, 0xffff) which is somewhat clearer and more informative than incanting: (XORHIr16 R16C:$rA, (i16 -1)) even if the two are bitwise equivalent. Tblgen also outputs the 64-bit unsigned constant in the generated ISel code when getTargetConstant() is invoked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bd3e5aac746d9d3ecbf6aea97ee573b2f0d4ab87 |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
The copy instruction being coalesced will be removed, it is not a kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47179 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
25f1d0afe62a68f2b0c6b30349d506b8f4c4954a |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
The copy instruction being coalesced will be removed, it is not a kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47179 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
53c607f562a74d9374bd390a4be151a952ba5d29 |
15-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Skip over the defs and start at the uses when looking for operands with the TIED_TO attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3583a99f40a551d72661c278fb5a05951cf54709 |
15-Feb-2008 |
Dan Gohman <djg@cray.com> |
Skip over the defs and start at the uses when looking for operands with the TIED_TO attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3b66555c53eb8921b2dd50335e0b278ddf80d220 |
15-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use the TargetInstrDescr to determine the number of operands that should be checked for the TIED_TO attribute instead of using CountOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2847ed57495d317b97ecc3128a1ce15beefe9ae1 |
15-Feb-2008 |
Dan Gohman <djg@cray.com> |
Use the TargetInstrDescr to determine the number of operands that should be checked for the TIED_TO attribute instead of using CountOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
ca3a56f2fbde4132e405ead4edadc3570b209386 |
15-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Teach LegalizeTypes how to promote the flags in a ret node. These are created as i32 constants but on some platforms i32 is not legal. This fixes 26 "make check" failures, for example Alpha/2005-07-12-TwoMallocCalls.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47172 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesPromote.cpp
|
820d4266218d0899b2c3adfaf87aa560bab8d5cc |
15-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Teach LegalizeTypes how to promote the flags in a ret node. These are created as i32 constants but on some platforms i32 is not legal. This fixes 26 "make check" failures, for example Alpha/2005-07-12-TwoMallocCalls.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47172 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesPromote.cpp
|
c8d044e4f779fdcfc5e7d592927740fd8f672a70 |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Removing the infamous r2rMap_ and rep() method. Now the coalescer will update register defs and uses after each successful coalescing. - Also removed a number of hacks and fixed some subtle kill information bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47167 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
7d2b9088fc7720b6928b09a032206c293fc6d6bb |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Removing the infamous r2rMap_ and rep() method. Now the coalescer will update register defs and uses after each successful coalescing. - Also removed a number of hacks and fixed some subtle kill information bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47167 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
f20db159541bf27f5d2fdf8d4ba1c8b270b936df |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added CommuteChangesDestination(). This returns true if commuting the specified machine instr will change its definition register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47166 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
5d27025e335080dfeb168e2aa2ae95f680b19779 |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added CommuteChangesDestination(). This returns true if commuting the specified machine instr will change its definition register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47166 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
63e3cd4e0f3731d6801ac24199652e4d7b4b3729 |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47164 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
77aa587e6adfbcf82cb984574238a5705898d788 |
15-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47164 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
21be3849aef47e6d8c26f31b11def57d59167863 |
15-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use StoreSDNode::getValue instead of calling getOperand directly with a hard-coded operand number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e9f633d8dc2da30c536db9df61b0adf4414d3c0d |
15-Feb-2008 |
Dan Gohman <djg@cray.com> |
Use StoreSDNode::getValue instead of calling getOperand directly with a hard-coded operand number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
423be627e6a108b72770426e16cb988b6167c3cb |
14-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a miscompilation from Dan's recent apintification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
69946fdd7428f0a1ccc7defc7c06533817bbf80e |
14-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a miscompilation from Dan's recent apintification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
00fee65fd21f9615d1a604b8b7d42cd16a3f6b47 |
14-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
In TargetLowering::LowerCallTo, don't assert that the return value is zero-extended if it isn't sign-extended. It may also be any-extended. Also, if a floating point value was returned in a larger floating point type, pass 1 as the second operand to FP_ROUND, which tells it that all the precision is in the original type. I think this is right but I could be wrong. Finally, when doing libcalls, set isZExt on a parameter if it is "unsigned". Currently isSExt is set when signed, and nothing is set otherwise. This should be right for all calls to standard library routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
ead972ea45c0c4dad4e2e5c8da1ad24abda2ef47 |
14-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
In TargetLowering::LowerCallTo, don't assert that the return value is zero-extended if it isn't sign-extended. It may also be any-extended. Also, if a floating point value was returned in a larger floating point type, pass 1 as the second operand to FP_ROUND, which tells it that all the precision is in the original type. I think this is right but I could be wrong. Finally, when doing libcalls, set isZExt on a parameter if it is "unsigned". Currently isSExt is set when signed, and nothing is set otherwise. This should be right for all calls to standard library routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
e179584f9b740cf3a36bde70f8cab40de59b8081 |
14-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Change how FP immediates are handled. 1) ConstantFP is now expand by default 2) ConstantFP is not turned into TargetConstantFP during Legalize if it is legal. This allows ConstantFP to be handled like Constant, allowing for targets that can encode FP immediates as MachineOperands. As a bonus, fix up Itanium FP constants, which now correctly match, and match more constants! Hooray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47121 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/TargetLowering.cpp
|
e2ba64fc3785eb8bcc9a7fc2091c56ef056cbc07 |
14-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Change how FP immediates are handled. 1) ConstantFP is now expand by default 2) ConstantFP is not turned into TargetConstantFP during Legalize if it is legal. This allows ConstantFP to be handled like Constant, allowing for targets that can encode FP immediates as MachineOperands. As a bonus, fix up Itanium FP constants, which now correctly match, and match more constants! Hooray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47121 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/TargetLowering.cpp
|
e8b7ccf0c9a06831266d690d0b10ead71e0a4ac5 |
14-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Support a new type of MachineOperand, MO_FPImmediate, used for holding FP Immediates, crazily enough git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47117 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6a38ec3796ec8f79cfec55defdc5913ce15ff70a |
14-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Support a new type of MachineOperand, MO_FPImmediate, used for holding FP Immediates, crazily enough git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47117 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d9fe41c0c8f6eab686c6064e2ce0c8e211b0c995 |
14-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Allow the APInt form of ComputeMaskedBits to operate on i128 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
56eaab3fda3198025c570ca7905ec1efbf177f49 |
14-Feb-2008 |
Dan Gohman <djg@cray.com> |
Allow the APInt form of ComputeMaskedBits to operate on i128 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47101 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
72d2fd57b67b8afc6ddf6314c483a9d2ec71569a |
13-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid setting bits that aren't demanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4d81a743dea86765b5261dd3aa252c7339e3af4c |
13-Feb-2008 |
Dan Gohman <djg@cray.com> |
Avoid setting bits that aren't demanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
977a76fbb6ea1b87dfd7fbbe2ae2afb63e982ff3 |
13-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Simplify some logic in ComputeMaskedBits. And change ComputeMaskedBits to pass the mask APInt by value, not by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47096 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
d0dfc77ceb77510b470773f2b3725de475fc6bae |
13-Feb-2008 |
Dan Gohman <djg@cray.com> |
Simplify some logic in ComputeMaskedBits. And change ComputeMaskedBits to pass the mask APInt by value, not by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47096 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
afe6c2b001a924cd74bd0aacfed5984d9af004b0 |
13-Feb-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Enable exception handling int JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47079 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achOWriter.cpp
|
0e757e1536589f0cb4bda572c5903b65cdf18d23 |
13-Feb-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Enable exception handling int JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47079 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
LVMTargetMachine.cpp
achOWriter.cpp
|
d462ba853981d45bf9c777564e79dc9e1c850ca6 |
13-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Teach LegalizeTypes how to expand and promote CTLZ, CTTZ and CTPOP. The expansion code differs from that in LegalizeDAG in that it chooses to take the CTLZ/CTTZ count from the Hi/Lo part depending on whether the Hi/Lo value is zero, not on whether CTLZ/CTTZ of Hi/Lo returned 32 (or whatever the width of the type is) for it. I made this change because the optimizers may well know that Hi/Lo is zero and exploit it. The promotion code for CTTZ also differs from that in LegalizeDAG: it uses an "or" to get the right result when the original value is zero, rather than using a compare and select. This also means the value doesn't need to be zero extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47075 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
|
146d5af37804de3c482dde4e88e453622cb4039e |
13-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Teach LegalizeTypes how to expand and promote CTLZ, CTTZ and CTPOP. The expansion code differs from that in LegalizeDAG in that it chooses to take the CTLZ/CTTZ count from the Hi/Lo part depending on whether the Hi/Lo value is zero, not on whether CTLZ/CTTZ of Hi/Lo returned 32 (or whatever the width of the type is) for it. I made this change because the optimizers may well know that Hi/Lo is zero and exploit it. The promotion code for CTTZ also differs from that in LegalizeDAG: it uses an "or" to get the right result when the original value is zero, rather than using a compare and select. This also means the value doesn't need to be zero extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47075 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
|
cdbcfccece8ed9857bebbeef79f162e1a7a6906a |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Some code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47060 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
b0e633ae05cf73a02ba1535b2442af0fc6669c72 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Some code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47060 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9cec00e7f1dec7c3142d81c1256d198afa3718d3 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47058 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
49fad7227f690cdb5ef564fd8249b33c7d19cd67 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47058 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
e984e504b5f3090ab270cbdab02638ac3a2afb21 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a potential serious problem where kills belonging to the val# defined by a two-address instruction is also on the val# that defines the input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47057 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c6a71af963f12c172c54e9847cda9b2ca83f9116 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a potential serious problem where kills belonging to the val# defined by a two-address instruction is also on the val# that defines the input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47057 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e35a6d1dfb395925afe37bf0dc00fa2e006be190 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
* Cannot safely commute an instruction there are other defs which can reach its uses. * Ignore copy instructions which have already been coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47056 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
f06d6abeb34c28bd57bbc4ae09aa9b4adf921f71 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
* Cannot safely commute an instruction there are other defs which can reach its uses. * Ignore copy instructions which have already been coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47056 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
86ca3cacc5a56e862c8258ac9c9ee1e37598ebd8 |
13-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this node as soon as we create it in SDISel. Previously we would lower it in legalize. The problem with this is that it only exposes the argument loads implied by FORMAL_ARGUMENTs after legalize, so that only dag combine 2 can hack on them. This causes us to miss some optimizations because datatype expansion also happens here. Exposing the loads early allows us to do optimizations on them. For example we now compile arg-cast.ll to: _foo: movl $2147483647, %eax andl 8(%esp), %eax ret where we previously produced: _foo: subl $12, %esp movsd 16(%esp), %xmm0 movsd %xmm0, (%esp) movl $2147483647, %eax andl 4(%esp), %eax addl $12, %esp ret It might also make sense to do this for ISD::CALL nodes, which have implicit stores on many targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5cb5add9157b17a0be2be4bf0bb5165492ff3e43 |
13-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this node as soon as we create it in SDISel. Previously we would lower it in legalize. The problem with this is that it only exposes the argument loads implied by FORMAL_ARGUMENTs after legalize, so that only dag combine 2 can hack on them. This causes us to miss some optimizations because datatype expansion also happens here. Exposing the loads early allows us to do optimizations on them. For example we now compile arg-cast.ll to: _foo: movl $2147483647, %eax andl 8(%esp), %eax ret where we previously produced: _foo: subl $12, %esp movsd 16(%esp), %xmm0 movsd %xmm0, (%esp) movl $2147483647, %eax andl 4(%esp), %eax addl $12, %esp ret It might also make sense to do this for ISD::CALL nodes, which have implicit stores on many targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fec42eb6daff7e8b644bd24cbf12f83d6b14bd8b |
13-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
teach dag combiner how to eliminate MERGE_VALUES nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47052 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f32fa7f878660878815fb3fb2f36c92ce262d886 |
13-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
teach dag combiner how to eliminate MERGE_VALUES nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47052 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0325d90348f33e8aa719cd70e4663e7b108297fd |
13-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Support legalizing insert_vector_elt on targets where the element type is not legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47048 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6fb7ebd546a28b2f8b941cf79d769304e5875b6a |
13-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Support legalizing insert_vector_elt on targets where the element type is not legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47048 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
70071434ae6080c09ffdc8e069da92619381b930 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Initial support for copy elimination by commuting its definition MI. PR1877. A3 = op A2 B0<kill> ... B1 = A3 <- this copy ... = op A3 <- more uses ==> B2 = op B0 A2<kill> ... B1 = B2 <- now an identify copy ... = op B2 <- more uses This speeds up FreeBench/neural by 29%, Olden/bh by 12%, oopack_v1p8 by 53%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47046 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
14fad81f260b9e49c65aa61b7bbdd36942810b94 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Initial support for copy elimination by commuting its definition MI. PR1877. A3 = op A2 B0<kill> ... B1 = A3 <- this copy ... = op A3 <- more uses ==> B2 = op B0 A2<kill> ... B1 = B2 <- now an identify copy ... = op B2 <- more uses This speeds up FreeBench/neural by 29%, Olden/bh by 12%, oopack_v1p8 by 53%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47046 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
d2b8d7bc51b0e41d09b32aeaa550358ccb379009 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Added removeValNo() to remove all live ranges of a particular value#. - removeRange() can now update value# information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47044 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
49208cfe1821ff1821e2a30a1f3ecfe74d9d10e8 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Added removeValNo() to remove all live ranges of a particular value#. - removeRange() can now update value# information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47044 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
a4d16a1f0dcdd1ab2862737105f900e2c577532d |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
commuteInstr() can now commute non-ssa machine instrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47043 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
b554e533a5a1574c93aaf3cd28b808feff9f4008 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
commuteInstr() can now commute non-ssa machine instrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47043 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
1eb5cf9c7d0b0b04402eddc007b0de414488baf4 |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added debugging routine dumpUses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47042 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
92702b9b3a739cc844fc42b305f72b06e69eb27d |
13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added debugging routine dumpUses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47042 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
fd29e0eb060ea8b4d490860329234d2ae5f5952e |
13-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert SelectionDAG::ComputeMaskedBits to use APInt instead of uint64_t. Add an overload that supports the uint64_t interface for use by clients that haven't been updated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47039 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
229fa05f26826290b9d128e7f6ffbc4889478c25 |
13-Feb-2008 |
Dan Gohman <djg@cray.com> |
Convert SelectionDAG::ComputeMaskedBits to use APInt instead of uint64_t. Add an overload that supports the uint64_t interface for use by clients that haven't been updated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47039 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
014e04a5daeb312b1f0ebc1dd906ffc97c4abc5f |
12-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Generalize getCopyFromParts and getCopyToParts to handle arbitrary precision integers and any number of parts. For example, on a 32 bit machine an i50 corresponds to two i32 parts. getCopyToParts will extend the i50 to an i64 then write half of the i64 to each part; getCopyFromParts will combine the two i32 parts into an i64 then truncate the result to i50. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47024 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
94f9e9a55b6161aa782059b6c49c07264875eb74 |
12-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Generalize getCopyFromParts and getCopyToParts to handle arbitrary precision integers and any number of parts. For example, on a 32 bit machine an i50 corresponds to two i32 parts. getCopyToParts will extend the i50 to an i64 then write half of the i64 to each part; getCopyFromParts will combine the two i32 parts into an i64 then truncate the result to i50. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47024 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b988baccc229ef3e175905c999245d5544a0d384 |
11-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Generalize the handling of call and return arguments, in preparation for apint support. These changes are intended to have no functional effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e111ce83930bdd22c1281db2175a36419879e370 |
11-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Generalize the handling of call and return arguments, in preparation for apint support. These changes are intended to have no functional effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cc20cd59e6c8c9bc6a633f5eea6d66c27c474053 |
11-Feb-2008 |
Dan Gohman <gohman@apple.com> |
From Chris' review: use isa instead of explicitly using classof. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
206208c3f3b99f6c99ffedfe71bf7358139e57b1 |
11-Feb-2008 |
Dan Gohman <djg@cray.com> |
From Chris' review: use isa instead of explicitly using classof. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46964 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
027ee7e3ca21e3cf16051caac91e9befa327f193 |
11-Feb-2008 |
Dan Gohman <gohman@apple.com> |
From Chris' review: minor corrections in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
0256f1e63154c50e8cd6e35d4475d2c327f78ac5 |
11-Feb-2008 |
Dan Gohman <djg@cray.com> |
From Chris' review: minor corrections in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
bbbbb9c3dd4160990f856854d16a3beaead1f354 |
11-Feb-2008 |
Dan Gohman <gohman@apple.com> |
From Chris' review: use cast instead of dyn_cast with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
20e37966ab0c573f45750cc512c573fa2a998fe9 |
11-Feb-2008 |
Dan Gohman <djg@cray.com> |
From Chris' review: use cast instead of dyn_cast with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
debeeba6ec7928f3b577f8fca0a5837f6f053852 |
11-Feb-2008 |
Dan Gohman <gohman@apple.com> |
From Chris' review: fix 80 column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46961 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
ce07338877acbcdd9e10d78f0efcdf03e6bb76a0 |
11-Feb-2008 |
Dan Gohman <djg@cray.com> |
From Chris' review: fix 80 column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46961 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
1f801fa5ada9cb40fb97ae755c282e91af54a1bc |
11-Feb-2008 |
Ted Kremenek <kremenek@apple.com> |
Added "Profile" method to APFloat for use with FoldingSet. Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary objects to a profile via dispatch to FoldingSetTrait<T>::Profile(). Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their functionality is now replaced using the above mentioned member template. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dc71c8051d354cad8673e651209e431584310d5b |
11-Feb-2008 |
Ted Kremenek <kremenek@apple.com> |
Added "Profile" method to APFloat for use with FoldingSet. Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary objects to a profile via dispatch to FoldingSetTrait<T>::Profile(). Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their functionality is now replaced using the above mentioned member template. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0753fc1850a1ca4d17acca854d830d67737fd623 |
11-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add a isBigEndian method to complement isLittleEndian. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
9ff8fbf70903ad5bc02996bb15834f24231290a2 |
11-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add a isBigEndian method to complement isLittleEndian. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
|
431bfcbe3746d1a427b4c7791140f88882a8e8d8 |
11-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Determine whether a spill kills the register it's spilling before insertion rather than trying to undo the kill marker afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46953 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b427252853b1b0ddd3eb0d1ca32ed6163b38827d |
11-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Determine whether a spill kills the register it's spilling before insertion rather than trying to undo the kill marker afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46953 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
6f0d024a534af18d9e60b3ea757376cd8a3a980e |
10-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Rename MRegisterInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
warfWriter.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
achineRegisterInfo.cpp
achineSink.cpp
HIElimination.cpp
hysRegTracker.h
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterCoalescer.cpp
egisterScavenging.cpp
electionDAG/CallingConvLower.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
woAddressInstructionPass.cpp
irtRegMap.cpp
irtRegMap.h
|
1e57df3b4fd69b2a316d8931dee1b9e033ae3a9a |
10-Feb-2008 |
Dan Gohman <djg@cray.com> |
Rename MRegisterInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
warfWriter.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
achineRegisterInfo.cpp
achineSink.cpp
HIElimination.cpp
hysRegTracker.h
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterCoalescer.cpp
egisterScavenging.cpp
electionDAG/CallingConvLower.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
woAddressInstructionPass.cpp
irtRegMap.cpp
irtRegMap.h
|
d885dbdf9eb7a51ebb9a15a85921f27d8219997c |
10-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add truncate and AssertZext result expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/SelectionDAG.cpp
|
539510b437768ff1e18b67e8eb968f26efe2e054 |
10-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add truncate and AssertZext result expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/SelectionDAG.cpp
|
91b9ad182411153608d5bb4232209f3b5fd6bd6b |
10-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Return "(c1 + c2)" instead of yet another ADD node (which made this a no-op). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e58f7b81562784e4194905e0f233092360d7782a |
10-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Return "(c1 + c2)" instead of yet another ADD node (which made this a no-op). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
be036a94c315eee5cc5388322c3c9505e8d3991e |
10-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
add anote git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46918 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
2976f9e6d97630074aea8ad2beb434f443bfe5d1 |
10-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
add anote git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46918 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
63a18c491aa96367c493babebcd97d3263e07768 |
09-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unused hidden option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46903 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
2f39752377ef4e3b1d5dbce7af3b610bb1eddf17 |
09-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove unused hidden option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46903 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6394b099e836f56a937cdcc7332c9487b504ca68 |
08-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Change ConstantSDNode to store an APInt instead of a uint64_t, and begin adding some methods to use it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dc458cfef568772046cf0c1a508f0621c3a6a4fe |
08-Feb-2008 |
Dan Gohman <djg@cray.com> |
Change ConstantSDNode to store an APInt instead of a uint64_t, and begin adding some methods to use it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f2f8c2ae07b7d9bdbf1b89781c573c7af2bd5e1b |
08-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Forgot these files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46896 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocBigBlock.cpp
irtRegMap.cpp
|
3a15a4eb97ebdd4bac23f40d2f625ce5800d547c |
08-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Forgot these files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46896 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocBigBlock.cpp
irtRegMap.cpp
|
bbd8322daaefa70ba1a282956df5f977e783524b |
08-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Also print alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46895 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
38dc79b36823c3b026618382614b5be87b4a356e |
08-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Also print alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46895 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
547ca537b638c8fd5c8f4729e4c74898f8371e4e |
08-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid needlessly casting away const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8cdf7897416cf307bcae281ef8a0f80873d31356 |
08-Feb-2008 |
Dan Gohman <djg@cray.com> |
Avoid needlessly casting away const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
27240c7d5095857baaf66cc9496a68a2100e565f |
07-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove remnant of load folding in local register allocator. Patch by Holger Schurig. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46861 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
71f91ed5eadc8830b753450bae04cbc53afa4cd9 |
07-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove remnant of load folding in local register allocator. Patch by Holger Schurig. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46861 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
3069b8743769527ce7af6cfb6591a2f0fc2faee4 |
07-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Follow Chris' suggestion; change the PseudoSourceValue accessors to return pointers instead of references, since this is always what is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46857 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
fb020b625ece8bf264cbce7e40f73611c7b552e3 |
07-Feb-2008 |
Dan Gohman <djg@cray.com> |
Follow Chris' suggestion; change the PseudoSourceValue accessors to return pointers instead of references, since this is always what is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46857 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
2bfe6ff605f07e8f50874b1326227efc8bb8ed3d |
07-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Don't abort if a MemOperand is missing a SourceValue; just print it as <unknown>. And make some minor adjustments to the MemOperand dump format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46853 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f738b656206a75c6f553b8e16c3a8db0e07b4cac |
07-Feb-2008 |
Dan Gohman <djg@cray.com> |
Don't abort if a MemOperand is missing a SourceValue; just print it as <unknown>. And make some minor adjustments to the MemOperand dump format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46853 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
33d4f7792f92eb7652ec3410c88b02ddb5aa7861 |
07-Feb-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Don't make up new directives. (".set_foobar") git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46848 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
f3df239e202468ec51407cd063c9e99e3486c206 |
07-Feb-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Don't make up new directives. (".set_foobar") git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46848 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
69de1932b350d7cdfc0ed1f4198d6f78c7822a02 |
06-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Re-apply the memory operand changes, with a fix for the static initializer problem, a minor tweak to the way the DAGISelEmitter finds load/store nodes, and a renaming of the new PseudoSourceValue objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46827 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
12a9c08252c8e0fcdf5dedcdbf182251012a6fab |
06-Feb-2008 |
Dan Gohman <djg@cray.com> |
Re-apply the memory operand changes, with a fix for the static initializer problem, a minor tweak to the way the DAGISelEmitter finds load/store nodes, and a renaming of the new PseudoSourceValue objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46827 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
2fc628d662ccf5d5287559d044fd63517a7936ac |
06-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a number of local register allocator issues: PR1609. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46821 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a1d9dfb078bc3a268d498e017f3236b4f643db2c |
06-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a number of local register allocator issues: PR1609. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46821 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
22ff3eeebeb4d17749ab9d5cd4d5807f3066bb94 |
06-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
RegAllocaLocal still *requires* LiveVariables since it runs PHIElimination, followed by TwoAddress which requires LiveVariables. We cannot run LiveVariables on non-SSA code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46813 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
04d9d0bee6ae9e64fc0410bd0c76a4de2988dfc4 |
06-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
RegAllocaLocal still *requires* LiveVariables since it runs PHIElimination, followed by TwoAddress which requires LiveVariables. We cannot run LiveVariables on non-SSA code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46813 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a58891ff1e6b5cc61cbb3cfe46be7f2eeddbfe98 |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1975: dag isel emitter produces patterns that isel wrong flag result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46776 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
07f307d74154af2be9ae7d1c5a90912aef42f0c6 |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1975: dag isel emitter produces patterns that isel wrong flag result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46776 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bb4151bd1f292df8f505671e502d01f0b10afa0f |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a vr is already marked alive in a bb, then it has PHI uses that are visited earlier, then it is not killed in the def block (i.e. not dead). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46763 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
86f26d2861aa414c18244b164aeefa2bb5ec5a58 |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a vr is already marked alive in a bb, then it has PHI uses that are visited earlier, then it is not killed in the def block (i.e. not dead). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46763 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
fc718542a3e73558af9c0272b0eea67a189e5397 |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ee6db0f4e93fc47b6b482c2235c06fbbbdd4bb74 |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4e3f5a4e9c13f216856515e6f000881f2c850736 |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Dwarf requires variable entries to be in the source order. Right now, since we are recording variable information at isel time this means parameters would appear in the reverse order. The short term fix is to issue recordVariable() at asm printing time instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46724 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c439a85b1af63b2854c47e9322e553fe6180f4bc |
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Dwarf requires variable entries to be in the source order. Right now, since we are recording variable information at isel time this means parameters would appear in the reverse order. The short term fix is to issue recordVariable() at asm printing time instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46724 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
6cb7e6d36bf7d5b3687ae19217fef6dd24448285 |
04-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
I don't see how NodeUpdated can be called with a ReadyToProcess node - add an assertion to check this. Add an assertion to NodeDeleted that checks that processed/ready nodes are indeed not deleted. It is because they are never deleted that none of the maps can have a deleted node as the source of a mapping. It does however seem to be possible in theory to have a deleted value as the target of a mapping, however this has not yet been spotted in the wild. Still mulling on what to do about this. [The theoretical situation is this: a node A is expanded/promoted/whatever to a newly created node B. Thus A->B is added to a map. When the subtree rooted at B is legalized it is conceivable that B is deleted due to RAUW on a node somewhere above it]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46705 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
608f7ae5f7a2268b391c372a35d4fe70920dc49b |
04-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
I don't see how NodeUpdated can be called with a ReadyToProcess node - add an assertion to check this. Add an assertion to NodeDeleted that checks that processed/ready nodes are indeed not deleted. It is because they are never deleted that none of the maps can have a deleted node as the source of a mapping. It does however seem to be possible in theory to have a deleted value as the target of a mapping, however this has not yet been spotted in the wild. Still mulling on what to do about this. [The theoretical situation is this: a node A is expanded/promoted/whatever to a newly created node B. Thus A->B is added to a map. When the subtree rooted at B is legalized it is conceivable that B is deleted due to RAUW on a node somewhere above it]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46705 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
9d3e5d476c4478d2837760a9bf43fedb8a5a7e51 |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46682 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
5a878cf91b5474e95491c4e5b9e36eeff334e61e |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46682 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
fcd8e9e3a21efb32172a6395e8697889962067e1 |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
handle the case where a node can become ready to process multiple times due to a RAUW. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
2d41a227a7422ac991a8412ddd0c7c1c5374f24e |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
handle the case where a node can become ready to process multiple times due to a RAUW. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
42bd25f8ec6f506fa40d3304de47ba8a2e306f96 |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Use the new infrastructure for listening to node updates to keep the LegalizeTypes node flags up to date when doing a RAUW. This fixes a nasty bug that Duncan ran into and makes the previous (nonbuggy case) more efficent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
0fdf4edd2d64ee5d6bdb5d66beed0da325e5e117 |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Use the new infrastructure for listening to node updates to keep the LegalizeTypes node flags up to date when doing a RAUW. This fixes a nasty bug that Duncan ran into and makes the previous (nonbuggy case) more efficent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
d8cd3be37062747f1abbcdb6de4547574ceea603 |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
the world doesn't need my debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9c980aa7364674c55978c4ee8f92cfeff71a57a7 |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
the world doesn't need my debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f8dc0617baceeba8ccd67c8881eb88eb1be2902c |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Change the 'global modification' APIs in SelectionDAG to take a new DAGUpdateListener object pointer instead of just returning a vector of deleted nodes. This makes the interfaces more efficient (no more allocating a vector [at least a malloc], filling it in, then walking it) and more clean. This also allows the client to be notified of nodes that are *changed* but not deleted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7bcb18f7002752829aca7ac639c1a76dba8f347f |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Change the 'global modification' APIs in SelectionDAG to take a new DAGUpdateListener object pointer instead of just returning a vector of deleted nodes. This makes the interfaces more efficient (no more allocating a vector [at least a malloc], filling it in, then walking it) and more clean. This also allows the client to be notified of nodes that are *changed* but not deleted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
11d049c87f49cf273863248d44cda005690515a6 |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Generalize the SDOperand->SDOperand form of SelectionDAG::ReplaceAllUsesWith to handle replacement of an SDOperand with *any* sdoperand, not just one for a node with a single result. Note that this has a horrible FIXME'd hack in it to work around PR1975. This should be removed when PR1975 is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46674 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dca329fe24288b7d7f7303df17f949f5878cb16f |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Generalize the SDOperand->SDOperand form of SelectionDAG::ReplaceAllUsesWith to handle replacement of an SDOperand with *any* sdoperand, not just one for a node with a single result. Note that this has a horrible FIXME'd hack in it to work around PR1975. This should be removed when PR1975 is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46674 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a658baba78e9cb0a9efbc5e4921c63f7b92a920c |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
add a -view-legalize-types-dags option, for viewing the dags going into legalize types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
c90decaaa677dea71fbde50211c2c3ee89cffceb |
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
add a -view-legalize-types-dags option, for viewing the dags going into legalize types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
|
4eecdeb3faf5df864790175da5d58301b751ec11 |
02-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Get rid of the annoying blank lines before labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46667 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
8b9886912f2d572f2a64ff112131184c41dabae4 |
02-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Get rid of the annoying blank lines before labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46667 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a844bdeab31ef04221e7ef59a8467893584cc14d |
02-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46659 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2e28d627d086d38a7e62fc2e3b6f4b9ef24ecf07 |
02-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46659 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
1b08bbca5592351a940bcd164bdec724ee954326 |
01-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove the nasty LABEL hack with a much less evil one. Now llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46635 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
rologEpilogInserter.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a53c40a59981b6bae7e734fa9e42bc345c0457df |
01-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove the nasty LABEL hack with a much less evil one. Now llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46635 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
rologEpilogInserter.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a647c92ec2b3c91e1e6de25cc5c7860912c7626b |
01-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename RecordLabel to RecordSourceLine because that's what it is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46628 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/LegalizeDAG.cpp
|
69eda82e77410e2ab9599e9861af2c97a44e863d |
01-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename RecordLabel to RecordSourceLine because that's what it is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46628 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/LegalizeDAG.cpp
|
334dc1f58d617dcff969a2e107febaae42bbc883 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
36ddaf294db6fbbbac5e79ca0e2d166ea36fe187 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
seudoSourceValue.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
7bdc5f734f6aa16cc300f66d2a804d75b916d12b |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a comment for a nasty short term hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
345235ccc9e9b11acd4fc4448a9d6e8c83dabf91 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a comment for a nasty short term hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
bb81d97feb396a8bb21d074db1c57e9f66525f40 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46609 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
achineInstr.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
13d1c2965485bc5df76e0bb609fcc77d257caca7 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46609 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
achineInstr.cpp
achineModuleInfo.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
175e81598ad3fc02f9f5a2ac3ef578a9fed31b6e |
31-Jan-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add more thorough error checking for NULL register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e08d9ec236815bc0da1828c0231e92698a98d27c |
31-Jan-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add more thorough error checking for NULL register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
72bebb9205c1628601b052d25555aabe6e15e6f4 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
MRegisterInfo::getLocation() is a really bad idea. Its function is to calculate the offset from frame pointer to a stack slot and then storing the delta in a MachineLocation object. The name is bad (it implies a getter), and MRegisterInfo doesn't need to know about MachineLocation. Replace getLocation() with getFrameIndexOffset() which returns the delta from frame pointer to stack slot. Dwarf writer can then use the information for whatever it wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46597 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
38948833a3a533ec62968518e09191194d7730ec |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
MRegisterInfo::getLocation() is a really bad idea. Its function is to calculate the offset from frame pointer to a stack slot and then storing the delta in a MachineLocation object. The name is bad (it implies a getter), and MRegisterInfo doesn't need to know about MachineLocation. Replace getLocation() with getFrameIndexOffset() which returns the delta from frame pointer to stack slot. Dwarf writer can then use the information for whatever it wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46597 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
1a0248690aaa9f7baaf1247e5f65a1c0c9e3783c |
31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Rename ISD::FLT_ROUNDS to ISD::FLT_ROUNDS_ to avoid conflicting with the real FLT_ROUNDS (defined in <float.h>). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
819574c596dddbd97a3945cbbcf019106c405455 |
31-Jan-2008 |
Dan Gohman <djg@cray.com> |
Rename ISD::FLT_ROUNDS to ISD::FLT_ROUNDS_ to avoid conflicting with the real FLT_ROUNDS (defined in <float.h>). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
00dff8dda29b5a249cd99405ce26e84cef13ba53 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Also avoid adding callee save code before debug labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46586 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
39cdca163091fb66487eb8de23419461d9d55912 |
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Also avoid adding callee save code before debug labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46586 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c6c391daddbafa722d9ca87d18f204e9a6e617a3 |
31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Create a new class, MemOperand, for describing memory references in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now. Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects. Most of this was written by Florian Brander, some reorganization and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46585 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
f14b4476a7dfade92c1f57f5702175f283960f30 |
31-Jan-2008 |
Dan Gohman <djg@cray.com> |
Create a new class, MemOperand, for describing memory references in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now. Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects. Most of this was written by Florian Brander, some reorganization and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46585 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
294e6524916aecd874dddeede4cc074d31f5f59f |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a bug in MergeValueInAsValue() pointed out by David Greene. Replace val# with previous liverange's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46579 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
c7fe7be846eb95505d8827c2fe00d38c3b5f5ba0 |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a bug in MergeValueInAsValue() pointed out by David Greene. Replace val# with previous liverange's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46579 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
965d1b4bba6107b451edee403c6666acb86f39e3 |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Treat the label for the first @llvm.dbg.stoppoint the same way as the dbg_func_start label. Make sure nothing else is inserted before them. Note this solution might be somewhat fragile since ISD::LABEL may be used for other purposes. If that ends up to be an issue, we may need to introduce a different node for debug labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a726585ca660c8766a9bd860476eb2ef8c019142 |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Treat the label for the first @llvm.dbg.stoppoint the same way as the dbg_func_start label. Make sure nothing else is inserted before them. Note this solution might be somewhat fragile since ISD::LABEL may be used for other purposes. If that ends up to be an issue, we may need to introduce a different node for debug labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
43b8f3b7d375187f843181ad3331ea9f06b473f5 |
30-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Adjust loop per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46569 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
c59be5582149d604456c15a757cebe46d481cbbd |
30-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Adjust loop per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46569 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
6b2cf285bd43fdc98ca68df477570ef6938d4fb2 |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
A semi-gross fix for a debug info issue. When inserting the "function start" label (i.e. first label in the entry block) take care to insert it at the beginning of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
2d37392200dddf071bdc54cc3f0217284f550126 |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
A semi-gross fix for a debug info issue. When inserting the "function start" label (i.e. first label in the entry block) take care to insert it at the beginning of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
7757fff6aebdca376a46412c8dfb3fab7d8ad411 |
30-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Accept getelementptr starting at GV with all 0 indices as a legitimate way of representing global variable GV in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46565 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
3bb9df92ebe73f06efa266779f92cb2b799f6991 |
30-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Accept getelementptr starting at GV with all 0 indices as a legitimate way of representing global variable GV in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46565 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
ff9b373e8f5006c629af81e2619778b4c4f5249e |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a proper name. Rename it to EmitInstrWithCustomInserter since it does not necessarily insert instruction at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46562 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
e637db117eb826a539e230590ee6a5db585f1ffb |
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a proper name. Rename it to EmitInstrWithCustomInserter since it does not necessarily insert instruction at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46562 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f38dc192dd378903048efbadb95b75cf41abfb63 |
30-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Add a new PseudoSourceValue class, which will be used to help track memory reference information in the backend. Most of this was written by Florian Brander, cleanup and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46556 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
93ea972b2a51af9be1431000ead30dd156b3a7ba |
30-Jan-2008 |
Dan Gohman <djg@cray.com> |
Add a new PseudoSourceValue class, which will be used to help track memory reference information in the backend. Most of this was written by Florian Brander, cleanup and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46556 91177308-0d34-0410-b5e6-96231b3b80d8
seudoSourceValue.cpp
|
b625f2f8960de32bc973092aaee8ac62863006fe |
30-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Factor the addressing mode and the load/store VT out of LoadSDNode and StoreSDNode into their common base class LSBaseSDNode. Member functions getLoadedVT and getStoredVT are replaced with the common getMemoryVT to simplify code that will handle both loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
9a4c92c2b43e51ac531e0dbc319855635a14f905 |
30-Jan-2008 |
Dan Gohman <djg@cray.com> |
Factor the addressing mode and the load/store VT out of LoadSDNode and StoreSDNode into their common base class LSBaseSDNode. Member functions getLoadedVT and getStoredVT are replaced with the common getMemoryVT to simplify code that will handle both loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
648f880dc907faf5c05f3d79a424597b65758360 |
29-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
When expanding an operand, it's not the result value type that matters but the operand type. This fixes 2008-01-08-IllegalCMP.ll which crashed with the new legalize infrastructure because SETCC with result type i8 and operand type i64 was being custom expanded by the X86 backend. With this fix, the gcc build gets as far as the first libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46525 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesExpand.cpp
|
03408917ba127906ebf3f305b8115cde9a649dc5 |
29-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
When expanding an operand, it's not the result value type that matters but the operand type. This fixes 2008-01-08-IllegalCMP.ll which crashed with the new legalize infrastructure because SETCC with result type i8 and operand type i64 was being custom expanded by the X86 backend. With this fix, the gcc build gets as far as the first libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46525 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesExpand.cpp
|
303595942502f17c087fa28874c2b89117148c45 |
29-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Use empty() instead of comparing size() with zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46514 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
achineModuleInfo.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
301f405ef34539e7f287513bd7df0cbcf4f71d07 |
29-Jan-2008 |
Dan Gohman <djg@cray.com> |
Use empty() instead of comparing size() with zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46514 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
fConversion.cpp
achineModuleInfo.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
9f65c39f806186e1bbe1c9e4b670d198c69a81c1 |
29-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
e490176fcdd23a72fffaafe08c96c00dab7610a3 |
29-Jan-2008 |
Dan Gohman <djg@cray.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6ee9661390849bd9564cda38bfbe563ec255c419 |
29-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3cd20f8d8b51c78018c20f2c6788065de13f48d7 |
29-Jan-2008 |
Dan Gohman <djg@cray.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46508 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d102593b425da27fa96359300ff0e3d547d0ac8d |
29-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Use getPreferredAlignmentLog or getPreferredAlignment to get the alignment of global variables, rather than using hand-made versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46495 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
935686e9d1142b8c8f26a7fb2c8736b692eeaf4f |
29-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Use getPreferredAlignmentLog or getPreferredAlignment to get the alignment of global variables, rather than using hand-made versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46495 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
8822eabe3623d5e2197096d44ff294fc8c381680 |
29-Jan-2008 |
Owen Anderson <resistor@mac.com> |
RegAllocBigBlock doesn't need LiveVariables either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46488 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
97dc0b1840ba2019f2a5f8c6fffc2560c2f26942 |
29-Jan-2008 |
Owen Anderson <resistor@mac.com> |
RegAllocBigBlock doesn't need LiveVariables either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46488 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
55030dc460ff43f382abcc977b3e45bab7d87826 |
29-Jan-2008 |
Nate Begeman <natebegeman@mac.com> |
Properly expand extract-element for non-power-of-2 codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46486 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2b10fde55c58895edce4ae48a8242a6405840ed7 |
29-Jan-2008 |
Nate Begeman <natebegeman@mac.com> |
Properly expand extract-element for non-power-of-2 codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46486 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ba2a0b960ea4c73d0f81557f63ae2ea126e08905 |
29-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Handle 'X' constraint in asm's better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46485 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
e99fc909ce61423c2e27314675708a323e897d57 |
29-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Handle 'X' constraint in asm's better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46485 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f32aac3090849fed64906f7bae499b726a51f877 |
28-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix PowerPC/./2007-10-18-PtrArithmetic.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46424 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
336672fc0cfa6162f7e03f8cf1bf0f0c285563a1 |
28-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix PowerPC/./2007-10-18-PtrArithmetic.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46424 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ee339f4b2ab3e7789f02a714bbd8b1fb9f956467 |
28-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix a crash on CodeGen/X86/vector-rem.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ce602f570656732a08598f43d6e7e41c01c56823 |
28-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix a crash on CodeGen/X86/vector-rem.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c66a4f912feaf186a93b113b31e29cb660be0fcc |
27-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Reg alloc doesn't really need LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46420 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
007b9f83f151ac7ac08ef0309febb8d5348c30cf |
27-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Reg alloc doesn't really need LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46420 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
3bd39d4ca89804e97c93b039f6c2933f514c165c |
27-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Implement some dag combines that allow doing fneg/fabs/fcopysign in integer registers if used by a bitconvert or using a bitconvert. This allows us to avoid constant pool loads and use cheaper integer instructions when the values come from or end up in integer regs anyway. For example, we now compile CodeGen/X86/fp-in-intregs.ll to: _test1: movl $2147483648, %eax xorl 4(%esp), %eax ret _test2: movl $1065353216, %eax orl 4(%esp), %eax andl $3212836864, %eax ret Instead of: _test1: movss 4(%esp), %xmm0 xorps LCPI2_0, %xmm0 movd %xmm0, %eax ret _test2: movss 4(%esp), %xmm0 andps LCPI3_0, %xmm0 movss LCPI3_1, %xmm1 andps LCPI3_2, %xmm1 orps %xmm0, %xmm1 movd %xmm1, %eax ret bitconverts can happen due to various calling conventions that require fp values to passed in integer regs in some cases, e.g. when returning a complex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ef26cbc5c359373f39f7bb55df4fc10a89772539 |
27-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Implement some dag combines that allow doing fneg/fabs/fcopysign in integer registers if used by a bitconvert or using a bitconvert. This allows us to avoid constant pool loads and use cheaper integer instructions when the values come from or end up in integer regs anyway. For example, we now compile CodeGen/X86/fp-in-intregs.ll to: _test1: movl $2147483648, %eax xorl 4(%esp), %eax ret _test2: movl $1065353216, %eax orl 4(%esp), %eax andl $3212836864, %eax ret Instead of: _test1: movss 4(%esp), %xmm0 xorps LCPI2_0, %xmm0 movd %xmm0, %eax ret _test2: movss 4(%esp), %xmm0 andps LCPI3_0, %xmm0 movss LCPI3_1, %xmm1 andps LCPI3_2, %xmm1 orps %xmm0, %xmm1 movd %xmm1, %eax ret bitconverts can happen due to various calling conventions that require fp values to passed in integer regs in some cases, e.g. when returning a complex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
553c116a1b94e9c5c7489e6a31908dbb8a76131c |
27-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
For long double constants, print an approximation of their value to the .s file to make it easier to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46407 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
00d6306a51b2869b40b203d8e060654cf3500918 |
27-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
For long double constants, print an approximation of their value to the .s file to make it easier to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46407 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
1329cb8d8992c34365fcc2ac0447356708157dfb |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Infer alignment of loads and increase their alignment when we can tell they are from the stack. This allows us to compile stack-align.ll to: _test: movsd LCPI1_0, %xmm0 movapd %xmm0, %xmm1 *** andpd 4(%esp), %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test: movsd LCPI1_0, %xmm0 ** movsd 4(%esp), %xmm1 ** andpd %xmm0, %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1e3362f68ef7d05aa31fc8865291cd834add1cc6 |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Infer alignment of loads and increase their alignment when we can tell they are from the stack. This allows us to compile stack-align.ll to: _test: movsd LCPI1_0, %xmm0 movapd %xmm0, %xmm1 *** andpd 4(%esp), %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test: movsd LCPI1_0, %xmm0 ** movsd 4(%esp), %xmm1 ** andpd %xmm0, %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5eee427594c87a037a108047b3cd39c14f724752 |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix some bugs in SimplifyNodeWithTwoResults where it would call deletenode to delete a node even if it was not dead in some cases. Instead, just add it to the worklist. Also, make sure to use the CombineTo methods, as it was doing things that were unsafe: the top level combine loop could touch dangling memory. This fixes CodeGen/Generic/2008-01-25-dag-combine-mul.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4a7c84596446d1027621302b1e5b616943a1d034 |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix some bugs in SimplifyNodeWithTwoResults where it would call deletenode to delete a node even if it was not dead in some cases. Instead, just add it to the worklist. Also, make sure to use the CombineTo methods, as it was doing things that were unsafe: the top level combine loop could touch dangling memory. This fixes CodeGen/Generic/2008-01-25-dag-combine-mul.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9967c15183e023b7cf59b094d69530ffeca1aa0f |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't bother making x&-1 only to simplify it in dag combine. This commonly occurs expanding i64 ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8aa8a5ed27e9146cb3e601a9cdf0ed481893116d |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't bother making x&-1 only to simplify it in dag combine. This commonly occurs expanding i64 ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
50d8e491a2c044efb9f7b5c0c223d29ea2dbf6cd |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
20e5390238ef213139bf402ba5bb484c8d4ed9b4 |
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5bab78527a946632cd9614daa0b9a82ee7b5e1cc |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix long lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2f69f133a833ce9df1c3a5c30be84269962bbbf6 |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix long lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46355 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
00161a63dda71714df312661ceed0a318ed8b266 |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add skeletal code to increase the alignment of loads and stores when we can infer it. This will eventually help stuff, though it doesn't do much right now because all fixed FI's have an alignment of 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4e137af8b58c1a5b517baa524c81bdaf413f13eb |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add skeletal code to increase the alignment of loads and stores when we can infer it. This will eventually help stuff, though it doesn't do much right now because all fixed FI's have an alignment of 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1612faae3cf7ecfaddba64f7064f0ce4b32dd471 |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
move MachineFrameInfo::CreateFixedObject out of line, give MachineFrameInfo a reference to TargetFrameInfo. Rearrange order of fields in StackObject to save a word. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46348 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
610b9ebe9a10702638f2089d43872130ffab1220 |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
move MachineFrameInfo::CreateFixedObject out of line, give MachineFrameInfo a reference to TargetFrameInfo. Rearrange order of fields in StackObject to save a word. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46348 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
94ffc7eb4679df854266602eabcac906b22df8aa |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
include alignment and volatility information in -view-*-dags output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
35165f10a78c17485bcf73f87f96c2b61c972509 |
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
include alignment and volatility information in -view-*-dags output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
40743b83bf96fe39ac94f4d782e0bc73b4d28919 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Don't dump the function! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46320 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
9d57440777229dd3d2023675d976c2cf0d6936b8 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Don't dump the function! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46320 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
23e202dee012011a25b3b309d3c05d1915767773 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
clarify a comment, thanks Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d2d109ae06abb1386c01a7c0a94d378cc5ca7bc7 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
clarify a comment, thanks Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
125991a1f62db419fc4a504986a998d85fbef699 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix this buggy transformation. Two observations: 1. we already know the value is dead, so don't bother replacing it with undef. 2. The very case the comment describes actually makes the load live which asserts in deletenode. If we do the replacement and the node becomes live, just treat it as new. This fixes a failure on X86/2008-01-16-InvalidDAGCombineXform.ll with some local changes in my tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bb67c1910f1edb89dd4ab86f740c7cfb2fa9fb48 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix this buggy transformation. Two observations: 1. we already know the value is dead, so don't bother replacing it with undef. 2. The very case the comment describes actually makes the load live which asserts in deletenode. If we do the replacement and the node becomes live, just treat it as new. This fixes a failure on X86/2008-01-16-InvalidDAGCombineXform.ll with some local changes in my tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
20e3d86766a38492b3f6203bf4cf70dd9d187b7b |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
The dag combiner is missing revisiting nodes that it really should, and thus leaving dead stuff around. This gets fed into the isel pass and causes certain foldings from happening because nodes have extraneous uses floating around. For example, if we turned foo(bar(x)) -> baz(x), we sometimes left bar(x) around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2b00822a0f1081c9c41102f6a24aee0397861ce6 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
The dag combiner is missing revisiting nodes that it really should, and thus leaving dead stuff around. This gets fed into the isel pass and causes certain foldings from happening because nodes have extraneous uses floating around. For example, if we turned foo(bar(x)) -> baz(x), we sometimes left bar(x) around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0aa5e6f3fbde81c0bf0310ab0582420f0eeb7155 |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fold fp_round(fp_round(x)) -> fp_round(x). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46304 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7afb85556301e5ece26f4e8edd42fc6abeb831ba |
24-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fold fp_round(fp_round(x)) -> fp_round(x). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46304 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b487e7215c4f70f3d98f8fbc0a11eb119afc1f37 |
24-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46295 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
|
580607928bc87fa22ad5a71a16e0025722b339ea |
24-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46295 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
|
3ae054385cfe9f2fcef2d77f26839615b1d3e48b |
24-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Forgot these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46292 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
9b5992a45d2aaba843f4e4ba7a09a487dab1b95e |
24-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Forgot these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46292 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
f9c98e650d2795b8edfae8e1560c221029df218b |
23-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
The last pieces needed for loading arbitrary precision integers. This won't actually work (and most of the code is dead) unless the new legalization machinery is turned on. While there, I rationalized the handling of i1, and removed some bogus (and unused) sextload patterns. For i1, this could result in microscopically better code for some architectures (not X86). It might also result in worse code if annotating with AssertZExt nodes turns out to be more harmful than helpful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
082524cde46d15558f6270208e32cea0fe774586 |
23-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
The last pieces needed for loading arbitrary precision integers. This won't actually work (and most of the code is dead) unless the new legalization machinery is turned on. While there, I rationalized the handling of i1, and removed some bogus (and unused) sextload patterns. For i1, this could result in microscopically better code for some architectures (not X86). It might also result in worse code if annotating with AssertZExt nodes turns out to be more harmful than helpful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
97ca75e4bbab7f680564c96e6a326cd1ea267ce2 |
23-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix an iterator invalidation issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46263 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
dc7d9c28eb838aeae17615ab411134bbb32b051b |
23-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix an iterator invalidation issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46263 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
8e1f7ac87d75ffc02d2fd363a5a9c6d4c7089daf |
22-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Simplify SelectionDAG::getNode so that a big switch stmt is not #ifndef NDEBUG. This is in response to a really nasty bug I introduced that Dale tracked down, hopefully this won't happen in the future. Many thanks Dale. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cc126e3919b3a5dd975d2198c5271724ca56fa45 |
22-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Simplify SelectionDAG::getNode so that a big switch stmt is not #ifndef NDEBUG. This is in response to a really nasty bug I introduced that Dale tracked down, hopefully this won't happen in the future. Many thanks Dale. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7e857201f387d004571e6058e2ea709163500f38 |
22-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
The final piece needed for storing arbitrary precision integers. Handle truncstore of a legal type to an unusual number of bits. Most of this code is not reachable unless the new legalize infrastructure is turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
406766651528477d6969ac1309f6d3fee7290a66 |
22-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
The final piece needed for storing arbitrary precision integers. Handle truncstore of a legal type to an unusual number of bits. Most of this code is not reachable unless the new legalize infrastructure is turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a6b1926531b78f5fa45503aebea30cdb616114b7 |
21-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Clarify a deviation from the original algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46218 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
80f4a4974621c1c522dc6bdc1f7e193119df9617 |
21-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Clarify a deviation from the original algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46218 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
3b489522dff11af226f8aaef9660c10257d16d60 |
21-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Improve a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46217 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f84df2668096a72e8d74eadced54c7439a0a60c7 |
21-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Improve a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46217 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
da9bb3578ed4f57b7e1f5393dfae85ccdf76b4af |
21-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Move DAG-changing code out of #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d05b3a1ddbe025ad429a99bc38900635265504a9 |
21-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Move DAG-changing code out of #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
713ed3f7c0cb788f74af0697fce3c4eafda4178e |
20-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Do not generate a FP_ROUND of f64 to f64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a0d3608864af5d055696d047cb82f29dca64f670 |
20-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Do not generate a FP_ROUND of f64 to f64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c9133f97720a36218ddfa6bfbf36ba6e22c011f7 |
18-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove extraneous &'s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0d551f3e09117788205c92667ba3b17aa108db3f |
18-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove extraneous &'s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ddf89566a93081cb230bb9406a72ab2d3eada4a7 |
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
This commit changes: 1. Legalize now always promotes truncstore of i1 to i8. 2. Remove patterns and gunk related to truncstore i1 from targets. 3. Rename the StoreXAction stuff to TruncStoreAction in TLI. 4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions. 5. Mark a wide variety of invalid truncstores as such in various targets, e.g. X86 currently doesn't support truncstore of any of its integer types. 6. Add legalize support for truncstores with invalid value input types. 7. Add a dag combine transform to turn store(truncate) into truncstore when safe. The later allows us to compile CodeGen/X86/storetrunc-fp.ll to: _foo: fldt 20(%esp) fldt 4(%esp) faddp %st(1) movl 36(%esp), %eax fstps (%eax) ret instead of: _foo: subl $4, %esp fldt 24(%esp) fldt 8(%esp) faddp %st(1) fstps (%esp) movl 40(%esp), %eax movss (%esp), %xmm0 movss %xmm0, (%eax) addl $4, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
3bc0850bd4beeec5b464fce8513d3c749ee413eb |
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
This commit changes: 1. Legalize now always promotes truncstore of i1 to i8. 2. Remove patterns and gunk related to truncstore i1 from targets. 3. Rename the StoreXAction stuff to TruncStoreAction in TLI. 4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions. 5. Mark a wide variety of invalid truncstores as such in various targets, e.g. X86 currently doesn't support truncstore of any of its integer types. 6. Add legalize support for truncstores with invalid value input types. 7. Add a dag combine transform to turn store(truncate) into truncstore when safe. The later allows us to compile CodeGen/X86/storetrunc-fp.ll to: _foo: fldt 20(%esp) fldt 4(%esp) faddp %st(1) movl 36(%esp), %eax fstps (%eax) ret instead of: _foo: subl $4, %esp fldt 24(%esp) fldt 8(%esp) faddp %st(1) fstps (%esp) movl 40(%esp), %eax movss (%esp), %xmm0 movss %xmm0, (%eax) addl $4, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46140 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
4626b250a2a83fbd055dde70629cf0b89356e1d3 |
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
code cleanups, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
667f9c162d69a757cd32cd522276afb9eba25740 |
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
code cleanups, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0bd4893a0726889b942405262e53d06cf3fe3be8 |
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
* Introduce a new SelectionDAG::getIntPtrConstant method and switch various codegen pieces and the X86 backend over to using it. * Add some comments to SelectionDAGNodes.h * Introduce a second argument to FP_ROUND, which indicates whether the FP_ROUND changes the value of its input. If not it is safe to xform things like fp_extend(fp_round(x)) -> x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5872a361d5332fddcdb89c6df684243c19a75f88 |
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
* Introduce a new SelectionDAG::getIntPtrConstant method and switch various codegen pieces and the X86 backend over to using it. * Add some comments to SelectionDAGNodes.h * Introduce a second argument to FP_ROUND, which indicates whether the FP_ROUND changes the value of its input. If not it is safe to xform things like fp_extend(fp_round(x)) -> x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
839b759c38182af8d151db10923c2a6cc7dd5b3d |
17-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
When a live virtual register is being clobbered by an implicit def, it is spilled and the spill is its kill. However, if the local allocator has determined the register has not been modified (possible when its value was reloaded), it would not issue a restore. In that case, mark the last use of the virtual register as kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46111 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a94efbded8e0a63a6fbffc5b3119a3373141cb7b |
17-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
When a live virtual register is being clobbered by an implicit def, it is spilled and the spill is its kill. However, if the local allocator has determined the register has not been modified (possible when its value was reloaded), it would not issue a restore. In that case, mark the last use of the virtual register as kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46111 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
644340a9bdc663762a58784e0b86c87aeeb41116 |
17-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Replace std::vector<bool> with BitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46104 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
9e66d8c6f8e2ff23fa0bfc04ea61c4a323784ced |
17-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Replace std::vector<bool> with BitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46104 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
02c42856431562376ac8280b57ad744ba83f1e38 |
17-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixes a nasty dag combiner bug that causes a bunch of tests to fail at -O0. It's not safe to use the two value CombineTo variant to combine away a dead load. e.g. v1, chain2 = load chain1, loc v2, chain3 = load chain2, loc v3 = add v2, c Now we replace use of v1 with undef, use of chain2 with chain1. ReplaceAllUsesWith() will iterate through uses of the first load and update operands: v1, chain2 = load chain1, loc v2, chain3 = load chain1, loc v3 = add v2, c Now the second load is the same as the first load, SelectionDAG cse will ensure the use of second load is replaced with the first load. v1, chain2 = load chain1, loc v3 = add v1, c Then v1 is replaced with undef and bad things happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46099 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e8b886aa842369e1e1d5ab25c16e05690adbaa33 |
17-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fixes a nasty dag combiner bug that causes a bunch of tests to fail at -O0. It's not safe to use the two value CombineTo variant to combine away a dead load. e.g. v1, chain2 = load chain1, loc v2, chain3 = load chain2, loc v3 = add v2, c Now we replace use of v1 with undef, use of chain2 with chain1. ReplaceAllUsesWith() will iterate through uses of the first load and update operands: v1, chain2 = load chain1, loc v2, chain3 = load chain1, loc v3 = add v2, c Now the second load is the same as the first load, SelectionDAG cse will ensure the use of second load is replaced with the first load. v1, chain2 = load chain1, loc v3 = add v1, c Then v1 is replaced with undef and bad things happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46099 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
48ae02fe62cafd44c740e67cfae6e7277e61a973 |
16-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Do not mark EH tables no-dead-strip unless the associated function is so marked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46088 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
3dadeb388cf6f93c40db2f0930a78045366d5bcb |
16-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Do not mark EH tables no-dead-strip unless the associated function is so marked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46088 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
7e2e033e232a3e414040d6b01c8c07a1095a0983 |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a ppc long double regression I introduced yesterday due to a simplification. This fixes automotive-basicmath on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d3f561794425f7cfc7198ffaf988d6a6c1228494 |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a ppc long double regression I introduced yesterday due to a simplification. This fixes automotive-basicmath on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a66bb39e9779ce17b7d16e311f4b73fddb2ede2f |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
merge a few pieces of code that do the store/load to stack pattern to use EmitStackConvert now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46066 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
59370bdbbcd43e7df61c89a4c2e5c27f15144c71 |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
merge a few pieces of code that do the store/load to stack pattern to use EmitStackConvert now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46066 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1401d15c99b284ead81b8476a6db95328c5f28fd |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename ExpandBIT_CONVERT to EmitStackConvert, generalizing it to allow it to emit different load and store kinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46065 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b7d0aaa66da2a687078b5c566f882a42c97d4e9c |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename ExpandBIT_CONVERT to EmitStackConvert, generalizing it to allow it to emit different load and store kinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46065 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
23594d4537fb88a963c6d6993af5027eac9bfbac |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
simplify a bunch of code by using SelectionDAG::CreateStackTemporary instead of inlining its body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46062 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0aeb1d0ef531737591967237caca2e5fc9208c78 |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
simplify a bunch of code by using SelectionDAG::CreateStackTemporary instead of inlining its body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46062 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f2670a89a7c5e29e7f71ab63e06e75dbf482c55b |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Change legalizeop of FP_ROUND and FP_EXTEND to not fall through into the ANY_EXTEND/ZERO_EXTEND/SIGN_EXTEND code to simplify it. Unmerge the code for FP_ROUND and FP_EXTEND from each other to make each one simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46061 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
56ecde3901481957a5503a991bffde7232cd3443 |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Change legalizeop of FP_ROUND and FP_EXTEND to not fall through into the ANY_EXTEND/ZERO_EXTEND/SIGN_EXTEND code to simplify it. Unmerge the code for FP_ROUND and FP_EXTEND from each other to make each one simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46061 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
572dee71af1313e6742e1dfd5274fff326b9ef1c |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Factor the ReachesChainWithoutSideEffects out of dag combiner into a public SDOperand::reachesChainWithoutSideEffects method. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
10d94f95f8be674d9511d0de1e0fcc2066607fee |
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Factor the ReachesChainWithoutSideEffects out of dag combiner into a public SDOperand::reachesChainWithoutSideEffects method. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
4af349445222fa2a66b6248217ecd18eb6930646 |
16-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Fix and enable EH for x86-64 Darwin. Adds ShortenEHDataFor64Bits as a not-very-accurate abstraction to cover all the changes in DwarfWriter. Some cosmetic changes to Darwin assembly code for gcc testsuite compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46029 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
4670be43f85fac28770957590cf41ac7c2b9e33c |
16-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Fix and enable EH for x86-64 Darwin. Adds ShortenEHDataFor64Bits as a not-very-accurate abstraction to cover all the changes in DwarfWriter. Some cosmetic changes to Darwin assembly code for gcc testsuite compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46029 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
40a627ddf87fe8e5fe057fba405cc0893cf14e70 |
15-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some calls to getVRegDef higher in the callgraph, so they don't get executed as frequently in performance sensitive code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46027 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
77d8049a817bb95191730053a6913668de549c8e |
15-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some calls to getVRegDef higher in the callgraph, so they don't get executed as frequently in performance sensitive code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46027 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
034f12ea0864a9cca0a74715d6fb06a8bf1dc775 |
15-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
The type of the 'abort' node should be pointer type (because it's a function pointer) not MVT::Other. This fixes builtin_trap lowering on ppc, alpha, ia64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
88e0393bbca8a345eea56554b5585bcd80353919 |
15-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
The type of the 'abort' node should be pointer type (because it's a function pointer) not MVT::Other. This fixes builtin_trap lowering on ppc, alpha, ia64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7047dd4d227b5fb2e5ae0cb2e7d5de1d0098ad60 |
15-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Remove DefInst from LiveVariables::VarInfo. Use the facilities on MachineRegisterInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46016 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
92a609a8e853af6edc4d5660a8451950bb2e0afb |
15-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Remove DefInst from LiveVariables::VarInfo. Use the facilities on MachineRegisterInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46016 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
41bab0beac2600701af99f63e23a6b65f71468ac |
15-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that have a legal ISD::TRAP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
e99bbb7f959c42420bef8fce973247d4f104cd47 |
15-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that have a legal ISD::TRAP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
4c46fc6bbf206a59b1b46d8b1af43896a4675c65 |
15-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Forgot to commit this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46002 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
fe2be6395e6ef27ba7c20fbb99cc9b5b248846c3 |
15-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Forgot to commit this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46002 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
66fac79b899904ddd82e5ee354a6d370d80230f6 |
15-Jan-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
For PR1839: add initial support for __builtin_trap. llvm-gcc part is missed as well as PPC codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
39d40baea8a6d421568d50aa9655840683bb4651 |
15-Jan-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
For PR1839: add initial support for __builtin_trap. llvm-gcc part is missed as well as PPC codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c67e6e8e8203be62da647832842edd7d90c4c585 |
15-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
ByVal stack slot alignment should be at least as large as pointer ABI alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
25098bf8816f02edde4b0c47f70dabcc61bcc067 |
15-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
ByVal stack slot alignment should be at least as large as pointer ABI alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
459525df1e003597077197b5f802bd5d9cd7d94c |
14-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't create the post-ra scheduler unless it is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45972 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
|
e06d8eb5509a1b4b6e0295d1583a0e4c9f1f6f23 |
14-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't create the post-ra scheduler unless it is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45972 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
|
a6c3f80d970ea7a5c8597bca495495832a56a54b |
14-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove dead #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45971 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
789dddbac0e9ac855ebf7ced8e37ea55c61d8080 |
14-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove dead #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45971 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
a41d7198035bdeaa3ba0a5840086d34ebcddac26 |
13-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Remove the assumption that byval has been applied to a pointer to a struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45939 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8b98c4db07a7e27cd2f380e2e05b54446f4a5aa4 |
13-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Remove the assumption that byval has been applied to a pointer to a struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45939 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
aad193a7e9f8eb4b558e16c2b54c31dee54f5f1e |
12-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
implement support for sinking a load out the bottom of a block that has no stores between the load and the end of block. This works great and sinks hundreds of stores, but we can't turn it on because machineinstrs don't have volatility information and we don't want to sink volatile stores :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45894 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
c3732fab3bb8f0af66cf03dac7dffaf443202607 |
12-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
implement support for sinking a load out the bottom of a block that has no stores between the load and the end of block. This works great and sinks hundreds of stores, but we can't turn it on because machineinstrs don't have volatility information and we don't want to sink volatile stores :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45894 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
a22edc82cab86be4cb8876da1e6e78f82bb47a3e |
11-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Simplify the side effect stuff a bit more and make licm/sinking both work right according to the new flags. This removes the TII::isReallySideEffectFree predicate, and adds TII::isInvariantLoad. It removes NeverHasSideEffects+MayHaveSideEffects and adds UnmodeledSideEffects as machine instr flags. Now the clients can decide everything they need. I think isRematerializable can be implemented in terms of the flags we have now, though I will let others tackle that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45843 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
achineSink.cpp
|
ea3a181a56ccc992e3ae5ec99ee1fd8fcd89f0cf |
11-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Simplify the side effect stuff a bit more and make licm/sinking both work right according to the new flags. This removes the TII::isReallySideEffectFree predicate, and adds TII::isInvariantLoad. It removes NeverHasSideEffects+MayHaveSideEffects and adds UnmodeledSideEffects as machine instr flags. Now the clients can decide everything they need. I think isRematerializable can be implemented in terms of the flags we have now, though I will let others tackle that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45843 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
achineSink.cpp
|
244588820867ab4e42f72c266196b848919bfebb |
10-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Clamp down on sinking of lots of instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45841 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
f270d32a67970a7b1b2fc1058fe79e3acd0fd71d |
10-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Clamp down on sinking of lots of instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45841 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
007f9847c44ddbe7fd04cba362b4ec0f0f40964b |
10-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Output sinl for a long double FSIN node, not sin. Likewise fix up a bunch of other libcalls. While there I remove NEG_F32 and NEG_F64 since they are not used anywhere. This fixes 9 Ada ACATS failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45833 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
37a3f478f1c3080d8dcb0b4ae561c716e9969eef |
10-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Output sinl for a long double FSIN node, not sin. Likewise fix up a bunch of other libcalls. While there I remove NEG_F32 and NEG_F64 since they are not used anywhere. This fixes 9 Ada ACATS failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45833 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
8480293f41c11c22762164449e41cd3adb0dd7d8 |
10-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Only remat loads from immutable stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45831 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
efe93677b27f625f29a92afaacc33a0d6cf2b1e5 |
10-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Only remat loads from immutable stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45831 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a07cec9e24a286157541d2337cd66b24cd116586 |
10-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45830 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
06701fc8dde2dade519a998975f91cb9abc55dd6 |
10-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45830 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c95f075c43488234e44b1213dfd762ae0a7509ea |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Don't use LiveVariables::VarInfo::DefInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45815 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bceab63ca89db551017aeac300bf4f900788510d |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Don't use LiveVariables::VarInfo::DefInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45815 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
038129dd58acbb2cd6e80bee05649903897df967 |
10-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Emit unused EH frames for weak definitions on Darwin, because assembler/linker can't cope with weak absolutes. PR 1880. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45811 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f09b5999df8d9cbbd69dad7fb5cd61271c0a8000 |
10-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Emit unused EH frames for weak definitions on Darwin, because assembler/linker can't cope with weak absolutes. PR 1880. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45811 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
ddd060ffcfd56ef91eb28ce76a2b0576dfe51129 |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the equivalent API from MachineRegisterInfo. Once all clients are switched over, the former will be going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45805 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
ab9a00c3bfe31c58a5f96897a8f5764b9dd41008 |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the equivalent API from MachineRegisterInfo. Once all clients are switched over, the former will be going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45805 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
dc4d6558e41f1b1034a4f77385d2d4fea89f88db |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Add more comments explaining the basics of how the decision of when to rename and when to insert copies is made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45799 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
d5beaec9dd4bc8d6985b901c6a1cc0942c1bac67 |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Add more comments explaining the basics of how the decision of when to rename and when to insert copies is made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45799 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
b199cbec2e84c46fc0883b3abca84a6adde08fea |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of the isKillInst predicate. LiveVariables already provides this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45797 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f2a8e0e297c74ec8d57075e90eaead3d00083b8b |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of the isKillInst predicate. LiveVariables already provides this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45797 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
9c2efa8a8f961a3750cec21530a2681d25b3bd49 |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Copies need to be inserted before the first terminator, not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45791 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
c7c99c881ef92a08fd7d2dd45bd39e5b90b588c8 |
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Copies need to be inserted before the first terminator, not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45791 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
19107563af7568713193c60be24503446556bff2 |
10-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Special copy SUnit's do not have SDNode's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45787 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2661f5aafb9f867355f873de16204552a506d5b6 |
10-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Special copy SUnit's do not have SDNode's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45787 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
ec1213fbbba161401e22bd41005a3b1a39008807 |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Clean up StrongPHIElimination a bit, and add some more comments to the internal structures. There's still more work to do on this front. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45783 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
876fadf20e111525d33e71867e6239cf57b3288c |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Clean up StrongPHIElimination a bit, and add some more comments to the internal structures. There's still more work to do on this front. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45783 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
864e3a3762b2155b21c09273128dd2565df00d71 |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
StrongPHIElim: Now with even fewer trivial bugs! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45775 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
e1b8cc2ab70f6976a69ae37611cba9130e0ec479 |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
StrongPHIElim: Now with even fewer trivial bugs! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45775 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
719fef648d8ed584fdd2b3e7c967cf0fe8c7925b |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix an infinite recursion bug in InsertCopies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45774 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0e58fdcd0491ed1922f30ea50fb52c62207ee9a4 |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix an infinite recursion bug in InsertCopies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45774 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
cb7d949a19f8d00a019796dfc9342fe294df27c0 |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix some simple bugs. StrongPHIElimination now does not crash on 164.gzip. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45773 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
361063a0d6ecb7be8febcd86d6698205677e9634 |
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix some simple bugs. StrongPHIElimination now does not crash on 164.gzip. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45773 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
07649d9265c9a378fe753f80601ae5f4de3312dc |
09-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Make load->store deletion a bit smarter. This allows us to compile this: void test(long long *P) { *P ^= 1; } into just: _test: movl 4(%esp), %eax xorl $1, (%eax) ret instead of code like this: _test: movl 4(%esp), %ecx xorl $1, (%ecx) movl 4(%ecx), %edx movl %edx, 4(%ecx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2e0237787dc14f4d8938dc58cf4723ce9e151003 |
09-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Make load->store deletion a bit smarter. This allows us to compile this: void test(long long *P) { *P ^= 1; } into just: _test: movl 4(%esp), %eax xorl $1, (%eax) ret instead of code like this: _test: movl 4(%esp), %ecx xorl $1, (%ecx) movl 4(%ecx), %edx movl %edx, 4(%ecx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0c5714bb9944ed085fb5854ac4c6abf941c532ed |
08-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Rename registers that do not need copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45759 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
2e45bf7b3f946bee9eb481ccf0862959fa7bf1a7 |
08-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Rename registers that do not need copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45759 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0d893b4038d11c619ef9679de8e0c62f60c73377 |
08-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Actually insert copies now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45738 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
226d8822c22b5d0e28ea3927171eb24c0f7aaeff |
08-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Actually insert copies now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45738 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0b4825c38b2e2bd2805292f708610b4ad9c7bf92 |
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Oops, missed one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45719 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
aeef909946d0be788cb3949e1548102bdb99910f |
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Oops, missed one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45719 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
9e549202a001cb416c98a75f3c6d6bd68ae4139f |
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Make some predicates static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45718 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
884c19500a9f8a185466108702a05830bdf59e8f |
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Make some predicates static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45718 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
c45d98d9664b2c7ed334d987a7c574f68edf98b7 |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Pruning includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45700 91177308-0d34-0410-b5e6-96231b3b80d8
camlCollector.cpp
hadowStackCollector.cpp
|
840ba9396a2ed21aa00d497c379a1670e144963a |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Pruning includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45700 91177308-0d34-0410-b5e6-96231b3b80d8
camlCollector.cpp
hadowStackCollector.cpp
|
f14cf85e334ff03bbdd23e473f14ffa4fb025e94 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove #includage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45697 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
achineModuleInfo.cpp
|
8eaa5a97f96678525911d3922561f6776966c138 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove #includage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45697 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
achineModuleInfo.cpp
|
749c6f6b5ed301c84aac562e414486549d7b98eb |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename TargetInstrDescriptor -> TargetInstrDesc. Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollector.cpp
warfWriter.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
5b930374090970d785c0f77c2afc6d0a24c01f39 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename TargetInstrDescriptor -> TargetInstrDesc. Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollector.cpp
warfWriter.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
3db805ea80eeec9084a1b86273d93804d233d938 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45693 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d16b431d3a20c1913f433a847afe36e0ea392d84 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45693 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
0ff23966feb90618bec4d085095ffbc28426e691 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Rename all the M_* flags to be namespace qualified enums, and switch all clients over to using predicates instead of these flags directly. These are now private values which are only to be used to statically initialize the tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
woAddressInstructionPass.cpp
|
d8529abca155e9add3d038481c9c7db119220a2b |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Rename all the M_* flags to be namespace qualified enums, and switch all clients over to using predicates instead of these flags directly. These are now private values which are only to be used to statically initialize the tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
woAddressInstructionPass.cpp
|
e32d765f99f7ee0b8f50e419a2e1beb41003c99f |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
add more and significantly better comments to the rest of the machineinstr flags that can be set. Add predicates for the ones lacking it, and switch some clients over to using the predicates instead of Flags directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
woAddressInstructionPass.cpp
|
d6bfd8a3783ab30372c557510b6217a40945a79c |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
add more and significantly better comments to the rest of the machineinstr flags that can be set. Add predicates for the ones lacking it, and switch some clients over to using the predicates instead of Flags directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
woAddressInstructionPass.cpp
|
f86e1df8770faa76bb277d7c3c27a407869c6f0c |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
simplify some code using new predicates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45689 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
iveIntervalAnalysis.cpp
|
4335bff976322ecb58b44421c995f0bbfeeb576f |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
simplify some code using new predicates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45689 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
iveIntervalAnalysis.cpp
|
8f707e15fbd09ca948b86419bcb0c92470827ac9 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename hasVariableOperands() -> isVariadic(). Add some comments. Evan, please review the comments I added to getNumDefs to make sure that they are accurate, thx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45687 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
2fb37c02f194e3dc9a9804dc7860701c072ea052 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename hasVariableOperands() -> isVariadic(). Add some comments. Evan, please review the comments I added to getNumDefs to make sure that they are accurate, thx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45687 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
349c4952009525b27383e2120a6b3c998f39bd09 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
achineInstr.cpp
rologEpilogInserter.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
0c2a4f39ad5cdb32a2c4e20f787798d8af645393 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
achineInstr.cpp
rologEpilogInserter.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
ba6da5d5b72618c836ebc3a7613583a16bc8ceac |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove some uses of MachineOpCode, move getSchedClass into TargetInstrDescriptor from TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
3d54fcd67cddee78cd124515cf521da8ab74abcf |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove some uses of MachineOpCode, move getSchedClass into TargetInstrDescriptor from TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
8ca5c67c6e95fdcf5ddb2f06586873c843dd0cde |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add predicates methods to TargetOperandInfo, and switch all clients over to using them, instead of diddling Flags directly. Change the various flags from const variables to enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45677 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
argetInstrInfoImpl.cpp
|
eeedb48603a82c7000532a395daa5212427d8c8d |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add predicates methods to TargetOperandInfo, and switch all clients over to using them, instead of diddling Flags directly. Change the various flags from const variables to enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45677 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
argetInstrInfoImpl.cpp
|
572742e876478d3ec7ff0750c0473d7621804b15 |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Setting GlobalDirective in TargetAsmInfo by default rather than providing a misleading facility. It's used once in the MIPS backend and hardcoded as "\t.globl\t" everywhere else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45676 91177308-0d34-0410-b5e6-96231b3b80d8
camlCollector.cpp
|
e77ca040263516395fda6e17257ac790253f6c1c |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Setting GlobalDirective in TargetAsmInfo by default rather than providing a misleading facility. It's used once in the MIPS backend and hardcoded as "\t.globl\t" everywhere else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45676 91177308-0d34-0410-b5e6-96231b3b80d8
camlCollector.cpp
|
69244300b8a0112efb44b6273ecea4ca6264b8cf |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollector.cpp
warfWriter.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
rologEpilogInserter.cpp
egAllocSimple.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAG.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
6232760ee0d566bcf09b2f20bae65c1d6e73946c |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
ollector.cpp
warfWriter.cpp
fConversion.cpp
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineInstr.cpp
achineLICM.cpp
rologEpilogInserter.cpp
egAllocSimple.cpp
egisterScavenging.cpp
electionDAG/ScheduleDAG.cpp
argetInstrInfoImpl.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
6425f8be7263e625c2d7484eb2fb8f6643824f49 |
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Update CodeGen for MRegisterInfo --> TargetInstrInfo changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45673 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
electionDAG/ScheduleDAGRRList.cpp
irtRegMap.cpp
|
bf15ae2d5bc058fac01b0480433907481e47d7a9 |
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Update CodeGen for MRegisterInfo --> TargetInstrInfo changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45673 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
electionDAG/ScheduleDAGRRList.cpp
irtRegMap.cpp
|
93f96d00bf10299246ea726956ce84dcb4b9a59e |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Ammending r45669 with a missing file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45671 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
36464772ded6499fa5876398bb55ba31c020e4f2 |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Ammending r45669 with a missing file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45671 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8fa89291774a29ee30adb9d0fd01655c84eaac13 |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
With this patch, the LowerGC transformation becomes the ShadowStackCollector, which additionally has reduced overhead with no sacrifice in portability. Considering a function @fun with 8 loop-local roots, ShadowStackCollector introduces the following overhead (x86): ; shadowstack prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl $___gc_fun, 20(%esp) movl $0, 24(%esp) movl $0, 28(%esp) movl $0, 32(%esp) movl $0, 36(%esp) movl $0, 40(%esp) movl $0, 44(%esp) movl $0, 48(%esp) movl $0, 52(%esp) movl %ecx, 16(%esp) leal 16(%esp), %ecx movl %ecx, (%eax) ; shadowstack loop overhead (none) ; shadowstack epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; shadowstack metadata .align 3 ___gc_fun: # __gc_fun .long 8 .space 4 In comparison to LowerGC: ; lowergc prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl %ecx, 48(%esp) movl $8, 52(%esp) movl $0, 60(%esp) movl $0, 56(%esp) movl $0, 68(%esp) movl $0, 64(%esp) movl $0, 76(%esp) movl $0, 72(%esp) movl $0, 84(%esp) movl $0, 80(%esp) movl $0, 92(%esp) movl $0, 88(%esp) movl $0, 100(%esp) movl $0, 96(%esp) movl $0, 108(%esp) movl $0, 104(%esp) movl $0, 116(%esp) movl $0, 112(%esp) ; lowergc loop overhead leal 44(%esp), %eax movl %eax, 56(%esp) leal 40(%esp), %eax movl %eax, 64(%esp) leal 36(%esp), %eax movl %eax, 72(%esp) leal 32(%esp), %eax movl %eax, 80(%esp) leal 28(%esp), %eax movl %eax, 88(%esp) leal 24(%esp), %eax movl %eax, 96(%esp) leal 20(%esp), %eax movl %eax, 104(%esp) leal 16(%esp), %eax movl %eax, 112(%esp) ; lowergc epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; lowergc metadata (none) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45670 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
cc71a50ac7ba72f6405150297763be9c202c1d2b |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
With this patch, the LowerGC transformation becomes the ShadowStackCollector, which additionally has reduced overhead with no sacrifice in portability. Considering a function @fun with 8 loop-local roots, ShadowStackCollector introduces the following overhead (x86): ; shadowstack prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl $___gc_fun, 20(%esp) movl $0, 24(%esp) movl $0, 28(%esp) movl $0, 32(%esp) movl $0, 36(%esp) movl $0, 40(%esp) movl $0, 44(%esp) movl $0, 48(%esp) movl $0, 52(%esp) movl %ecx, 16(%esp) leal 16(%esp), %ecx movl %ecx, (%eax) ; shadowstack loop overhead (none) ; shadowstack epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; shadowstack metadata .align 3 ___gc_fun: # __gc_fun .long 8 .space 4 In comparison to LowerGC: ; lowergc prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl %ecx, 48(%esp) movl $8, 52(%esp) movl $0, 60(%esp) movl $0, 56(%esp) movl $0, 68(%esp) movl $0, 64(%esp) movl $0, 76(%esp) movl $0, 72(%esp) movl $0, 84(%esp) movl $0, 80(%esp) movl $0, 92(%esp) movl $0, 88(%esp) movl $0, 100(%esp) movl $0, 96(%esp) movl $0, 108(%esp) movl $0, 104(%esp) movl $0, 116(%esp) movl $0, 112(%esp) ; lowergc loop overhead leal 44(%esp), %eax movl %eax, 56(%esp) leal 40(%esp), %eax movl %eax, 64(%esp) leal 36(%esp), %eax movl %eax, 72(%esp) leal 32(%esp), %eax movl %eax, 80(%esp) leal 28(%esp), %eax movl %eax, 88(%esp) leal 24(%esp), %eax movl %eax, 96(%esp) leal 20(%esp), %eax movl %eax, 104(%esp) leal 16(%esp), %eax movl %eax, 112(%esp) ; lowergc epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; lowergc metadata (none) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45670 91177308-0d34-0410-b5e6-96231b3b80d8
hadowStackCollector.cpp
|
ce2247755e56f99a2377b64a1a9d393726582b85 |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Enabling the target-independent garbage collection infrastructure by hooking it up to the various compiler pipelines. This doesn't actually add support for any GC algorithms, which means it temporarily breaks a few tests. To be fixed shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45669 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
EADME.txt
electionDAG/SelectionDAGISel.cpp
|
df87fdce8ab5371dd29aca057cbca22924840166 |
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Enabling the target-independent garbage collection infrastructure by hooking it up to the various compiler pipelines. This doesn't actually add support for any GC algorithms, which means it temporarily breaks a few tests. To be fixed shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45669 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
EADME.txt
electionDAG/SelectionDAGISel.cpp
|
834f1ce0312e3d00d836f9560cb63182c2c4570f |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename isLoad -> isSimpleLoad due to evan's desire to have such a predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45667 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
|
1a1932c83d6b6fcbf089eee3f97b65a23de22a92 |
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename isLoad -> isSimpleLoad due to evan's desire to have such a predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45667 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
|
2e48a70b35635165703838fc8d3796b664207aa1 |
06-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename isStore -> mayStore to more accurately reflect what it captures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45656 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
6887b14d9f14d2c918e9ce18e433de9a7845a747 |
06-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename isStore -> mayStore to more accurately reflect what it captures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45656 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
920595a960fbebbf614dd159d54fc2e7ea279c22 |
06-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45655 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d9084fabf82468d23000a8e097f16e253758bd93 |
06-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45655 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
19033bf7f8306131169e532c97e3ee4b745db221 |
06-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
make this build with newer gcc's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45637 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
e2f2c4cf6fdfbaf99c53bb8de4c3d53466e4ba52 |
06-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
make this build with newer gcc's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45637 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
2281a991414f681c482157265461b29a923ef620 |
05-Jan-2008 |
Nate Begeman <natebegeman@mac.com> |
If custom lowering of insert element fails, the result Val will be 0. Don't overwrite a variable used by the fallthrough code path in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
11f2e1dd26a13838a9f9e3b0b288969acacdb763 |
05-Jan-2008 |
Nate Begeman <natebegeman@mac.com> |
If custom lowering of insert element fails, the result Val will be 0. Don't overwrite a variable used by the fallthrough code path in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
54b62f3af50ef93df05e9f7634b6e4406ab56cc5 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix build issue on certain compilers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45629 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
cd8a384d01180db29d126f166ab386b8040426f9 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix build issue on certain compilers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45629 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
e430e1c07278d28f58fd94bac508469b8c1d1933 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
The current impl is really trivial, add some comments about how it can be made better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45625 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
05bc7f5f90e46146b7ea0513fb4bb6620eae1684 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
The current impl is really trivial, add some comments about how it can be made better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45625 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
3c42f1211874665e8ea6eea55a45024b557afa61 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
allow sinking to be enabled for the jit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45624 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
a132dd405dd272fe5a34d171d0f991e085b8210f |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
allow sinking to be enabled for the jit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45624 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ba84ed7e9234b7a84009b3cb8475d1be7b1529d9 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't sink anything with side effects, this makes lots of stuff work, but sinks almost nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45617 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
f2706d8ef3459a99d2516d3e98185435b37fe679 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't sink anything with side effects, this makes lots of stuff work, but sinks almost nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45617 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
9bb459b55411c45175e599f6f421b7a57060ee57 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix a common crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45614 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
7ebe08504ba075c4a83df7ecec86d5e032b20781 |
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix a common crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45614 91177308-0d34-0410-b5e6-96231b3b80d8
achineSink.cpp
|
a393cd3306b865e8e5d82dc4e6cfabcdf5d8dc44 |
05-Jan-2008 |
Owen Anderson <resistor@mac.com> |
I should not be allowed to commit when sleepy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45608 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
91eb6e6762367514cb1b3e9bb8da626417592398 |
05-Jan-2008 |
Owen Anderson <resistor@mac.com> |
I should not be allowed to commit when sleepy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45608 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
67d65bb69d5cad957cbb6d672dc0b4a19c211a42 |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't recalculate the loop info and loop dominators analyses if they're preserved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45596 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineDominators.cpp
achineLoopInfo.cpp
HIElimination.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
6226436fd365f491a87914451dcd2b04137994e9 |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't recalculate the loop info and loop dominators analyses if they're preserved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45596 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineDominators.cpp
achineLoopInfo.cpp
HIElimination.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
|
2674d71df02f562cf8c3bc011be92d6dcb9cd9aa |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45574 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
9e4fedc9505c50322edb9262516dde7feb2d4a95 |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45574 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d5da7048c297deb6137ad10cac217c5d9d702065 |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Add that this preserves some analyses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45573 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
82721d4a406b18ab5b1005afa9943034285003e2 |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Add that this preserves some analyses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45573 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
cc8f603f531c906782e4966107ae29667eb6632c |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Move option to enable machine LICM into LLVMTargetMachine.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45572 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
|
4aab7ae1bb860f54be28dd3819017337b28faeba |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Move option to enable machine LICM into LLVMTargetMachine.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45572 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
|
b082c6f5d9ee0b70e0ce67a8e26dd0955a034599 |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Call the parent's getAnalysisUsage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45571 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
b43ca19cacd0bee7aa506ac6db7bde56abc67c9f |
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Call the parent's getAnalysisUsage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45571 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
c4ce73f666e7ab9a270982a575101df8aa6160d3 |
04-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking. It is missing validity checks, so it is known broken. However, it is powerful enough to compile this contrived code: void test1(int C, double A, double B, double *P) { double Tmp = A*A+B*B; *P = C ? Tmp : A; } into: _test1: movsd 8(%esp), %xmm0 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movsd 16(%esp), %xmm1 mulsd %xmm1, %xmm1 mulsd %xmm0, %xmm0 addsd %xmm1, %xmm0 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test1: movsd 16(%esp), %xmm0 mulsd %xmm0, %xmm0 movsd 8(%esp), %xmm1 movapd %xmm1, %xmm2 mulsd %xmm2, %xmm2 addsd %xmm0, %xmm2 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movapd %xmm2, %xmm1 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm1, (%eax) ret woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45570 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineSink.cpp
|
3988226d5d4559c6518793c6aeb25b12c89dac47 |
04-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking. It is missing validity checks, so it is known broken. However, it is powerful enough to compile this contrived code: void test1(int C, double A, double B, double *P) { double Tmp = A*A+B*B; *P = C ? Tmp : A; } into: _test1: movsd 8(%esp), %xmm0 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movsd 16(%esp), %xmm1 mulsd %xmm1, %xmm1 mulsd %xmm0, %xmm0 addsd %xmm1, %xmm0 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test1: movsd 16(%esp), %xmm0 mulsd %xmm0, %xmm0 movsd 8(%esp), %xmm1 movapd %xmm1, %xmm2 mulsd %xmm2, %xmm2 addsd %xmm0, %xmm2 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movapd %xmm2, %xmm1 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm1, (%eax) ret woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45570 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineSink.cpp
|
ac69582664714c2656a28ed6cb70627bb85ee673 |
04-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove dead #includes and reorder the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45569 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a8723bd19db307dd8470e7717dd29f0eeb3c850b |
04-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove dead #includes and reorder the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45569 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
dde059a9de65941e7b9013ddab92d3da403dd7be |
02-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the correct MachineRegisterInfo object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45499 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
defbe518204889790965b20c13503cc10f485fdd |
02-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the correct MachineRegisterInfo object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45499 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a4b662272d2aa1a39025523fd9d1fdce9dfcbdb2 |
02-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45496 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
ab50dbdb44876a77c4ead30066f2f2a9d337e339 |
02-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45496 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
9258cd3994e54aaec66f69a321032e071391dc90 |
02-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the new architecture to get the containing machine basic block for a machine instruction. Also, use "splice" to move the new instruction instead of remove/insert (where it was leaking memory anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45492 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
129a9ac9b9762834e44f8856f872c2584ed0926a |
02-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Use the new architecture to get the containing machine basic block for a machine instruction. Also, use "splice" to move the new instruction instead of remove/insert (where it was leaking memory anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45492 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
f6372aa1cc568df19da7c5023e83c75aa9404a07 |
01-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some more instruction creation methods from RegisterInfo into InstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45484 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
irtRegMap.cpp
|
8187543db9afdc5d465b604ce0bddea7695c78ab |
01-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some more instruction creation methods from RegisterInfo into InstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45484 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
irtRegMap.cpp
|
80fe5311b5e9e5c4642ff46ba2377173c17797f6 |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Make MachineRegisterInfo::getVRegDef more efficient by aiming the keep the def of the vreg at the start of the list, so the list doesn't need to be traversed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45483 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6fc812d7bf18984c28b1db94030fe699c715596e |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Make MachineRegisterInfo::getVRegDef more efficient by aiming the keep the def of the vreg at the start of the list, so the list doesn't need to be traversed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45483 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e138b3dd1ff02d826233482831318708a166ed93 |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
switch the register iterator to act more like hte LLVM value iterator: dereferencing it now returns the machineinstr of the use. To get the operand, use I.getOperand(). Add a new MachineRegisterInfo::replaceRegWith, which is basically like Value::replaceAllUsesWith. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45482 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineRegisterInfo.cpp
|
8509363904b547c6864cbf29df16e6e05ebef549 |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
switch the register iterator to act more like hte LLVM value iterator: dereferencing it now returns the machineinstr of the use. To get the operand, use I.getOperand(). Add a new MachineRegisterInfo::replaceRegWith, which is basically like Value::replaceAllUsesWith. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45482 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineRegisterInfo.cpp
|
a91a7d594ff1e1503731ca92f72e627bdfd18f3f |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add a trivial but handy function to efficiently return the machine instruction that defines the specified vreg. Crazy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45480 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
df97d70c7e87d27c501a0080c477d07574fe5d92 |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add a trivial but handy function to efficiently return the machine instruction that defines the specified vreg. Crazy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45480 91177308-0d34-0410-b5e6-96231b3b80d8
achineRegisterInfo.cpp
|
62ed6b9ade63bf01717ce5274fa11e93e873d245 |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Implement automatically updated def/use lists for all MachineInstr register operands. The lists are currently kept in MachineRegisterInfo, but it does not yet provide an iterator interface to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45477 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
achineRegisterInfo.cpp
|
e45742fb9fc7fc664dd4f2ceea271c5342779428 |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Implement automatically updated def/use lists for all MachineInstr register operands. The lists are currently kept in MachineRegisterInfo, but it does not yet provide an iterator interface to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45477 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
achineRegisterInfo.cpp
|
641055225092833197efe8e5bce01d50bcf1daae |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a problem where lib/Target/TargetInstrInfo.h would include and use a header file from libcodegen. This violates a layering order: codegen depends on target, not the other way around. The fix to this is to split TII into two classes, TII and TargetInstrInfoImpl, which defines stuff that depends on libcodegen. It is defined in libcodegen, where the base is not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45475 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
d2fd6db5816e58ea3287bef90250e044025e7bca |
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a problem where lib/Target/TargetInstrInfo.h would include and use a header file from libcodegen. This violates a layering order: codegen depends on target, not the other way around. The fix to this is to split TII into two classes, TII and TargetInstrInfoImpl, which defines stuff that depends on libcodegen. It is defined in libcodegen, where the base is not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45475 91177308-0d34-0410-b5e6-96231b3b80d8
argetInstrInfoImpl.cpp
|
b027fa001f16660a231a54ecea6a79f5c7855d7c |
31-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1833 - eh.exception and eh.selector return two values, which means doing extra legalization work. It would be easier to get this kind of thing right if there was some documentation... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c7f7d5e7c86e86b9fa99735f4bac646e74764810 |
31-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1833 - eh.exception and eh.selector return two values, which means doing extra legalization work. It would be easier to get this kind of thing right if there was some documentation... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d10fd9791c20fd8368fa0ce94b626b769c6c8ba0 |
31-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Move copyRegToReg from MRegisterInfo to TargetInstrInfo. This is part of the Machine-level API cleanup instigated by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45470 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
HIElimination.cpp
electionDAG/ScheduleDAG.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
8f2c893c01f61e358637d28c3b594a9310872d38 |
31-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Move copyRegToReg from MRegisterInfo to TargetInstrInfo. This is part of the Machine-level API cleanup instigated by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45470 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
HIElimination.cpp
electionDAG/ScheduleDAG.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
f20c1a497fe3922ac718429d65a5fe396890575e |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
properly encapsulate the parent field of MBB and MI with get/set accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45469 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
|
7ce487fdbbcfd58af1d55b119eaacba17bd6aea2 |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
properly encapsulate the parent field of MBB and MI with get/set accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45469 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
|
534bcfb270d25d2a29759d19981443fee7260e94 |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
update a couple of references to SSARegMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
impleRegisterCoalescing.cpp
|
b70e15149601396707d0727ece3a5b836bea6ffb |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
update a couple of references to SSARegMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
impleRegisterCoalescing.cpp
|
84bc5427d6883f73cfeae3da640acd011d35c006 |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ollector.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineFunction.cpp
achineInstr.cpp
achineRegisterInfo.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
1b98919de35bee879f414e9b97b38eeb9df287bc |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ollector.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineFunction.cpp
achineInstr.cpp
achineRegisterInfo.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
impleRegisterCoalescing.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
8aa797aa51cd4ea1ec6f46f4891a6897944b75b2 |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
HIElimination.cpp
trongPHIElimination.cpp
|
6017d48252df62d121344138c5ba9241f7bd73b8 |
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
HIElimination.cpp
trongPHIElimination.cpp
|
f73823000e2d5d6e1cf65bdf5a107297e18d35fb |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
More cleanups for MachineOperand: - Eliminate the static "print" method for operands, moving it into MachineOperand::print. - Change various set* methods for register flags to take a bool for the value to set it to. Remove unset* methods. - Group methods more logically by operand flavor in MachineOperand.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45461 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
7f2d3b8e464f669fa5a3cce3445ec5441eb7b02c |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
More cleanups for MachineOperand: - Eliminate the static "print" method for operands, moving it into MachineOperand::print. - Change various set* methods for register flags to take a bool for the value to set it to. Remove unset* methods. - Group methods more logically by operand flavor in MachineOperand.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45461 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
e3087890ac7f2fcf4697f8e09091e9a384311b9c |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand: - Add getParent() accessors. - Move SubReg out of the AuxInfo union, to make way for future changes. - Remove the getImmedValue/setImmedValue methods. - in some MachineOperand::Create* methods, stop initializing fields that are dead. MachineInstr: - Delete one copy of the MachineInstr printing code, now there is only one dump format and one copy of the code. - Make MachineOperand use the parent field to get info about preg register names if no target info is otherwise available. - Move def/use/kill/dead flag printing to the machineoperand printer, so they are always printed for an operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45460 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9607bb8439f237eb08432bda92e501c821a7c11b |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand: - Add getParent() accessors. - Move SubReg out of the AuxInfo union, to make way for future changes. - Remove the getImmedValue/setImmedValue methods. - in some MachineOperand::Create* methods, stop initializing fields that are dead. MachineInstr: - Delete one copy of the MachineInstr printing code, now there is only one dump format and one copy of the code. - Make MachineOperand use the parent field to get info about preg register names if no target info is otherwise available. - Move def/use/kill/dead flag printing to the machineoperand printer, so they are always printed for an operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45460 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1c3e1e2ed07597111f0b1b1bb93b8080c96c526b |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
fix typo duncan noticed! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0bcfea01008bc931f5877020d4f3db72638c7c39 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
fix typo duncan noticed! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e26dcfe6affca105469db974d990c961e5ed3437 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simpilfy some register printing code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45458 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
216ac7c3ee2a583362886cb4166ec2b5722871ff |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simpilfy some register printing code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45458 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7da5313d3f20ff4bf491a828726c8b11d88bfa7c |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate a copy of the machineoperand printing stuff. Keep the copy that knows how to print offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45457 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5e43bfd38ddaf16adf876f6d5f17bb47bb11873c |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate a copy of the machineoperand printing stuff. Keep the copy that knows how to print offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45457 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fde5f801be6bb75fad4e7a39b5bc62c04857ac0c |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Simplify and clean up some machine operand/instr printing/dumping stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45456 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8d5e9a8017f24f6afb8eefbeec99f5359db2c022 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Simplify and clean up some machine operand/instr printing/dumping stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45456 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0974d9a5247a1f70ab739191ce5d768488a0f8aa |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
two register machineoperands are not identical unless their subregs match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45455 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6afc4e30cef40488c360911876226d620304946a |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
two register machineoperands are not identical unless their subregs match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45455 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9e3304900ff69c4920fea7369c9c36916c4a6a6a |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand::getImmedValue -> MachineOperand::getImm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
achineInstr.cpp
rologEpilogInserter.cpp
|
da4cff1dd7e8baa66d9191afd0705694e6cf1f84 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand::getImmedValue -> MachineOperand::getImm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
achineInstr.cpp
rologEpilogInserter.cpp
|
e12d6abfdfc5141b2001f0c369a0e1525315b9c0 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
make machine operands fatter: give each one an up-pointer to the machineinstr that owns it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45449 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e722c3f005ae1e96250ddd3577f9eb56a8ad14cb |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
make machine operands fatter: give each one an up-pointer to the machineinstr that owns it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45449 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9ce2e9d5a07cb3e0176cb32838231243829d67c5 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
use simplified operand addition methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e44906f4b91f33feadb5b776ee3579ef4cdccc0d |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
use simplified operand addition methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fec65d55626d302de8049eea8f3a1338a261dd11 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
use simplified operand addition methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
8dfd3127a57701e1570362697771b637530ff212 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
use simplified operand addition methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
8019f41c0b7fda031d494e3900eada7d4e494772 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Start using the simplified methods for adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45432 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
63ab1f2d37f620bb9dde5c7b2a02571604e1055c |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Start using the simplified methods for adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45432 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
a4161ee99478e7f8f9e33481e1c0dc79f0b4bd7d |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simplify some code by factoring operand construction better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45428 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
720b6cfa659ce691d2ef906ba1ac34e35272aa75 |
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simplify some code by factoring operand construction better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45428 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
ollector.cpp
ollectorMetadata.cpp
ollectors.cpp
warfWriter.cpp
LFWriter.cpp
LFWriter.h
fConversion.cpp
ntrinsicLowering.cpp
LVMTargetMachine.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achOWriter.cpp
achOWriter.h
achineBasicBlock.cpp
achineDominators.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achinePassRegistry.cpp
HIElimination.cpp
asses.cpp
hysRegTracker.h
ostRASchedulerList.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterCoalescer.cpp
egisterScavenging.cpp
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
irtRegMap.h
|
081ce940e7351e90fff829320b7dc6738a6b3815 |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
ollector.cpp
ollectorMetadata.cpp
ollectors.cpp
warfWriter.cpp
LFWriter.cpp
LFWriter.h
fConversion.cpp
ntrinsicLowering.cpp
LVMTargetMachine.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achOWriter.cpp
achOWriter.h
achineBasicBlock.cpp
achineDominators.cpp
achineFunction.cpp
achineInstr.cpp
achineLICM.cpp
achineLoopInfo.cpp
achineModuleInfo.cpp
achinePassRegistry.cpp
HIElimination.cpp
asses.cpp
hysRegTracker.h
ostRASchedulerList.cpp
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterCoalescer.cpp
egisterScavenging.cpp
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesPromote.cpp
electionDAG/LegalizeTypesScalarize.cpp
electionDAG/LegalizeTypesSplit.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
trongPHIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
irtRegMap.h
|
fc643c5e88c596f217750dd91fcc66488dfed73d |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
remove attribution from lib Makefiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45415 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
electionDAG/Makefile
|
80455b86f2c6c56b56f690db3c1fdd3a401f9df3 |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
remove attribution from lib Makefiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45415 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
electionDAG/Makefile
|
63079f0757785c5c461bafdd3101ee40aeb717fe |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Fold comparisons against a constant nan, and optimize ORD/UNORD comparisons with a constant. This allows us to compile isnan to: _foo: fcmpu cr7, f1, f1 mfcr r2 rlwinm r3, r2, 0, 31, 31 blr instead of: LCPI1_0: ; float .space 4 _foo: lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr7, f1, f0 mfcr r2 rlwinm r3, r2, 0, 31, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45405 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
4218443a430ae477b64b8edf2a6fd0d88cfe9344 |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Fold comparisons against a constant nan, and optimize ORD/UNORD comparisons with a constant. This allows us to compile isnan to: _foo: fcmpu cr7, f1, f1 mfcr r2 rlwinm r3, r2, 0, 31, 31 blr instead of: LCPI1_0: ; float .space 4 _foo: lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr7, f1, f0 mfcr r2 rlwinm r3, r2, 0, 31, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45405 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b253a8b382824586066a299e1279838f41117e3b |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
make sure not to zap volatile stores, thanks a lot to Dale for noticing this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45402 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3d98c49d173bdccb5fc23a73691701af6ef033cc |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
make sure not to zap volatile stores, thanks a lot to Dale for noticing this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45402 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5938bef2d259ca7648481ec3fb4cefbdff22458d |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
don't fold fp_round(fp_extend(load)) -> fp_round(extload) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6f981fc6b7e7eb555763b21d0f161874475b1869 |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
don't fold fp_round(fp_extend(load)) -> fp_round(extload) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45400 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3c87285af63bc6d9b93f8eefe46ce9fea063d66c |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Delete a store whose input is a load from the same pointer: x = load p store x -> p git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
447d8e8978ea81da25e7cac988a57998ce2cba6d |
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Delete a store whose input is a load from the same pointer: x = load p store x -> p git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f1519e836145fb243d659f5f6b4f92a93aa5de5e |
24-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Flesh out the Briggs implementation a little bit more, fix a few FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45347 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
7e1df66f1d7dd983c59d5e6dc23b6dd52a2629b2 |
24-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Flesh out the Briggs implementation a little bit more, fix a few FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45347 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
efbcebc95dc8a7936dda8ec5733b6f6d4bd62343 |
23-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Sketch out an implementation of Briggs' copy placement algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45334 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0bab291870e7a229a905e711bc41563dc53d66ec |
23-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Sketch out an implementation of Briggs' copy placement algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45334 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
2ceb2cfa8e8580a7d080f5c6235ab133b97fb8fb |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
initial code for forming an FGETSIGN node. This is disabled until legalizer support goes in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
516731f9fd4eb91c18fa8fbecdff33eea3d4837f |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
initial code for forming an FGETSIGN node. This is disabled until legalizer support goes in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d268a497f916b65efaf9ae7392f81d12d4f95e00 |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
improve support for fgetsign git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45322 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
13f06830c10455e7adbbd55161bf03989b4a06a9 |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
improve support for fgetsign git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45322 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b16f55f3c82fe72e2ca73f1071db5daaa2124e51 |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Tell TargetLoweringOpt whether it is running before or after legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2f36eb975c28224cd21bfe7f930271dd64a15bdd |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Tell TargetLoweringOpt whether it is running before or after legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1a3048bb8e0f3de0b4e56704c15c556c71565f4b |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add a new FGETSIGN operation, which defaults to expand on all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
db5f7ff22ab5d435e137f48cdd77d57285ae5718 |
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add a new FGETSIGN operation, which defaults to expand on all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a6c99250877dad280fbd59480463bd9f91740187 |
22-Dec-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Use getIntrinsicID instead of looking up intrinsic prototypes. Also fixes a bug with indirect calls. (Test case will be included with ocaml collector patch.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45316 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
|
174d28ae515cb574cf5d84187c2396ae1ca16230 |
22-Dec-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Use getIntrinsicID instead of looking up intrinsic prototypes. Also fixes a bug with indirect calls. (Test case will be included with ocaml collector patch.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45316 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
|
cae8d8d4bebd0517c16145cf3bc3304e8eadad6b |
22-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Note what still needs doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45310 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4b2483cc0dffb3f5c46819bc6f40edefedcaa28e |
22-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Note what still needs doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45310 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
22c43b2988f1167a5fe8a2b067bd0e1798dbc710 |
22-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Remove critical edge breaking. It won't be necessary as long as we are very careful when inserting copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45309 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
7c2e8fb2db6925714ae1b2e0aa8444a10521a377 |
22-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Remove critical edge breaking. It won't be necessary as long as we are very careful when inserting copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45309 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
180c210a1d96a56ae0611d4f8de81e1ada5559eb |
20-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
More accurate checks for two-address constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
08b7f349cd997c04b29d18916e3f9038c5e55d11 |
20-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
More accurate checks for two-address constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
689494208b555240d6021a7bbc25b9bbb9c2d49f |
20-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
The physical register + virtual register joining requirement was much too strict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45253 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
16228e6b8cc0b2f74f9bd9e4830331050c33c7a7 |
20-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
The physical register + virtual register joining requirement was much too strict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45253 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d6c0758944b31bb5316b36cad37f4610a77f784d |
20-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bring back a burr scheduling heuristic that's still needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
7cead1c297f367069a91935694ae50eb5093c25b |
20-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bring back a burr scheduling heuristic that's still needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
60ff1a300523d931bc297905a7238219e789028d |
20-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Updated comments to reflect what "side effects" means in this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45245 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
5b1d665107ce073a0262df7c125f0612b8a29216 |
20-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Updated comments to reflect what "side effects" means in this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45245 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
6f74b48862948ebb83c7bf7036a76c9e84543fb4 |
19-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Simplify LowerCallTo by using a callsite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e9bc9133656455ac559188a17e7b78424ef75934 |
19-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Simplify LowerCallTo by using a callsite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
481dc721c37a3da0b3cc88191d01fe5b523625ee |
19-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
The C++ exception handling personality function wants to know about calls that cannot throw ('nounwind'): if such a call does throw for some reason then the personality will terminate the program. The distinction between an ordinary call and a nounwind call is that an ordinary call gets an entry in the exception table but a nounwind call does not. This patch sets up the exception table appropriately. One oddity is that I've chosen to bracket nounwind calls with labels (like invokes) - the other choice would have been to bracket ordinary calls with labels. While bracketing ordinary calls is more natural (because bracketing by labels would then correspond exactly to getting an entry in the exception table), I didn't do it because introducing labels impedes some optimizations and I'm guessing that ordinary calls occur more often than nounwind calls. This fixes the gcc filter2 eh test, at least at -O0 (the inliner needs some tweaking at higher optimization levels). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45197 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
4ff179f65b51bfbeff381a5d4c38f1b00a1f5e52 |
19-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
The C++ exception handling personality function wants to know about calls that cannot throw ('nounwind'): if such a call does throw for some reason then the personality will terminate the program. The distinction between an ordinary call and a nounwind call is that an ordinary call gets an entry in the exception table but a nounwind call does not. This patch sets up the exception table appropriately. One oddity is that I've chosen to bracket nounwind calls with labels (like invokes) - the other choice would have been to bracket ordinary calls with labels. While bracketing ordinary calls is more natural (because bracketing by labels would then correspond exactly to getting an entry in the exception table), I didn't do it because introducing labels impedes some optimizations and I'm guessing that ordinary calls occur more often than nounwind calls. This fixes the gcc filter2 eh test, at least at -O0 (the inliner needs some tweaking at higher optimization levels). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45197 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
02132d62c1ed55fc0d5e03413c314fffc59489f0 |
19-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't leave newly created nodes around if it turns out they are not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
72b84d0735cd0ab995da3dcac1472ed3e497f97c |
19-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't leave newly created nodes around if it turns out they are not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
280f4565eb599ce424c204b9ea07130d772af7e3 |
18-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Add debugging info. Use the newly created "hasUnmodelledSideEffects" method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45178 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
558e3bc8fe1ff2a093f709d0d3388e341eff1326 |
18-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Add debugging info. Use the newly created "hasUnmodelledSideEffects" method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45178 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
feb8893d1757cc4f9400a5969df7f926606e246e |
18-Dec-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Support more insane CEP's in AsmPrinter (Yes, PyPy folks do really use them). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
d3b5874e753cbb928decb1c40b4600a4a20272af |
18-Dec-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Support more insane CEP's in AsmPrinter (Yes, PyPy folks do really use them). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45172 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
636e5a216c8dab7567b5e5d8d1c7d982f507f7eb |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1872: SrcValue and SrcValueOffset should not be used to compute load / store node id. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
38c24dbf709fbc6f0da02f2ed621abebda70858b |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1872: SrcValue and SrcValueOffset should not be used to compute load / store node id. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
81310138619ac46a4eb5ea9a28929c9f5ea8012c |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Also print alignment and volatileness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
034c4f82d9316b2674e98abf4dcf38b13aa51924 |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Also print alignment and volatileness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
beec823d4bba22b1c0c6658d2b3e71cd64a70e2e |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
FIX for PR1799: When a load is unfolded from an instruction, check if it is a new node. If not, do not create a new SUnit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45157 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2e03ad02219f50c6001f085c9a7e110f1148fbf5 |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
FIX for PR1799: When a load is unfolded from an instruction, check if it is a new node. If not, do not create a new SUnit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45157 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
88ce93e0efc644e1a27a518d2c26f62a1d9ddb7a |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
SelectionDAG::dump() should print SrcValue of LoadSDNode and StoreSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7196a7bf345a8c2ba8f18be10e9394b4e55d6ef3 |
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
SelectionDAG::dump() should print SrcValue of LoadSDNode and StoreSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fd7b326bea39c077eea8d378156bcf09051cc4ec |
17-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Make invokes of inline asm legal. Teach codegen how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45108 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1c5526cec6518153bbd04821ca59a592f27fc04b |
17-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Make invokes of inline asm legal. Teach codegen how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45108 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
43ad6b3e0d6ada51e9b23aab3e061187f1f5710c |
17-Dec-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45082 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
achineModuleInfo.cpp
|
bb2f2222b45179d8ddd0c7d481ad9dc068c82b6c |
17-Dec-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45082 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
achineModuleInfo.cpp
|
87a702be1a1d5f1be2e5f78bb0a22447e22c139a |
16-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Break local interferences in StrongPHIElimination. One step closer... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45070 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
455aa71df3996bdf6411be9ad9a29b509d92560a |
16-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Break local interferences in StrongPHIElimination. One step closer... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45070 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
965b4677670ad6103cc95989c4baa57bb6d01e83 |
16-Dec-2007 |
Owen Anderson <resistor@mac.com> |
A few more comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45069 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
de819d779135b59d25fbed6c3128cb80f5dddc32 |
16-Dec-2007 |
Owen Anderson <resistor@mac.com> |
A few more comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45069 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
ded2b0d0fb0d4fa09198e3d05da529d2c97214c3 |
14-Dec-2007 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords, and fix a minor typo that they uncovered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45034 91177308-0d34-0410-b5e6-96231b3b80d8
ollectorMetadata.cpp
LFWriter.cpp
impleRegisterCoalescing.h
|
c43c7f4dc736f7a5811b5dc0d7bc654703d40349 |
14-Dec-2007 |
Dan Gohman <djg@cray.com> |
Add explicit keywords, and fix a minor typo that they uncovered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45034 91177308-0d34-0410-b5e6-96231b3b80d8
ollectorMetadata.cpp
LFWriter.cpp
impleRegisterCoalescing.h
|
7c07aebd19ea07c6219c36c9e96a5d7a6052ba95 |
14-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix. Must also match ResNo when matching an operand with a user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
4f0345c285f0194616be756b6138d40f810b0984 |
14-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix. Must also match ResNo when matching an operand with a user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
62d67dd3a3384d3899ca32aebd3d19bbf8b7d326 |
13-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Add register pairs to the list to check for local interferences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44987 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
840ec7df190c23862ea0b7548b932e37f781dddc |
13-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Add register pairs to the list to check for local interferences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44987 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4ba08ecbcf7f784ec1d8ece7f062c529b668085a |
13-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Remove ugly and horrible code. It's not necessary for correctness, and can be added back later if it causes code quality issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
3b84b06aff4fcb566a015f2a97842afa1dccf32b |
13-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Remove ugly and horrible code. It's not necessary for correctness, and can be added back later if it causes code quality issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
6e141fd04897e5eb4925bb6351297170ebd8a756 |
13-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e399fbbd8e53d83a50781b790d15de2a5b89373c |
13-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
890813243f9b4f5aa9c6d5ab79ffe948458197ab |
12-Dec-2007 |
Dan Gohman <gohman@apple.com> |
Allow vector integer constants to be created with SelectionDAG::getConstant, in the same way as vector floating-point constants. This allows the legalize expansion code for @llvm.ctpop and friends to be usable with vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5b9d641e6a10c9aee165d2d492a5899dc99057db |
12-Dec-2007 |
Dan Gohman <djg@cray.com> |
Allow vector integer constants to be created with SelectionDAG::getConstant, in the same way as vector floating-point constants. This allows the legalize expansion code for @llvm.ctpop and friends to be usable with vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ed2ffa25a18db3e9537bf919140f688bc415a055 |
12-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Forgot to remove a register from the PHI-union after I'd determined that it interfered with other registers. Seems like that might be a good thing to do. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44902 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
64548bfce1f47c04f1c7e24cb407b20227e3de49 |
12-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Forgot to remove a register from the PHI-union after I'd determined that it interfered with other registers. Seems like that might be a good thing to do. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44902 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
39c883cfc52776fa9a553f7e7ff06816ed476adb |
12-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
If deleting a reload instruction due to reuse (value is available in register R and reload is targeting R), make sure to invalidate the kill information of the last kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44894 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
6d74b32569fd97bd9a8cebd326d9301e8d0005e0 |
12-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
If deleting a reload instruction due to reuse (value is available in register R and reload is targeting R), make sure to invalidate the kill information of the last kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44894 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
efe2be797699d77dc3387969aa566c26d5c36d9d |
12-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Need to grow the indexed map. Added debug statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44892 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
3caa4705a5136f0260ee61e89bd3c9e96f7f4b0f |
12-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Need to grow the indexed map. Added debug statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44892 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
a17ad59e13f5caafe33738bafc75af00ca354c9f |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Simplify slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44881 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
14ba7ae05473dc47aa9092fcfc897f8d357e325b |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Simplify slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44881 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d525f664c92bc285c80484015f7aaa8fc17c4cb3 |
11-Dec-2007 |
Owen Anderson <resistor@mac.com> |
More progress on StrongPHIElimination. Now we actually USE the DomForest! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44877 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
aced7d3610456df34367922479cf18ba159b4a21 |
11-Dec-2007 |
Owen Anderson <resistor@mac.com> |
More progress on StrongPHIElimination. Now we actually USE the DomForest! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44877 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
12ebf14048f4a6489033f8468ba36424442140ac |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Blark! How in the world did this work without this?! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44874 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
d9b9be6e412d1cb808b38a1c3efcf3065b0fe517 |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Blark! How in the world did this work without this?! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44874 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
28bd5f0e47d968d64ea2e64868c505923b27c24d |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
- Update the virtual reg to machine instruction map when hoisting. - Fix subtle bug when creating initially creating this map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44873 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
e91b2ef2ca926449906685a9ab0930427158acde |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
- Update the virtual reg to machine instruction map when hoisting. - Fix subtle bug when creating initially creating this map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44873 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
650b0527a495acbf7d6ee3343e8c41fae1686148 |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Checking for "zero operands" during the "CanHoistInst()" method isn't necessary because those with side effects will be caught by other checks in here. Also, simplify the check for a BB in a sub loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44871 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
2dfc9eb6b3150ffd30b8a60f3b10e885fb32bc7e |
11-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Checking for "zero operands" during the "CanHoistInst()" method isn't necessary because those with side effects will be caught by other checks in here. Also, simplify the check for a BB in a sub loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44871 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
22f07ffd27d1d721634d502c37267721d2e025cf |
11-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Switch over to MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44838 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
26d17df01812012f6f231b72bf5759db79c628cb |
11-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Switch over to MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44838 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
ce25443608063357247ca7943ff623af43debc77 |
11-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Pretty print shuffle mask operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44837 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
aad43a0c0d71c15f305aa0b80aae13c17098d94a |
11-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Pretty print shuffle mask operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44837 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ad93c4f936d220570535711262e0fff8857f798a |
11-Dec-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
CollectorMetadata and Collector are rejiggered to get along with per-function collector model. Collector is now the factory for CollectorMetadata, so the latter may be subclassed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44827 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
ollectorMetadata.cpp
|
c22962f737e5ce4bab854869342111f86d55fcf8 |
11-Dec-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
CollectorMetadata and Collector are rejiggered to get along with per-function collector model. Collector is now the factory for CollectorMetadata, so the latter may be subclassed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44827 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
ollectorMetadata.cpp
|
afc6de0015bbeb33a87faa6548c1289d649e832e |
10-Dec-2007 |
Owen Anderson <resistor@mac.com> |
A little more progress on StrongPHIElimination, now that I have a better sense of how the CodeGen machinery works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44786 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4e369a14db0b38ecd3ca9c57433c68263cd59190 |
10-Dec-2007 |
Owen Anderson <resistor@mac.com> |
A little more progress on StrongPHIElimination, now that I have a better sense of how the CodeGen machinery works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44786 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
11a4f64bd4cb6d438dd4b5882ee1b7404832f27f |
10-Dec-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Improve branch folding by recgonizing that explict successor relationships impact the value of fall-through choices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44785 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
ff9045441499e076604a4f648c63de4fb9d0e64a |
10-Dec-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Improve branch folding by recgonizing that explict successor relationships impact the value of fall-through choices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44785 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
46a6e79e602b23ea3478027d5bdd1f904aea7924 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Duncan points out that the subtraction is unneeded since hte code knows the vector is not pow2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesSplit.cpp
|
419e907901bf2fe0f73f8a2b22dd9f0708735133 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Duncan points out that the subtraction is unneeded since hte code knows the vector is not pow2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypesSplit.cpp
|
0097555e01683a0c9a25adef75efa1ed611e1705 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add support for splitting the operand of a return instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesSplit.cpp
|
ff354112b235304b9751448f0134d8364d7914b2 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add support for splitting the operand of a return instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesExpand.cpp
electionDAG/LegalizeTypesSplit.cpp
|
041b3f835682588cb63df7e609d726369dd6b7d3 |
09-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Reverting 44702. It wasn't correct to rename them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44727 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineLICM.cpp
|
0fe34c2912244200daa48d60e845f4fcf669e007 |
09-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Reverting 44702. It wasn't correct to rename them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44727 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineLICM.cpp
|
eeaad40246e45ec48c85acac4ab57e82457abf19 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
add many new cases to SplitResult. SplitResult now handles all the cases that LegalizeDAG does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
595c61f303919ac64c758b81fdae1e7487da6447 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
add many new cases to SplitResult. SplitResult now handles all the cases that LegalizeDAG does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
50187864c12dbf15f021cacfd6922d9c014f3f8d |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Implement splitting support for store, allowing us to compile: %f8 = type <8 x float> define void @test_f8(%f8* %P, %f8* %Q, %f8* %S) { %p = load %f8* %P ; <%f8> [#uses=1] %q = load %f8* %Q ; <%f8> [#uses=1] %R = add %f8 %p, %q ; <%f8> [#uses=1] store %f8 %R, %f8* %S ret void } into: _test_f8: movaps 16(%rdi), %xmm0 addps 16(%rsi), %xmm0 movaps (%rdi), %xmm1 addps (%rsi), %xmm1 movaps %xmm0, 16(%rdx) movaps %xmm1, (%rdx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
0cd03308ac3d130f80c83dee0efd0fb2c146d5ff |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Implement splitting support for store, allowing us to compile: %f8 = type <8 x float> define void @test_f8(%f8* %P, %f8* %Q, %f8* %S) { %p = load %f8* %P ; <%f8> [#uses=1] %q = load %f8* %Q ; <%f8> [#uses=1] %R = add %f8 %p, %q ; <%f8> [#uses=1] store %f8 %R, %f8* %S ret void } into: _test_f8: movaps 16(%rdi), %xmm0 addps 16(%rsi), %xmm0 movaps (%rdi), %xmm1 addps (%rsi), %xmm1 movaps %xmm0, 16(%rdx) movaps %xmm1, (%rdx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
697b53e0b2278ce39974748074fc23014a6636c5 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement vector splitting of load, undef, and binops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
8a42aabcfb14c177e270ef42d7fde657bee6e5b0 |
09-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement vector splitting of load, undef, and binops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
e4af7b5a573593dcf2a37cd4590bf76d1322d6da |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement some methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
e089eb80bc47def3d8d3ab0b8c52cf0822588929 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement some methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
|
13c6a1740cb8877f10e202ee1442231e0c4a903a |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
add scaffolding for splitting of vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
48c937fc4258ec7c90f37d39939def134ed743b6 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
add scaffolding for splitting of vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypes.h
electionDAG/LegalizeTypesSplit.cpp
|
7514646b3115706ee98452ddbcc7b686f6869ab0 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
reorganize header to separate into functional blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44719 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
24790822d16fd46b91fb1b9531acb744a9bb1cb3 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
reorganize header to separate into functional blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44719 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.h
|
ee888132754c709de8d2e2c5ef85531a15ed44f2 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
split scalarization out to its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44718 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesScalarize.cpp
|
ec3792d167c6c2bcd33168c64fc66b75b450c554 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
split scalarization out to its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44718 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesScalarize.cpp
|
cc663a8112017f06e0cd4b6fe1546ccfcd5d05c3 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Split expansion out into its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesExpand.cpp
|
47a84c94cf8d740012764697d176f61aef240c42 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Split expansion out into its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesExpand.cpp
|
08d1275cb8137152dbfb13fab361b9b496725124 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Split promotion support out to its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesPromote.cpp
|
145b85957e56b60bdc9be85f1bdf0a3df5a21840 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Split promotion support out to its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeTypes.cpp
electionDAG/LegalizeTypesPromote.cpp
|
524825b626e8cf9b323a9dd985dcf0f74a99c46e |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename LegalizeDAGTypes.cpp -> LegalizeTypes.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
electionDAG/LegalizeTypes.cpp
|
0493715f4b23233bb29562cbd7b750b0d9ad346d |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename LegalizeDAGTypes.cpp -> LegalizeTypes.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
electionDAG/LegalizeTypes.cpp
|
dff67f5770ada2942dd8c815323ad2480bfdde44 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Split the class definition of DAGTypeLegalizer out into a header. Leave it visibility hidden, but not in an anon namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44714 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
electionDAG/LegalizeTypes.h
|
27f5b7287cd01a61c1d5dd267c4ddc7a3dc933e5 |
08-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Split the class definition of DAGTypeLegalizer out into a header. Leave it visibility hidden, but not in an anon namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44714 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
electionDAG/LegalizeTypes.h
|
320c630c1b55e17fa00249d499f974cb1a4238f8 |
08-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Renaming: isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44702 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineLICM.cpp
|
0aba3ab898632efa8f4da6f2cbd3eb35bbe2dd24 |
08-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Renaming: isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44702 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineLICM.cpp
|
b48519cbadbb2b91a811f6fc189f40bd67c007f4 |
08-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Incorporated comments from Evan and Chris: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44696 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
7c7888bb2d352f631aa050ecc7c9dcb1d7808d50 |
08-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Incorporated comments from Evan and Chris: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44696 91177308-0d34-0410-b5e6-96231b3b80d8
achineLICM.cpp
|
0f940c95d4506f8d04fa2aeda8a79cadb3105fe3 |
07-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Initial commit of the machine code LICM pass. It successfully hoists this: _foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
|
b958b0d1b262bd2dd4da1d2ac4f1fad6b94f2a1c |
07-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Initial commit of the machine code LICM pass. It successfully hoists this: _foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
achineLICM.cpp
|
dfb156143489e7d16e6b034d6e535fe97eafbb9c |
07-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add an option to control this heuristic tweak so I can test it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44671 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
36f323cbb6d99c7e28a64926432b0e7a5612a1ba |
07-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add an option to control this heuristic tweak so I can test it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44671 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
e0e6fac5e9179b2c95fe3c25591474e4b94f5047 |
06-Dec-2007 |
Dale Johannesen <dalej@apple.com> |
Redo previous patch so optimization only done for i1. Simpler and safer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
53e0ad7b804e913a95feb8aa700bd1ae7294570b |
06-Dec-2007 |
Dale Johannesen <dalej@apple.com> |
Redo previous patch so optimization only done for i1. Simpler and safer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
33faddc35d5da8451f03edf27f90b901ba529c58 |
06-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Turning simple splitting on. Start testing new coalescer heuristics as new llcbeta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44660 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d6cee72920abf3bbea344d7bb706c959b5b2ecb2 |
06-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Turning simple splitting on. Start testing new coalescer heuristics as new llcbeta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44660 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d3fd6d2b25fc4e932ac796664ae7f4cd810ced8a |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
third time around: instead of disabling this completely, only disable it if we don't know it will be obviously profitable. Still fixme, but less so. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44658 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
dcd197643fbae5f0f84620c2ff3864d8c3556456 |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
third time around: instead of disabling this completely, only disable it if we don't know it will be obviously profitable. Still fixme, but less so. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44658 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e00cbad78de86ac8e736f35db35632c83ef64c1d |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Actually, disable this code for now. More analysis and improvements to the X86 backend are needed before this should be enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44657 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
211f9f2d4307b306b2eb5faff5eab83a604340df |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Actually, disable this code for now. More analysis and improvements to the X86 backend are needed before this should be enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44657 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e70da20f9a7edb15e1d9bd221839e2ff26e40955 |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement a readme entry, compiling the code into: _foo: movl $12, %eax andl 4(%esp), %eax movl _array(%eax), %eax ret instead of: _foo: movl 4(%esp), %eax shrl $2, %eax andl $3, %eax movl _array(,%eax,4), %eax ret As it turns out, this triggers all the time, in a wide variety of situations, for example, I see diffs like this in various programs: - movl 8(%eax), %eax - shll $2, %eax - andl $1020, %eax - movl (%esi,%eax), %eax + movzbl 8(%eax), %eax + movl (%esi,%eax,4), %eax - shll $2, %edx - andl $1020, %edx - movl (%edi,%edx), %edx + andl $255, %edx + movl (%edi,%edx,4), %edx Unfortunately, I also see stuff like this, which can be fixed in the X86 backend: - andl $85, %ebx - addl _bit_count(,%ebx,4), %ebp + shll $2, %ebx + andl $340, %ebx + addl _bit_count(%ebx), %ebp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
91ed3c3f5c36a68bdf963b1438bdacc328fcf295 |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement a readme entry, compiling the code into: _foo: movl $12, %eax andl 4(%esp), %eax movl _array(%eax), %eax ret instead of: _foo: movl 4(%esp), %eax shrl $2, %eax andl $3, %eax movl _array(,%eax,4), %eax ret As it turns out, this triggers all the time, in a wide variety of situations, for example, I see diffs like this in various programs: - movl 8(%eax), %eax - shll $2, %eax - andl $1020, %eax - movl (%esi,%eax), %eax + movzbl 8(%eax), %eax + movl (%esi,%eax,4), %eax - shll $2, %edx - andl $1020, %edx - movl (%edi,%edx), %edx + andl $255, %edx + movl (%edi,%edx,4), %edx Unfortunately, I also see stuff like this, which can be fixed in the X86 backend: - andl $85, %ebx - addl _bit_count(,%ebx,4), %ebp + shll $2, %ebx + andl $340, %ebx + addl _bit_count(%ebx), %ebp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
72b2df1f7718c2ac8a87802e28bf07a9b649252a |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement the rest of the functionality from SelectionDAGLegalize::ScalarizeVectorOp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
12de88c3be91114fc075d3dac6ebe4156a8353ad |
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
implement the rest of the functionality from SelectionDAGLegalize::ScalarizeVectorOp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
59f1e97ef3940840e023ae1d6226c9b416222d2d |
06-Dec-2007 |
Dale Johannesen <dalej@apple.com> |
Fix PR1842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a37fd09121d16fbaf6e8c4501a49b2b157390f51 |
06-Dec-2007 |
Dale Johannesen <dalej@apple.com> |
Fix PR1842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44649 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5ef3a04b542c4e585276768fa9ca2af698ef5c87 |
06-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1831: if all defs of an interval are re-materializable, then it's a preferred spill candiate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44644 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
e81fdb99014d07ac595742a05a4590194d16c064 |
06-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1831: if all defs of an interval are re-materializable, then it's a preferred spill candiate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44644 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
d120ffd26f2715c600b028d4eac9a3c41a9f4653 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
MachineInstr can change. Store indexes instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44612 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
d973104b912db9dc854d22e4be75c62f8343005a |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
MachineInstr can change. Store indexes instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44612 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
adf85906906ebf85c57c333e8209f37ef11a6c99 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a split live interval is spilled again, remove the kill marker on its last use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44611 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
6f52267f924523137e78ac1491a289e162936b42 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a split live interval is spilled again, remove the kill marker on its last use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44611 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
f38d14f03e495ea98ae16bda6febbde276513294 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clobber more bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44610 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
550092fabf0b4b02e1e9f1abeb6a7be6525c69ec |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clobber more bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44610 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b50bb8cf197709b3f49044740044c06d8f314564 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix kill info for split intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44609 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
ed17a89e7ae98a53f1298a2b6fcdb80106a5cfb1 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix kill info for split intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44609 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
60fb5eccccf0984e807276ac01e5e9286b199339 |
05-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
more scalarization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
b455fec1b4613b0b55e4e9446d0566efa95c4f31 |
05-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
more scalarization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
d36db029c82867adbae9289ecc9f901907665544 |
05-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
scalarize vector binops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44607 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
a00601f6d3aab0968518ac18a09c9c962520bff2 |
05-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
scalarize vector binops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44607 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
018f9b020bb12b731b0a7081578e5f82fb35092d |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Mark last use of a split interval as kill instead of letting spiller track it. This allows an important optimization to be re-enabled. - If all uses / defs of a split interval can be folded, give the interval a low spill weight so it would not be picked in case spilling is needed (avoid pushing other intervals in the same BB to be spilled). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44601 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
ebcba1e5d8a34cb1ef2a31ac1231d04715b60e8b |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Mark last use of a split interval as kill instead of letting spiller track it. This allows an important optimization to be re-enabled. - If all uses / defs of a split interval can be folded, give the interval a low spill weight so it would not be picked in case spilling is needed (avoid pushing other intervals in the same BB to be spilled). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44601 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
d64b5c82b97ad1b74eb9fd2f23257a7899b0c307 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether the stored register is killed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44600 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
irtRegMap.cpp
|
2af4a6c288939754c302cb397c3c334dff6def41 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether the stored register is killed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44600 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
irtRegMap.cpp
|
dd86ce3d570a77f90d6d2ccb6dde8d1fef35e094 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a unsafe optimization. This fixes 401.bzip2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44587 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
567d358193effac22cbda6144ca5b9b08e524f96 |
05-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a unsafe optimization. This fixes 401.bzip2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44587 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
35a3e4abb96a6947ec66254b72e788bacc3aadd6 |
04-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Spiller unfold optimization bug: do not clobber a reusable stack slot value unless it can be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44575 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
811fadb7b51b57bd067c2d310551a8eafbf21848 |
04-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Spiller unfold optimization bug: do not clobber a reusable stack slot value unless it can be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44575 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
eb1819d1e5d6790c24bd92e4cce2058f81a5791a |
04-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Implement framework for scalarizing node results. This is sufficient to codegen this: define float @test_extract_elt(<1 x float> * %P) { %p = load <1 x float>* %P %R = extractelement <1 x float> %p, i32 0 ret float %R } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
777f2de998085e7bfc6256c97642dbcb0795131d |
04-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Implement framework for scalarizing node results. This is sufficient to codegen this: define float @test_extract_elt(<1 x float> * %P) { %p = load <1 x float>* %P %R = extractelement <1 x float> %p, i32 0 ret float %R } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
13c207b5c84cbac78147fa4472a4e14232cb6feb |
04-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
start providing framework for scalarizing vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
c082f2c2689450a3f0c277733446411a88e50c14 |
04-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
start providing framework for scalarizing vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
597d10d84fb6b34f7776121404d5ed802b21b2b6 |
04-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Discard split intervals made empty due to folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44565 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3a46f226b8b6011ebc511e31640b67aeb911aca7 |
04-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Discard split intervals made empty due to folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44565 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e4b39007c9d3056334264eba9e2e6025e241d2c5 |
03-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44549 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a8420f008dc6a97f0459ba879e7a0c074ab45db7 |
03-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44549 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a3355ffb3d30d19d226bbb75707991c60f236e37 |
03-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Rather than having special rules like "intrinsics cannot throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
79d2887c7bd6fa2d4cd915d3f2b0e45e3dba83b2 |
03-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Rather than having special rules like "intrinsics cannot throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
31d43183a40fb721cfe0bb903f147d0d5235c1b9 |
03-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44532 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6710b5b82129c86b43108b4dc4394f7a3d9d6c94 |
03-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44532 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
70306f8348f27c61cfed5a60e2fceac0f29746a2 |
03-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Update kill info for uses of split intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44531 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
1083a2ff38466631acdccc8105a67b0dcbcd1c61 |
03-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Update kill info for uses of split intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44531 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
aee4af68ae2016afc5b4ec0c430e539c5810a766 |
02-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove redundant foldMemoryOperand variants and other code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44517 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
irtRegMap.cpp
irtRegMap.h
|
fd0bd3cd6b680605c609ffba12c0bbe997edd6e5 |
02-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove redundant foldMemoryOperand variants and other code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44517 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocBigBlock.cpp
egAllocLocal.cpp
irtRegMap.cpp
irtRegMap.h
|
e3110d0825e6316fd2dd21d6a4e593295cd413f1 |
01-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug where splitting cause some unnecessary spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44482 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
999f947b64bfe038f63a611f003b6fc6fc673826 |
01-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug where splitting cause some unnecessary spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44482 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e62f97c094dba44e4c259d20135167fa91912eea |
01-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl [mem], 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44479 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ff52f082846db6a31d73cb6f02f62401e20eda6f |
01-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl [mem], 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44479 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cddbb83ea82e98658d9f530c50a7b9d23249afc2 |
30-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not fold reload into an instruction with multiple uses. It issues one extra load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44467 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
16ebb8ce739817c4def3872a2b5f800ce21cb5e6 |
30-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not fold reload into an instruction with multiple uses. It issues one extra load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44467 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
962e0750a545ccced983386c859e436d9afddd79 |
30-Nov-2007 |
Devang Patel <dpatel@apple.com> |
Provide a way to update DescGlobals cache directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44446 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
d83c2c0ffeeef5cd28afb55f904b7376a448137d |
30-Nov-2007 |
Devang Patel <dpatel@apple.com> |
Provide a way to update DescGlobals cache directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44446 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
cb3c330d39442130d0587208d673ce9c33c7008f |
30-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not lose rematerialization info when spilling already split live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44443 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
35d477654ca963fc39bb556018a60272f1f44ec0 |
30-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not lose rematerialization info when spilling already split live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44443 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1953d0cb7d6d27da3ad067468a7ad6dd7c4fa46e |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a major performance issue with splitting. If there is a def (not def/use) in the middle of a split basic block, create a new live interval starting at the def. This avoid artifically extending the live interval over a number of cycles where it is dead. e.g. bb1: = vr1204 (use / kill) <= new interval starts and ends here. ... ... vr1204 = (new def) <= start a new interval here. = vr1204 (use) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44436 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7b63236ec85f530b66dc8d4f9e62763cac82f275 |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a major performance issue with splitting. If there is a def (not def/use) in the middle of a split basic block, create a new live interval starting at the def. This avoid artifically extending the live interval over a number of cycles where it is dead. e.g. bb1: = vr1204 (use / kill) <= new interval starts and ends here. ... ... vr1204 = (new def) <= start a new interval here. = vr1204 (use) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44436 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c3fc7d9ec9b495c8a88cd854247105c296d3aabd |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Replace the odd kill# hack with something less fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44434 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
8b70e63ab4fbb07926dc0572c70988fa1277fa82 |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Replace the odd kill# hack with something less fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44434 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
0cbb1164b3227f25f5e5d3681800a8e50e6b9865 |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fixed various live interval splitting bugs / compile time issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44428 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
96c61315a0a7a66a7e4c55a507251d6da24af46c |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fixed various live interval splitting bugs / compile time issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44428 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
c3868e04bf90d55f2599245ee7f3358d7b2a93ad |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44427 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
1f458158cf263e8b1b0f92e7c80bd5d22489a180 |
29-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44427 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
afa3b6da11bc05281bcf09e45de9e037e0ee5011 |
28-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Add some convenience methods for querying attributes, and use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
637ec55233bf7a93bd9f605fb9d4a8fb7184eb14 |
28-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Add some convenience methods for querying attributes, and use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0a488b320c3891f427ca2e6d96b1b3fc0fcc9de8 |
28-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Add missing newlines at EOF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44399 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
95412b3dafb25afe561396702dfdf13be099ef1d |
28-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Add missing newlines at EOF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44399 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
cada245d06959831b90f8c29f92e77beda4b71cb |
28-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Recover compile time regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44386 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
91e32d0d17ec174e9f493cd830ea486ea4570e93 |
28-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Recover compile time regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44386 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
e4ad9c70e4a1261c212b11623d99e2477ef02783 |
27-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add MachineLoopInfo. This is not yet tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44384 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
815297c8d8006ffda21744133cbfa16bc58af351 |
27-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add MachineLoopInfo. This is not yet tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44384 91177308-0d34-0410-b5e6-96231b3b80d8
achineLoopInfo.cpp
|
d73ab8884f5c95d2704be3c00af4cc3dba963da6 |
27-Nov-2007 |
Nate Begeman <natebegeman@mac.com> |
Support returning non-power-of-2 vectors to unblock some work git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
3d83c3fd5cbc8b2268bd2ec46879cd4c04b9d32c |
27-Nov-2007 |
Nate Begeman <natebegeman@mac.com> |
Support returning non-power-of-2 vectors to unblock some work git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
dc024674ff96820d6020757b48d47f46d4c07db2 |
27-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1146: parameter attributes are longer part of the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f5588dc4ec43da1e4423e5ff2394669c0f000350 |
27-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1146: parameter attributes are longer part of the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b3d9cdb6776355ffba1c43809094f29e4d57a45f |
27-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
err, no really. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44352 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5624ae4479f46f442704fa8c54371bc96424ae01 |
27-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
err, no really. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44352 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5ebfaa2c9d528d72903641653171eef73f0c547b |
27-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
don't depend on ADL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3b46e9c9589693851212da1a72fab37680d0f1e9 |
27-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
don't depend on ADL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
77003040b21816725dc1ca3a55111044d36ac21f |
27-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Don't lower srem/urem X%C to X-X/C*C unless the division is actually optimized. This avoids creating illegal divisions when the combiner is running after legalize; this fixes PR1815. Also, it produces better code in the included testcase by avoiding the subtract and multiply when the division isn't optimized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fdb31f1da69c857d4fd7275652d0ccb2f55d9194 |
27-Nov-2007 |
Dan Gohman <djg@cray.com> |
Don't lower srem/urem X%C to X-X/C*C unless the division is actually optimized. This avoids creating illegal divisions when the combiner is running after legalize; this fixes PR1815. Also, it produces better code in the included testcase by avoiding the subtract and multiply when the division isn't optimized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c58d558a79c3638c23d8fd09d89accff33285653 |
24-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement expand support for MERGE_VALUEs that only produces one result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44304 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1b66f82d6e76174231832f513f1721cbddf972ca |
24-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement expand support for MERGE_VALUEs that only produces one result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44304 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
87726ac0f9f62178fcbba6ebc83ae048a4f97727 |
24-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement support for custom legalization in DAGTypeLegalizer::ExpandOperand. Improve a comment. Unbreak Duncan's carefully written path compression where I didn't realize what was happening! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44301 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
63aaf6f6bd97e981038794865ed45f94f5da2d80 |
24-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement support for custom legalization in DAGTypeLegalizer::ExpandOperand. Improve a comment. Unbreak Duncan's carefully written path compression where I didn't realize what was happening! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44301 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
27a6c7380fa4dfc8e1837a8dd67967d063b26544 |
24-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Several changes: 1) Change the interface to TargetLowering::ExpandOperationResult to take and return entire NODES that need a result expanded, not just the value. This allows us to handle things like READCYCLECOUNTER, which returns two values. 2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES. 3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new ExpandOperationResult. This makes the result simpler and fully general. 4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes. 5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM i64 shifts, allowing them to work with LegalizeDAGTypes. 6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT, allowing them to work with LegalizeDAGTypes. LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when type legalization in LegalizeDAG is ifdef'd out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
dfb947d423f6355537d1a545fb8fa4fbc6dad230 |
24-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Several changes: 1) Change the interface to TargetLowering::ExpandOperationResult to take and return entire NODES that need a result expanded, not just the value. This allows us to handle things like READCYCLECOUNTER, which returns two values. 2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES. 3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new ExpandOperationResult. This makes the result simpler and fully general. 4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes. 5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM i64 shifts, allowing them to work with LegalizeDAGTypes. 6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT, allowing them to work with LegalizeDAGTypes. LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when type legalization in LegalizeDAG is ifdef'd out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
baccd5872e87adb0431ae3ebfa83719b97880808 |
21-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix a bug in which node A is replaced by node B, but later node A gets back into the DAG again because it was hiding in one of the node maps: make sure that node replacement happens in those maps too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
b03c790237122430b61b50841c48a71d108b28e8 |
21-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix a bug in which node A is replaced by node B, but later node A gets back into the DAG again because it was hiding in one of the node maps: make sure that node replacement happens in those maps too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
1d4ce2ab962fee691239d58c8157c12b8037f9de |
21-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Fix .eh table linkage issues on Darwin. Some EH support for Darwin PPC, but it's not fully working yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44258 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
fb3ac73f59c764be9020fbed2e179785a5902b53 |
21-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Fix .eh table linkage issues on Darwin. Some EH support for Darwin PPC, but it's not fully working yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44258 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
e400af83b3f8b69407a8963f1d2e2c82fa766f33 |
19-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
ExpandUnalignedLoad doesn't handle vectors right at all apparently. Fix a couple of problems: 1. Don't assume the VT-1 is a VT that is half the size. 2. Treat vectors of FP in the vector path, not the FP path. This has a couple of remaining problems before it will work with the code in PR1811: the code below this change assumes that it can use extload/shift/or to construct the result, which isn't right for vectors. This also doesn't handle vectors of 1 or vectors that aren't pow-2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4cf8a5bde8b7db74f9ed878a354dc208c43f6a74 |
19-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
ExpandUnalignedLoad doesn't handle vectors right at all apparently. Fix a couple of problems: 1. Don't assume the VT-1 is a VT that is half the size. 2. Treat vectors of FP in the vector path, not the FP path. This has a couple of remaining problems before it will work with the code in PR1811: the code below this change assumes that it can use extload/shift/or to construct the result, which isn't right for vectors. This also doesn't handle vectors of 1 or vectors that aren't pow-2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6c9c6800b844771117943c400d0a9a47460a46b9 |
19-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement vector expand support for shuffle_vector. This fixes PR1811. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
587c46dfdf4e0aeb23b9564486ed37cd86098fe3 |
19-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement vector expand support for shuffle_vector. This fixes PR1811. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
daf9bc8eee3eb1bc992480921f50ef1b760f4159 |
19-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement splitting of UNDEF nodes. This is the first step towards fixing PR1811 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3dec33af58c8392159bd355c6c8ae2425c98c0d7 |
19-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Implement splitting of UNDEF nodes. This is the first step towards fixing PR1811 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
089617d9e3acc242151a007e7a051ed2fb200b1f |
19-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Add support in SplitVectorOp for remainder operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9e1b7ee6e84e14a314c94e7fc98f92d02266f1db |
19-Nov-2007 |
Dan Gohman <djg@cray.com> |
Add support in SplitVectorOp for remainder operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b348d18caf834bc26a80e60aa7a2c9b1748734e8 |
17-Nov-2007 |
Nate Begeman <natebegeman@mac.com> |
Add support for vectors to int <-> float casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
78246cae8f37740879b3b099b388f0595106db6b |
17-Nov-2007 |
Nate Begeman <natebegeman@mac.com> |
Add support for vectors to int <-> float casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
81a038218171860ee4c382849c647d3dc841fe8b |
17-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Live interval splitting: When a live interval is being spilled, rather than creating short, non-spillable intervals for every def / use, split the interval at BB boundaries. That is, for every BB where the live interval is defined or used, create a new interval that covers all the defs and uses in the BB. This is designed to eliminate one common problem: multiple reloads of the same value in a single basic block. Note, it does *not* decrease the number of spills since no copies are inserted so the split intervals are *connected* through spill and reloads (or rematerialization). The newly created intervals can be spilled again, in that case, since it does not span multiple basic blocks, it's spilled in the usual manner. However, it can reuse the same stack slot as the previously split interval. This is currently controlled by -split-intervals-at-bb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44198 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
cecc82245c884e45dd2f1cbe2f1d77497fbfa5a6 |
17-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Live interval splitting: When a live interval is being spilled, rather than creating short, non-spillable intervals for every def / use, split the interval at BB boundaries. That is, for every BB where the live interval is defined or used, create a new interval that covers all the defs and uses in the BB. This is designed to eliminate one common problem: multiple reloads of the same value in a single basic block. Note, it does *not* decrease the number of spills since no copies are inserted so the split intervals are *connected* through spill and reloads (or rematerialization). The newly created intervals can be spilled again, in that case, since it does not span multiple basic blocks, it's spilled in the usual manner. However, it can reuse the same stack slot as the previously split interval. This is currently controlled by -split-intervals-at-bb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44198 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
917c2a6ff2cfcd1263a5dd80c54336754c553ace |
16-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement necessary bits for flt_rounds gcc builtin. Codegen bits and llvm-gcc support will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44182 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c915e271dabb580bad526655306e39bb097f5980 |
16-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement necessary bits for flt_rounds gcc builtin. Codegen bits and llvm-gcc support will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44182 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5db1afb462b048bc10e0003db5a770ed960b2ddf |
15-Nov-2007 |
Nate Begeman <natebegeman@mac.com> |
Basic non-power-of-2 vector support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4a365ad43016e3bf8ce4d0383706a57f5d59976d |
15-Nov-2007 |
Nate Begeman <natebegeman@mac.com> |
Basic non-power-of-2 vector support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
560a737e073788463b9275c5e92ebc12f0ea62a2 |
15-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
This assertion was bogus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9b7e14879587a79a1ab17ca4e8c99f2d93064256 |
15-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
This assertion was bogus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5d446265c740c17ed12e693423f0363296670d60 |
15-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a thinko in post-allocation coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44166 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
58edd785018b91f0e01739218a3e6a057ab836a8 |
15-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a thinko in post-allocation coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44166 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5b8318a1a4819131decb95b9b2be844d678d7a9e |
15-Nov-2007 |
Bill Wendling <isanbard@gmail.com> |
Adding debug output during coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44154 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
28f22abfc5b3def8c72c6d72f3ac6599b0e418fb |
15-Nov-2007 |
Bill Wendling <isanbard@gmail.com> |
Adding debug output during coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44154 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
87075caa18feea3a2f65c381369f92b43886c356 |
15-Nov-2007 |
Bill Wendling <isanbard@gmail.com> |
Need to increment the iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44153 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
1817ab86bf43253f98d920900d216bb0fc099e9a |
15-Nov-2007 |
Bill Wendling <isanbard@gmail.com> |
Need to increment the iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44153 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9de1934099f4eedaeb2f3a023411b2cd3e0e1eae |
14-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix PIC jump table codegen on x86-32/linux. In fact, such thing should be applied to all targets uses GOT-relative offsets for PIC (Alpha?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44108 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5772c674c773e0c96f6e624000e35840ba56817a |
14-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix PIC jump table codegen on x86-32/linux. In fact, such thing should be applied to all targets uses GOT-relative offsets for PIC (Alpha?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44108 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c498b0281fa81bc213ad1a1228664d480936c0e6 |
14-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up sub-register implementation by moving subReg information back to MachineOperand auxInfo. Previous clunky implementation uses an external map to track sub-register uses. That works because register allocator uses a new virtual register for each spilled use. With interval splitting (coming soon), we may have multiple uses of the same register some of which are of using different sub-registers from others. It's too fragile to constantly update the information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44104 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
4d0fbf31e38f28a3c1501e74d7058a88bb8d7c2c |
14-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up sub-register implementation by moving subReg information back to MachineOperand auxInfo. Previous clunky implementation uses an external map to track sub-register uses. That works because register allocator uses a new virtual register for each spilled use. With interval splitting (coming soon), we may have multiple uses of the same register some of which are of using different sub-registers from others. It's too fragile to constantly update the information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44104 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
42f9e96e97fd42cd71e7096ab7eb9eac7a9c8b32 |
13-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Run computeDomForest() on the set of registers that need to be tested for interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44064 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
720d37ce24b65529705cb4f5aadcf2e053ade983 |
13-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Run computeDomForest() on the set of registers that need to be tested for interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44064 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
17b1418bead13b5f78764f1435fc514475123dfc |
13-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Preserve LiveVariables when doing critical edge splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44063 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
cc9626995dde34ebf54abec09666f04a16f5e572 |
13-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Preserve LiveVariables when doing critical edge splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44063 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
b97aec663b1591e71c9ddee6dbb327d1b827eda5 |
13-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Add parameter to getDwarfRegNum to permit targets to use different mappings for EH and debug info; no functional change yet. Fix warning in X86CodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44056 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f5a1153219e7c91069d2ff8299434f06d465f516 |
13-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Add parameter to getDwarfRegNum to permit targets to use different mappings for EH and debug info; no functional change yet. Fix warning in X86CodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44056 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
0f8d9c04d9feef86cee35cf5fecfb348a6b3de50 |
13-Nov-2007 |
Bill Wendling <isanbard@gmail.com> |
Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If not, then there is the potential for the stack to be changed while the stack's being used by another instruction (like a call). This can only result in tears... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44037 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
22f8debd4e886118daaa419ba6bfa0c1ef279beb |
13-Nov-2007 |
Bill Wendling <isanbard@gmail.com> |
Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If not, then there is the potential for the stack to be changed while the stack's being used by another instruction (like a call). This can only result in tears... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44037 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
35e2dba67215045b1be2b890699788adfa939d05 |
12-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Break critical edges coming into blocks with PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44019 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
26d5538713a4bb12d3339b6cb8c800a8844425c3 |
12-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Break critical edges coming into blocks with PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44019 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f2fbca68f868122d6df0bfc9952b4e4c3dfb60b7 |
12-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Refactor some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44010 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
9b741600db1ab399d114224a54e6a4c2ce22aecb |
12-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Refactor some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44010 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
fe0c882e5a6ddf4e3c9f771485fdaa4672759539 |
12-Nov-2007 |
Owen Anderson <resistor@mac.com> |
As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need to be a pass of its own. Instead, move it out into a helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44002 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
34971fd3500a4b9952525d6156c6ef1c82ce54f0 |
12-Nov-2007 |
Owen Anderson <resistor@mac.com> |
As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need to be a pass of its own. Instead, move it out into a helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44002 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
trongPHIElimination.cpp
woAddressInstructionPass.cpp
|
7168be956d2469fdd1ec25518f0ea8225487923a |
09-Nov-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed a strange construct. Please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43960 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
ada4792f3658e3abbbd1cae393f58743b9948632 |
09-Nov-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed a strange construct. Please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43960 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
fd617d0143a158bc1c996445262d409280e7b0cc |
09-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Move MinAlign to MathExtras.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43944 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
|
d2f53d1904d1e405a876eb1f7fcbffa4f34c4255 |
09-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Move MinAlign to MathExtras.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43944 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
|
c6fa170b4db6659c411e77a9a5144ae2e92136c7 |
09-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix some load/store logic that would be wrong for apints on big-endian machines if the bitwidth is not a multiple of 8. Introduce a new helper, MVT::getStoreSizeInBits, and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAGTypes.cpp
|
4f18d4f7d6ed1bdddc07599c0e946557107423eb |
09-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix some load/store logic that would be wrong for apints on big-endian machines if the bitwidth is not a multiple of 8. Introduce a new helper, MVT::getStoreSizeInBits, and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAGTypes.cpp
|
f6bd0ce4c9a9c08500ab50cea322770c611d1af3 |
09-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Add terminating newline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43933 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
d794c85d464278bbfafaaa162e38dcf21f10881d |
09-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Add terminating newline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43933 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
cc41586b9d79532172b37e1f44a9077da4b73fc9 |
09-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Much improved pic jumptable codegen: Then: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry imull $4, %ecx, %ecx leal LJTI1_0-"L1$pb"(%eax), %edx addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx jmpl *%edx .align 2 .set L1_0_set_3,LBB1_3-LJTI1_0 .set L1_0_set_2,LBB1_2-LJTI1_0 .set L1_0_set_5,LBB1_5-LJTI1_0 .set L1_0_set_4,LBB1_4-LJTI1_0 LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 Now: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax jmpl *%eax .align 2 .set L1_0_set_3,LBB1_3-"L1$pb" .set L1_0_set_2,LBB1_2-"L1$pb" .set L1_0_set_5,LBB1_5-"L1$pb" .set L1_0_set_4,LBB1_4-"L1$pb" LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43924 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
6fb0676d69697f38712be6843073618583d3a3f8 |
09-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Much improved pic jumptable codegen: Then: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry imull $4, %ecx, %ecx leal LJTI1_0-"L1$pb"(%eax), %edx addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx jmpl *%edx .align 2 .set L1_0_set_3,LBB1_3-LJTI1_0 .set L1_0_set_2,LBB1_2-LJTI1_0 .set L1_0_set_5,LBB1_5-LJTI1_0 .set L1_0_set_4,LBB1_4-LJTI1_0 LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 Now: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax jmpl *%eax .align 2 .set L1_0_set_3,LBB1_3-"L1$pb" .set L1_0_set_2,LBB1_2-"L1$pb" .set L1_0_set_5,LBB1_5-"L1$pb" .set L1_0_set_4,LBB1_4-"L1$pb" LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43924 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
2dfdefd282a04785c4d7b43e37782ace65af2ba6 |
09-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Didn't mean to check these in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
d5d2f0295f4abd084348d8a047836ef65433406a |
09-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Didn't mean to check these in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
7da8f399bf09e9a03fe8bdd8c8eef6e5a7d87327 |
09-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix. Passive nodes are not in SUnitMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/TargetLowering.cpp
|
a81a770f0f290e9f1f6c71a886d5294a0adeef8d |
09-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix. Passive nodes are not in SUnitMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/TargetLowering.cpp
|
0823cea34a5e02513c513b7ba00db4fc6266c4a1 |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
This preserves critical edge breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43911 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
ee170f968ebb15c528a645bb39d6fef1560c3580 |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
This preserves critical edge breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43911 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d195ce1fb6539469bf1e82c41d5a8c2efdb5f61b |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Make BreakCriticalMachineEdges available as a pass that can be depended on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43910 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
c6394d115d2d86d6ac3f492ed1381d68c33956be |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Make BreakCriticalMachineEdges available as a pass that can be depended on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43910 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
4471194d69cc99ed53dc1638e06053b069dc6454 |
08-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
If both parts of smul_lohi, etc. are used, don't simplify. If only one part is used, try simplify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ddfa8c7f39c64cb1211077ca8732ab9044c8cb66 |
08-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
If both parts of smul_lohi, etc. are used, don't simplify. If only one part is used, try simplify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
01f43a4d551eb126731d2ae622d39ca0291965c6 |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add the majority of machine-level critical edge breaking pass. Most of this was written by Fernando, cleanup and updating to TOT by me. This still needs a bit of work, particularly to handle jump tables properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43885 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
8ba69d8845336dc69a14f99145891b11233e4f60 |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add the majority of machine-level critical edge breaking pass. Most of this was written by Fernando, cleanup and updating to TOT by me. This still needs a bit of work, particularly to handle jump tables properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43885 91177308-0d34-0410-b5e6-96231b3b80d8
reakCriticalMachineEdges.cpp
|
14b3fb78059a7b720ac9592e1f5d827166a5b5ac |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Take another stab at getting isLiveIn() and isLiveOut() right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43869 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
5fa93ca1707c5032c4f95829c21ba4156a02b95f |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Take another stab at getting isLiveIn() and isLiveOut() right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43869 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
a018540807775703d630e9c92f9d8013d545599e |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Bring UsedBlocks back. StrongPHIElimination needs this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43866 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
721b2ccda626f175ab941d085d2bbc552ddafd9f |
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Bring UsedBlocks back. StrongPHIElimination needs this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43866 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
29121848b912b1e062760e5d14c6fbec63b16d9b |
07-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Simplify my (il)logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43819 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a5e4024e3fedc2fbe6aeb8d173b1a9a95042ae97 |
07-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Simplify my (il)logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43819 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
60a877d71351855d68491eeb123835ac7833a9e4 |
07-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add some more of StrongPHIElim. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43805 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
1fbddf00956662f28b94e73c2656bb79049d8598 |
07-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add some more of StrongPHIElim. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43805 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
0d97426b7b3d57cc3ff651a400b758733f2058a8 |
06-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Remainder operations must be either integer or floating-point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
59b4b1040ecf1055854d86693a3674814510cf27 |
06-Nov-2007 |
Dan Gohman <djg@cray.com> |
Remainder operations must be either integer or floating-point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
be6781b5d00107f4b60797c3ebdc0aab110487ff |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
When the allocator rewrite a spill register with new virtual register, it replaces other operands of the same register. Watch out for situations where only some of the operands are sub-register uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43776 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
945923c3f11ee4ad9f261a9bca0c0a104d6804f8 |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
When the allocator rewrite a spill register with new virtual register, it replaces other operands of the same register. Watch out for situations where only some of the operands are sub-register uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43776 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8fc9a1022108e1afa8077e3e0a7b8a70eb3c3bc3 |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
First step towards moving the coalescer to priority_queue based machinery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43764 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
5bf8997dd322cd0d929c3a62c81c14b042da026f |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
First step towards moving the coalescer to priority_queue based machinery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43764 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
ab847242976b8e7c495308f8b771ae5d0db8b340 |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug where a def use operand isn't being detected as a sub-register use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43763 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9a9614f6623ecee1e63591b59fd338764abd710d |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug where a def use operand isn't being detected as a sub-register use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43763 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1fd15ba9614e81a3b9cc5cd9631ca76c845159b2 |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add pseudo dependency to force two-address instruction to be scheduled after other uses. There was a overly restricted check that prevented some obvious cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
48fb0205803f2fadef072d33720c11536490d213 |
06-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add pseudo dependency to force two-address instruction to be scheduled after other uses. There was a overly restricted check that prevented some obvious cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8b96b9fce084640cee62d39dab8d7f882818e122 |
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43755 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
9c88538126b554eb14405e98cfaedda6893a39d7 |
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43755 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
ee49b5385b365559ce3c28e5ace7f821090df466 |
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
DomForest is a forest of registers, not instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43754 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
5a9ce05eb9601ddf5ec0e9dea9f188df6ef0709f |
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
DomForest is a forest of registers, not instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43754 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
a4ad2e740ac7727229ee0b47affb2e7efae085eb |
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
StrongPHIElimination requires LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43751 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
f3920cbe6e4b8161f7d8878dec311020cf3eb74c |
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
StrongPHIElimination requires LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43751 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
80176319f3ea5d3d943aa540e76381e8567f5dcb |
06-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Add support for vector remainder operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3e3fd8cf1c6bb2bff373903ff55d8c7562b2f4ea |
06-Nov-2007 |
Dan Gohman <djg@cray.com> |
Add support for vector remainder operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f1ba1cad387dc52f3c2c5afc665edf9caad00992 |
06-Nov-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move the LowerMEMCPY and LowerMEMCPYCall to a common place. Thanks for the suggestions Bill :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
dd867c703a1fb12d758ab2ea45aaa0e4e6be4074 |
06-Nov-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move the LowerMEMCPY and LowerMEMCPYCall to a common place. Thanks for the suggestions Bill :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
eb57ea7ea2378b77bc995371c1888193b960cd03 |
05-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Make labels work in asm blocks; allow labels as parameters. Rename ValueRefList to ParamList in AsmParser, since its only use is for parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43734 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
cfb19e6297a5527845fd6c14b7dff5dea34b6a25 |
05-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Make labels work in asm blocks; allow labels as parameters. Rename ValueRefList to ParamList in AsmParser, since its only use is for parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43734 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
0c8a13b5107eb41d3c62d7b0db1bd17fa5549368 |
05-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Don't output ABI size padding twice. By using the store size for the field we get ABI padding automatically, so no need to put it in again when we emit the field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43720 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c15d58ca28e8727d8c8f2f95d997a724069f04be |
05-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Don't output ABI size padding twice. By using the store size for the field we get ABI padding automatically, so no need to put it in again when we emit the field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43720 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a461c4d75b66135ff6f3d41b46a08054b8fc1dc8 |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move SimpleRegisterCoalescing.h to lib/CodeGen since there is now a common register coalescer interface: RegisterCoalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43714 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
ec045b817d565dc31bf65f9aa3d9711c7e1db293 |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move SimpleRegisterCoalescing.h to lib/CodeGen since there is now a common register coalescer interface: RegisterCoalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43714 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
impleRegisterCoalescing.h
|
5031fd2d32a8ce5e82059928396e0c659e2a7c27 |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Skip over deleted val#'s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43700 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
30d15d0bb3ff073a13fc45f330b356fead9e46d8 |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Skip over deleted val#'s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43700 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5942efb0e5f49fb772e340c251502cc0a7ff157e |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Handle cases where a register and one of its super-register are both marked as defined on the same instruction. This fixes PR1767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43699 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
9cf8f9c2401675e1b097e8c0ec9132e739acca64 |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Handle cases where a register and one of its super-register are both marked as defined on the same instruction. This fixes PR1767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43699 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
5f5f3b6333ed5ecaf40699e8cd0b1aba524cbf0f |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1187. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43692 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ccfa6921070225ad30fe5e82641775da0983f07a |
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1187. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43692 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ca0ed744852a7d9625572fbb793f65e81225a3e8 |
05-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Eliminate the remaining uses of getTypeSize. This should only effect x86 when using long double. Now 12/16 bytes are output for long double globals (the exact amount depends on the alignment). This brings globals in line with the rest of LLVM: the space reserved for an object is now always the ABI size. One tricky point is that only 10 bytes should be output for long double if it is a field in a packed struct, which is the reason for the additional argument to EmitGlobalConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43688 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
LFWriter.cpp
achOWriter.cpp
achOWriter.h
achineFunction.cpp
|
8157ef423408bd50e6712814e7792a308b5db7d7 |
05-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Eliminate the remaining uses of getTypeSize. This should only effect x86 when using long double. Now 12/16 bytes are output for long double globals (the exact amount depends on the alignment). This brings globals in line with the rest of LLVM: the space reserved for an object is now always the ABI size. One tricky point is that only 10 bytes should be output for long double if it is a field in a packed struct, which is the reason for the additional argument to EmitGlobalConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43688 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
LFWriter.cpp
achOWriter.cpp
achOWriter.h
achineFunction.cpp
|
83430bce1d21c8095438ed591cb9c72b5c666a07 |
04-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Another step of stronger PHI elimination down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43684 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
e4df5e078d7f8a47e9dc3ff9431c58e082947fb5 |
04-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Another step of stronger PHI elimination down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43684 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
9aeaf7593bb3c124aa8a5aa9623efcf3db3b0534 |
04-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
If an interval is being undone clear its preference as well since the source interval may have been undone as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43670 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
b6aa671893136982fb23be64cc69dfc7a42aa260 |
04-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
If an interval is being undone clear its preference as well since the source interval may have been undone as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43670 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
c92da3882ee4e18153bb36fcdf33af393aba8259 |
03-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
There are times when the coalescer would not coalesce away a copy but the copy can be eliminated by the allocator is the destination and source targets the same register. The most common case is when the source and destination registers are in different class. For example, on x86 mov32to32_ targets GR32_ which contains a subset of the registers in GR32. The allocator can do 2 things: 1. Set the preferred allocation for the destination of a copy to that of its source. 2. After allocation is done, change the allocation of a copy destination (if legal) so the copy can be eliminated. This eliminates 443 extra moves from 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43662 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
c4c75f53f7a933644abd1805e73cb4655b3beb5b |
03-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
There are times when the coalescer would not coalesce away a copy but the copy can be eliminated by the allocator is the destination and source targets the same register. The most common case is when the source and destination registers are in different class. For example, on x86 mov32to32_ targets GR32_ which contains a subset of the registers in GR32. The allocator can do 2 things: 1. Set the preferred allocation for the destination of a copy to that of its source. 2. After allocation is done, change the allocation of a copy destination (if legal) so the copy can be eliminated. This eliminates 443 extra moves from 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43662 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
111c4f897eb9a42eac6aceea830b8e76058afd73 |
02-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Add std:: to sort calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43652 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
68840707c8763f4e7a5377039b14d08fef6caef9 |
02-Nov-2007 |
Dan Gohman <djg@cray.com> |
Add std:: to sort calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43652 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b61f2f061feefd79623fadd21eee4f195b0b8e56 |
02-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Change illegal uses of ++ to uses of STLExtra.h's next function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43651 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0bb8bdc724f0dbd88a4be9853dfe31cf6f244f56 |
02-Nov-2007 |
Dan Gohman <djg@cray.com> |
Change illegal uses of ++ to uses of STLExtra.h's next function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43651 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7277a7d031d2ccd66e2c3da0c797af0bf9f089ca |
02-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
One more extract_subreg coalescing bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43644 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a1b89c2ad478ffac5e84a0323e451b8bf8322ba7 |
02-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
One more extract_subreg coalescing bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43644 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
e414cdacb4ee442624128e41cb985c4e9f312b52 |
02-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix a thinko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
ee9c9b0d7868ada6d88e959d6959f6848e320002 |
02-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix a thinko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
514ab348fddcdffa8367685dc608b2f8d5de986d |
01-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize. The meaning of getTypeSize was not clear - clarifying it is important now that we have x86 long double and arbitrary precision integers. The issue with long double is that it requires 80 bits, and this is not a multiple of its alignment. This gives a primitive type for which getTypeSize differed from getABITypeSize. For arbitrary precision integers it is even worse: there is the minimum number of bits needed to hold the type (eg: 36 for an i36), the maximum number of bits that will be overwriten when storing the type (40 bits for i36) and the ABI size (i.e. the storage size rounded up to a multiple of the alignment; 64 bits for i36). This patch removes getTypeSize (not really - it is still there but deprecated to allow for a gradual transition). Instead there is: (1) getTypeSizeInBits - a number of bits that suffices to hold all values of the type. For a primitive type, this is the minimum number of bits. For an i36 this is 36 bits. For x86 long double it is 80. This corresponds to gcc's TYPE_PRECISION. (2) getTypeStoreSizeInBits - the maximum number of bits that is written when storing the type (or read when reading it). For an i36 this is 40 bits, for an x86 long double it is 80 bits. This is the size alias analysis is interested in (getTypeStoreSize returns the number of bytes). There doesn't seem to be anything corresponding to this in gcc. (3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded up to a multiple of the alignment. For an i36 this is 64, for an x86 long double this is 96 or 128 depending on the OS. This is the spacing between consecutive elements when you form an array out of this type (getABITypeSize returns the number of bytes). This is TYPE_SIZE in gcc. Since successive elements in a SequentialType (arrays, pointers and vectors) need to be aligned, the spacing between them will be given by getABITypeSize. This means that the size of an array is the length times the getABITypeSize. It also means that GEP computations need to use getABITypeSize when computing offsets. Furthermore, if an alloca allocates several elements at once then these too need to be aligned, so the size of the alloca has to be the number of elements multiplied by getABITypeSize. Logically speaking this doesn't have to be the case when allocating just one element, but it is simpler to also use getABITypeSize in this case. So alloca's and mallocs should use getABITypeSize. Finally, since gcc's only notion of size is that given by getABITypeSize, if you want to output assembler etc the same as gcc then getABITypeSize is the size you want. Since a store will overwrite no more than getTypeStoreSize bytes, and a read will read no more than that many bytes, this is the notion of size appropriate for alias analysis calculations. In this patch I have corrected all type size uses except some of those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard cases). I will get around to auditing these too at some point, but I could do with some help. Finally, I made one change which I think wise but others might consider pointless and suboptimal: in an unpacked struct the amount of space allocated for a field is now given by the ABI size rather than getTypeStoreSize. I did this because every other place that reserves memory for a type (eg: alloca) now uses getABITypeSize, and I didn't want to make an exception for unpacked structs, i.e. I did it to make things more uniform. This only effects structs containing long doubles and arbitrary precision integers. If someone wants to pack these types more tightly they can always use a packed struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f99fdc666e16255e15d8ab0888a49bddbb96aa2d |
01-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize. The meaning of getTypeSize was not clear - clarifying it is important now that we have x86 long double and arbitrary precision integers. The issue with long double is that it requires 80 bits, and this is not a multiple of its alignment. This gives a primitive type for which getTypeSize differed from getABITypeSize. For arbitrary precision integers it is even worse: there is the minimum number of bits needed to hold the type (eg: 36 for an i36), the maximum number of bits that will be overwriten when storing the type (40 bits for i36) and the ABI size (i.e. the storage size rounded up to a multiple of the alignment; 64 bits for i36). This patch removes getTypeSize (not really - it is still there but deprecated to allow for a gradual transition). Instead there is: (1) getTypeSizeInBits - a number of bits that suffices to hold all values of the type. For a primitive type, this is the minimum number of bits. For an i36 this is 36 bits. For x86 long double it is 80. This corresponds to gcc's TYPE_PRECISION. (2) getTypeStoreSizeInBits - the maximum number of bits that is written when storing the type (or read when reading it). For an i36 this is 40 bits, for an x86 long double it is 80 bits. This is the size alias analysis is interested in (getTypeStoreSize returns the number of bytes). There doesn't seem to be anything corresponding to this in gcc. (3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded up to a multiple of the alignment. For an i36 this is 64, for an x86 long double this is 96 or 128 depending on the OS. This is the spacing between consecutive elements when you form an array out of this type (getABITypeSize returns the number of bytes). This is TYPE_SIZE in gcc. Since successive elements in a SequentialType (arrays, pointers and vectors) need to be aligned, the spacing between them will be given by getABITypeSize. This means that the size of an array is the length times the getABITypeSize. It also means that GEP computations need to use getABITypeSize when computing offsets. Furthermore, if an alloca allocates several elements at once then these too need to be aligned, so the size of the alloca has to be the number of elements multiplied by getABITypeSize. Logically speaking this doesn't have to be the case when allocating just one element, but it is simpler to also use getABITypeSize in this case. So alloca's and mallocs should use getABITypeSize. Finally, since gcc's only notion of size is that given by getABITypeSize, if you want to output assembler etc the same as gcc then getABITypeSize is the size you want. Since a store will overwrite no more than getTypeStoreSize bytes, and a read will read no more than that many bytes, this is the notion of size appropriate for alias analysis calculations. In this patch I have corrected all type size uses except some of those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard cases). I will get around to auditing these too at some point, but I could do with some help. Finally, I made one change which I think wise but others might consider pointless and suboptimal: in an unpacked struct the amount of space allocated for a field is now given by the ABI size rather than getTypeStoreSize. I did this because every other place that reserves memory for a type (eg: alloca) now uses getABITypeSize, and I didn't want to make an exception for unpacked structs, i.e. I did it to make things more uniform. This only effects structs containing long doubles and arbitrary precision integers. If someone wants to pack these types more tightly they can always use a packed struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0547bab214c65402cd80846e8bccb7535c0ddf09 |
01-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Coalesce extract_subreg when both intervals are relatively small. - Some code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43606 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
7dbf2570c869b7330f3a3df1c108f0f3c0073f04 |
01-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Coalesce extract_subreg when both intervals are relatively small. - Some code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43606 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
7169a2f9e87d3cb13666071b9af022fdb82218e4 |
31-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Promotion of sdiv/srem/udiv/urem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
d12d06725624645c26540e82d848e4f13b490864 |
31-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Promotion of sdiv/srem/udiv/urem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
1bd3271b16d7f9f0b69af00d8ff29ed00a29f9ef |
31-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Add a newline at the end of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43550 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
trongPHIElimination.cpp
|
d830533de6017e2a2c2b982b780be3a164fefaa5 |
31-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Add a newline at the end of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43550 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
trongPHIElimination.cpp
|
0bda0e8895285c3a03c8859e11f2fff69861fd9d |
31-Oct-2007 |
Owen Anderson <resistor@mac.com> |
Add the skeleton of a better PHI elimination pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43542 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
4ae2d3f502fa779adb0a93c56c9c14f3c66f517c |
31-Oct-2007 |
Owen Anderson <resistor@mac.com> |
Add the skeleton of a better PHI elimination pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43542 91177308-0d34-0410-b5e6-96231b3b80d8
trongPHIElimination.cpp
|
5d32ec4cb002973cb12bc21a3fe12364794168c8 |
31-Oct-2007 |
Owen Anderson <resistor@mac.com> |
Some fixes to get MachineDomTree working better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43541 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
444710d3e044f06eea20ce1206dc096b095c3efd |
31-Oct-2007 |
Owen Anderson <resistor@mac.com> |
Some fixes to get MachineDomTree working better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43541 91177308-0d34-0410-b5e6-96231b3b80d8
achineDominators.cpp
|
25f1d08619720b82e7c944b18eee488fc07ba153 |
31-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Make i64=expand_vector_elt(v2i64) work in 32-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2ff963d7b805464bb77a600a7dc3a8fc24d2836d |
31-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Make i64=expand_vector_elt(v2i64) work in 32-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
de1631bc85380857b11240eb22ddff2bfa5b7104 |
30-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
06aaf4c28ad00f87b797faf1a061aefadc5ab811 |
30-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
01405f928418e1c1268dd0e7a4b9dd68e0cb146c |
30-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Add support for expanding trunc stores. Consider storing an i170 on a 32 bit machine. This is first promoted to a trunc-i170 store of an i256. On a little-endian machine this expands to a store of an i128 and a trunc-i42 store of an i128. The trunc-i42 store is further expanded to a trunc-i42 store of an i64, then to a store of an i32 and a trunc-i10 store of an i32. At this point the operand type is legal (i32) and expansion stops (legalization of the trunc-i10 needs to be handled in LegalizeDAG.cpp). On big-endian machines the high bits are stored first, and some bit-fiddling is needed in order to generate aligned stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43499 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
77bf4c48821a37c19b1c7fc41265fe327438eaa3 |
30-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Add support for expanding trunc stores. Consider storing an i170 on a 32 bit machine. This is first promoted to a trunc-i170 store of an i256. On a little-endian machine this expands to a store of an i128 and a trunc-i42 store of an i128. The trunc-i42 store is further expanded to a trunc-i42 store of an i64, then to a store of an i32 and a trunc-i10 store of an i32. At this point the operand type is legal (i32) and expansion stops (legalization of the trunc-i10 needs to be handled in LegalizeDAG.cpp). On big-endian machines the high bits are stored first, and some bit-fiddling is needed in order to generate aligned stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43499 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
ba3b1d10fd9bc3034a5947da7cc6e32a70ce23d4 |
30-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
If a call to getTruncStore is for a normal store, offload to getStore rather than trying to handle both cases at once (the assertions for example assume the store really is truncating). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
06fcf6543423ddff7414f40a53279344e97044d9 |
30-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
If a call to getTruncStore is for a normal store, offload to getStore rather than trying to handle both cases at once (the assertions for example assume the store really is truncating). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
090b38a0dafbdad144db1e2c5c9db082eb7dc9fe |
29-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Fix a DAGCombiner abort on a bitcast from a scalar to a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43470 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a3591d9ec3fd99ae03aee545913d5fc84fba60b8 |
29-Oct-2007 |
Dan Gohman <djg@cray.com> |
Fix a DAGCombiner abort on a bitcast from a scalar to a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43470 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3c3ddb3a856e44c603cb8cf8f52ff9c0f06ff14a |
29-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Enable more fold (sext (load x)) -> (sext (truncate (sextload x))) transformation. Previously, it's restricted by ensuring the number of load uses is one. Now the restriction is loosened up by allowing setcc uses to be "extended" (e.g. setcc x, c, eq -> setcc sext(x), sext(c), eq). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9decb33dcb7844c828849b763dd80af08785ba35 |
29-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Enable more fold (sext (load x)) -> (sext (truncate (sextload x))) transformation. Previously, it's restricted by ensuring the number of load uses is one. Now the restriction is loosened up by allowing setcc uses to be "extended" (e.g. setcc x, c, eq -> setcc sext(x), sext(c), eq). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9962054775455c43402bf176da4a28c68197feef |
29-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
751fed71f59d152b3017e2c175bc4285a219a9d0 |
29-Oct-2007 |
Dan Gohman <djg@cray.com> |
Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
dc84650679b6330e0fcdd4cf8bc2a351387db7ca |
28-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
The guaranteed alignment of ptr+offset is only the minimum of of offset and the alignment of ptr if these are both powers of 2. While the ptr alignment is guaranteed to be a power of 2, there is no reason to think that offset is. For example, if offset is 12 (the size of a long double on x86-32 linux) and the alignment of ptr is 8, then the alignment of ptr+offset will in general be 4, not 8. Introduce a function MinAlign, lifted from gcc, for computing the minimum guaranteed alignment. I've tried to fix up everywhere under lib/CodeGen/SelectionDAG/. I also changed some places that weren't wrong (because both values were a power of 2), as a defensive change against people copying and pasting the code. Hopefully someone who cares about alignment will review the rest of LLVM and fix up the remaining places. Since I'm on x86 I'm not very motivated to do this myself... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43421 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
|
a369143858d4b127ef672b305a4bd676b5030898 |
28-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
The guaranteed alignment of ptr+offset is only the minimum of of offset and the alignment of ptr if these are both powers of 2. While the ptr alignment is guaranteed to be a power of 2, there is no reason to think that offset is. For example, if offset is 12 (the size of a long double on x86-32 linux) and the alignment of ptr is 8, then the alignment of ptr+offset will in general be 4, not 8. Introduce a function MinAlign, lifted from gcc, for computing the minimum guaranteed alignment. I've tried to fix up everywhere under lib/CodeGen/SelectionDAG/. I also changed some places that weren't wrong (because both values were a power of 2), as a defensive change against people copying and pasting the code. Hopefully someone who cares about alignment will review the rest of LLVM and fix up the remaining places. Since I'm on x86 I'm not very motivated to do this myself... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43421 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
|
984e986929c34f9fa41ad33e3a4f19816f80c1ad |
26-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
- Remove the hacky code that forces a memcpy. Alignment is taken care of in the FE. - Explicitly pass in the alignment of the load & store. - XFAIL 2007-10-23-UnalignedMemcpy.ll because llc has a bug that crashes on unaligned pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
84ebece8b1abc9b63c7360fc124a7e282deee332 |
26-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
- Remove the hacky code that forces a memcpy. Alignment is taken care of in the FE. - Explicitly pass in the alignment of the load & store. - XFAIL 2007-10-23-UnalignedMemcpy.ll because llc has a bug that crashes on unaligned pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
da6efc5268958a0668806e989c1c5a1f788543e5 |
25-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Changed XXX to FIXME, and added comment to the README file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43359 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
EADME.txt
|
f728a1ceebdaeb8d5765071bd0c70b41a485b3da |
25-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Changed XXX to FIXME, and added comment to the README file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43359 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
EADME.txt
|
0713a224234b4596709c7582ebf17a1ccb95c872 |
25-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Added comment explaining why we are doing this check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43353 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8362818146eb0198a47561fe5628a1d8cf2a19a4 |
25-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Added comment explaining why we are doing this check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43353 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2e606cfc7a2a8523114f0666756fce1e61fa9f6b |
25-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Small formatting changes. Add a sanity check. Use NVT rather than looking it up, since we have it to hand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
abace9db0cd2cbca0e9bbf17adfedc1650f92129 |
25-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Small formatting changes. Add a sanity check. Use NVT rather than looking it up, since we have it to hand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
cac99db7dafb832710d9cb95bc7561d861f9e55b |
25-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Promote SETCC operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
10ca7fb7ae34a80c98088dfb00e9362f80fed908 |
25-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Promote SETCC operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
a3d10d808eb68c8e330eee382168cd747c718baf |
25-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Correctly extract the ValueType from a VTSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
2353b747aee0e6f4634b1219c94cf95cb3337f36 |
25-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Correctly extract the ValueType from a VTSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
8eadd5a6db79da067c773d1bd1cc13edc07788cc |
25-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Another expansion for i64 multiply, suitable for PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43314 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
612c88b47558b9cd4109058733442a148b05feb5 |
25-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Another expansion for i64 multiply, suitable for PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43314 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
30eeb3c6c00088ecdcaae8850fbaaa933a316c32 |
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Fix comment and use the "Size" variable that's already provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43271 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6310506781df7714cf4df32de832b0ea8dcb64f0 |
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Fix comment and use the "Size" variable that's already provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43271 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8b1c68cee4ddf42b4b57d4224f945ad9e9d4a779 |
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
If there's an unaligned memcpy to/from the stack, don't lower it. Just call the memcpy library function instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f7fcf9c22399a68d9a0a114de561f25e2ac9bb82 |
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
If there's an unaligned memcpy to/from the stack, don't lower it. Just call the memcpy library function instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
803396fce26270fae6ff0dfba4813f4d4e5002fd |
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
This broke lots. Reverting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b9dacd9fc2f988dc2635fa4534abc6fdebf6489a |
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
This broke lots. Reverting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
de09040946b4aa9bdc70057d65f840685ac31fef |
23-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Lowering a memcpy to the stack is killing PPC. The ARM and X86 backends already have their own custom memcpy lowering code. This code needs to be factored out into a target-independent lowering method with hooks to the backend. In the meantime, just call memcpy if we're trying to copy onto a stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d9216574ddab03de298afadafda68d770b49545d |
23-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Lowering a memcpy to the stack is killing PPC. The ARM and X86 backends already have their own custom memcpy lowering code. This code needs to be factored out into a target-independent lowering method with hooks to the backend. In the meantime, just call memcpy if we're trying to copy onto a stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7bb175b4d12e3a22a66a26f0e9ba2ebd4406acc7 |
23-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
It's possible to commute instrctions with more than 3 operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43256 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b5130eb0d47d69561c2b907f082a757ed38cfb32 |
23-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
It's possible to commute instrctions with more than 3 operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43256 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
e11fb343817d4bfa536cbf1b0ba979e1a4e16381 |
23-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
isSubRegOf() is a dup of isSubRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43249 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
713bc616ede84fbd39a8fde851ca52f966e38bfe |
23-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
isSubRegOf() is a dup of isSubRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43249 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
76500d52be67e5dbdf9b7fb2843d286f26f37e3b |
22-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add missing paratheses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43227 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
358d8ddc33c402005a17ddfd5eff1b1d85367c8c |
22-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add missing paratheses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43227 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
fec3ad3e5f98ffdafee873c4afed81648ff2049f |
22-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Support for expanding extending loads of integers with funky bit-widths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
673b87b92c3f4a63eeab070ed6539be4e6a0df82 |
22-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Support for expanding extending loads of integers with funky bit-widths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
245741d2a1ccec53a87bb5d02b711244c179f07a |
22-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Fix up the logic for result expanding the various extension operations so they work right for integers with funky bit-widths. For example, consider extending i48 to i64 on a 32 bit machine. The i64 result is expanded to 2 x i32. We know that the i48 operand will be promoted to i64, then also expanded to 2 x i32. If we had the expanded promoted operand to hand, then expanding the result would be trivial. Unfortunately at this stage we can only get hold of the promoted operand. So instead we kind of hand-expand, doing explicit shifting and truncating to get the top and bottom halves of the i64 operand into 2 x i32, which are then used to expand the result. This is harmless, because when the promoted operand is finally expanded all this bit fiddling turns into trivial operations which are eliminated either by the expansion code itself or the DAG combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
78ca93bb4960929e72ad3a86219f2a83a4413288 |
22-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Fix up the logic for result expanding the various extension operations so they work right for integers with funky bit-widths. For example, consider extending i48 to i64 on a 32 bit machine. The i64 result is expanded to 2 x i32. We know that the i48 operand will be promoted to i64, then also expanded to 2 x i32. If we had the expanded promoted operand to hand, then expanding the result would be trivial. Unfortunately at this stage we can only get hold of the promoted operand. So instead we kind of hand-expand, doing explicit shifting and truncating to get the top and bottom halves of the i64 operand into 2 x i32, which are then used to expand the result. This is harmless, because when the promoted operand is finally expanded all this bit fiddling turns into trivial operations which are eliminated either by the expansion code itself or the DAG combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
cbfb9b27efd2b4fc1fbc02addf4d41a7d8d8d8eb |
22-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Only perform the unfolding optimization when the folding in question is modref. - Remove a bogus assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43211 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
3b94f75ebe1a3d6356bfcaba5a0857d05ba70744 |
22-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Only perform the unfolding optimization when the folding in question is modref. - Remove a bogus assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43211 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
d0e908e830b2d2415e501e862c0aafbb9d5c2a5f |
21-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add promote operand support for [su]int_to_fp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
2db52893b4a0adf3a4203bda64d8582fae62a1aa |
21-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add promote operand support for [su]int_to_fp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
be5a0a466880b2636404a976d4ed6546877215b5 |
20-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add result promotion of FP_TO_*INT, fixing CodeGen/X86/trunc-to-bool.ll with the new legalizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
6587f34750656282059b24f7af2a065baf095382 |
20-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add result promotion of FP_TO_*INT, fixing CodeGen/X86/trunc-to-bool.ll with the new legalizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43199 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
aaeb0c86666662d3ed5766540ecd8c552049c320 |
20-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
786ab068cec0d55198d800ba57d5cb3ecf0c6e1e |
20-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43198 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
d20154c76286a750a0bcd270909190871e95c149 |
20-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Implement promote and expand for operands of memcpy and friends. This fixes CodeGen/X86/mem*.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43197 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
180760038d0772da0a2ceb9ff2e07d7ce5b174dc |
20-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Implement promote and expand for operands of memcpy and friends. This fixes CodeGen/X86/mem*.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43197 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
b9d5e7cdc9ce587f27e0ea9ced35db60f2601d2e |
20-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added missing curly braces which renders the if clause useless in debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43196 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
8ba2af53e5955e74581eb35af81a363f314bb797 |
20-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added missing curly braces which renders the if clause useless in debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43196 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
e526962fc59d38b4b0f671717df7657b8e0d8baa |
20-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Fix a few places vector operations were not getting the operand's type from the right place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
db132452e3caa89308c519f44693efa96b583f59 |
20-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Fix a few places vector operations were not getting the operand's type from the right place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
66f716354527c5ab4687a89a1605915e5128a106 |
19-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Local spiller optimization: Turn a store folding instruction into a load folding instruction. e.g. xorl %edi, %eax movl %eax, -32(%ebp) movl -36(%ebp), %eax orl %eax, -32(%ebp) => xorl %edi, %eax orl -36(%ebp), %eax mov %eax, -32(%ebp) This enables the unfolding optimization for a subsequent instruction which will also eliminate the newly introduced store instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43192 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
4a7e72ff3e293d3fcf0a55338ec6316b3731aacb |
19-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Local spiller optimization: Turn a store folding instruction into a load folding instruction. e.g. xorl %edi, %eax movl %eax, -32(%ebp) movl -36(%ebp), %eax orl %eax, -32(%ebp) => xorl %edi, %eax orl -36(%ebp), %eax mov %eax, -32(%ebp) This enables the unfolding optimization for a subsequent instruction which will also eliminate the newly introduced store instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43192 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
80629c85f1041df41b5158ebb03a4725af6ecd90 |
19-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Don't branch fold inline asm statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43191 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
46329b72097fe55d565d8d05b3c07dfdde04bf8e |
19-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Don't branch fold inline asm statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43191 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7f5f6851c386e1f74d35ee708e4654ae1c1038b6 |
19-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Add support for a few more nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
3d6e9e2fabde4875e638fb27a89392f286a3013e |
19-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Add support for a few more nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43190 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
b6210fc92b643a5440d8373b5f36b6e579b5feb8 |
19-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Redo "last ppc long double fix" as Chris wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
2550e3aa67fc6b5192976b0a6ad5c8cd7829cf32 |
19-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Redo "last ppc long double fix" as Chris wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
f185e67844e6229e2b0fe9080a5f66fb01fb7f5a |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a really nasty vector miscompilation bill recently introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9f9b880c45ba65f79ab1262eef9c716c8d9a917a |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a really nasty vector miscompilation bill recently introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1c4d492b944768ded5356587779045cc346409d7 |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
rename ExpandOperation to ExpandOperationResult, as suggested by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
92da0502967c55166272fabcd4fca394f31d03bf |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
rename ExpandOperation to ExpandOperationResult, as suggested by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
electionDAG/SelectionDAGISel.cpp
|
c8ca2365e5fcd1cd3b69d4324106d6ebb28a152a |
19-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Support for expanding ADDE and SUBE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
700e008b476479e4edd1123ab267fc03a071948a |
19-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Support for expanding ADDE and SUBE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
5d868b1ffedfb4917abcb3b41afa6e21d9160ff7 |
19-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
If the value types are equal then this routine asserts in later checks rather than producing the ordinary load it is supposed to. Avoid all such hassles by directly returning an ordinary load in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43174 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9b61474a7e449c3274efd672d9fea79d210db625 |
19-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
If the value types are equal then this routine asserts in later checks rather than producing the ordinary load it is supposed to. Avoid all such hassles by directly returning an ordinary load in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43174 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5c0d6ed325417baa5d119af9c2b6790231d8565f |
19-Oct-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for byval function whose argument is not 32 bit aligned. To do this it is necessary to add a "always inline" argument to the memcpy node. For completeness I have also added this node to memmove and memset. I have also added getMem* functions, because the extra argument makes it cumbersome to use getNode and because I get confused by it :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43172 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
808259095dfac3128b20664c1c40f0b2a5b0f8bc |
19-Oct-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for byval function whose argument is not 32 bit aligned. To do this it is necessary to add a "always inline" argument to the memcpy node. For completeness I have also added this node to memmove and memset. I have also added getMem* functions, because the extra argument makes it cumbersome to use getNode and because I get confused by it :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43172 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
1f39dc42cdb70b5ebe86e3076c025a814adcbc41 |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Implement a few new operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
b235c4ab7f957f7b0ed314cf28809d289f648aba |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Implement a few new operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
50f4395d86fdf3c6910fc63f38cc4d6d1ce3cef6 |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Implement expansion of SINT_TO_FP and UINT_TO_FP operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
0a4f31160b6ee626086a27085db0be9853de22f6 |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Implement expansion of SINT_TO_FP and UINT_TO_FP operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43170 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
c99df1b8484365318aaab3593f7252a7d95fd5f3 |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
implement support for custom expansion of any node type, in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
9d8cab4bf926f1616c1cea4deea1ce29cc7e61f4 |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
implement support for custom expansion of any node type, in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
597ab48ca04e470dc90a2022ca7729dce68d092a |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Make use of TLI.ExpandOperation, remove softfloat stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
232a9342c32f42f74ccd695c78b93307004f8f6f |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Make use of TLI.ExpandOperation, remove softfloat stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
c224a53d7aa077d36f1495b242d7c8e4f324754d |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add expand support for bit_convert result, even allowing custom expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
3236e9024d89112ffda3d35c9fd531700d2fcd1b |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add expand support for bit_convert result, even allowing custom expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
f58dac31690f37c8f93328f8470298e1fe7862cc |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add a new target hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3e5c6d07559da67346bdb4b74a8319b6325a4379 |
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add a new target hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1851898e757008228453aa3f4e3e06bbaecce04d |
19-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Negative indices aren't allowed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b502067433df7a567b3a95b7863582ccc8d8991b |
19-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Negative indices aren't allowed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fabd32deb025ebd47c5eb47259d2424fd789b05c |
19-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
More ppcf128 issues (maybe the last)? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6f3c7bf111297eddf8e5799a3032dd0b6bde245d |
19-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
More ppcf128 issues (maybe the last)? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
90bfc2d10520f9621309436c1c6928a59cd33616 |
18-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Pointer arithmetic should be done with the index the same size as the pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
60f7b4d2a301ad02e2aee5174f65037d22d1d7e2 |
18-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Pointer arithmetic should be done with the index the same size as the pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
70ba3d480302187143faf4dc5226a6f3c7b71bc8 |
18-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Support for ADDC/SUBC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43119 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
221ca0a430c9ff0e9e274cd93754186452ebf86f |
18-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Support for ADDC/SUBC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43119 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
4ae31a5d3297af4c6e9752ec91d76b6daa0fc05c |
18-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Really fix PR1734. Carefully track which register uses are sub-register uses by traversing inverse register coalescing map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43118 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
bcf43fcc13a32b03d71f4eeaea96b2709853c96f |
18-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Really fix PR1734. Carefully track which register uses are sub-register uses by traversing inverse register coalescing map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43118 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c623096fe227a7705ccac5a5db514b64ccdfe6b2 |
17-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add support for ISD::SELECT in SplitVectorOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d5d4c872e2fbfeb92795cdbb9fe946c20280facc |
17-Oct-2007 |
Dan Gohman <djg@cray.com> |
Add support for ISD::SELECT in SplitVectorOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f411b83c8c6853c2a922b692e782566353153f08 |
17-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Return Expand from getOperationAction for all extended types. This is needed for SIGN_EXTEND_INREG at least. It is not clear if this is correct for other operations. On the other hand, for the various load/store actions it seems to correct to return the type action, as is currently done. Also, it seems that SelectionDAG::getValueType can be called for extended value types; introduce a map for holding these, since we don't really want to extend the vector to be 2^32 pointers long! Generalize DAGTypeLegalizer::PromoteResult_TRUNCATE and DAGTypeLegalizer::PromoteResult_INT_EXTEND to handle the various funky possibilities that apints introduce, for example that you can promote to a type that needs to be expanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
electionDAG/SelectionDAG.cpp
|
d7307a96c5fd0340b60e962caa8f5a531442c72f |
17-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Return Expand from getOperationAction for all extended types. This is needed for SIGN_EXTEND_INREG at least. It is not clear if this is correct for other operations. On the other hand, for the various load/store actions it seems to correct to return the type action, as is currently done. Also, it seems that SelectionDAG::getValueType can be called for extended value types; introduce a map for holding these, since we don't really want to extend the vector to be 2^32 pointers long! Generalize DAGTypeLegalizer::PromoteResult_TRUNCATE and DAGTypeLegalizer::PromoteResult_INT_EXTEND to handle the various funky possibilities that apints introduce, for example that you can promote to a type that needs to be expanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/LegalizeDAGTypes.cpp
electionDAG/SelectionDAG.cpp
|
a5bfc97da713ec9e185226d44e6adb4d3087b304 |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Apply Chris' suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43069 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
12d6fcb0e881af3d0203239331ba58b45b7b8b0b |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Apply Chris' suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43069 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
95f0ab624d96e4ef56dbeccf86cd7ced4e42f519 |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
One more extract_subreg coalescing bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43065 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
66c1ee9d27b285769fef64734876e9fcf031e6f4 |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
One more extract_subreg coalescing bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43065 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
3c1f4a4d4726d1213871c9fc9b42822341fd3f55 |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix MergeValueInAsValue(). It allows overlapping live ranges but should replace their value numbers with the specified value number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43062 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
303fed8a6365ef87a947fb42e115da07f3151fbb |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix MergeValueInAsValue(). It allows overlapping live ranges but should replace their value numbers with the specified value number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43062 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
3f4b80ec0c898f4de8232217f8ef3dcd5f65769c |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up code that calculate MBB live-in's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43061 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
f5cdf12ad3fdae00367fc4786ec9ba78c2d803ad |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up code that calculate MBB live-in's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43061 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
4ca980e7f9ce7b78955307c2d07001a24d3b6bef |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up code that calculate MBB live-in's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43060 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
94262e42c308c2eca22d5961dccbf4647af0342a |
17-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up code that calculate MBB live-in's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43060 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
db44bf85d832b26c398cda9acfd3473832f6e585 |
17-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Disable attempts to constant fold PPC f128. Remove the assumption that this will happen from various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43053 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
b89072ee61cbc97a45f90da25419396a4f62283f |
17-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Disable attempts to constant fold PPC f128. Remove the assumption that this will happen from various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43053 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
11923cc05efc4b7589c6c33e39a87459132dda06 |
16-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Some clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43043 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
d48f2bc26824098869ebdb3664fbffde81bf0f80 |
16-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Some clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43043 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
dcd8f78f8a84b7d6d2d1b67fc64672e4504c0434 |
16-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1734. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43035 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
af679dec3c9b3fce43ab0725de28e75b402d85cb |
16-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1734. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43035 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
af47b11b959713d70c45bee1922e468adfaeaff0 |
16-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Initial infrastructure for arbitrary precision integer codegen support. This should have no effect on codegen for other types. Debatable bits: (1) the use (abuse?) of a set in SDNode::getValueTypeList; (2) the length of getTypeToTransformTo, which maybe should be refactored with a non-inline part for extended value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43030 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a9810f32ff738d554b6795d58929e990b2415c7b |
16-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Initial infrastructure for arbitrary precision integer codegen support. This should have no effect on codegen for other types. Debatable bits: (1) the use (abuse?) of a set in SDNode::getValueTypeList; (2) the length of getTypeToTransformTo, which maybe should be refactored with a non-inline part for extended value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43030 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a7c97a7f5b82778ca5abfc3791c6b7f96b82a5fa |
16-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Fixes due to lack of type-safety for ValueType: (1) ValueType being passed instead of an opcode; (2) ValueType being passed for isVolatile (!) in getLoad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b42a44e003aa488665981ad8fb11b671a2834343 |
16-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Fixes due to lack of type-safety for ValueType: (1) ValueType being passed instead of an opcode; (2) ValueType being passed for isVolatile (!) in getLoad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43028 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8b0b8749875cd20fc694f7550a62ed517fe2cd9c |
16-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43026 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
33e5ea130bedb1873b7fd66fb9ad7e136bb20904 |
16-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43026 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
59e84258cb899de1f31e730cc5568386b66ccc4b |
16-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
implement promotion of select and select_cc, allowing MallocBench/gs to work with type promotion on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
ca9b0ac227f43301a4a51326a0bc94b038d0314f |
16-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
implement promotion of select and select_cc, allowing MallocBench/gs to work with type promotion on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
c4c966012901691fff21eed02d72a3de44dd47f1 |
16-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Teach IntrinsicLowering.cpp about the sin, cos, and pow intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43020 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
02f9ed9f4a11c2a990eb12ada36ed3ea087b1fee |
16-Oct-2007 |
Dan Gohman <djg@cray.com> |
Teach IntrinsicLowering.cpp about the sin, cos, and pow intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43020 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
4859e277f773180924241beeb25fb4c37f7fa337 |
15-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Make CalcLatency() non-recursive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43017 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
f4aeeee312e009ff4a9f424f8fe5b36b79c6093c |
15-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Make CalcLatency() non-recursive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43017 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
f5c7359afa8c9ab8d1bfbb6dc41c2d6db8c0420d |
15-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1729: watch out for val# with no def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42996 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
69f969ac26b6af62ca9f331df5dc068b7438bbf6 |
15-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1729: watch out for val# with no def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42996 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
85dd3be7354f848231362bd70f6517c0e667f95d |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Move CreateStackTemporary out to SelectionDAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6fb53da769e50d3cc7a5c22e73f1177dd2c5e40c |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Move CreateStackTemporary out to SelectionDAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
37ce9df0da6cddc3b8bfef9b63d33d058a0f2f15 |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add a new CreateStackTemporary helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
53f5aee28e0f06df7372f637853b71663571b2bf |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add a new CreateStackTemporary helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cfc24007b13564c6720571a2e809cf84fda67737 |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
implement promotion of BR_CC operands, fixing bisort on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
68f6d16711acf519f39f63730bb66f8e2a893ef8 |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
implement promotion of BR_CC operands, fixing bisort on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
1296e9d306e32ee475e5f01826032e736698b5da |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
updates from duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
4ac63208f1ce76820f442d4d46b789ef5773165e |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
updates from duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
65f8d3bf6bd49e08d1a8f845e4a91e67228d564c |
15-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Fix some typos. Call getTypeToTransformTo rather than getTypeToExpandTo. The difference is that getTypeToExpandTo gives the final result of expansion (eg: i128 -> i32 on a 32 bit machine) while getTypeToTransformTo does just one step (i128 -> i64). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
74ef38952f901006d42a78eb0c99663640a3f163 |
15-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Fix some typos. Call getTypeToTransformTo rather than getTypeToExpandTo. The difference is that getTypeToExpandTo gives the final result of expansion (eg: i128 -> i32 on a 32 bit machine) while getTypeToTransformTo does just one step (i128 -> i64). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAGTypes.cpp
|
01d029b82cb08367d81aa10cdc94d05360466649 |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
One mundane change: Change ReplaceAllUsesOfValueWith to *optionally* take a deleted nodes vector, instead of requiring it. One more significant change: Implement the start of a legalizer that just works on types. This legalizer is designed to run before the operation legalizer and ensure just that the input dag is transformed into an output dag whose operand and result types are all legal, even if the operations on those types are not. This design/impl has the following advantages: 1. When finished, this will *significantly* reduce the amount of code in LegalizeDAG.cpp. It will remove all the code related to promotion and expansion as well as splitting and scalarizing vectors. 2. The new code is very simple, idiomatic, and modular: unlike LegalizeDAG.cpp, it has no 3000 line long functions. :) 3. The implementation is completely iterative instead of recursive, good for hacking on large dags without blowing out your stack. 4. The implementation updates nodes in place when possible instead of deallocating and reallocating the entire graph that points to some mutated node. 5. The code nicely separates out handling of operations with invalid results from operations with invalid operands, making some cases simpler and easier to understand. 6. The new -debug-only=legalize-types option is very very handy :), allowing you to easily understand what legalize types is doing. This is not yet done. Until the ifdef added to SelectionDAGISel.cpp is enabled, this does nothing. However, this code is sufficient to legalize all of the code in 186.crafty, olden and freebench on an x86 machine. The biggest issues are: 1. Vectors aren't implemented at all yet 2. SoftFP is a mess, I need to talk to Evan about it. 3. No lowering to libcalls is implemented yet. 4. Various operations are missing etc. 5. There are FIXME's for stuff I hax0r'd out, like softfp. Hey, at least it is a step in the right direction :). If you'd like to help, just enable the #ifdef in SelectionDAGISel.cpp and compile code with it. If this explodes it will tell you what needs to be implemented. Help is certainly appreciated. Once this goes in, we can do three things: 1. Add a new pass of dag combine between the "type legalizer" and "operation legalizer" passes. This will let us catch some long-standing isel issues that we miss because operation legalization often obfuscates the dag with target-specific nodes. 2. We can rip out all of the type legalization code from LegalizeDAG.cpp, making it much smaller and simpler. When that happens we can then reimplement the core functionality left in it in a much more efficient and non-recursive way. 3. Once the whole legalizer is non-recursive, we can implement whole-function selectiondags maybe... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAGTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
8a2582060e6eed082ed099672f9f34f108b502e8 |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
One mundane change: Change ReplaceAllUsesOfValueWith to *optionally* take a deleted nodes vector, instead of requiring it. One more significant change: Implement the start of a legalizer that just works on types. This legalizer is designed to run before the operation legalizer and ensure just that the input dag is transformed into an output dag whose operand and result types are all legal, even if the operations on those types are not. This design/impl has the following advantages: 1. When finished, this will *significantly* reduce the amount of code in LegalizeDAG.cpp. It will remove all the code related to promotion and expansion as well as splitting and scalarizing vectors. 2. The new code is very simple, idiomatic, and modular: unlike LegalizeDAG.cpp, it has no 3000 line long functions. :) 3. The implementation is completely iterative instead of recursive, good for hacking on large dags without blowing out your stack. 4. The implementation updates nodes in place when possible instead of deallocating and reallocating the entire graph that points to some mutated node. 5. The code nicely separates out handling of operations with invalid results from operations with invalid operands, making some cases simpler and easier to understand. 6. The new -debug-only=legalize-types option is very very handy :), allowing you to easily understand what legalize types is doing. This is not yet done. Until the ifdef added to SelectionDAGISel.cpp is enabled, this does nothing. However, this code is sufficient to legalize all of the code in 186.crafty, olden and freebench on an x86 machine. The biggest issues are: 1. Vectors aren't implemented at all yet 2. SoftFP is a mess, I need to talk to Evan about it. 3. No lowering to libcalls is implemented yet. 4. Various operations are missing etc. 5. There are FIXME's for stuff I hax0r'd out, like softfp. Hey, at least it is a step in the right direction :). If you'd like to help, just enable the #ifdef in SelectionDAGISel.cpp and compile code with it. If this explodes it will tell you what needs to be implemented. Help is certainly appreciated. Once this goes in, we can do three things: 1. Add a new pass of dag combine between the "type legalizer" and "operation legalizer" passes. This will let us catch some long-standing isel issues that we miss because operation legalization often obfuscates the dag with target-specific nodes. 2. We can rip out all of the type legalization code from LegalizeDAG.cpp, making it much smaller and simpler. When that happens we can then reimplement the core functionality left in it in a much more efficient and non-recursive way. 3. Once the whole legalizer is non-recursive, we can implement whole-function selectiondags maybe... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAGTypes.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
3cb9351e8a3691ee8cad6960601c6e3d4b293352 |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
One xform performed by LegalizeDAG is transformation of "store of fp" to "store of int". Make two changes: 1) only xform "store of f32" if i32 is a legal type for the target. 2) only xform "store of f64" if either i64 or i32 are legal for the target. 3) if i64 isn't legal, manually lower to 2 stores of i32 instead of letting a later pass of legalize do it. This is ugly, but helps future changes I'm about to commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
19f229a5aa5fa80405a67fd662e5e53c9a3a451e |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
One xform performed by LegalizeDAG is transformation of "store of fp" to "store of int". Make two changes: 1) only xform "store of f32" if i32 is a legal type for the target. 2) only xform "store of f64" if either i64 or i32 are legal for the target. 3) if i64 isn't legal, manually lower to 2 stores of i32 instead of letting a later pass of legalize do it. This is ugly, but helps future changes I'm about to commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
59afba0fe997c9f65abd66a4c3902ee2064abc4b |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add a (disabled by default) way to view the ID of a node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
7271a2d49ee103d63154bc87d5b921213d50cd0b |
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add a (disabled by default) way to view the ID of a node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
7a3c85583d523edb90aa957a02385254957c6e37 |
14-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
remove misleading comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8c9314547dbfbe149b7b89ab3d3991447b0be71b |
14-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
remove misleading comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fb5b11046bfc27e4c8388f4b3d7f1adc927f7fe6 |
14-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
If a target doesn't have HasMULHU or HasUMUL_LOHI, ExpandOp would return without lo/hi set. Fall through to making a libcall instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7048cc6604a095798ad251b5570c263ef0e77a34 |
14-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
If a target doesn't have HasMULHU or HasUMUL_LOHI, ExpandOp would return without lo/hi set. Fall through to making a libcall instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
34729256e8058d4106706e9feb2dfad7893502d1 |
14-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
When coalescing an EXTRACT_SUBREG and the dst register is a physical register, the source register will be coalesced to the super register of the LHS. Properly merge in the live ranges of the resulting coalesced interval that were part of the original source interval to the live interval of the super-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42961 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
06582a08758a321694a81918db82b9ab5928e1e2 |
14-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
When coalescing an EXTRACT_SUBREG and the dst register is a physical register, the source register will be coalesced to the super register of the LHS. Properly merge in the live ranges of the resulting coalesced interval that were part of the original source interval to the live interval of the super-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42961 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
347d39f1fd8ad825a7ec5b8a3dce816723a56d42 |
14-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Revert 42908 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42960 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
477013c1dda38cf918e259e972998664008da616 |
14-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Revert 42908 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42960 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5927d8e94d0b50296c2af4acdfe4d799e369fc08 |
14-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Disable some compile-time optimizations on PPC long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
80ca14c85ebd6dd0e0e9c5e6a0aa321cbbb352e9 |
14-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Disable some compile-time optimizations on PPC long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e33544ce55ca18e6e9c90ab7a4de85c90f907258 |
13-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Enhance the truncstore optimization code to handle shifted values and propagate demanded bits through them in simple cases. This allows this code: void foo(char *P) { strcpy(P, "abc"); } to compile to: _foo: ldrb r3, [r1] ldrb r2, [r1, #+1] ldrb r12, [r1, #+2]! ldrb r1, [r1, #+1] strb r1, [r0, #+3] strb r2, [r0, #+1] strb r12, [r0, #+2] strb r3, [r0] bx lr instead of: _foo: ldrb r3, [r1, #+3] ldrb r2, [r1, #+2] orr r3, r2, r3, lsl #8 ldrb r2, [r1, #+1] ldrb r1, [r1] orr r2, r1, r2, lsl #8 orr r3, r2, r3, lsl #16 strb r3, [r0] mov r2, r3, lsr #24 strb r2, [r0, #+3] mov r2, r3, lsr #16 strb r2, [r0, #+2] mov r3, r3, lsr #8 strb r3, [r0, #+1] bx lr testcase here: test/CodeGen/ARM/truncstore-dag-combine.ll This also helps occasionally for X86 and other cases not involving unaligned load/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b77ea550467091e8840d06886dc068f62e9e1c99 |
13-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Enhance the truncstore optimization code to handle shifted values and propagate demanded bits through them in simple cases. This allows this code: void foo(char *P) { strcpy(P, "abc"); } to compile to: _foo: ldrb r3, [r1] ldrb r2, [r1, #+1] ldrb r12, [r1, #+2]! ldrb r1, [r1, #+1] strb r1, [r0, #+3] strb r2, [r0, #+1] strb r12, [r0, #+2] strb r3, [r0] bx lr instead of: _foo: ldrb r3, [r1, #+3] ldrb r2, [r1, #+2] orr r3, r2, r3, lsl #8 ldrb r2, [r1, #+1] ldrb r1, [r1] orr r2, r1, r2, lsl #8 orr r3, r2, r3, lsl #16 strb r3, [r0] mov r2, r3, lsr #24 strb r2, [r0, #+3] mov r2, r3, lsr #16 strb r2, [r0, #+2] mov r3, r3, lsr #8 strb r3, [r0, #+1] bx lr testcase here: test/CodeGen/ARM/truncstore-dag-combine.ll This also helps occasionally for X86 and other cases not involving unaligned load/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42954 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2b4c279a8e203fa8b13adf7ba3a5d4c8bef70df3 |
13-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add a simple optimization to simplify the input to truncate and truncstore instructions, based on the knowledge that they don't demand the top bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
e8671c5b8756ea7eef8898e52859dd8635e567bf |
13-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Add a simple optimization to simplify the input to truncate and truncstore instructions, based on the knowledge that they don't demand the top bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
7f56625447b94178118f2fec732b10f9e4aa7fbf |
13-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Local spiller optimization: Turn this: movswl %ax, %eax movl %eax, -36(%ebp) xorl %edi, -36(%ebp) into movswl %ax, %eax xorl %edi, %eax movl %eax, -36(%ebp) by unfolding the load / store xorl into an xorl and a store when we know the value in the spill slot is available in a register. This doesn't change the number of instructions but reduce the number of times memory is accessed. Also unfold some load folding instructions and reuse the value when similar situation presents itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42947 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
f32558483732b7c8d1dd57c745d1b9d0359cd785 |
13-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Local spiller optimization: Turn this: movswl %ax, %eax movl %eax, -36(%ebp) xorl %edi, -36(%ebp) into movswl %ax, %eax xorl %edi, %eax movl %eax, -36(%ebp) by unfolding the load / store xorl into an xorl and a store when we know the value in the spill slot is available in a register. This doesn't change the number of instructions but reduce the number of times memory is accessed. Also unfold some load folding instructions and reuse the value when similar situation presents itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42947 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
fa9457276a2174aaf302240dd32d89900ad021ae |
13-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Optionally create a MachineInstr without default implicit operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42945 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
bdf72b43829c5e6238e96cb11a81c3f7ae3f7081 |
13-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Optionally create a MachineInstr without default implicit operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42945 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
48abc5cf6ba6d53513034aa8c68b0a9abd748190 |
12-Oct-2007 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Corrected many typing errors. And removed 'nest' parameter handling for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
373e865aae83b50dfd2e2caa7038082f8d0216bb |
12-Oct-2007 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Corrected many typing errors. And removed 'nest' parameter handling for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f646774edd2588f6aa866ceb5e1b921f924a246f |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
ppc long double. Implement fabs and fneg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42924 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5707ef835b62d0c5e3bafee6aa331f6cfa67bddf |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
ppc long double. Implement fabs and fneg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42924 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6e63e092365b763b65cc97a4d2c634443046c15a |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Implement i64->ppcf128 conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9aec5b219861e4290deb7b037cff95854c057b79 |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Implement i64->ppcf128 conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
48ff282dd49197d2b42285b769126ba7991aa93a |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Did mean to leave this in. INSERT_SUBREG isn't being coalesced yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42916 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
982f251b930eb779effc1ea15b531dce813fe4b8 |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Did mean to leave this in. INSERT_SUBREG isn't being coalesced yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42916 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8ddde0a151c5297ae5694a4b9201b2d3fe56b196 |
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Change the names used for internal labels to use the current function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42908 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
36eb6b7103ccca77ac51754a2265340ce9a2a8d7 |
12-Oct-2007 |
Dan Gohman <djg@cray.com> |
Change the names used for internal labels to use the current function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42908 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a9b511187b5450ec2e241f45b640358bfdc9c42c |
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Fix some corner cases with vectors in copyToRegs and copyFromRegs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42907 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c68a8de07faba0881b25a8eb9346deced1e024fd |
12-Oct-2007 |
Dan Gohman <djg@cray.com> |
Fix some corner cases with vectors in copyToRegs and copyFromRegs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42907 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9e04c82c0ec7c94d82168c07177ff9d1fea5b9d5 |
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add support to SplitVectorOp for powi, where the second operand is a scalar integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42906 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ae4c2f8b1a375dc9ecd8305061d35553b2d73536 |
12-Oct-2007 |
Dan Gohman <djg@cray.com> |
Add support to SplitVectorOp for powi, where the second operand is a scalar integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42906 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
52c7ff70679d31d95db3f9c15fb7192e504942a9 |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Restrict EXTRACT_SUBREG coalescing to avoid negative performance impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42903 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d210b337ddc3b35d64cbf26e3e46fb41ddfa4f05 |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Restrict EXTRACT_SUBREG coalescing to avoid negative performance impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42903 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
32dfbeada7292167bb488f36a71a5a6a519ddaff |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like (almost) a register copy. However, it always coalesced to the register of the RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub- register uses which adds subtle complications to load folding, spiller rewrite, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42899 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
687d1080abc51aac365d4f263ef206162815a86a |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like (almost) a register copy. However, it always coalesced to the register of the RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub- register uses which adds subtle complications to load folding, spiller rewrite, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42899 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
10136e7c7f599a559917e04f04e6dfbf025e451b |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Some clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42898 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ba6246963405f95a9a2b76ff2694136bfdb88a61 |
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Some clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42898 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ca68aaa0e50c4037c0faa9bfbe7e091087837259 |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
PPC long double. Implement a couple more conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4c14d512ea8e8fd8ec625604cf82275e319303d9 |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
PPC long double. Implement a couple more conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ac9385a5557ee2f34a509d39c58a8557a0ff686d |
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add intrinsics for sin, cos, and pow. These use llvm_anyfloat_ty, and so may be overloaded with vector types. And add a testcase for codegen for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e1bb8c1838800f6817b7d80a58e41b1ef09a4f34 |
12-Oct-2007 |
Dan Gohman <djg@cray.com> |
Add intrinsics for sin, cos, and pow. These use llvm_anyfloat_ty, and so may be overloaded with vector types. And add a testcase for codegen for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
826695281344e3a4c4d44d73dd155107aafd689b |
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Codegen support for vector intrinsics. Factor out the code that expands the "nasty scalar code" for unrolling vectors into a separate routine, teach it how to handle mixed vector/scalar operands, as seen in powi, and use it for several operators, including sin, cos, powi, and pow. Add support in SplitVectorOp for fpow, fpowi and for several unary operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6d05cac05bddb54c7c88dd1337b21fadcb5124c8 |
12-Oct-2007 |
Dan Gohman <djg@cray.com> |
Codegen support for vector intrinsics. Factor out the code that expands the "nasty scalar code" for unrolling vectors into a separate routine, teach it how to handle mixed vector/scalar operands, as seen in powi, and use it for several operators, including sin, cos, powi, and pow. Add support in SplitVectorOp for fpow, fpowi and for several unary operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fcf4d24ffbba0935de3e8371cfd52fc3d6980789 |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Implement ppc long double->uint conversion. Make ppc long double constants print. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42882 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
|
d3b6af370126a696c74e5fdbba4a6590b5866ad7 |
12-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Implement ppc long double->uint conversion. Make ppc long double constants print. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42882 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
|
e54be104180d81b61c5fcc29ccb7960f9b78476e |
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add runtime library names for pow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
fe67863e270972822d09cfc7e600e112508e9fa0 |
12-Oct-2007 |
Dan Gohman <djg@cray.com> |
Add runtime library names for pow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
07f04fd574a59c690f297fd10c2e0dd14093675e |
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add an ISD::FPOW node type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1d744bbe789014cd057ff17b72ca154d52f144d2 |
12-Oct-2007 |
Dan Gohman <djg@cray.com> |
Add an ISD::FPOW node type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c85e1716f0e45e4c18a9ef2fbe431a51ac3a4252 |
11-Oct-2007 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Added tail call optimization to the x86 back end. It can be enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42870 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e2d6bbb00da7530c4f8846774bfeddeef56f66ed |
11-Oct-2007 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Added tail call optimization to the x86 back end. It can be enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42870 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a471c2ecda37cd1bae0d94e832f002caa7b63216 |
11-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Next PPC long double bits. First cut at constants. No compile-time support for constant operations yet, just format transformations. Make readers and writers work. Split constants into 2 doubles in Legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42865 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2aef569811b24bf254b27cab0f6307c2c8d27d17 |
11-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Next PPC long double bits. First cut at constants. No compile-time support for constant operations yet, just format transformations. Make readers and writers work. Split constants into 2 doubles in Legalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42865 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
272dce013727398ff9a8726bc720bc6ecff81184 |
10-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Correct swapped arguments to getConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bed2147264e6fc3a09146e4d3dcf070c9cd27f08 |
10-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Correct swapped arguments to getConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6eaeff29b8a6990107735f7e5f5e49da38f56223 |
10-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Next PPC long double bits: ppcf128->i32 conversion. Surprisingly complicated. Adds getTargetNode for 2 outputs, no inputs (missing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
3d8578b72446ca42809bbeb67be3e2126ecb3583 |
10-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Next PPC long double bits: ppcf128->i32 conversion. Surprisingly complicated. Adds getTargetNode for 2 outputs, no inputs (missing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
be8db245f5cac73877bb2695992e6e47af3faa99 |
10-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bad choice of variable name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42821 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
59a2a9b1d0463fc8afbe9cebab4d68d328660a8c |
10-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bad choice of variable name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42821 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
5edc57fa426837fd745bcf7265f008f98b2c5393 |
10-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix an extremely stupid bug that prevented first round of coalescing (physical registers only) from happening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42820 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
83ca67b3bc7744ad2f5d41be239f6750f936d3d2 |
10-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix an extremely stupid bug that prevented first round of coalescing (physical registers only) from happening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42820 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
30d4254536e8471323ebca05acecf8237a1e7dee |
08-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Call getFunctionNumber() instead of referencing FunctionNumber directly, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42769 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
789c8ebd3115533ca127977a89cf40c30821da65 |
08-Oct-2007 |
Dan Gohman <djg@cray.com> |
Call getFunctionNumber() instead of referencing FunctionNumber directly, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42769 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
525178cdbf00720ea8bce297a7d65b0cca0ab439 |
08-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Migrate X86 and ARM from using X86ISD::{,I}DIV and ARMISD::MULHILO{U,S} to use ISD::{S,U}DIVREM and ISD::{S,U}MUL_HIO. Move the lowering code associated with these operators into target-independent in LegalizeDAG.cpp and TargetLowering.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
5a199558c23d400e3dd83a9c7cab754c77778956 |
08-Oct-2007 |
Dan Gohman <djg@cray.com> |
Migrate X86 and ARM from using X86ISD::{,I}DIV and ARMISD::MULHILO{U,S} to use ISD::{S,U}DIVREM and ISD::{S,U}MUL_HIO. Move the lowering code associated with these operators into target-independent in LegalizeDAG.cpp and TargetLowering.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42762 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
389079b59f6fc1283eeed407df36959a3fbc0e48 |
08-Oct-2007 |
Dan Gohman <gohman@apple.com> |
DAGCombiner support for UDIVREM/SDIVREM and UMUL_LOHI/SMUL_LOHI. Check if one of the two results unneeded so see if a simpler operator could bs used. Also check to see if each of the two computations could be simplified if they were split into separate operators. Factor out the code that calls visit() so that it can be used for this purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6c89ea78bcceb54fdf347bb2df19d42e0c98d9bd |
08-Oct-2007 |
Dan Gohman <djg@cray.com> |
DAGCombiner support for UDIVREM/SDIVREM and UMUL_LOHI/SMUL_LOHI. Check if one of the two results unneeded so see if a simpler operator could bs used. Also check to see if each of the two computations could be simplified if they were split into separate operators. Factor out the code that calls visit() so that it can be used for this purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
08ce9769718354e6767d3815e4c255e7c9fc0a46 |
08-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add convenience overloads of SelectionDAG::getNode that take a SDVTList and individual SDOperand operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
798d127ff6a22d89609e852678dc3c272bb8034d |
08-Oct-2007 |
Dan Gohman <djg@cray.com> |
Add convenience overloads of SelectionDAG::getNode that take a SDVTList and individual SDOperand operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
417e11b9bf625b3626f8765d44248927fb200906 |
08-Oct-2007 |
Dan Gohman <gohman@apple.com> |
In -debug mode, dump SelectionDAGs both before and after the optimization passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eebf44e7264e1caf85b96e166373e5be6994cad2 |
08-Oct-2007 |
Dan Gohman <djg@cray.com> |
In -debug mode, dump SelectionDAGs both before and after the optimization passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42749 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
537d5c27ff64b021ba14e2dc9589bf321dd2327a |
08-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill cycle of an live range is always the last use index + 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42742 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fa451ed258e7958ec862a98701204b30a7f87aeb |
08-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill cycle of an live range is always the last use index + 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42742 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ccf596a53e16ea221a9bf8b3874a7d6afa71f1f4 |
07-Oct-2007 |
Neil Booth <neil@daikokuya.co.uk> |
convertFromInteger, as originally written, expected sign-extended input. APInt unfortunately zero-extends signed integers, so Dale modified the function to expect zero-extended input. Make this assumption explicit in the function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
4bdd45a1cdc1f329ce090b3dfd288b99db6c7fc6 |
07-Oct-2007 |
Neil Booth <neil@daikokuya.co.uk> |
convertFromInteger, as originally written, expected sign-extended input. APInt unfortunately zero-extends signed integers, so Dale modified the function to expect zero-extended input. Make this assumption explicit in the function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
513da43c9c290094e3f12c0d1ba07c18f062d13c |
06-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Reapply 42677. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d7ba7edc40d8b10972b4480e8e5db54e13edcb14 |
06-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Reapply 42677. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5349de1372dabab40691d348f2404da1e1478ef7 |
06-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
revert evan's patch until the header is committed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5a98f096c33623a15e8d91bbb653b4e6fb60f8a1 |
06-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
revert evan's patch until the header is committed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c231e8c8a5af35bbecf7eca34a23e519083b1422 |
06-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added DAG xforms. e.g. (vextract (v4f32 s2v (f32 load $addr)), 0) -> (f32 load $addr) (vextract (v4i32 bc (v4f32 s2v (f32 load $addr))), 0) -> (i32 load $addr) Remove x86 specific patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5c57c7cef75d9d06bd51dba10a0c2f74467b0626 |
06-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added DAG xforms. e.g. (vextract (v4f32 s2v (f32 load $addr)), 0) -> (f32 load $addr) (vextract (v4i32 bc (v4f32 s2v (f32 load $addr))), 0) -> (i32 load $addr) Remove x86 specific patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
638ccd52b9fa2d1d03a1e85992c09e2bf6800fc6 |
06-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Next powerpc long double bits. Comparisons work, although not well, and shortening FP converts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
472d15dc983079b244cb98c054120815bb32fffe |
06-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Next powerpc long double bits. Comparisons work, although not well, and shortening FP converts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
161e897b0fb35d156b2fe720fadabd975b0d6723 |
05-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
First round of ppc long double. call/return and basic arithmetic works. Rename RTLIB long double functions to distinguish different flavors of long double; the lib functions have different names, alas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42644 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
ac77b2705767f57f2916a8ddf13f321aab8ca886 |
05-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
First round of ppc long double. call/return and basic arithmetic works. Rename RTLIB long double functions to distinguish different flavors of long double; the lib functions have different names, alas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42644 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
e14ea867449cffa9a5835bc62c9c557ab0bc6618 |
05-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Legalize support for MUL_LOHI and DIVREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
475cd73517e6a3b80bec936cbafcf7a53cdb9d7d |
05-Oct-2007 |
Dan Gohman <djg@cray.com> |
Legalize support for MUL_LOHI and DIVREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2eb4ebd953314d7c7f96cfb5897d8ded94f6c9d4 |
05-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
54ab4ec68e3d026457524f1d8f8c08b6643d1944 |
05-Oct-2007 |
Dan Gohman <djg@cray.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
ccd60799cdc9b75ddc971c02f0a1bf3bd7f48aba |
05-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Provide names for MUL_LOHI and DIVREM operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b945cee576f2d3470e2f2fcc5d3e0b4c5217287e |
05-Oct-2007 |
Dan Gohman <djg@cray.com> |
Provide names for MUL_LOHI and DIVREM operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d5cb5a462b6fd91bf54116c3eefc3b046489c414 |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Chain producing nodes cannot be moved, not chain reading nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42627 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
da5a9699449c304922708f71e91c0078ca258531 |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Chain producing nodes cannot be moved, not chain reading nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42627 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
117c3662192bb8590255b0f4435d8e31e5656a57 |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Didn't mean to leave this in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42626 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
01b2b8170e832653706931b7c80ec86751daccce |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Didn't mean to leave this in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42626 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f10c973797cf79da802f9b0118543cbd50954c9c |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a node that defines a physical register that is expensive to copy. The scheduler will try a number of tricks in order to avoid generating the copies. This may not be possible in case the node produces a chain value that prevent movement. Try unfolding the load from the node before to allow it to be moved / cloned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
dd3f8b94fd690a11357cdafb95db4f1be97777ac |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a node that defines a physical register that is expensive to copy. The scheduler will try a number of tricks in order to avoid generating the copies. This may not be possible in case the node produces a chain value that prevent movement. Try unfolding the load from the node before to allow it to be moved / cloned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42625 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
39305cf55363046162c5a992f96f26d607a204e5 |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a variant of getTargetNode() that takes a vector of MVT::ValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e3940911eb8f592cb319fb279890c4b08d6204a4 |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a variant of getTargetNode() that takes a vector of MVT::ValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
daccea18ca8357b4193ac3ba42a168e650b807e0 |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9bdaeaaadd3442ab27c6a60c412a7cbf0db92978 |
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cb406c25973b4e88a6c10ad839ef1beeb3664715 |
03-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Use empty() member functions when that's what's being tested for instead of comparing begin() and end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42585 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
electionDAG/ScheduleDAG.cpp
|
3f7d94b6cd40a3653c000f4b2e166c82dc3e3715 |
03-Oct-2007 |
Dan Gohman <djg@cray.com> |
Use empty() member functions when that's what's being tested for instead of comparing begin() and end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42585 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineFunction.cpp
electionDAG/ScheduleDAG.cpp
|
9ab7fb3ba47442d521a5bed09a27a5e8e7a786ed |
02-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Rewrite sqrt and powi to use anyfloat. By popular demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42537 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
c339d8efc813edf9c933b27478100191d949ac26 |
02-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Rewrite sqrt and powi to use anyfloat. By popular demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42537 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
a7ac2bd4076096bb3a9986dd5a44f20c7f715518 |
02-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Fix stride computations for long double arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42508 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
|
5ec2e73dd166caacc6d746b148d8fbbc5f3006cf |
02-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Fix stride computations for long double arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42508 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
|
d57c3884af90f992bc9033a61bc2d394fb8ca19a |
02-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Move the code that emits the .file directives so that it runs after the SourceFiles list is fully filled in so that it sees all of the files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42506 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
6d6c2402979e13fbe0d1b3864f089cdc4a30e15e |
02-Oct-2007 |
Dan Gohman <djg@cray.com> |
Move the code that emits the .file directives so that it runs after the SourceFiles list is fully filled in so that it sees all of the files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42506 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
450ff01faf47b48d9f0aea68b7676a20644fd0fc |
01-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove simple scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42499 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
71a090cd77014898ac532bf9b0bdf0289c7e445b |
01-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove simple scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42499 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
d89b117850d1ebcc1390f23891b6ac0b64c99045 |
30-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
remove dup comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42486 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f37b54b475394ed08f4c1edb42dc765df9189688 |
30-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
remove dup comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42486 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
88216af3ea4bb1c68a8793ed1d3b30308b64ab0e |
30-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Constant fold int-to-long-double conversions; use APFloat for int-to-float/double; use round-to-nearest for these (implementation-defined, seems to match gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
87fa68f68eb00accc7cd87ef0e8df0a53f3d6ee9 |
30-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Constant fold int-to-long-double conversions; use APFloat for int-to-float/double; use round-to-nearest for these (implementation-defined, seems to match gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
078f5e1875deb4fa25961d579bc6ef511887ad57 |
29-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
This is done already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42467 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
57ac79b26918cdb065e40ee5132c998759906194 |
29-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
This is done already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42467 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
364caf0e19e570d00cfd03d9dd3fcda21fb2e459 |
29-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Collector is the base class for garbage collection code generators. This version enhances the previous patch to add root initialization as discussed here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070910/053455.html Collector gives its subclasses control over generic algorithms: unsigned NeededSafePoints; //< Bitmask of required safe points. bool CustomReadBarriers; //< Default is to insert loads. bool CustomWriteBarriers; //< Default is to insert stores. bool CustomRoots; //< Default is to pass through to backend. bool InitRoots; //< If set, roots are nulled during lowering. It also has callbacks which collectors can hook: /// If any of the actions are set to Custom, this is expected to /// be overriden to create a transform to lower those actions to /// LLVM IR. virtual Pass *createCustomLoweringPass() const; /// beginAssembly/finishAssembly - Emit module metadata as /// assembly code. virtual void beginAssembly(Module &M, std::ostream &OS, AsmPrinter &AP, const TargetAsmInfo &TAI) const; virtual void finishAssembly(Module &M, CollectorModuleMetadata &CMM, std::ostream &OS, AsmPrinter &AP, const TargetAsmInfo &TAI) const; Various other independent algorithms could be implemented, but were not necessary for the initial two collectors. Some examples are listed here: http://llvm.org/docs/GarbageCollection.html#collector-algos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42466 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
EADME.txt
|
c5ff226cdcd7e362e400f4ae93f77dfdbcd4ec98 |
29-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Collector is the base class for garbage collection code generators. This version enhances the previous patch to add root initialization as discussed here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070910/053455.html Collector gives its subclasses control over generic algorithms: unsigned NeededSafePoints; //< Bitmask of required safe points. bool CustomReadBarriers; //< Default is to insert loads. bool CustomWriteBarriers; //< Default is to insert stores. bool CustomRoots; //< Default is to pass through to backend. bool InitRoots; //< If set, roots are nulled during lowering. It also has callbacks which collectors can hook: /// If any of the actions are set to Custom, this is expected to /// be overriden to create a transform to lower those actions to /// LLVM IR. virtual Pass *createCustomLoweringPass() const; /// beginAssembly/finishAssembly - Emit module metadata as /// assembly code. virtual void beginAssembly(Module &M, std::ostream &OS, AsmPrinter &AP, const TargetAsmInfo &TAI) const; virtual void finishAssembly(Module &M, CollectorModuleMetadata &CMM, std::ostream &OS, AsmPrinter &AP, const TargetAsmInfo &TAI) const; Various other independent algorithms could be implemented, but were not necessary for the initial two collectors. Some examples are listed here: http://llvm.org/docs/GarbageCollection.html#collector-algos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42466 91177308-0d34-0410-b5e6-96231b3b80d8
ollector.cpp
EADME.txt
|
9fe4662d9a9e5b346dc053b6a53bc3d096adb77b |
29-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Teach SplitVectorOp how to split INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b3228dcf956c576a195e0be2d1bb833617a3e7cc |
29-Sep-2007 |
Dan Gohman <djg@cray.com> |
Teach SplitVectorOp how to split INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42457 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
22a529990bb4bb86bdb2ae1cfce7340320a6ca7f |
29-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
If two instructions are both two-address code, favors (schedule closer to terminator) the one that has a CopyToReg use. This fixes 2006-05-11-InstrSched.ll with -new-cc-modeling-scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
ba597da943f93db7849837368d79476518db4333 |
29-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
If two instructions are both two-address code, favors (schedule closer to terminator) the one that has a CopyToReg use. This fixes 2006-05-11-InstrSched.ll with -new-cc-modeling-scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
ddde335cb79d67c46c04b2a0ffd18750b6f70e28 |
28-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a poor scheduling heuristic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
3a88e370517e6400b1eb7a159e872140f0658002 |
28-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a poor scheduling heuristic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
74d2fd8dd847e0ebccef30e2c5907ff09495d518 |
28-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Trim some unneeded fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
6a64235d9037213c1a276391c4e7481e67f14b6c |
28-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Trim some unneeded fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
72292f07122de9c8bd41b85e94cb2d3235eca0c9 |
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Fix long double -> uint64 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4e1cf5d4340f11e2d4175437482bc84178336e8f |
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Fix long double -> uint64 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4292d1c02a6f10eca22aa6e27d57ea8bf15b3140 |
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
minor long double related changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42439 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ntrinsicLowering.cpp
|
3b5303b49c6643f0556976ef9ce26d30d30c8991 |
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
minor long double related changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42439 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ntrinsicLowering.cpp
|
9fda5be36bf5554c93f0dba8cfaed0b27369ae71 |
28-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Make the checks for DW_FORM_data4 consistent with the others, and add more such code for DIEDwarfLabel::SizeOf and DIEObjectLabel::SizeOf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42435 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
597b484387db527450edcce0f704132e635f4e29 |
28-Sep-2007 |
Dan Gohman <djg@cray.com> |
Make the checks for DW_FORM_data4 consistent with the others, and add more such code for DIEDwarfLabel::SizeOf and DIEObjectLabel::SizeOf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42435 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
06ff4e67c454fbe32c1697dda2d27ec1ae22e32a |
28-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Use 32-bit data directives for DW_FORM_data4 format data, even on targets with 64-bit addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42434 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
4fd77740ade9b50d4164b27c9b7d3bb41fa614f4 |
28-Sep-2007 |
Dan Gohman <djg@cray.com> |
Use 32-bit data directives for DW_FORM_data4 format data, even on targets with 64-bit addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42434 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
317096ab3710fda0960be58804e9f80c800340f6 |
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add sqrt and powi intrinsics for long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
0c81a52b0e13160103f3da0303f5d23a1551ee26 |
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add sqrt and powi intrinsics for long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
82482944edd810c7a1803d6694d435adf341e611 |
28-Sep-2007 |
Dan Gohman <gohman@apple.com> |
TargetAsmInfo::getAddressSize() was incorrect for x86-64 and 64-bit targets other than PPC64. Instead of fixing it, just remove it and fix all the places that use it to use TargetData::getPointerSize() instead, as there aren't very many. Most of the references were in DwarfWriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42419 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
cfb72b2a46291fe57409ccf91166924a0e33fb8f |
28-Sep-2007 |
Dan Gohman <djg@cray.com> |
TargetAsmInfo::getAddressSize() was incorrect for x86-64 and 64-bit targets other than PPC64. Instead of fixing it, just remove it and fix all the places that use it to use TargetData::getPointerSize() instead, as there aren't very many. Most of the references were in DwarfWriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42419 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
fc3282221f90c626d80292327213e2badc3de86b |
28-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
CollectorMetadata abstractly describes stack maps for a function. It includes: - location and of each safe point in machine code (identified by a label) - location of each root within the stack frame (identified by an offset), including the metadata tag provided to llvm.gcroot in the user program - size of the stack frame (for collectors which want to cheat on stack crawling :) - and eventually will include liveness It is to be populated by back-ends during code-generation. CollectorModuleMetadata aggregates this information across the entire module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42418 91177308-0d34-0410-b5e6-96231b3b80d8
ollectorMetadata.cpp
|
17995b61251c19534d4c33e23cdea93cca0603fd |
28-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
CollectorMetadata abstractly describes stack maps for a function. It includes: - location and of each safe point in machine code (identified by a label) - location of each root within the stack frame (identified by an offset), including the metadata tag provided to llvm.gcroot in the user program - size of the stack frame (for collectors which want to cheat on stack crawling :) - and eventually will include liveness It is to be populated by back-ends during code-generation. CollectorModuleMetadata aggregates this information across the entire module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42418 91177308-0d34-0410-b5e6-96231b3b80d8
ollectorMetadata.cpp
|
d9900c9442d48b73bc5bb6132abcb9bc0257c714 |
27-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
My previous Registry.h header, as well as Collectors.h, which is the registry for dynamically-loaded garbage collection compiler plugins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42415 91177308-0d34-0410-b5e6-96231b3b80d8
ollectors.cpp
|
3271e5aea340b1beb0953ce04cfc90791fc26dbf |
27-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
My previous Registry.h header, as well as Collectors.h, which is the registry for dynamically-loaded garbage collection compiler plugins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42415 91177308-0d34-0410-b5e6-96231b3b80d8
ollectors.cpp
|
cd1c00cc6521c265784ffc7a1b5baf4ef64d80bc |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid inserting a live register more than once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
bbb220dd6ff7da605c924f87cbe3aa2c1994a524 |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid inserting a live register more than once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
64f638df568f2849b485cc50836efc734e367fc7 |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Silence a compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2018681e1d5ee5b47cbfeea88bf7f41259069e39 |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Silence a compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2dc7a0e075f619ecd657acdb19c4be8af051e35c |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Boogs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
dc07d96051f41a0b30c911e32ff67f8a53a5bdf8 |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Boogs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
a2ee2756f7f80d24312d6ac41b4f2ae548441cac |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Be smarter about which node to force schedule. Reduce # of duplications + copies; Added statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
01f82cade49881cf4e294ede4fe688c07650b487 |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Be smarter about which node to force schedule. Reduce # of duplications + copies; Added statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
6e4c46cea5daef8bc807a36ce2ab9bb7f9855b67 |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Backtracking only when it won't create a cycle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
75425623ecec7a0532c2600aa7a2a9c613c6faa5 |
27-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Backtracking only when it won't create a cycle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
693717fbe6d4e0f63bb9927229e26851e4744530 |
27-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Make temporaries explicit to avoid premature destruction of compiler-created ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42383 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
693aa823259fb40d9e7b699015a15b20e9c9c024 |
27-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Make temporaries explicit to avoid premature destruction of compiler-created ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42383 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
42d60274eaa70f8cdbed76d04d25d7a8fc1237cb |
26-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Move getPhysicalRegisterRegClass() from ScheduleDAG to MRegisterInfo. - Added ability to emit cross class register copies to the BBRU scheduler. - More aggressive backtracking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
5ec4b76e12cfff33a4b3ac504e75d7d119845d6a |
26-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Move getPhysicalRegisterRegClass() from ScheduleDAG to MRegisterInfo. - Added ability to emit cross class register copies to the BBRU scheduler. - More aggressive backtracking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
2f42901dff5d0b4a9bb571a2f57157c296584557 |
26-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Enable codegen for long double abs, sin, cos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7f1076becdf8b689d869472f3dd14dbc24d4cc75 |
26-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Enable codegen for long double abs, sin, cos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f41db2136fe50e1a92aabfcb3ba1ec1f70f5f0d5 |
26-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Fix f80 UNDEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
20b7635470aefc0e5d62a1b5d9109c247b664460 |
26-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Fix f80 UNDEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9efce638d307b2c71bd7f0258d47501661434c27 |
26-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow copyRegToReg to emit cross register classes copies. Tested with "make check"! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42346 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
HIElimination.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
b3d91cfa10387517c305f75a8220d192f7d133cb |
26-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow copyRegToReg to emit cross register classes copies. Tested with "make check"! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42346 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
HIElimination.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
c3b0b5ca1d5772cf90c0c66e03412da33a0d7cdb |
25-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Move the setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand) and the check to see if the assembler supports .loc from X86TargetLowering into the superclass TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
21442858f8a084d4e27afe754863feed57bdebf8 |
25-Sep-2007 |
Dan Gohman <djg@cray.com> |
Move the setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand) and the check to see if the assembler supports .loc from X86TargetLowering into the superclass TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a6fb1b6743ee1411accf2d6e636f73f2ee0a7f5b |
25-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added major new capabilities to scheduler (only BURR for now) to support physical register dependency. The BURR scheduler can now backtrace and duplicate instructions in order to avoid "expensive / impossible to copy" values (e.g. status flag EFLAGS for x86) from being clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGPrinter.cpp
|
93f143e286acad609336954b78a87cf19091c53c |
25-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added major new capabilities to scheduler (only BURR for now) to support physical register dependency. The BURR scheduler can now backtrace and duplicate instructions in order to avoid "expensive / impossible to copy" values (e.g. status flag EFLAGS for x86) from being clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGPrinter.cpp
|
81a148bd567f528baacb33b62c1b1c28dcc6a544 |
24-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Don't emit .debug_line header data if there aren't any lines to put in it, such as will happen when .loc directives are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42277 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
c55b34aa47482c0a83970b26a8363d16fb84b18c |
24-Sep-2007 |
Dan Gohman <djg@cray.com> |
Don't emit .debug_line header data if there aren't any lines to put in it, such as will happen when .loc directives are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42277 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
44de9267c30e9ad393391aa7fbcefddc8a5a803b |
24-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Move the Asm->EOL() call for EmitDebugARanges outside the #ifdef for consistency with the other currently empty sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42276 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
111540b8a110d125d21a800ae1b5f9a104d9a88b |
24-Sep-2007 |
Dan Gohman <djg@cray.com> |
Move the Asm->EOL() call for EmitDebugARanges outside the #ifdef for consistency with the other currently empty sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42276 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
8549636fcfa8e91b654a3bd677a1475f7f014023 |
24-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Add support for emitting .file directives to set up file numbers for use with .loc directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42275 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
80bbde7a1a06be37406f808172e9ace3be8d625a |
24-Sep-2007 |
Dan Gohman <djg@cray.com> |
Add support for emitting .file directives to set up file numbers for use with .loc directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42275 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
189f80dc253664627253b2d2cb07d0714feb12ba |
24-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Add a routine for emitting .file directives, for setting up file numbers to use with .loc directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e7ba1beb28280d8b51b2484bd6166c482bc58193 |
24-Sep-2007 |
Dan Gohman <djg@cray.com> |
Add a routine for emitting .file directives, for setting up file numbers to use with .loc directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e40c7b097354974ebd42c7e5d54440b07b57cc33 |
24-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Use the correct result value type instead of using getValueType(0) in ExpandEXTRACT_VECTOR_ELT and SplitVectorOp. This fixes an abort in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a0763d94f9a02f3a40f09e3abe92d34dea848fef |
24-Sep-2007 |
Dan Gohman <djg@cray.com> |
Use the correct result value type instead of using getValueType(0) in ExpandEXTRACT_VECTOR_ELT and SplitVectorOp. This fixes an abort in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42264 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9251f13b551f2b2c589220f4c238fbe878d0bdef |
24-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
When emitting .set directives, make sure the EH and Debug labels can't conflict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42257 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
b3876c7446db98320b97310e61259b92267f5d82 |
24-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
When emitting .set directives, make sure the EH and Debug labels can't conflict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42257 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
b690a005c10b521e294b95b35c1503b7b34671f4 |
22-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
initialize isstore/isload fields in ctor, fixing PR1695 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42222 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
696d2b491412490bffc044eee1c668ea8c306683 |
22-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
initialize isstore/isload fields in ctor, fixing PR1695 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42222 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
910993e8dc49a25d9da3b53de4a82568c14e91cc |
22-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Change APFloat::convertFromInteger to take the incoming bit width instead of number of words allocated, which makes it actually work for int->APF conversions. Adjust callers. Add const to one of the APInt constructors to prevent surprising match when called with const argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
a6f7974e97825e9575b5c5cf9f6665aef86cbe03 |
22-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Change APFloat::convertFromInteger to take the incoming bit width instead of number of words allocated, which makes it actually work for int->APF conversions. Adjust callers. Add const to one of the APInt constructors to prevent surprising match when called with const argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42210 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
c369bd7c503dd748ae1697858f13291bfda6ed80 |
21-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
don't read Block after it is freed. This fixes PR1684 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42204 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
3de66897eaec18b71475d2c47de815e3c98ebae9 |
21-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
don't read Block after it is freed. This fixes PR1684 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42204 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
dfe8934258086ca901122d6ce48c64f297a10404 |
21-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
initialize SetCCResultContents, fixing PR1693 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42193 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e3f5e8295b32b3eda84afa7e52e36ec5f621e935 |
21-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
initialize SetCCResultContents, fixing PR1693 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42193 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
73328d14acba0144f121b557ce0e1539c6a21a18 |
20-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
More long double fixes. x86_64 should build now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42155 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
958b08bf53f17d2b007eef74c39610bc0010fe3d |
20-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
More long double fixes. x86_64 should build now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42155 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
f4d4832724eb45f94d63e6a7ab932b8f77279587 |
19-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Fix longdouble -> uint conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
280620d227a39d1f1b2fd916e1dd0cb4b045443b |
19-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Fix longdouble -> uint conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
713a98dee8ab07a3066d1707a07648d27dd0c19c |
19-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use struct SDep instead of std::pair for SUnit pred and succ lists. First step in tracking physical register output dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
e795947c884a4b47ed678c2c1e371141cae76ef7 |
19-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use struct SDep instead of std::pair for SUnit pred and succ lists. First step in tracking physical register output dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGPrinter.cpp
|
e0480d2ec271bb0043f18feaf4131f6b6cf50757 |
18-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bogus splat xform: shuffle <undef, undef, x, undef>, <undef, undef, undef, undef>, <2, 2, 2, 2> != <undef, undef, x, undef> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42111 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8d68c2b521af0070408257c4ef586ee1679f498d |
18-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bogus splat xform: shuffle <undef, undef, x, undef>, <undef, undef, undef, undef>, <2, 2, 2, 2> != <undef, undef, x, undef> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42111 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c7b21d520ac0400c5661dca2fb67a17ef65c6ac4 |
18-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Prevent crash on long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42103 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1b4181da0342cb73321cfcffd629ceb472518b7e |
18-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Prevent crash on long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42103 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ce613280f987584df15ada06c5cf4809b203da46 |
18-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
Don't pass back a reference to a temporary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42086 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e9ecdcfe0a818c27fd1767301c8d8e988d96be87 |
18-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
Don't pass back a reference to a temporary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42086 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5f19cf5df86bb47a4572bd5a5245798c3ec6d7e7 |
18-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
The exception handling function info should be reset for each new function. The information isn't used heavily -- it's only used at the end of exception handling emission -- so there's no need to cache it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
d2144aa7163a9f041f63523d32a1102e00868ac8 |
18-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
The exception handling function info should be reset for each new function. The information isn't used heavily -- it's only used at the end of exception handling emission -- so there's no need to cache it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
6e19896999f9297db38e1a1a66d9bef0e2f09776 |
18-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
Objective-C was generating EH frame info like this: "_-[NSString(local) isNullOrNil]".eh = 0 .no_dead_strip "_-[NSString(local) isNullOrNil]".eh The ".eh" should be inside the quotes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42074 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
ef9211a831a5e63fc462c7a16a1a379882723893 |
18-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
Objective-C was generating EH frame info like this: "_-[NSString(local) isNullOrNil]".eh = 0 .no_dead_strip "_-[NSString(local) isNullOrNil]".eh The ".eh" should be inside the quotes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42074 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
8feb1f4467425d23ed74cce61e49f18a51a63421 |
18-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Do not hide APInt::dump() inside #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
26efc6e035d2c31dad215db3c492be0193a4adc9 |
18-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Do not hide APInt::dump() inside #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42068 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ffe3612af4ba03269f9affd3d2552bdb78ed6824 |
17-Sep-2007 |
Devang Patel <dpatel@apple.com> |
This is not ideal but unbreaks build failure. APInt::dump() is inside #ifndef NDEBUG, however SelectionDAG dump() routines are not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42047 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
57c2feb59e8ed830d429964ee534b42ce21b0670 |
17-Sep-2007 |
Devang Patel <dpatel@apple.com> |
This is not ideal but unbreaks build failure. APInt::dump() is inside #ifndef NDEBUG, however SelectionDAG dump() routines are not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42047 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
76c1b97e4020faace8c95a127f1eab66c278fb58 |
17-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfo Add a new DenseMapInfo::isEqual method to allow clients to redefine the equality predicate used when probing the hash table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42042 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
egAllocBigBlock.cpp
|
92eea075fddb6aa222991cd6e2483c5a10d97348 |
17-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfo Add a new DenseMapInfo::isEqual method to allow clients to redefine the equality predicate used when probing the hash table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42042 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
egAllocBigBlock.cpp
|
118cd9dbbad3a47f37dc1b1529ef920e4d5e13f6 |
16-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Adjust per revew comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42002 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b17a7a2a959a354241ddf6f8e744078b3f75a347 |
16-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Adjust per revew comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42002 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9e3d3abd937c9bb79d56d25ec0e0724c7cbba67c |
15-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Remove the assumption that FP's are either float or double from some of the many places in the optimizers it appears, and do something reasonable with x86 long double. Make APInt::dump() public, remove newline, use it to dump ConstantSDNode's. Allow APFloats in FoldingSet. Expand X86 backend handling of long doubles (conversions to/from int, mostly). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2fc20789bb7336202950f2804abf313d612f44c1 |
15-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Remove the assumption that FP's are either float or double from some of the many places in the optimizers it appears, and do something reasonable with x86 long double. Make APInt::dump() public, remove newline, use it to dump ConstantSDNode's. Allow APFloats in FoldingSet. Expand X86 backend handling of long doubles (conversions to/from int, mostly). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
92dfe2001e96f6e2b6d327e8816f38033f88b295 |
14-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Remove isReg, isImm, and isMBB, and change all their users to use isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineInstr.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
38a9a9f8be9243cc958662832067ac17f7bd4558 |
14-Sep-2007 |
Dan Gohman <djg@cray.com> |
Remove isReg, isImm, and isMBB, and change all their users to use isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
owerSubregs.cpp
achineInstr.cpp
egisterScavenging.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
|
cb648f90a26eb05ae8d508d500ca12881df50824 |
14-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Remove spurious consts. This fixes warnings with compilers that are strict about such things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5f222be33b97130f9a858851ced893df2ee11586 |
14-Sep-2007 |
Dan Gohman <djg@cray.com> |
Remove spurious consts. This fixes warnings with compilers that are strict about such things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3d6992fc7bfbd77e912044e7f15e324329d9b4eb |
13-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Fix build problems on Cygwin (PR1652), patch by Patrick Walton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4a22a676203f31c318e82ce816cd0766f75db2a8 |
13-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Fix build problems on Cygwin (PR1652), patch by Patrick Walton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
66003775464ad01fc828ba3bfaae75759b3f18e8 |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
83e890395f87b5046fc3b83a518eda80e01477ac |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
690013281313284d0ab78f5b6a0ce15a35442c6b |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
9668960b2fa0d00d7e16d6b3a5e93c41843ecff0 |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41899 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
05e69c1f23f1097530fcbc7be97f99d696c019a2 |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Yet another getTargetNode variant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41898 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e1d067ec05cf080937c2f21f5d1b9a5c59bfd4da |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Yet another getTargetNode variant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41898 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0d8d31674f3cc95f5bba1174a0e8d54d5b9c210a |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a typo that's causing a missing kill marker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41893 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
18ee3327b0601b37e55f8742aed374e77e415132 |
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a typo that's causing a missing kill marker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41893 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
9d5f45607793052bf5b4436d1b43013fab9999ac |
12-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Revise previous patch per review comments. Next round of x87 long double stuff. Getting close now, basically works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
fbd9cdafa9a1e124a0866470dc1d8f514d5db30e |
12-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Revise previous patch per review comments. Next round of x87 long double stuff. Getting close now, basically works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41875 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
6d6d352ed9bf69f06d8084b76042d7e9b3980cb5 |
12-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Sometimes a MI can define a register as well as defining a super-register at the same time. Do not mark the "smaller" def as dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41871 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
e993ca21319b90ed73d5bcf17ee6c55f061bc296 |
12-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Sometimes a MI can define a register as well as defining a super-register at the same time. Do not mark the "smaller" def as dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41871 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
3f6eb7419de437436265831fce92f62498556e08 |
11-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add APInt interfaces to APFloat (allows directly access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
1616e90a14e8df92adb026ceb047141056862de9 |
11-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add APInt interfaces to APFloat (allows directly access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
ef4a661725716c60b49c40eed5225cac52f877e9 |
11-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
Add a bool to indicate if we should set the "indirect encoding" bit in the Dwarf information for EH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41852 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
2d36992694fc05b6d4cfd85cb2884fa462fce6dc |
11-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
Add a bool to indicate if we should set the "indirect encoding" bit in the Dwarf information for EH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41852 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f7331b3dd72409e644833ecaf62a0f6db03c97ee |
11-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Fold the adjust_trampoline intrinsic into init_trampoline. There is now only one trampoline intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41841 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
7407a9f0ce838891356c1faf3d52e1dacf4e5365 |
11-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Fold the adjust_trampoline intrinsic into init_trampoline. There is now only one trampoline intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41841 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
d60da495cd5c6bc119b3489e6b3147158735bb99 |
11-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
The personality function on Darwin needs a global stub. We then refer to that global stub instead of doing the ".set" thingy we were doing before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41838 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
d1bda4f70ae19dcc4ac3b0ba063c6f3a9af0a580 |
11-Sep-2007 |
Bill Wendling <isanbard@gmail.com> |
The personality function on Darwin needs a global stub. We then refer to that global stub instead of doing the ".set" thingy we were doing before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41838 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
2d9823875ab678cdbbc4cea920fb686f8fd6030f |
11-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Observation of rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41809 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
3bdb3afb70bc1603ebe1cd60a80c8ad5818412be |
11-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Observation of rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41809 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
61c5ff460b18b970aa651115c4ac78dfc0d602d7 |
10-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Emit: cmpl %eax, %ecx setae %al movzbl %al, %eax instead of: cmpl %eax, %ecx setb %al xorb $1, %al movzbl %al, %eax when using logical not of a C comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e27cd509e5e95972be1f152ec63d1b11b495d37c |
10-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Emit: cmpl %eax, %ecx setae %al movzbl %al, %eax instead of: cmpl %eax, %ecx setb %al xorb $1, %al movzbl %al, %eax when using logical not of a C comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
87b51bc2b0e9bced27d6fd95573a3f21691a261c |
10-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
1. Don't call Value::getName(), which is slow. 2. Lower calls to fabs and friends to FABS nodes etc unless the function has internal linkage. Before we wouldn't lower if it had a definition, which is incorrect. This allows us to compile: define double @fabs(double %f) { %tmp2 = tail call double @fabs( double %f ) ret double %tmp2 } into: _fabs: fabs f1, f1 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41805 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3687e34c2cc7ce435bc29e9cacdb4d7320890b91 |
10-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
1. Don't call Value::getName(), which is slow. 2. Lower calls to fabs and friends to FABS nodes etc unless the function has internal linkage. Before we wouldn't lower if it had a definition, which is incorrect. This allows us to compile: define double @fabs(double %f) { %tmp2 = tail call double @fabs( double %f ) ret double %tmp2 } into: _fabs: fabs f1, f1 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41805 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
907f28ce3032e67c02a50095659e901de867dd3c |
08-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Implement misaligned FP loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
082753802dc328e81d1b3f286a855ad39c533a4e |
08-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Implement misaligned FP loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41786 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
588af2fb99bf255c350fcfc582e475cf4840c606 |
07-Sep-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for having different alignment for objects on call frames. The x86-64 ABI states that objects passed on the stack have 8 byte alignment. Implement that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b5c5df48b2dd9773149374d32fb40d12471269d4 |
07-Sep-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for having different alignment for objects on call frames. The x86-64 ABI states that objects passed on the stack have 8 byte alignment. Implement that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8806c7b1f5317a9679a5779ffc08c552f2091bce |
07-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register liveins and we let frontend solve type issue, not lowering code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41763 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
94c46a0e5fae77e8e68c6d1abf442a1327bf1fb6 |
07-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register liveins and we let frontend solve type issue, not lowering code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41763 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
718cb665ca6ce2bc4d8e8479f46a45db91b49f86 |
07-Sep-2007 |
Owen Anderson <resistor@mac.com> |
Add lengthof and endof templates that hide a lot of sizeof computations. Patch by Sterling Stein! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41758 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/TargetLowering.cpp
|
1636de94069d492185da2dd36859d4a1962a2eed |
07-Sep-2007 |
Owen Anderson <resistor@mac.com> |
Add lengthof and endof templates that hide a lot of sizeof computations. Patch by Sterling Stein! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41758 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/TargetLowering.cpp
|
af992f782fb2cac8d00b352c3dd73f6e782b5758 |
06-Sep-2007 |
David Greene <greened@obbligato.org> |
Constify to catch bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41751 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
e97f07714219e0407f908428c157ba7ec0cbf2dd |
06-Sep-2007 |
David Greene <greened@obbligato.org> |
Constify to catch bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41751 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
43421b3dd70af5b70e71816521f37502c397cc65 |
06-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Next round of APFloat changes. Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41747 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/SelectionDAGISel.cpp
|
b9de9f07d611823ea3371b65f87035f482ace2ad |
06-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Next round of APFloat changes. Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41747 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/SelectionDAGISel.cpp
|
325be7c608a37d87e4f3d731e11fa3dd34f529b5 |
06-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Proper handle case, when aliasee is external weak symbol referenced only by alias itself. Also, fix a case, when target doesn't have weak symbols supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41746 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
6d2c506cce46d4edcc314ca363b5e4ec4584cc38 |
06-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Proper handle case, when aliasee is external weak symbol referenced only by alias itself. Also, fix a case, when target doesn't have weak symbols supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41746 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
04fa32f9aa19bae12e7fd5b5564cebc345de3c58 |
06-Sep-2007 |
David Greene <greened@obbligato.org> |
Add instruction dump output. This helps find bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41744 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
a1c1e78ab8e0bf30d31fd76e4088af2b8638fe90 |
06-Sep-2007 |
David Greene <greened@obbligato.org> |
Add instruction dump output. This helps find bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41744 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
2c17c4d8d9f232f0329786ad9abee976bc0f3d27 |
06-Sep-2007 |
David Greene <greened@obbligato.org> |
Pluggable coalescers inplementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41743 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
|
1d80f1b12ee3aa198ae1bfd5dd33ae7e8aeb4e57 |
06-Sep-2007 |
David Greene <greened@obbligato.org> |
Pluggable coalescers inplementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41743 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egisterCoalescer.cpp
impleRegisterCoalescing.cpp
|
dd199d29b781bc713462f1255b63d3f153bfd9e9 |
06-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41739 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
27344d4cb30a4f71ff4b924d99474e747cdb65dd |
06-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41739 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
f3bb2e65d12857f83b273f4ecab013680310bbbc |
05-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41729 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
319802c33f401392c61756aaf97d94292fd829b4 |
05-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41729 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
988650438440e5aedbcf13adf8bc2ae4fda3bd4f |
05-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Due to label merging, the last label for an invoke may be the same as the first label for the following invoke. Remove a micro-optimization which was wrong in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41720 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
89372f6000d42dd4219c900dbda491dbb5ca7e01 |
05-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Due to label merging, the last label for an invoke may be the same as the first label for the following invoke. Remove a micro-optimization which was wrong in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41720 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
57810cdac4c842b4b395d2a0b2fae406aacb3ee4 |
05-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1628. When exception handling is turned on, labels are generated bracketing each call (not just invokes). This is used to generate entries in the exception table required by the C++ personality. However it gets in the way of tail-merging. This patch solves the problem by no longer placing labels around ordinary calls. Instead we generate entries in the exception table that cover every instruction in the function that wasn't covered by an invoke range (the range given by the labels around the invoke). As an optimization, such entries are only generated for parts of the function that contain a call, since for the moment those are the only instructions that can throw an exception [1]. As a happy consequence, we now get a smaller exception table, since the same region can cover many calls. While there, I also implemented folding of invoke ranges - successive ranges are merged when safe to do so. Finally, if a selector contains only a cleanup, there's a special shorthand for it - place a 0 in the call-site entry. I implemented this while there. As a result, the exception table output (excluding filters) is now optimal - it cannot be made smaller [2]. The problem with throw filters is that folding them optimally is hard, and the benefit of folding them is minimal. [1] I tested that having trapping instructions (eg divide by zero) in such a region doesn't cause trouble. [2] It could be made smaller with the help of higher layers, eg by having branch folding reorder basic blocks ending in invokes with the same landing pad so they follow each other. I don't know if this is worth doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41718 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
241a0c904da8c32d56b058873f602790c09c07c4 |
05-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1628. When exception handling is turned on, labels are generated bracketing each call (not just invokes). This is used to generate entries in the exception table required by the C++ personality. However it gets in the way of tail-merging. This patch solves the problem by no longer placing labels around ordinary calls. Instead we generate entries in the exception table that cover every instruction in the function that wasn't covered by an invoke range (the range given by the labels around the invoke). As an optimization, such entries are only generated for parts of the function that contain a call, since for the moment those are the only instructions that can throw an exception [1]. As a happy consequence, we now get a smaller exception table, since the same region can cover many calls. While there, I also implemented folding of invoke ranges - successive ranges are merged when safe to do so. Finally, if a selector contains only a cleanup, there's a special shorthand for it - place a 0 in the call-site entry. I implemented this while there. As a result, the exception table output (excluding filters) is now optimal - it cannot be made smaller [2]. The problem with throw filters is that folding them optimally is hard, and the benefit of folding them is minimal. [1] I tested that having trapping instructions (eg divide by zero) in such a region doesn't cause trouble. [2] It could be made smaller with the help of higher layers, eg by having branch folding reorder basic blocks ending in invokes with the same landing pad so they follow each other. I don't know if this is worth doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41718 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
a34d395358ea8aa039566926650a12d0962ded38 |
04-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1632. EHSELECTION always produces a i32 value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e8d1e2aaa0148b78cfa96348bef99b51bb0c67de |
04-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1632. EHSELECTION always produces a i32 value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
406452dce3af47bc2ee55d9ff72338dcb78f6c3d |
03-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Silence warning while compiling with gcc 4.2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41676 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
a55c9f25aece1546aafb5092b520974397cd25f4 |
03-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Silence warning while compiling with gcc 4.2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41676 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
9cc54f586786572f6c2b1b353b7cf3f98503c59e |
03-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Emit proper "secrel" directive, where possible. This fixes invalid asm syntax of debug info on mingw32. Also, cleanup some stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41675 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
5ef8670c228668fe8ff65702b15e8323cb44c7b8 |
03-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Emit proper "secrel" directive, where possible. This fixes invalid asm syntax of debug info on mingw32. Also, cleanup some stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41675 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
343013538f72f2202338f57161c0bd92344ca407 |
01-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
More tweaks to improve compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41669 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
8b7533e8e478c8705e229ce1b77be23025a2d4cb |
01-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
More tweaks to improve compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41669 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
c4dd3c3b519aa2c2ed26ce03a4b1fbb992efeaca |
01-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add mod, copysign, abs operations to APFloat. Implement some constant folding in SelectionDAG and DAGCombiner using APFloat. Remove double versions of constructor and getValue from ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7604c1b5a616eccc909ae58daa6e7afd54fa2d71 |
01-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add mod, copysign, abs operations to APFloat. Implement some constant folding in SelectionDAG and DAGCombiner using APFloat. Remove double versions of constructor and getValue from ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
fadfb5b102a3b8619ada0c53091c3b0acbde432b |
31-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
std::map -> DenseMap for slight compile time benefit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41650 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ce77c41ada8d0ebe75d6e45d520314b72f4be260 |
31-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
std::map -> DenseMap for slight compile time benefit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41650 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ee8476847da85e1ac44744f7f64de0675b89dc15 |
31-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Revise per review of previous patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41645 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7684447199028b572f60fd76e043cf32ec7caa3f |
31-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Revise per review of previous patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41645 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d4e4937b79a7da789379a09117cc74f20cd60623 |
31-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unnecessary element, saving 4 bytes per LiveInterval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41641 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
e4b5dad91fc585cc7bdc6a4827f5497a6fbda605 |
31-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unnecessary element, saving 4 bytes per LiveInterval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41641 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
c14b144ec30424bda7386dec83848188227660ed |
31-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use std::map instead of a (potentially very sparse) array to track val# defined by copy from the other live range. Minor compile time win when number of val# is large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41640 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
814050b796b8492428d5c777b4696f9f38c99552 |
31-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use std::map instead of a (potentially very sparse) array to track val# defined by copy from the other live range. Minor compile time win when number of val# is large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41640 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
eaf089430e7681fcddc3465c3b33b9645273ab02 |
31-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Enhance APFloat to retain bits of NaNs (fixes oggenc). Use APFloat interfaces for more references, mostly of ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
df8a831eb0f35fad163b2e45212f8154a17bbd36 |
31-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Enhance APFloat to retain bits of NaNs (fixes oggenc). Use APFloat interfaces for more references, mostly of ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
34c2a9f57ccf57f341ad27cef59e4c5eb2253e1d |
30-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Try fold re-materialized load instructions into its uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41598 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
03225435be9dcdfb38223e3bce8eaa0489f7fbad |
30-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Try fold re-materialized load instructions into its uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41598 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f04afdbb48568ef09f11fd10ac03426101f2dbf8 |
30-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Change LegalFPImmediates to use APFloat. Add APFloat interfaces to ConstantFP, SelectionDAG. Fix integer bit in double->APFloat conversion. Convert LegalizeDAG to use APFloat interface in ConstantFPSDNode uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
bbe2b709480f1b89d9ac4d42c2c29e7c29dca3bc |
30-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Change LegalFPImmediates to use APFloat. Add APFloat interfaces to ConstantFP, SelectionDAG. Fix integer bit in double->APFloat conversion. Convert LegalizeDAG to use APFloat interface in ConstantFPSDNode uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41587 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
055c5449a4046a5e1a5210d2f91aee4e3901cccf |
30-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix use of declaration inside case block git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e3d7f93f9f90611f886deb045b5aaf4ca9e99bb2 |
30-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix use of declaration inside case block git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7ecb38be0a533e7b9c7d3b8e9b5c8a6fa5f6b349 |
29-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change LiveRange so it keeps a pointer to the VNInfo rather than an index. Changes related modules so VNInfo's are not copied. This decrease copy coalescing time by 45% and overall compilation time by 10% on siod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41579 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
983b81d6041282ffb6e1dd65b2edb2def76f82fc |
29-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change LiveRange so it keeps a pointer to the VNInfo rather than an index. Changes related modules so VNInfo's are not copied. This decrease copy coalescing time by 45% and overall compilation time by 10% on siod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41579 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
066f7b40f8c442dfd52cdbc371a5f6c623d5ba90 |
29-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Lower FRAME_TO_ADDR_OFFSET to zero by default (if not custom lowered) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
09386bd850e89f0cabae20944ad76bd806d4741d |
29-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Lower FRAME_TO_ADDR_OFFSET to zero by default (if not custom lowered) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3e1a7aef17575d9c7058a035449d57e3c7295ed0 |
28-Aug-2007 |
Dan Gohman <gohman@apple.com> |
Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used by scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41556 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
134c5b61b7335d90dad114e2abb91f2a0f1e913f |
28-Aug-2007 |
Dan Gohman <djg@cray.com> |
Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used by scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41556 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
1a66f0a4f2348473263fab757d96588bc1e93554 |
28-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Recover most of the compile time regression due to recent live interval changes. 1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector. The former performs slowly when the vector size is very large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41536 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
ba9905235e860f0f59931777678a52d3b54287f2 |
28-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Recover most of the compile time regression due to recent live interval changes. 1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector. The former performs slowly when the vector size is very large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41536 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
e9c8fa095e503933840fa1ea41b4583817db5680 |
27-Aug-2007 |
Dan Gohman <gohman@apple.com> |
Make DAGCombiner's global alias analysis query more precise in the case where both pointers have non-zero offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41491 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e142c2e6b8b3a61c9282fd0f1202f380b23df251 |
27-Aug-2007 |
Dan Gohman <djg@cray.com> |
Make DAGCombiner's global alias analysis query more precise in the case where both pointers have non-zero offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41491 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5f43f92c69aae9837064cf08291db1b36a82789f |
27-Aug-2007 |
Dan Gohman <gohman@apple.com> |
If the source and destination pointers in an llvm.memmove are known to not alias each other, it can be translated as an llvm.memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cc863aa72c83309f15f9175f97cad1dffb8d689b |
27-Aug-2007 |
Dan Gohman <djg@cray.com> |
If the source and destination pointers in an llvm.memmove are known to not alias each other, it can be translated as an llvm.memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6590b0457c5e28a7336ae31de194953d8127217a |
27-Aug-2007 |
Duncan Sands <baldrick@free.fr> |
There is an impedance matching problem between LLVM and gcc exception handling: if an exception unwinds through an invoke, then execution must branch to the invoke's unwind target. We previously tried to enforce this by appending a cleanup action to every selector, however this does not always work correctly due to an optimization in the C++ unwinding runtime: if only cleanups would be run while unwinding an exception, then the program just terminates without actually executing the cleanups, as invoke semantics would require. I was hoping this wouldn't be a problem, but in fact it turns out to be the cause of all the remaining failures in the LLVM testsuite (these also fail with -enable-correct-eh-support, so turning on -enable-eh didn't make things worse!). Instead we need to append a full-blown catch-all to the end of each selector. The correct way of doing this depends on the personality function, i.e. it is language dependent, so can only be done by gcc. Thus this patch which generalizes the eh.selector intrinsic so that it can handle all possible kinds of action table entries (before it didn't accomodate cleanups): now 0 indicates a cleanup, and filters have to be specified using the number of type infos plus one rather than the number of type infos. Related gcc patches will cause Ada to pass a cleanup (0) to force the selector to always fire, while C++ will use a C++ catch-all (null). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41484 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
923fdb10d27aede037ce7aacda78f69f5e29bb00 |
27-Aug-2007 |
Duncan Sands <baldrick@free.fr> |
There is an impedance matching problem between LLVM and gcc exception handling: if an exception unwinds through an invoke, then execution must branch to the invoke's unwind target. We previously tried to enforce this by appending a cleanup action to every selector, however this does not always work correctly due to an optimization in the C++ unwinding runtime: if only cleanups would be run while unwinding an exception, then the program just terminates without actually executing the cleanups, as invoke semantics would require. I was hoping this wouldn't be a problem, but in fact it turns out to be the cause of all the remaining failures in the LLVM testsuite (these also fail with -enable-correct-eh-support, so turning on -enable-eh didn't make things worse!). Instead we need to append a full-blown catch-all to the end of each selector. The correct way of doing this depends on the personality function, i.e. it is language dependent, so can only be done by gcc. Thus this patch which generalizes the eh.selector intrinsic so that it can handle all possible kinds of action table entries (before it didn't accomodate cleanups): now 0 indicates a cleanup, and filters have to be specified using the number of type infos plus one rather than the number of type infos. Related gcc patches will cause Ada to pass a cleanup (0) to force the selector to always fire, while C++ will use a C++ catch-all (null). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41484 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
81975f6dfd9d306d0ea7ce3ef22561c949de9af9 |
27-Aug-2007 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords and remove spurious trailing semicolons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41482 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
hysRegTracker.h
|
9ba5d4d7fcdb4f9326645c18535a82d80fea8e49 |
27-Aug-2007 |
Dan Gohman <djg@cray.com> |
Add explicit keywords and remove spurious trailing semicolons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41482 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
hysRegTracker.h
|
e6c1742914149d44360fbf05a653041a672282af |
26-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Revise per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41409 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
c53301c671d7a24e060ffd7e9f95c22b5d29ae77 |
26-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Revise per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41409 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
87503a63d5756f1836f66f4c9723ec0ea30ec3ca |
26-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Add APFloat interface to ConstantFPSDNode. Change over uses in DAGCombiner. Fix interfaces to work with APFloats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7f2c1d1a4f0703cfedd3808f0ec695724f99144d |
26-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Add APFloat interface to ConstantFPSDNode. Change over uses in DAGCombiner. Fix interfaces to work with APFloats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
09ec1b058331aadb29a348091611d23892b5c492 |
25-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Allow target constants to be illegal types. The target should know how to handle them. This fixes test/CodeGen/Generic/asm-large-immediate.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dad577b42d1c678d0181fbd831d51c8a4f547bd3 |
25-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Allow target constants to be illegal types. The target should know how to handle them. This fixes test/CodeGen/Generic/asm-large-immediate.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7df31dc89b0323bca5fd6aa0a72db4d663c9b8f3 |
25-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Teach the dag scheduler to handle inline asm nodes with multi-value immediate operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
23544c1a464db6d5ef3a0ca174316038de701701 |
25-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Teach the dag scheduler to handle inline asm nodes with multi-value immediate operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
cf4bb317efb48db2b68aebece255b71624dd5bce |
25-Aug-2007 |
Bill Wendling <isanbard@gmail.com> |
The personality function might need to be declared as: .set Lset0,___gxx_personality_v0-. .long Lset0 on some targets. Make it so! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41385 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
38cb7c9aab50cf1104b775ed31b4b94e722c9f9c |
25-Aug-2007 |
Bill Wendling <isanbard@gmail.com> |
The personality function might need to be declared as: .set Lset0,___gxx_personality_v0-. .long Lset0 on some targets. Make it so! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41385 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
48884cd80b52be1528618f2e9b3425ac24e7b5ca |
25-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
rename isOperandValidForConstraint to LowerAsmOperandForConstraint, changing the interface to allow for future changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
a531abc62282978e331f9abc078ffa16ab1abbb4 |
25-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
rename isOperandValidForConstraint to LowerAsmOperandForConstraint, changing the interface to allow for future changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
12595d7b165bf460b18f4ddd395dd29e6e6e68bc |
25-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual. This means backing out the preceding change to Constants.cpp, alas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0210fe8a151fe417c70ba5402f5ce9a4f94f3e3e |
25-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual. This means backing out the preceding change to Constants.cpp, alas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41378 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8bb369b8072c919ef5802f639a52b17620201190 |
24-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Use APFloat internally for ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
70aa12595d0387e2421e1adc4ec960705092bed4 |
24-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Use APFloat internally for ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41372 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2f597bd09ec0a55689c9fd6d8999bde4fdf8688e |
23-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Perform correct codegen for eh_dwarf_cfa intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b5641a0ffcdabb890443f18c8c26b3552d56c378 |
23-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Perform correct codegen for eh_dwarf_cfa intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b753a9bb6277cd34ffc55f8674087ff8c3097a11 |
22-Aug-2007 |
Andrew Lenharth <andrewl@lenharth.org> |
move this check. ppc outputs .no_dead_strip properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41286 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
61d35f5f357074af0ec3cdc2f96362a401cc3ee0 |
22-Aug-2007 |
Andrew Lenharth <alenhar2@cs.uiuc.edu> |
move this check. ppc outputs .no_dead_strip properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41286 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
8d1bfad00b1ebff5b140b6e1bd7e26bad697d6e1 |
20-Aug-2007 |
Dan Gohman <gohman@apple.com> |
Minor cleanups to reduce some spurious differences between different scheduler implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
cbc5fdda1070d3638f494d3fc0700f983c1fe6f4 |
20-Aug-2007 |
Dan Gohman <djg@cray.com> |
Minor cleanups to reduce some spurious differences between different scheduler implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41191 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
21485be444bd132941faf4e5653ac34b3ec74040 |
20-Aug-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Partial implementation of calling functions with byval arguments: *) The needed information is propagated to the DAG *) The X86-64 backend detects it and aborts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b8bcfcdde33ce3a5812cd2133701dd6222bc40eb |
20-Aug-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Partial implementation of calling functions with byval arguments: *) The needed information is propagated to the DAG *) The X86-64 backend detects it and aborts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
571c4788d5d1527af39f9904e14983d9229c2443 |
18-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fold C ? 0 : 1 to ~C or zext(~C) or trunc(~C) depending the types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ff601dc5ddab82677b266e7547398bc3165f8bfa |
18-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fold C ? 0 : 1 to ~C or zext(~C) or trunc(~C) depending the types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41163 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3e20bba5eb5df2fdd3e6655c8470084cf05032d4 |
17-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid issue on 64-bit hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
51ce038ef93efb5ddb3f5b51552212ab8d1470b2 |
17-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid issue on 64-bit hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fd273b6ed51494a99b585a92e60cdc68102fe371 |
17-Aug-2007 |
David Greene <greened@obbligato.org> |
Fix GLIBCXX_DEBUG error of comparing two singular iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41139 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
aa5912d071250c1fe8166072d0b177f2a6738d4c |
17-Aug-2007 |
David Greene <greened@obbligato.org> |
Fix GLIBCXX_DEBUG error of comparing two singular iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41139 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
61bbbabe3da27479cc9a3a36e49091a1141ba7a3 |
17-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If dynamic_stackalloc alignment is > stack alignment, first issue an instruction to align the stack ptr before the decrement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a448bc405f5ade615e4076ed2540ef03ec24304d |
17-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If dynamic_stackalloc alignment is > stack alignment, first issue an instruction to align the stack ptr before the decrement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4515779fa39481649780bdd24fc966e89ec76edf |
17-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- If a dynamic_stackalloc alignment requirement is <= stack alignment, then the alignment argument is ignored. - *Always* round up the size of the allocation to multiples of stack alignment to ensure the stack ptr is never left in an invalid state after a dynamic_stackalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41132 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a31dc756af85ebe58b402d4ed71238a3ed669c45 |
17-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- If a dynamic_stackalloc alignment requirement is <= stack alignment, then the alignment argument is ignored. - *Always* round up the size of the allocation to multiples of stack alignment to ensure the stack ptr is never left in an invalid state after a dynamic_stackalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41132 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bc165e436beb02443abea9736c1b77e2dd7828b6 |
16-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix some kill info update bugs; add hidden option -disable-rematerialization to turn off remat for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41118 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
afc07f85919deb1d73aa2716d46a6edd8cbc8e42 |
16-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix some kill info update bugs; add hidden option -disable-rematerialization to turn off remat for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41118 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
c90f08936d717ac6aa767c28cee7af4366eb6921 |
16-Aug-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Implement FPOWI ExpandOp. Fix PR1287. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41112 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ccd0d7b44ec0fe140fe20b7269aeaa7b55aa1682 |
16-Aug-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Implement FPOWI ExpandOp. Fix PR1287. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41112 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
90a43c3ae385d98d19f9c858b51920552fb9ceaa |
15-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If the source of a move is in spill slot, the reload may be folded to essentially a load from stack slot. It's ok to mark the stack slot value as available for reuse. But it should not be clobbered since the destination of the move is live. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41109 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7efc9422a5683d41ae54d937754998501923612d |
15-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If the source of a move is in spill slot, the reload may be folded to essentially a load from stack slot. It's ok to mark the stack slot value as available for reuse. But it should not be clobbered since the destination of the move is live. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41109 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
b6ca4b370e1313b5d6bda19e86be370a3e00a38f |
15-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- If a def is dead, do not spill it. - If the defs of a spilled rematerializable MI are dead after the spill store is deleted, delete the def MI as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41086 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
498949b19db2f158ef967358811a64b94a3da400 |
15-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- If a def is dead, do not spill it. - If the defs of a spilled rematerializable MI are dead after the spill store is deleted, delete the def MI as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41086 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
dc5294fd83147ebbea9390a3aeb78fe398c05308 |
15-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1596: AdjustCopiesBackFrom() should conservatively check if any of its sub-registers may overlap with the interval of the copy that's being coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41084 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
66858a68be8bed119b1394acc535f9853accc747 |
15-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1596: AdjustCopiesBackFrom() should conservatively check if any of its sub-registers may overlap with the interval of the copy that's being coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41084 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
c91f0b80687f0a6fafa5a5e6cd87498e2de6fc3e |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a MI's def is remat as well as spilled, and the store is later deemed dead, mark the def operand as isDead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41083 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
eec85c54e649b2134e2b78cdde724b0997299d1e |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a MI's def is remat as well as spilled, and the store is later deemed dead, mark the def operand as isDead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41083 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
fff3e191b959bfc00e266b47f5c142464bb50ebf |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a spilled value is being reused and the use is a kill, that means there are no more uses within the MBB and the spilled value isn't live out of the MBB. Then it's safe to delete the spill store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41069 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
d368d827d9bc9db13bc2000c6290d19cd343bad3 |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a spilled value is being reused and the use is a kill, that means there are no more uses within the MBB and the spilled value isn't live out of the MBB. Then it's safe to delete the spill store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41069 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
dc6be1985944716a0fb4a2706dcea9e1296e3d6a |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a rematerializable def is not deleted, i.e. it is also spilled, check if the spilled value is available for reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41067 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
67cf11cdc1b014a2efea53510babeb8ac078c5de |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a rematerializable def is not deleted, i.e. it is also spilled, check if the spilled value is available for reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41067 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
430a7b0c94bf9b505aedd9c7d977b43010d6c8f1 |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41064 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
2d88a7bdd84044a39611c50a8ea01d8e3c4040e5 |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41064 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
impleRegisterCoalescing.cpp
|
549f27d3070195d6647b796841a5291b4549e8e0 |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Re-implement trivial rematerialization. This allows def MIs whose live intervals that are coalesced to be rematerialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41060 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
1204d1790c811342e4930b37d3e6edf905fe9780 |
14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Re-implement trivial rematerialization. This allows def MIs whose live intervals that are coalesced to be rematerialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41060 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
irtRegMap.cpp
irtRegMap.h
|
6047dd928067c9e2127c74152d22517ef3940d87 |
13-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41043 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
afc1c2c26aeaf84cbca8b4718605e1b83e62d397 |
13-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41043 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
ccb36a4f1bcafdf0de8514e396a5d2acf29d3947 |
12-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
No need to remove dead range from soon-to-be-dead live interval. Its val# may be out of whack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41024 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
8ffaebdf5e19c590da91492f4ae27fe899127d47 |
12-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
No need to remove dead range from soon-to-be-dead live interval. Its val# may be out of whack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41024 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
4f8ff168de12eabdeb4b9437bf9402489ecf85cb |
11-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Code to maintain kill information during register coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41016 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
816a7f3e2a714c781ded198ce9374cb983fdebfd |
11-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Code to maintain kill information during register coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41016 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
8b165731bcb9de313e3cc724e9f1b741d7fa4b05 |
10-Aug-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Move isSubRegOf into MRegisterInfo. Fix a missed move elimination in LowerSubregs and add more debugging output there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41005 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
eaf093213b6b4753d9c57c11cb459cbc92ac138c |
10-Aug-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Move isSubRegOf into MRegisterInfo. Fix a missed move elimination in LowerSubregs and add more debugging output there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41005 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
25ac7e8364f475597e2a6f3628fce839583e1f45 |
10-Aug-2007 |
Dan Gohman <gohman@apple.com> |
Fix EXTRACT_ELEMENT, EXTRACT_SUBVECTOR, and EXTRACT_VECTOR_ELT to use an intptr ValueType instead of i32 for the index operand in getCopyToParts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f7b05137e4a49f6e41fcf12c910106cc1ea32e6b |
10-Aug-2007 |
Dan Gohman <djg@cray.com> |
Fix EXTRACT_ELEMENT, EXTRACT_SUBVECTOR, and EXTRACT_VECTOR_ELT to use an intptr ValueType instead of i32 for the index operand in getCopyToParts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
594d37e21aea4ef841d9ee5d9c328c4bf1c6bed7 |
10-Aug-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
propagate struct size and alignment of byval arguments to the DAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGISel.cpp
|
e4e4d3eaa6f62a7f04abd2291e4e7a99a1d3b0ad |
10-Aug-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
propagate struct size and alignment of byval arguments to the DAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
electionDAG/SelectionDAGISel.cpp
|
b31e91cb16885922efd6baca751c0991960dd817 |
10-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
unbreak the build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40976 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
87c44fb89546e28a568672e7579e46f13a426dee |
10-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
unbreak the build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40976 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
a86e347f020eaab943546635972be3ed5009cd10 |
10-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix. ~1U marks the val# dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40975 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ea884cb720ba386392f9820267b3247869bcda3e |
10-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix. ~1U marks the val# dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40975 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
ab081c7195ad0b2bc9a13fa718f2bbffe54ac61c |
09-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Update per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6089237a5c9aa481d5bf1e90f8b4ea986b334d34 |
09-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Update per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5411a3937f4303f9c3fc50be92f985a4532d95e6 |
09-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
long double 9 of N. This finishes up the X86-32 bits (constants are still not handled). Adds ConvertActions to control fp-to-fp conversions (these are currently defaulted for all other targets, so no changes there). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
8f83a6b48b5b5d87f157d6af4bda360471106f2e |
09-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
long double 9 of N. This finishes up the X86-32 bits (constants are still not handled). Adds ConvertActions to control fp-to-fp conversions (these are currently defaulted for all other targets, so no changes there). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
c1513d24eab4b193c951f3cad450ef344e88e0a6 |
09-Aug-2007 |
Scott Michel <scottm@aero.org> |
If a target really needs to custom lower constants, it should be allowed to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40955 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f2e2b70a5ed3e807c590a61e4f2c9ac46f790ae1 |
09-Aug-2007 |
Scott Michel <scottm@aero.org> |
If a target really needs to custom lower constants, it should be allowed to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40955 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
24c2e5cf7e926452ea5875d027ec0d24d9c19e39 |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Adding kill info to val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40925 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0f72734915832161eac3a110c31116dd588e875b |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Adding kill info to val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40925 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a141cfe5b2beb16599b5bab8c73333b31cc7a548 |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up and bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40921 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
fdaff35b428c8a9b93e3ddc6bf457e3b7f17528b |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up and bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40921 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
8df786012dc6b875f31ba4152e09c6e0098082ee |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Each val# can have multiple kills. - Fix some minor bugs related to special markers on val# def. ~0U means undefined, ~1U means dead val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40916 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
58c2b767dfa5f5231db966d1a4a1e3f9c408283c |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Each val# can have multiple kills. - Fix some minor bugs related to special markers on val# def. ~0U means undefined, ~1U means dead val#. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40916 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
51cbf3c980e921a2950766282dfd6d9b2288eadd |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a dead assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40914 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
acbff0e9ecfc3e325eafb7b544ebf0d3c8234aaf |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a dead assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40914 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
a8d94f1315f722de056af03763664b77a5baac26 |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- LiveInterval value#'s now have 3 components: def instruction #, kill instruction #, and source register number (iff the value# is defined by a copy). - Now def instruction # is set for every value#, not just for copy defined ones. - Update some outdated code related inactive live ranges. - Kill info not yet set. That's next patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40913 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
4151fde810668888a258896b44e75b6eb876695d |
08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- LiveInterval value#'s now have 3 components: def instruction #, kill instruction #, and source register number (iff the value# is defined by a copy). - Now def instruction # is set for every value#, not just for copy defined ones. - Update some outdated code related inactive live ranges. - Kill info not yet set. That's next patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40913 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
impleRegisterCoalescing.cpp
|
7e23146ab9dd6c2d8849bacce841a2e4660305dc |
07-Aug-2007 |
David Greene <greened@obbligato.org> |
Add a missing forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40896 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
44a3bfb4643d0e2cd3483ac60f48b72a2141de86 |
07-Aug-2007 |
David Greene <greened@obbligato.org> |
Add a missing forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40896 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
914ce4508d46bdc5db0eec1aff8051ccd94c3d5f |
06-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a regression compiling 2005-05-11-Popcount-ffs-fls with the CBE, introduced by chandler's patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40864 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
f2cf7f0f5b456e2c6248e6c5521a9a369a75dd79 |
06-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a regression compiling 2005-05-11-Popcount-ffs-fls with the CBE, introduced by chandler's patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40864 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
98363225a3badb3cfbe539b0a000ef108b0fea87 |
06-Aug-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Implement review feedback. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40863 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
a5bb7e44686795426cee68f94589a272584c8267 |
06-Aug-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Implement review feedback. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40863 91177308-0d34-0410-b5e6-96231b3b80d8
owerSubregs.cpp
|
181b6c9cb5def44658d15848e34c5c45d973f065 |
05-Aug-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Fix minor doxygen nits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40854 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
37c7cea4847c32beb300b32e46db4805dfe716fa |
05-Aug-2007 |
Reid Spencer <reid@x10sys.com> |
Fix minor doxygen nits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40854 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
e76fad2ceb19f975f29cd1fb110866a6d802d8a6 |
05-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
shorten this name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40843 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d78c639086eb0770a37eae8cf820aa1bc28ca8d4 |
05-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
shorten this name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40843 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6994040a952e5fb27605eb3cf29ed86c4e59cf62 |
04-Aug-2007 |
Chandler Carruth <chandlerc@gmail.com> |
This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a228e39a1540baceadc27acb2f1af0f2563381e5 |
04-Aug-2007 |
Chandler Carruth <chandlerc@gmail.com> |
This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
61e729e2e9517ab2d8887bab86fb377900fa1081 |
02-Aug-2007 |
Dan Gohman <gohman@apple.com> |
More explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40757 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
irtRegMap.h
|
3a78bbfeacce9988ff60210fd472cef9789abcc2 |
02-Aug-2007 |
Dan Gohman <djg@cray.com> |
More explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40757 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
irtRegMap.h
|
b15e49597f031fdd41fdec2887a3c24c0ea430d8 |
02-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
don't redefine a parameter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bc1200c45389e2ec5a20f0f457b33d83ef10f961 |
02-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
don't redefine a parameter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40748 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
33d5595d667ba4a880bd7fe785724e8197bef70c |
02-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not emit copies for physical register output if it's not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
0af04f7046e06eb43e7c979651f5d7529be79805 |
02-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not emit copies for physical register output if it's not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
335f4f77882ace48bcdfb7a6019367bf9f4857cd |
02-Aug-2007 |
Scott Michel <scottm@aero.org> |
Style police: Expand the tabs to spaces! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bc62b41039d4838a09a57e3b4b6eaed98020cf67 |
02-Aug-2007 |
Scott Michel <scottm@aero.org> |
Style police: Expand the tabs to spaces! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8409747efadda025aa3cce626b1a2c33429fd5e5 |
02-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Instead of adding copyfromreg's to handle physical definitions. Now isel can simply specify them as results and let scheduledag handle them. That is, instead of SDOperand Flag = DAG.getTargetNode(Opc, MVT::i32, MVT::Flag, ...) SDOperand Result = DAG.getCopyFromReg(Chain, X86::EAX, MVT::i32, Flag) Just write: SDOperand Result = DAG.getTargetNode(Opc, MVT::i32, MVT::i32, ...) And let scheduledag emit the move from X86::EAX to a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
2663978e4ab3d1c8be986f66d359be0474e9ea5b |
02-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Instead of adding copyfromreg's to handle physical definitions. Now isel can simply specify them as results and let scheduledag handle them. That is, instead of SDOperand Flag = DAG.getTargetNode(Opc, MVT::i32, MVT::Flag, ...) SDOperand Result = DAG.getCopyFromReg(Chain, X86::EAX, MVT::i32, Flag) Just write: SDOperand Result = DAG.getTargetNode(Opc, MVT::i32, MVT::i32, ...) And let scheduledag emit the move from X86::EAX to a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
21b3bf06508e8a9af86276099e6845961c883a62 |
01-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bugs: missing partial uses and redundant partial defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40688 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
e4ec619b25074a0460067644b844c84aecbcb207 |
01-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bugs: missing partial uses and redundant partial defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40688 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
f3c13c82e34b8e90f1080cfe06c6f1328a2d44e1 |
01-Aug-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Expand unaligned loads/stores when the target doesn't support them. (PR1548) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40682 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
578434fda9905776efe2f3176daf5ca72efd1594 |
01-Aug-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Expand unaligned loads/stores when the target doesn't support them. (PR1548) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40682 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
52eec548206d0b135b55ba52dd0e82e978f15ae5 |
01-Aug-2007 |
David Greene <greened@obbligato.org> |
New CallInst interface to address GLIBCXX_DEBUG errors caused by indexing an empty std::vector. Updates to all clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40660 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
b1c4a7b210b9a8aa98fcffae8a84a0a20860ec7a |
01-Aug-2007 |
David Greene <greened@obbligato.org> |
New CallInst interface to address GLIBCXX_DEBUG errors caused by indexing an empty std::vector. Updates to all clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40660 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
3b1f55ea2412e381e6bf2002066f6ef1f4e24c13 |
01-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
simpleregistercoalescing -> regcoalescing. It's too long for me to handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40654 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
6e9f623df05d40beff1f8b3743d2907802a1d097 |
01-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
simpleregistercoalescing -> regcoalescing. It's too long for me to handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40654 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
910b66d8d6fd8a27dcdea74431e3ea20c69b7db5 |
30-Jul-2007 |
Scott Michel <scottm@aero.org> |
- Allow custom lowering for CTPOP, CTTZ, CTLZ. - Fixed an existing unexpanded tab. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
48b63e605d097245fa3f4fd7f1e386d21fdc37d6 |
30-Jul-2007 |
Scott Michel <scottm@aero.org> |
- Allow custom lowering for CTPOP, CTTZ, CTLZ. - Fixed an existing unexpanded tab. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
be444ed6dbc2a6f36feab84b527a21aa0df9f808 |
30-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix a bug in getCopyFromParts turned up in the testcase for PR1132. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
90cfc9d25c9ef0f48729fc5ec230b40b5ec17a6d |
30-Jul-2007 |
Dan Gohman <djg@cray.com> |
Fix a bug in getCopyFromParts turned up in the testcase for PR1132. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
286d56935c671a7d3fbf109828768618b97c5673 |
30-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Print a space between the comment character and the basic block name, for prettiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40593 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
0912cdad24812750a59d31f5e421fd359a5998e5 |
30-Jul-2007 |
Dan Gohman <djg@cray.com> |
Print a space between the comment character and the basic block name, for prettiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40593 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
36397f50343639ce9a25996f2d790c656791ab92 |
27-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Support for trampolines, except for X86 codegen which is still under discussion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
38947cd9adc03b30ff6d50d97279421c63b6f2f2 |
27-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Support for trampolines, except for X86 codegen which is still under discussion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40549 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ada779fb11eb411536aa8219a176ca0ce4d58fd1 |
27-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Move subreg lowering pass to be right after regalloc, per feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40548 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
ed37973fd1a1c3ec69d3d99dccbc594c9039b08b |
27-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Move subreg lowering pass to be right after regalloc, per feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40548 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
559742c0eae0a7368eb5f67cde7a3599eaf82ade |
26-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix the alias analysis query in DAGCombiner to not add in two offsets. The SrcValueOffset values are the real offsets from the SrcValue base pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40534 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
45ee6d6dc54904f50e242cf9e32bee92f15a8f46 |
26-Jul-2007 |
Dan Gohman <djg@cray.com> |
Fix the alias analysis query in DAGCombiner to not add in two offsets. The SrcValueOffset values are the real offsets from the SrcValue base pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40534 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bab2474b64e81be0ed4fc35d16cdfac65f283361 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add a MachineFunction pass, which runs post register allocation, that turns subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40521 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
owerSubregs.cpp
|
10a95baae33a8b37820bf3bb73046769daff6ee6 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add a MachineFunction pass, which runs post register allocation, that turns subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40521 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
owerSubregs.cpp
|
e24f8f1ec9277dc80ebf38f0d914053f8c31caf1 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Teach DAG scheduling how to properly emit subreg insert/extract machine instructions. PR1350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40520 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e95328d8af0c38590c675b703ecab1b940903b76 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Teach DAG scheduling how to properly emit subreg insert/extract machine instructions. PR1350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40520 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
557c3631d320c5731e55b6f818a1c7b2d4d97176 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add selection DAG nodes for subreg insert/extract. PR1350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
b768c2edff5a647884e01ba70f2a940053ba49c8 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add selection DAG nodes for subreg insert/extract. PR1350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
6f95014158208ad6cd6f6d1996c821fca61d7915 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Remove subreg index from MachineInstr's and also keep vregs as unsigned when adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40514 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
960a9fc5892b1f4b5e8f1bca84f742e66e2285a2 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Remove subreg index from MachineInstr's and also keep vregs as unsigned when adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40514 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
844228a631f47bb39f71f617063831fb83c3843b |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Fix infinite recursion for when extract_vector_elt is legal. Unfortunately no public targets use this code-path, so no test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40510 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cc021a04f97e93777f8323dd564f2976de285f14 |
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Fix infinite recursion for when extract_vector_elt is legal. Unfortunately no public targets use this code-path, so no test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40510 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
73a259a9d1814912255aee6c185c5aeb7bb581ba |
26-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
EmitAlignment() also emits optional fill value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40500 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c1f41aa81b256cbcde0e266d5011825fd0832350 |
26-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
EmitAlignment() also emits optional fill value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40500 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
59db3ec9353ec5d122e08c5d56eae1310ca137a1 |
25-Jul-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Minor cleanup: - Split EH and debug infiormation - Make DwarfWriter more verbose in some cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40481 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
c6449f1e1fb40372dae12cae4ca8284ae5b8d8fb |
25-Jul-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Minor cleanup: - Split EH and debug infiormation - Make DwarfWriter more verbose in some cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40481 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
dc9b3d0bb5ed3a3f59cad61e264f0ec43c946459 |
25-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Add const to CanBeFoldedBy, CheckAndMask, and CheckOrMask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d609827e167ad05b2a312bad23136fd67b09f7f7 |
25-Jul-2007 |
Dan Gohman <djg@cray.com> |
Add const to CanBeFoldedBy, CheckAndMask, and CheckOrMask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
275769a77acd8f0dadbf9ca03384b31c9f1c3e01 |
23-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix some uses of dyn_cast to be uses of cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40443 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
electionDAG/SelectionDAG.cpp
|
53491e97731df5cbdd571484a43a1637c78073a4 |
23-Jul-2007 |
Dan Gohman <djg@cray.com> |
Fix some uses of dyn_cast to be uses of cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40443 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
electionDAG/SelectionDAG.cpp
|
c674a924d4ed62e857bf788d7e0c76c89239b903 |
21-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Don't assume that only Uses can be kills. Defs are marked as kills initially when there are no uses. This fixes a dangling-pointer bug, where pointers to deleted instructions were not removed from kills lists. More info here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-July/009749.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40131 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
impleRegisterCoalescing.cpp
|
2c6a6420d071315104cf3858ce5409b0a45e974b |
21-Jul-2007 |
Dan Gohman <djg@cray.com> |
Don't assume that only Uses can be kills. Defs are marked as kills initially when there are no uses. This fixes a dangling-pointer bug, where pointers to deleted instructions were not removed from kills lists. More info here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-July/009749.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40131 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
impleRegisterCoalescing.cpp
|
8bd6035750f1b290832a3b1c90766d9b45ed8d6b |
20-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added -print-emitted-asm to print out JIT generated asm to cerr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40123 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
775472112da257a6558fb583d71aa850860dd8a1 |
20-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added -print-emitted-asm to print out JIT generated asm to cerr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40123 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
70d0bd16243e1e8b59e2689760cb2e5c1e521290 |
19-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
As pointed out by g++-4.2, the original code didn't do what it thought it was doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f9a4497ff16f0b12f6160830889a3d6e98717516 |
19-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
As pointed out by g++-4.2, the original code didn't do what it thought it was doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
273288c888027c64a0c0ba25a58fbf1f871b5311 |
19-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40022 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
60cc087089be0fa39183f9f4737cadb84a6ed007 |
19-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40022 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
48613b930a34d6f98e7d3dd86aa49cc3dbd61c85 |
18-Jul-2007 |
Dan Gohman <gohman@apple.com> |
It's not necessary to do rounding for alloca operations when the requested alignment is equal to the stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f17a25c88b892d30c2b41ba7ecdfbdfb2b4be9cc |
18-Jul-2007 |
Dan Gohman <djg@cray.com> |
It's not necessary to do rounding for alloca operations when the requested alignment is equal to the stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
warfWriter.cpp
LFWriter.cpp
LFWriter.h
fConversion.cpp
ntrinsicLowering.cpp
LVMTargetMachine.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achOWriter.cpp
achOWriter.h
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
achineModuleInfo.cpp
achinePassRegistry.cpp
akefile
HIElimination.cpp
asses.cpp
hysRegTracker.h
ostRASchedulerList.cpp
rologEpilogInserter.cpp
EADME.txt
egAllocBigBlock.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
egisterScavenging.cpp
electionDAG/CallingConvLower.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/Makefile
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
impleRegisterCoalescing.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
irtRegMap.h
|
f99002c14303fe3f58f854bb77f9bcfbe7656b64 |
17-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39979 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
07a96765daedf180a7102d39fe56c499878312b7 |
16-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix comments about vectors to use the current wording. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6d4b711e7f2e27d94d3c49dc9e7575dbe0f242e0 |
14-Jul-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Fix the build. Patch from Holger Schurig. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2365f51ed03afe6993bae962fdc2e5a956a64cd5 |
14-Jul-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Long live the exception handling! This patch fills the last necessary bits to enable exceptions handling in LLVM. Currently only on x86-32/linux. In fact, this patch adds necessary intrinsics (and their lowering) which represent really weird target-specific gcc builtins used inside unwinder. After corresponding llvm-gcc patch will land (easy) exceptions should be more or less workable. However, exceptions handling support should not be thought as 'finished': I expect many small and not so small glitches everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39855 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a346615d11f0a560c6e7280c1e614301d9f93051 |
13-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix the comment for LegalizeOp to more accurately reflect what it does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
05d92fe7c4310340335512a3a7de97d3cf07d68d |
13-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Don't call SimplifyVBinOp for non-vector operations, following earlier review feedback. This theoretically makes the common (scalar) case more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39823 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
72f159640382a16e036b63dcb9c0b427e6d5dc0a |
13-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Modify previous patch per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39817 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
|
e7e7d0d7e39d0c7c659d26b97e8081fce0fcd749 |
13-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Skeleton of post-RA scheduler; doesn't do anything yet. Change name of -sched option and DEBUG_TYPE to pre-RA-sched; adjust testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
ostRASchedulerList.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
|
bb821dd79bf13c5137760c8fe0fa721912c4276d |
12-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
The type ids making up a filter are unsigned, and should be output as unsigned values. Checked against gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39775 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
28bb462d4cfb8c849a0d9a1b1f3c643b77b8efc6 |
11-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Missed a couple of places where new instructions are added due to spill / restore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39748 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c3751600b7a5dee550c5e50cb83065630759467f |
11-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Exception handling has been implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39732 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
97b4ac8c844e08ce1c4f4a73b85ba56775a2a6c5 |
11-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
If assertions are not enabled, we should return False here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38535 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b9591c667d956d0607f7388665649fb0852a988c |
11-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
No longer need to track last def / use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38534 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
0c40d72b014e8c0f54552d38288a29182effba58 |
11-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1545: Revamp code that update kill information due to register reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38525 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
67fcdf7f6579fcc070f019096cedf80d5a834554 |
11-Jul-2007 |
David Greene <greened@obbligato.org> |
Make this work with GLIBCXX_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38516 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
743d3a754820e64eb779335a2cb2688fd0dd58d5 |
10-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Change the peep for EXTRACT_VECTOR_ELT of BUILD_PAIR to look for the new CONCAT_VECTORS node type instead, as that's what legalize uses now. And add a peep for EXTRACT_VECTOR_ELT of INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38503 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5e2456c95996338ad7ed461b8ce4d21cb9d70a0b |
10-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
If the operand is marked M_OPTIONAL_DEF_OPERAND, then it's a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
11ce02dbddf4b6629b8537f89d742c98c3c2bce2 |
10-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Somehow this wasn't committed last time. M_CLOBBERS_PRED is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38495 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
70fb1aefd58eb78404a2bc86b6960b7b64574082 |
10-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the folding of binary operators to undef. Thanks to Lauro for spotting this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38491 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d595b5f1f051d79764ac8469f02efaae398f115c |
10-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix the folding of undef in several binary operators to recognize undef in either the left or right operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38489 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
af825c840ebc4ca5248c62325b2371091c9fb4b4 |
10-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
When a node value is only used by a CopyToReg, use the user's dest. This should not be restricted to nodes that produce only a single value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGSimple.cpp
|
c63d391c9a886d58c6a53a7f565fbd544b076d9f |
10-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move DenseMapKeyInfo<SDOperand> from LegalizeDAG.cpp to SelectionDAGNodes.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d6fd1bc122ba791c698255d8be158b8ec424e248 |
10-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Preserve volatililty and alignment information when lowering or simplifying loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
532dc2e1f2473b16b48566c1cbc9eefe94a4e58e |
09-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Change getCopyToParts and getCopyFromParts to always use target-endian register ordering, for both physical and virtual registers. Update the PPC target lowering for calls to expect registers for the call result to already be in target order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38471 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
93f81e2822aa67337f629398c81bc2844ef9400a |
09-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Initialize the IndexedModeActions array with memset before updating it with calls to setIndexedLoadAction/setIndexedStoreAction, which only update a few bits at a time. This avoids ostensible undefined behavior of operationg on values which may be trap-representations, and as a practical matter fixes errors from valgrind, which doesn't track uninitialized memory with bit granularity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e094f54f4cb6cb899252b66d328aa167013c982d |
09-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
Fix this warning: DAGCombiner.cpp: In member function 'llvm::SDOperand<unnamed>::DAGCombiner::visitOR(llvm::SDNode*)': DAGCombiner.cpp:1608: warning: passing negative value '-0x00000000000000001' for argument 1 to 'llvm::SDOperand llvm::SelectionDAG::getConstant(uint64_t, llvm::MVT::ValueType, bool)' oiy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e510b3af3a76cd557bb958293f859e4861060fc2 |
09-Jul-2007 |
Gabor Greif <ggreif@gmail.com> |
fix typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38453 91177308-0d34-0410-b5e6-96231b3b80d8
impleRegisterCoalescing.cpp
|
d2c5eb864fc80665ca57038793f2f4a296a87eb3 |
07-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Teach if-conversion about instructions that were already predicated, e.g. conditional move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37964 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
f664e41b201bad27ed3661bf50cd71f54242c114 |
06-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
The exception handling intrinsics return values, so must be lowered to a value, not nothing at all. Subtle point: I made eh_selector return 0 and eh_typeid_for return 1. This means that only cleanups (destructors) will be run as the exception unwinds [if eh_typeid_for returned 0 then it would be as if the first catch always matched, and the corresponding handler would be run], which is probably want you want in the CBE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37947 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
fccf0a2b25da833b115648e1dc10119444a924d5 |
06-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Indexes into the list of filter ids cannot be output directly: they need to be turned into byte offsets (often the same, but may not be if there are many type infos). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37942 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
1aa7efbd2c98e761f50992197473304b99257ca9 |
06-Jul-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add the byval attribute git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
902919541fc2eb0e914390d9696088cfec3733df |
06-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Remove propagateEHRegister in favour of a more limited fix, that is adequate while PR1508 remains unresolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37938 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b4fd45e2fc4973214227fbaa96975d9fcc19ba42 |
06-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Remove ExtractGlobalVariable - use StripPointerCasts instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
86da6600aec9b8f1c3fbae157414bf1648eb639c |
06-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Workaround of getCopyToRegs and getCopyFromRegs bugs for big-endian machines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37935 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
991262834d688c02e279017335dac34579848b99 |
06-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change CalculateHeights and CalculateDepths to be non-recursive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
50b153335d2943a95acf37d7ee84095f8e8af53c |
05-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Make the debug string for ISD::MERGE_VALUES consistent with the others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6183f78cf8c6f56cc436f19120acf2a7856cb9db |
05-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Add a parameter to getCopyToParts and getCopyFromParts to specify whether endian swapping should be done, and update the code to use it. This fixes some register ordering issues on big-endian systems, such as PowerPC, introduced by the recent illegal by-val arguments changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a99be51bf5cdac1438069d4b01766c47704961c8 |
05-Jul-2007 |
Gabor Greif <ggreif@gmail.com> |
Here is the bulk of the sanitizing. Almost all occurrences of "bytecode" in the sources have been eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37913 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
|
14da32a486f31ba695de9080830e6fadf4942d5b |
05-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Make sure only one copy of a filter is placed in the exception handling table if we encounter it multiple times. Filters could be folded harder than this, but that would mean a lot more work for not much gain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37908 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
5db322acefc3089c133b8f3a33fa0a3ce90e2001 |
05-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Better assertion messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37890 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
cf26d7ccac1ad052b750edec36b13bc9ea8f70d7 |
04-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Extend eh.selector to support both catches and filters. Drop the eh.filter intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37875 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
613e0d8008b97550ca08c3e816d74c2af2c4fe29 |
03-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix several over-aggressive folds for undef nodes in dagcombine, to follow the rules for undef used in instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
849f214a4e3676e41168b0c5398165c4d4fb99f8 |
03-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Fix for PR 1505 (and 1489). Rewrite X87 register model to include f32 variants. Some factoring improvments forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
27a70be55f8b63181598d144d034b396402be66e |
02-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Replace ExpandScalarFormalArgs and ExpandScalarCallArgs with the newly refactored getCopyFromParts and getCopyToParts, which are more general. This effectively adds support for lowering illegal by-val vector call arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
23ff1826b9c848c0627747f3de976b6c99c94b4b |
02-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Teach GetNegatedExpression to negate 0-B to B in UnsafeFPMath mode, and visitFSUB to fold 0-B to -B in UnsafeFPMath mode. Also change visitFNEG to use isNegatibleForFree/GetNegatedExpression instead of doing a subset of the same thing manually. This fixes test/CodeGen/X86/negative-sin.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37842 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c45453fa1db7a5c520208fb6ffbc9fdb823b0526 |
29-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Only do FNEG xform when the vector type is a floating point type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
821262953af418649e49e52009f9d3ddae5736c2 |
29-Jun-2007 |
David Greene <greened@obbligato.org> |
Remove unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c908dcde45c6d7ddff0443cbc174a7cbfec21d1b |
29-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a vector FP constant CSE bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a2a488594df335efa17bc253436465c2ae984f91 |
29-Jun-2007 |
David Greene <greened@obbligato.org> |
Remove unnecessary attributions in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37799 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
cfacc8f5d25f38112eee836530004f7816439765 |
29-Jun-2007 |
David Greene <greened@obbligato.org> |
Fix reference to cached end iterator invalidated by an erase operation. Uncovered by _GLIBCXX_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37795 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a4ab2e8c726e1702d74eb207536bf953bd3d5c81 |
29-Jun-2007 |
David Greene <greened@obbligato.org> |
Remove the "special tie breaker" because it resulted in inconsistent ordering and thus violated the strict weak ordering requirement of priority_queue. Uncovered by _GLIBCXX_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
8a46d342d8cbca7c9c7be6c66007d41329babad0 |
29-Jun-2007 |
David Greene <greened@obbligato.org> |
Fix misue of iterator pointing to erased object. Uncovered by _GLIBCXX_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37793 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
10a7aa6dea8d862feda05098d82a7630c80c30d8 |
29-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Fix an assertion failure in legalizing bitcast operators on targets where vectors are split down to single elements as part of legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37785 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b6f5b00c3bad3415d3f2ee1a6d5ee5a6f66a4540 |
29-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Add new TargetLowering code to provide the final register type that an illegal value type will be transformed to, for code that needs the register type after all transformations instead of just after the first transformation. Factor out the code that uses this information to do copy-from-regs and copy-to-regs for various purposes into separate functions so that they are done consistently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
292da949f6c87d6499425d64d37d7c5870ec57ad |
27-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a livein is not used in the block. It's live through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37764 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e47c333a12094296e54571ed1ac511a04d74840d |
27-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Partial fix for PR1502: If a EH register is needed in a successor of landing pad, add it as livein to all the blocks in the paths between the landing pad and the specified block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37763 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6595cb3000d7f5f8e9a76d556aa8609db91b7887 |
27-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37758 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
8c8c5fcbd757b5c44fa7ad9af038a2f2d950b624 |
27-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Use getVectorTypeBreakdown in FunctionLoweringInfo::CreateRegForValue to compute the number and type of registers needed for vector values instead of computing it manually. This fixes PR1529. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
89b20c07e9f9539b141c5251ac67cc38afa637d5 |
27-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Make the comment for ScalarizeVectorOp mention that it is only for use with single-element vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37752 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
df82c93f2a37f9f52c8210eef9404b4a265a415f |
27-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
ok, this is something of a dirty hack, but it seems to work. (fixes e.g. the SPASS miscompilation) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37750 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
b2efabd5716dbeccf9ffc0632e76aa378302e2a2 |
27-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
ok, this much doesn't seem to bork anything git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37749 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
4e378c6504958edb0f1a2f979248b2b09755066a |
27-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
revert evan's fixes (and my doofusness) since they had a huge code quality hit. will look at this soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37748 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
669f7382be6a45d619873dcc46094c7b23fe89f3 |
27-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
pull evan's fixes - should help the nightly tester (but there are still some issues) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37747 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
041040717db7dafe31155615fcb43d214ac88aa4 |
27-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Replace std::set with SmallPtrSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37746 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
75611fb4e6ab253be30ac29a2b15e9bf8c1d146e |
27-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious bug. Old code only worked for the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37743 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7ac19afbb14dcaabad98a428541b61391a62626e |
26-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Correctly handle implcit def / use operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37740 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
4efe74129f7483bc8c48d68f095d632b974c353d |
26-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Properly handle kills of a physical register which has sub-registers that are read by later instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37739 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
837a600a90f77e010b2f7866fc7c3ba993fc9694 |
26-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
tidy this file up a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37725 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
2e0930cf37a528a8c1d3911940287084dfccbc70 |
26-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
A bunch of fixes to the BigBlock allocator improve compile-time by ~20% and code quality by ~2% on my tests. A big thank you to Roman Levenstein for this patch! See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070618/050717.html for more details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37724 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
7f32156bb9c017b71971c52fac892fa7b9b06dd2 |
25-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Generalize MVT::ValueType and associated functions to be able to represent extended vector types. Remove the special SDNode opcodes used for pre-legalize vector operations, and the special MVT::Vector type used with them. Adjust lowering and legalize to work with the normal SDNode kinds instead, and to use the normal MVT functions to work with vector types instead of using the two special operands that the pre-legalize nodes held. This allows pre-legalize and post-legalize DAGs, and the code that operates on them, to be more consistent. Pre-legalize vector operators can be handled more consistently with scalar operators. And, -view-dag-combine1-dags and -view-legalize-dags now look prettier for vector code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37719 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
ea859be53ca13a1547c4675549946b74dc3c6f41 |
22-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from TargetLowering to SelectionDAG so that they have more convenient access to the current DAG, in preparation for the ValueType routines being changed from standalone functions to members of SelectionDAG for the pre-legalize vector type changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
a8c768293966822840199b496a9b020b6b460e8d |
22-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
check in the BigBlock local register allocator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37703 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocBigBlock.cpp
|
0b2ce1fc19c5f8742051cf022ac119a3d4d9a3ad |
22-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
std::set is really really terrible. Switch to SmallPtrSet to reduce compile time. For Duraid's example. The overall isel time is reduced from 0.6255 sec to 0.1876 sec. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
2d74a318deed2b7957250cdcc04dc8e01924258b |
21-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Tidy up ValueType names in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
b9f10196961ebe5b5573a5705048a5a8a6b56bb3 |
21-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename TargetLowering::getNumElements and friends to TargetLowering::getNumRegisters and similar, to avoid confusion with the actual number of elements for vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37687 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
b13cdbd8658635e33fc7c5b84dd3f8a053cd907d |
21-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Xforms: (add (select cc, 0, c), x) -> (select cc, x, (add, x, c)) (sub x, (select cc, 0, c)) -> (select cc, x, (sub, x, c)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37685 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9ffd340daf00fb6e2bbfe6dafd5b7130070b1578 |
19-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid if-converting simple block that ends with unconditional branch or fallthrough unless it branches / falls to the 'false' block. Not profitable, may end up increasing code size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37660 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
b5bec2b6f6f4a4da96170d1c258ad424112ad2c5 |
19-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Pass a SelectionDAG into SDNode::dump everywhere it's used, in prepration for needing the DAG node to print pre-legalize extended value types, and to get better debug messages with target-specific nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
85ef2546303fabe32de3f2519a978fa2a7fd5958 |
19-Jun-2007 |
Chris Lattner <sabre@nondot.org> |
document and hide two options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37651 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
82a87a01723c095176c6940bcc63d3a7c8007b4b |
19-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad with a general target hook to identify rematerializable instructions. Some instructions are only rematerializable with specific operands, such as loads from constant pools, while others are always rematerializable. This hook allows both to be identified as being rematerializable with the same mechanism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37644 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
eaa91b0a1fc68984aae51f3c4b0cf29b38f89dac |
19-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Replace TargetInstrInfo::CanBeDuplicated() with a M_NOT_DUPLICABLE bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37643 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
aeeccfc5b240d6ac87e507188f152bb0278b6472 |
19-Jun-2007 |
Chris Lattner <sabre@nondot.org> |
add isVarArg to CCState git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
c4047a8e96408a6149c2b64c953774fa578769fd |
19-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix some fragile code wrt CFG edge updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37634 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2bdb7d0cc88881857073b36f4a09ebe2f2008c24 |
19-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move CorrectExtraCFGEdges() from BranchFolding.cpp to a MachineBasicBlock method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37633 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
e10e6f7a36f6f60d1889465a4df51ac8cdb34365 |
18-Jun-2007 |
Chris Lattner <sabre@nondot.org> |
make ComputeTopDownOrdering significantly faster and use less stack space by making it non-recursive git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37629 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7a0a4fc9127039cc7c55d74994fe7790ac30de43 |
18-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Make chain dependencies blue, in addition to being dashed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37626 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
a1a878791b305880c976038b8fcd2697b7799ec1 |
18-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Properly remove duplicate instructions as result of diamond if-conversion. Other bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37623 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e882fca902ba6b1a9e0c361c5781084f79eb6216 |
16-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Really turn if-converter loose: 1. Consider all possible ifcvt cases at once. No longer restricted to bottom up iterative approach. 2. Sort all possible cases based on a cost function. Perform the most profitable ones first invalidate others that target the same blocks. 3. Fixed a number of bugs related to block duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37613 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
24e5aada7d112447c41c12008f7daf1fc15a24bc |
16-Jun-2007 |
Tanya Lattner <tonic@nondot.org> |
Codegen support (stripped out) for the annotate attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37608 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
a2acf840a70c273a03ffb5752221350b4949fc0e |
15-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Not every predicable block can be safely duplicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37607 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c2c28fc24cc0c7886da93939b0279d3f444b35dc |
15-Jun-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/X86/inline-asm-x-scalar.ll:test4, by retaining regclass info for tied register constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bf9d02eaf6378c3d35d6202ad803b0374132fc61 |
15-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
MachineInstr::isPredicable() is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37599 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
achineInstr.cpp
|
f40708223e409a152834b1553c6883ff2035b957 |
15-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Workaround for PR1508. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
93335459802fbbe61d5ca52831a636989b838094 |
15-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Extra edges are deleted later if needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37593 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2c8c3a4a0df00eee39c28d827d43a1d5462b0671 |
15-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow small blocks to be duplicated to enable if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37590 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
bc198eeba6d6850639c9ed6449b01aec95d7d205 |
15-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
No really, clear predcessors states. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37581 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e37e24331c6fb3e83d5fb0c9ce31be619359a52a |
15-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
If BB is predicated, invalidate its predecessor(s) which would if-convert it. It needs to be re-analyzed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37580 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
51eaa86758338d5935c0eff0469c418b1256aba7 |
15-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename MVT::getVectorBaseType to MVT::getVectorElementType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
b7c908bb81fe4336f60c03802dade7c24a02e619 |
14-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37577 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c101e95cb6aae1fd6a0727ba4b518a7894ae3089 |
14-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Add a target hook to allow loads from constant pools to be rematerialized, and an implementation for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37576 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
86ff296e63cd9d4c28a7b73d3d6ec05e4011a0e5 |
14-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix some stupid bugs that have effectively disabled if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37575 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
ea632439d4259254670dc4a27b13d6f9370216a8 |
13-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Only correctly lower exception handing intrinsics if exception handling is turned on. Likewise for scanning of invokes to mark landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6595635175764f402e7a5e53216c8d46bdce8c28 |
13-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Introduce new SelectionDAG node opcodes VEXTRACT_SUBVECTOR and VCONCAT_VECTORS. Use these for CopyToReg and CopyFromReg legalizing in the case that the full register is to be split into subvectors instead of scalars. This replaces uses of VBIT_CONVERT to present values as vector-of-vector types in order to make whole subvectors accessible via BUILD_VECTOR and EXTRACT_VECTOR_ELT. This is in preparation for adding extended ValueType values, where having vector-of-vector types is undesirable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2046e12f022ad098fe84776d55f4ea1a5e342c85 |
13-Jun-2007 |
Dan Gohman <gohman@apple.com> |
When creating CopyFromReg nodes, always use legal types. And use the correct types for the result vector, even though it is currently bitcasted to a different type immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f19f6bb31e45c5fc34b17d89d80ed938f61ff047 |
13-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
The fix that was applied for PR1224 stops the compiler crashing but breaks exception handling. The problem described in PR1224 is that invoke is a terminator that can produce a value. The value may be needed in other blocks. The code that writes to registers values needed in other blocks runs before terminators are lowered (in this case invoke) so asserted because the value was not yet available. The fix that was applied was to do invoke lowering earlier, before writing values to registers. The problem this causes is that the code to copy values to registers can be output after the invoke call. If an exception is raised and control is passed to the landing pad then this copy-code will never execute. If the value is needed in some code path reached via the landing pad then that code will get something bogus. So revert the original fix and simply skip invoke values in the general copying to registers code. Instead copy the invoke value to a register in the invoke lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
93a8e5ea0ccb6fab5cd1a155e62ae73e7dca7d47 |
13-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37566 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
cc8fb46cdc47cac1d4b3b92ffcca75f3216a8698 |
13-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Now if-converting all 4 variants of triangles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37565 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
976e2da081519d3438da6bf8e5ae7b25cc3433e4 |
12-Jun-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Fix a typo in bswap lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37544 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
9618bcaf7d3e6fd4a26fab47efb0bd2409b69e0f |
12-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Restructure code to reduce ifcvt compile time cost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37543 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a9bf49c7e321b789088779a608f3aa9287343982 |
10-Jun-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Fix the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37537 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
1c9f91d7b2653dc730a80f49ac3b6e2b9d6ca236 |
09-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't change CFG during analysis stage. Do so during ifcvt and invalidate predecessors accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37531 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
7e75ba802e4e5df9fe8f0d38a85e05adc05ea7f3 |
09-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Carefully remove extraneous CFG edges after each ifcvt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37529 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2acdbcccd8043d3a91430fdfcef6ba0760c1cc05 |
08-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Correct transfer predicate information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37524 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
edf4896a1461fe43081aab3ab7dda16f9dac8590 |
08-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Hidden options to help debugging ifcvt issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37523 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
2513330de8f8020d15d5bc96640a0957b7c733b9 |
08-Jun-2007 |
David Greene <greened@obbligato.org> |
Factor live variable analysis so it does not do register coalescing simultaneously. Move that pass to SimpleRegisterCoalescing. This makes it easier to implement alternative register allocation and coalescing strategies while maintaining reuse of the existing live interval analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37520 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
impleRegisterCoalescing.cpp
|
ac5f142b9f80797a294b42ef65d5c4bfbdc168da |
08-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow more cmp / bcc to be predicated; clean up triangle ifcvt checking code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37518 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
6cc7608213cc69ddeb0a25df360bbbe13a5c069d |
08-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Use more realistically sized vectors. Reserve capacity if we know in advance how much will be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37515 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
1a90a5aebe3488dc3feaab60ba16bed1659ba27b |
08-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Make throttle a hidden parameter, per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37511 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
53af4c01a87b8a60bce2cc19e5249aaed52d6523 |
08-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Throttle tail merging; handling blocks with large numbers of predecessors is too slow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37509 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
27af5c414b44315676b4625dc22e29a507ca9dca |
08-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Only remove the edge from entry to false if false block is merged. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37503 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
62000eee7de696cad5e3a307de395c77a61350ee |
07-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Do not change the size of function arguments. PR 1489. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f476961ae6839496b715339cc9c2e28d5c1afbf5 |
07-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
ifcvt a triangle: don't merge ifcvt block with rejoin block if it can fall through to it. If merged, the resulting block is not a candidate for iterative ifcvting since it contains both predicated and non-predicated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37487 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
d4de6d91b2fd855ff533661dc29c6a879aaa6456 |
07-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Lots of bug fixes. Now finally in a reasonable state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37485 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
96dd9a8b1b969ece5504559ec240930bcb1dddd9 |
06-Jun-2007 |
Owen Anderson <resistor@mac.com> |
Quick patch to fix the build, based on what it appears Evan meant to write. Evan, please check that this is in fact correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37471 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
b32edb4b2289e7e7bf842e41a9ff169925956c87 |
06-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Fold the exception actions table harder: if two typeid lists start the same, only output one copy of the common part. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37470 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
7a655479ae56f8b71ea266f3fde3f25a7bc7e8d4 |
06-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Lots of bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37467 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
9fac0b5ff24e733072bdde68c7f34590c1892922 |
06-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Additional fix for PR1422: make sure the landing pad label is placed in the correct machine basic block - do not rely on the eh.exception intrinsic being in the landing pad: the loop optimizers can move it out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37463 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3d6f60ec19e8c29d2b06eadb992c3b8380d60585 |
06-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a unconditional branch is added to branch to the false path during ifcvt, the predicated block cannot be iteratively ifcvted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37456 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
cb78d67a1a4e3b17d5801099940901740c67f526 |
06-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor statistics counting bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37451 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e705213b679fdfc27b74b12adf7f40c94b97f9b9 |
06-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a couple of typos and be smarter about order of blocks when ifcvt a diamond. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37449 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
993fc9594eca60ef5294b4c90cb2e36dd2503163 |
06-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix diamond shape ifcvt bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37444 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a1a9f408dadefb157d1204f72200936f013521fd |
06-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
ReplaceUsesOfBlockWith() can modify the predecessors list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37441 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e004317c66651a7bf8cdea7c15060c1f357c0e3e |
05-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not ifcvt if either true / false path is a backedge. Not profitable in almost all cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37440 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c53ef58a3549131e5307f10417406e8fd8aea6d4 |
05-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
I had a senior moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37433 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
8ed680cce3d0cff361f352abce75a917093f0656 |
05-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
If the predicated block requires an early exit, end the block there and add a unconditional branch to false block. AnalyzeBranch() does not understand early exits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37430 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
f5305f9cc767ac18c258b03425c2c26345003acc |
05-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix some subtle bugs: bug during succeessor copying; incorrectly updating states of ifcvted blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37429 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
fe7e397100edd4f2d618a1ff938dfa8624670ec1 |
05-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Tail merging wasn't working for predecessors of landing pads. PR 1496. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37427 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
916d07cdfa89e77118043ec6e14575512ae1bf85 |
04-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Global ctors / dtors alignment shouldn't be hard-coded at 4. e.g. It could be 8 for 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37421 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
3ec425470ff42da6b4c075cf6a46d4c002106487 |
04-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Forgot to check for if iterator reached the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37420 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
39833585556a69de12053ca1e104fe7edfd86cbd |
04-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Pass the DAG to SDNode::dump to let it do more detailed dumps in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37413 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
575e2f4ea874deae3af8a940f30df5348d272190 |
04-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Resolve implicit alignment before computing the FoldingSet information so that the CSE map always contains explicit alignment information. This allows more loads to be CSE'd when there is a mix of explicit-alignment loads and implicit-alignment loads. Also, in SelectionDAG::FindModifiedNodeSlot, add the operands to the FoldingSetNodeID before the load/store information instead of after, so that it matches what is done elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37411 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b6665f62c5cb19a04c4bb0eecbc498d406ec85b3 |
04-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Let IfConverter loose. Allow more aggressive subsumptions; reorder basic blocks to expose more ifcvt opportunities; code clean up and fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37409 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
0370fad74b48388412c52d1325512f2c218487fa |
04-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move ReplaceUsesOfBlockWith() out of BranchFolding into a MachineBasicBlock general facility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37408 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
achineBasicBlock.cpp
|
09085fe63d470e2a5dae8d7ef47251261d99a6a8 |
02-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
The semantics of invoke require that we always jump to the unwind block (landing pad) when an exception unwinds through the call. This doesn't quite match the way the dwarf unwinder works: by default it only jumps to the landing pad if the catch or filter specification matches, and otherwise it keeps on unwinding. There are two ways of specifying to the unwinder that it should "always" (more on why there are quotes here later) jump to the landing pad: follow the specification by a 0 typeid, or follow it by the typeid for the NULL typeinfo. GCC does the first, and this patch makes LLVM do the same as gcc. However there is a problem: the unwinder performs optimizations based on C++ semantics (it only expects destructors to be run if the 0 typeid fires - known as "cleanups"), meaning it assumes that no exceptions will be raised and that the raised exception will be reraised at the end of the cleanup code. So if someone writes their own LLVM code using the exception intrinsics they will get a nasty surprise if they don't follow these rules. The other possibility of using the typeid corresponding to NULL (catch-all) causes the unwinder to make no assumptions, so this is probably what we should use in the long-run. However since we are still having trouble getting exception handling working properly, for the moment it seems best to closely imitate GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37399 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
73ef58ab92d5cd23b119b7f206e5f8a8c529098d |
02-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Integrate exception filter support and exception catch support. This simplifies the code in DwarfWriter, allows for multiple filters and makes it trivial to specify filters accompanied by cleanups or catch-all specifications (see next patch). What a deal! Patch blessed by Anton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37398 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
02031c0ff8ad48acdb8c4a4058c4fafe600423e1 |
02-Jun-2007 |
Zhou Sheng <zhousheng00@gmail.com> |
Make LowerCTPOP() support arbitrary bitwidth integer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37397 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
8e63bf375d18118f46f43910c6a093c824eb4a7d |
02-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Fix CorrectExtraCFGEdges to allow for multiple LandingPad targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37394 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b4681638695e2e778ee6f1dd6448251ba3fde504 |
02-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Fancier algorithm in tail-merge comment implemented, so remove comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37393 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
a5a2117a4659ecadbec9476f2e537bcb7501b509 |
02-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Implement smarter algorithm for choosing which blocks to tail-merge. See test/CodeGen/X86/test-pic-jtbl.ll for a case where it works well; shaves another 10K off our favorite benchmark. I was hesitant about this because of compile speed, but seems to do OK on a bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37392 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b5a06907881751a2f16e8b5bc049684ba1532dee |
01-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Correctly mark early-exit on the false path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37387 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
398898cc6a4cba85d908444a2bb42b1a9fc3df2a |
01-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Since TypeInfos are passed as i8 pointers, a NULL TypeInfo should be passed as a null i8 pointer not as a 0 i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37383 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8c52938e44c6eacfee5faf7103e567f79fa5ebef |
01-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Ifcvt triangle: don't ifcvt 'true' BB if it has other predecessors; don't merge 'false' BB if it has other predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37382 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
fe57a7e4df512f3a40b8ff463f5362a59908becc |
01-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a bogus check. Even terminators in a ifcvt need to be predicated. Unconditional branches can usually be converted to conditional ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37380 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
5f70218c7534d7214cc23b7151ab25771bd3151b |
01-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow multiple ifcvt candidates to share children blocks; add some debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37379 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a52dd151378eeaad1369829b1dc3164874774e04 |
31-May-2007 |
Dale Johannesen <dalej@apple.com> |
Arrange for only 1 of multiple branches to landing pad to be kept. Do not remove empty landing pads (EH table needs to be updated) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37375 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f15d44cc108a1ce8139b3c80fff7b99cbd651333 |
31-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37374 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
3a4205367dc845d4cd804b47e061f8281777c9da |
31-May-2007 |
Chris Lattner <sabre@nondot.org> |
Fix the asmprinter so that a globalvalue can specify an explicit alignment smaller than the preferred alignment, but so that the target can actually specify a minimum alignment if needed. This fixes some objc protocol failures Devang tracked down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37373 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
8d410b69384ae4e178b3b522ef3357290a714de5 |
31-May-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Fix PR1424. When a function has FP, the register scavenging spill slot offset already was calculated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37371 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
8258210ed4ab819fd064be2616a4041afd761d79 |
30-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change traversal order to bottom up in preparation for more aggressive if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37365 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
4e7e6cd13ab8cab410ad11375101878865579325 |
30-May-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/PowerPC/2007-05-30-dagcombine-miscomp.ll, and PR1473. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37362 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
44008c59188ba61aeacfd8be049e3be548ffcea4 |
30-May-2007 |
Dale Johannesen <dalej@apple.com> |
Changed per review comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37355 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
95ef406e0f2da0197f8b46849319c07e9bea1e55 |
30-May-2007 |
Dale Johannesen <dalej@apple.com> |
Make stable_sort in tail merging actually be stable (it never was, but didn't matter until my last change). Reenable tail merging by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37354 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
58fbb9f5babf00bd0a0e5b0f39bb718275972ec6 |
30-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't merge in tail block of a diamond if it has more than one predecessors after if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37353 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c8ed9badfabf8933acf5fcf8a58248c93f401076 |
30-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
If there is an empty block between a source and its successor block, it still requires a unconditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37344 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
f277ee4be7edabb759a7f78138b693d72d0c263f |
29-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add missing const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37341 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
924361aef931a8f0c366b1090021d5be13c37c6b |
26-May-2007 |
Zhou Sheng <zhousheng00@gmail.com> |
Correct the logic in LowerPartSet which cleared the bits from 0 to low-1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37331 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
3adf951364c30d30b528133df1d4cedf2c2b7046 |
25-May-2007 |
Chris Lattner <sabre@nondot.org> |
tighten up recursion depth again git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4bec8ae694be9db7505f5589b018a84334730875 |
25-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Silly boog. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37328 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
035fdeb37048bae2f49d3c3b8c246cfc26d9a80d |
24-May-2007 |
Dale Johannesen <dalej@apple.com> |
Blocks that cond-br and uncond-br/fallthrough to same block should have only one successor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37324 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
de0963df420f408b2d813bd16f3c040c2d189f63 |
24-May-2007 |
Dale Johannesen <dalej@apple.com> |
Fix for PR1444: do not create two successors to the same block. Temporarily, this breaks CodeGen/Generic/2006-02-12-InsertLibraryCall.ll by exposing an unrelated latent problem; working on that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37323 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
fa73ea2d9fd785a214256ca44488407b26c5a3db |
24-May-2007 |
Dan Gohman <gohman@apple.com> |
Minor comment cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37321 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
237898ac1f6f6d1915282cc3afaa3c36435e76c0 |
24-May-2007 |
Dan Gohman <gohman@apple.com> |
Add explicit qualification for namespace MVT members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c843abe868be76bb18d77ca6bda53dd4d2cf12f7 |
24-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo that caused combiner to create mal-formed pre-indexed store where value store is the same as the base pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7aea8320340ce867eb4328aeec52cb02c88ef0b3 |
23-May-2007 |
Dale Johannesen <dalej@apple.com> |
Two tail merging improvements: When considering blocks with more than 2 predecessors, merge the block with the largest number of matching insns, rather than the first block found. Considering that 1 matching insn is enough to show a win for candidates that already end with a branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37315 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
070280e97f801ae809ddcc7930c153929f253997 |
23-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Mark all calls as "could throw", when exceptions are enabled. Emit necessary LP info too. This fixes PR1439 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37311 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
501fee71e077aad705ab2ab86741aec15b779174 |
23-May-2007 |
Chris Lattner <sabre@nondot.org> |
prevent exponential recursion in isNegatibleForFree git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a13aa95bc8d1f0838b46a456c607a7bddab6412a |
23-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Preliminary iterative if-conversion support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37309 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
e6e435498c0e35d98644f868886d39c4665bb83a |
22-May-2007 |
Dale Johannesen <dalej@apple.com> |
name change requested by review of previous patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37289 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
2b77d3b09138cb1081f003042be55503d243d323 |
22-May-2007 |
Owen Anderson <resistor@mac.com> |
Silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37288 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
81da02b553b86868637f27b89c6e919c31ed5b51 |
22-May-2007 |
Dale Johannesen <dalej@apple.com> |
Make tail merging the default, except on powerPC. There was no prior art for a target-dependent default with a command-line override; this way should be generally usable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37285 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
LVMTargetMachine.cpp
|
a6b4f43eaa5a59d6624fbbfcd8d339365129fafd |
22-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
If-convert early exit blocks (returns, etc.); bug fixes, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37270 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
7bf7a446a5173b60a88b588a053dec374df07df1 |
21-May-2007 |
Duncan Sands <baldrick@free.fr> |
Only emit one entry in the exception action table for each action, even if it occurs for multiple landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37267 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
7667c0bac3cb46249fc14bb2f76111fb1625cdd6 |
19-May-2007 |
Chris Lattner <sabre@nondot.org> |
same patch as the previous one, but the symmetric case git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2ad913b3428b634f46d6606a150c5d180b528197 |
19-May-2007 |
Chris Lattner <sabre@nondot.org> |
Disable the (A == (B-A)) -> 2*A == B xform when the sub has multiple uses (in this case, the xform introduces an extra operation). This compiles PowerPC/compare-duplicate.ll into: _test: subf r2, r3, r4 cmplw cr0, r2, r3 bne cr0, LBB1_2 ;F instead of: _test: slwi r2, r3, 1 subf r3, r3, r4 cmplw cr0, r4, r2 bne cr0, LBB1_2 ;F This is target independent of course. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37246 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7f8ff8af1a4372189f22136eb95fe67e3dcfae41 |
18-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37237 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
36489bbbacb2adf0d639faa2d1bc2bbde9936396 |
18-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change to depth-first traversal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37236 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
a469b69ddae4665aec02fd75a51c31ad1cff043d |
18-May-2007 |
Dale Johannesen <dalej@apple.com> |
Document an inefficiency in tail merging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37235 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
fcc4dd91e5d4ba2f8fb8bd9ff24ee0ca0e08ab30 |
18-May-2007 |
Dan Gohman <gohman@apple.com> |
Qualify calls to getTypeForValueType with MVT:: too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cf6cc112d5d8eee8e4cff04615e6ecf8946e17e8 |
18-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Some restructuring in preparation for most aggressive if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37231 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
b55757ec5f6f0218342a8910e1bbd9f018adc7d7 |
18-May-2007 |
Dan Gohman <gohman@apple.com> |
Qualify several calls to functions in the MVT namespace, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
6092ca155610b6c4cb16f21a1dad1f990758730a |
18-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for blocks that end with a return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37227 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
47d25020728d23ca62a805963e3b0885a4df1bc6 |
18-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
If true / false blocks fallthrough before ifcvt, add unconditional branches to ifcvt'd block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37200 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
1cf08c1d6d59cbeead241f44d898eaa2a3bf1717 |
18-May-2007 |
Dale Johannesen <dalej@apple.com> |
Remove some unneeded branches. (spotted by Evan, thanks) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37198 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
86cbfea33bc736482cbf6c4ed9a01aefa704d097 |
18-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Make use of target specific block size limits; bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37195 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
4f098788d303bed05da6000f3ff24177aad56623 |
18-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move isSuccessor() offline, change it to use std::find. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37190 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
3fc5b01d38ddccbe53ff0b32cc0100351d698c66 |
17-May-2007 |
Chris Lattner <sabre@nondot.org> |
disable MaskedValueIsZero, ComputeMaskedBits, and SimplifyDemandedBits for i128 integers. The 64-bit masks are not wide enough to represent the results. These should be converted to APInt someday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b429f7303eecc6fe0218d86e2f1321f70473deb4 |
17-May-2007 |
Chris Lattner <sabre@nondot.org> |
add expand support for ADDC/SUBC/ADDE/SUBE so we can codegen 128-bit add/sub on 32-bit (or less) targets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37168 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d60483ef99a15630abba934001b1ff7d16a33b18 |
17-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add target hook to specify block size limit for if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37134 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
98a6c62aff7393683571b05f73f6f22701569c09 |
17-May-2007 |
Dale Johannesen <dalej@apple.com> |
Don't fold bitconvert(load) for preinc/postdec loads. Likewise stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d6ddc308f0320f1c35618cca29edcbf9418d65de |
16-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
isBlockPredicable() always ignore terminal instructions; add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37126 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
c3a289c4b5a60a204363ba4ae9f017ba87b714f9 |
16-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Rename M_PREDICATED to M_PREDICABLE; Moved isPredicable() to MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37121 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
achineInstr.cpp
|
53c3a333a470dafd0160e64da2f196e7121cdf3f |
16-May-2007 |
Duncan Sands <baldrick@free.fr> |
Output exception call-sites in address order, as required by the unwinding runtime. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37104 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
c76d4410ab31723ea1a44821f2daa01a5cfef8eb |
16-May-2007 |
Chris Lattner <sabre@nondot.org> |
Use a ptr set instead of a linear search to unique TokenFactor operands. This fixes PR1423 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c5d05ef35780bf822765c5a3e2c13201450591ba |
16-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Devang points out that we need an assertion here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37097 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
93003b8cf221f084e71e2b4033c41ff2cae6c36d |
16-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix: should check ABI alignment, not pref. alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37094 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4e654852f1bee3813dcc1d207710f041cdd22717 |
16-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Initial commit of (very basic) if converter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37092 91177308-0d34-0410-b5e6-96231b3b80d8
fConversion.cpp
|
14ba0cc42959a3fcc9b6781aea614b01877fb55f |
15-May-2007 |
Dale Johannesen <dalej@apple.com> |
Remove extra CFG edges before doing these passes; it makes them happier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37089 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b5bb7ffa9c40d13b21d1a04aec53a4428a6c02a8 |
15-May-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Fix an infinite recursion in GetNegatedExpression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37086 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
49b5c27baa5a7ee0bb5eb8b6b439c30837011fcf |
15-May-2007 |
Duncan Sands <baldrick@free.fr> |
The index into the actions table is a ULEB128 not a SLEB128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37084 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
76c94b616924b19b850e274df0c6485b9395fcb9 |
15-May-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Un-brain-dead-ify the lowering of part set for the reverse case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37071 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
c90233b836c5d00045bbe7ca3d5d92df4825f5a1 |
15-May-2007 |
Chris Lattner <sabre@nondot.org> |
Fix some subtle issues handling immediate values. This fixes test/CodeGen/ARM/2007-05-14-InlineAsmCstCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
19e3f31f6acd9f5ce3cdd8372d4cb598ed921f95 |
15-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added getNumExplicitOperands and findFirstPredOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37064 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2944652569d1beb538f5a72ab1a4bb581ea5cf91 |
15-May-2007 |
Chris Lattner <sabre@nondot.org> |
implement a simple fneg optimization/propagation thing. This compiles: CodeGen/PowerPC/fneg.ll into: _t4: fmul f0, f3, f4 fmadd f1, f1, f2, f0 blr instead of: _t4: fneg f0, f3 fmul f0, f0, f4 fmsub f1, f1, f2, f0 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37054 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8dfffd5a079c35e317b843f9f249d2fa36bcd944 |
14-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Only worry about intervening kill if there are more than one live ranges in the interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37052 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2f6cb2b14c5811b154b06163355b3c8bc8b73231 |
14-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1406: v1 = r2 = move v1 = op r2<kill> ... r2 = move v1 = op r2<kill> Clear the first r2 kill if v1 and r2 are joined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37050 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8b966d9fd0995fbc897ca06ff3b15e8178c0d0a3 |
14-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
When marking a register as being implicitly defined, make sure to clear its partial use info as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37046 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
9bd57b6561abd7701bff5d46bb88fed6b9a8dbb9 |
14-May-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Give names to the final result values of the part_set computations. This just aids in readability and debugability of the output. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37037 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
185bc8905a8aa14f3bc674801bb5c6b11662cf8d |
13-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Emit function debug frames in one atom. This will prevent us from generating incorrect assembler in case of both debug information & exception information presented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37019 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
8c7c17354c7d954de95a064ee89f8c82cccdb819 |
13-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Emit multiple common EH frames for multiple (including blank) personality functions. This partly fixes PR1414: now we're restricted only to one personality function per eh frame, not per module. Further work on "multiple personalities" topic needs representative example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37018 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
0ff3ca4f9240048462d4cf8e708b519177acf1b4 |
13-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
More DWARF-related things cleanup: 1. Fix PR1380 2. Apply Duncan's patch from PR1410 3. Insert workaround for "one personality function per module" as noted in PR1414 4. Emit correct debug frames for x86/linux. This partly fixes DebugInfo/2006-11-06-StackTrace.cpp: stack trace is shown correctly, but arguments for function on top of stack are displayed incorrectly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37015 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
5156f5b214bafc24e20ed49114b35ffbd55dc623 |
12-May-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Get the size of auto arrays right, regardless of its changing size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37006 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
1e4c23a2d192479d264e2028843f204de2658cda |
12-May-2007 |
Devang Patel <dpatel@apple.com> |
Fix http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049516.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36998 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
22d5c37f328950127981b389389abb985d99da28 |
11-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Perform correct actions numbers/sizes computation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36988 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
29c9cafe4698cf045bf0edb042afa24335eeed97 |
11-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix action No calculation in multiple-invoke-one-LP mode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36987 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
54f4a6780a33043031af97571dfffdac5a4aa35c |
11-May-2007 |
Dale Johannesen <dalej@apple.com> |
Do not generate branches to entry block. This fixes several test suite failures on PPC (can happen only when prologue code is null) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36979 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
432a7faf033b2d23162efd892b723f9b8481941a |
11-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Ooops. Some debugging stuff :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36978 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
eeb37e0b80f6f71b7620099083e7c10a9978ef86 |
11-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Allow multiple invokes per landing pad. This (probably) fixes PR1410. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36977 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
c1fe16610ade320bade1a970fa2721b0558321b8 |
10-May-2007 |
Duncan Sands <baldrick@free.fr> |
Later computations assume we are aligned at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36975 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
e25514d0a599c4256509b8512da71f5ae6090aa6 |
10-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
TypeIds are indexed by j, not i git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36974 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
76b38fcabeba725e166a2ff72c56fe31d784b229 |
10-May-2007 |
Dale Johannesen <dalej@apple.com> |
Make tail merging handle many more cases (all it can, I think). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36966 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2c4f94363a02f482ddcfccc343978595a8a79438 |
09-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Can't fold the bit_convert is the store is a truncating store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7294b58ecdb430d1473d0a9220a234e62a710d54 |
09-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Do not assert, when case range split metric is zero and JTs are not allowed: just emit binary tree in this case. This fixes PR1403. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e23e00ddeac6d45158a725492740f3a405c07717 |
08-May-2007 |
Bill Wendling <isanbard@gmail.com> |
Change names from RA to something unique to get rid of naming conflicts with certain linkers... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36944 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocLocal.cpp
|
56184904cd9a348920de0c3b391d42b691091137 |
08-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate MarkVirtRegAliveInBlock recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36943 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
c2cd2b29f5b8e2eda88a1edadcd4bc7478a2439c |
07-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Forgot a check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36910 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
59d5b68dffc4b25290ab21416cd33a7956269389 |
07-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Enable a couple of xforms: - (store (bitconvert v)) -> (store v) if resultant store does not require higher alignment - (bitconvert (load v)) -> (load (bitconvert*)v) if resultant load does not require higher alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36908 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7d33b4c59b56afb96feea71073c1d9e70c457e28 |
07-May-2007 |
Dale Johannesen <dalej@apple.com> |
Handle some non-exit blocks in tail merging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36907 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
4fee7034d5a9dae46e78ff300fd6dbf2cdfcb8f9 |
07-May-2007 |
Duncan Sands <baldrick@free.fr> |
Parameter attributes on invoke calls were being lost due to the wrong attribute index being used. Fix proposed by Anton Korobeynikov, who asked me to implement and commit it for him. This is PR1398. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36906 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b682448ebd8074dd63b40d41204fc69a417e0eac |
06-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Detabify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36891 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ecd94c804a563f2a86572dcf1d2e81f397e19daa |
06-May-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36873 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
3194f575413613d3653a483859724fe63aba4b66 |
05-May-2007 |
Duncan Sands <baldrick@free.fr> |
Use the personality function that was registered with MMI rather than hardwiring in the C++ one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36789 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
b464c446791f03cd8abc0b55bab4d472de534218 |
05-May-2007 |
Chris Lattner <sabre@nondot.org> |
Propagate alignment/volatility in two places. Implement support for expanding a bitcast from an illegal vector type to a legal one (e.g. 4xi32 -> 4xf32 in SSE1). This fixes PR1371 and CodeGen/X86/2007-05-05-VecCastExpand.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36787 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
01dfdcd84b604063d739b92ee12c119cc18d799f |
05-May-2007 |
Duncan Sands <baldrick@free.fr> |
Spelling fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36781 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
2a07e2f4df8010bbb07591a097b5e55101ed4a96 |
05-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Emit sections/directives in the proper order. This fixes PR1376. Also, some small cleanup was made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36780 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
3b346368deddbe3cb853b29472de46bc9b58d6b8 |
04-May-2007 |
Duncan Sands <baldrick@free.fr> |
A bitcast of a global variable may have been constant folded to a GEP - handle this case too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36745 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a7d4a04d244c5a8c6364af2e39a512ec6b9600a2 |
04-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't create indexed load / store with zero offset! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
75c7d2bd551acd1ad4f0f58b763ec8840f1d9c34 |
03-May-2007 |
Chris Lattner <sabre@nondot.org> |
Allow i/s to match (gv+c). This fixes CodeGen/PowerPC/2007-05-03-InlineAsm-S-Constraint.ll and PR1382 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1997473cf72957d0e70322e2fe6fe2ab141c58a6 |
03-May-2007 |
Devang Patel <dpatel@apple.com> |
Drop 'const' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
LFWriter.cpp
LFWriter.h
iveIntervalAnalysis.cpp
iveVariables.cpp
achOWriter.cpp
achOWriter.h
achineFunction.cpp
achineModuleInfo.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/SelectionDAGISel.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
6ad8256d769f352103b6101c7090e4bfc0389330 |
03-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly set arguments bitwidth of EHSELECT node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36654 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3e15bf33e024b9df9e89351a165acfdb1dde51ed |
02-May-2007 |
Devang Patel <dpatel@apple.com> |
Use 'static const char' instead of 'static const int'. Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
LFWriter.cpp
LFWriter.h
iveIntervalAnalysis.cpp
iveVariables.cpp
achOWriter.cpp
achOWriter.h
achineFunction.cpp
achineModuleInfo.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/SelectionDAGISel.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
c718288f4939258a51ec5ae0c5be7b1a05eb6898 |
02-May-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Fix build error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36648 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineModuleInfo.cpp
|
79dda2b0486dd90e2a1b1a1e4be74650a8258ce9 |
02-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix couple of bugs connected with eh info: 1. Correct output offsets on Linux 2. Fix "style" of personality function. It shouldn't be indirect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36633 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
794fd75c67a2cdc128d67342c6d88a504d186896 |
01-May-2007 |
Devang Patel <dpatel@apple.com> |
Do not use typeinfo to identify pass in pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
LFWriter.cpp
LFWriter.h
iveIntervalAnalysis.cpp
iveVariables.cpp
achOWriter.cpp
achOWriter.h
achineFunction.cpp
achineModuleInfo.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/SelectionDAGISel.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
|
8e3347332120956538a6d882b02719e34b57f0cd |
01-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
If call frame is not part of stack frame and no dynamic alloc, eliminateFrameIndex() must adjust SP offset with size of call frames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36625 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
498f55989a0ef437c098452ff83ccfe7ace2d802 |
01-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Forgot about chain result; also UNDEF cannot have multiple values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7bf1c272ab27297a7bbab329de3f17ddb26e02a3 |
01-May-2007 |
Nate Begeman <natebegeman@mac.com> |
llvm bug #1350, parts 1, 2, and 3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36618 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5c3885ce8e6a3dc69913b50fe6bdc0c89c5432d5 |
01-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Under normal circumstances, when a frame pointer is not required, we reserve argument space for call sites in the function immediately on entry to the current function. This eliminates the need for add/sub sp brackets around call sites. However, this is not always a good idea. If the "call frame" is large and the target load / store instructions have small immediate field to encode sp offset, this can cause poor codegen. In the worst case, this can make it impossible to scavenge a register if the reserved spill slot is pushed too far apart from sp / fp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36607 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
45a7ca9b23e7e3447465cdf97788d137aa98cb47 |
01-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
* Only turn a load to UNDEF if all of its outputs have no uses (indexed loads produce two results.) * Do not touch volatile loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
77edc4b1b004726d96c932356750b9f3c96d74dd |
01-May-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1228 and CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36602 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c11ce86943847a95ee20b65b4d1fc4611b59ddc6 |
01-May-2007 |
Chris Lattner <sabre@nondot.org> |
print isLandingPad() for MBBs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36600 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
e7cf56aeeebed7423402fdf84c5b1aaf6830316e |
30-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Continue refactoring inline asm code. If there is an earlyclobber output register, preallocate all input registers and the early clobbered output. This fixes PR1357 and CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36599 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e47e75b46185aaa4927ea1da94ff8574bcc3458a |
30-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36594 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
bf996f1d5e441c7504ff155d818190f593d54672 |
30-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
refactor GetRegistersForValue to take OpInfo as an argument instead of various pieces of it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36592 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3ff90dc1c8aaa5d9be94cdca8c4a7e71f45da8fd |
30-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
refactor some code, no functionality change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1f6f4c7346b6d78f097f25777211fdd4e4267086 |
30-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Clean up multi-line asam string printing. Instead of printing: # InlineAsm Start subfc r3,r5,r4 subfze r4,r3 # InlineAsm End print: # InlineAsm Start subfc r3,r5,r4 subfze r4,r3 # InlineAsm End git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36589 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
6995cf6015580eeab07a1c671fca180084a1325e |
29-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
generalize aggregate handling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c6c98af9e5814e8066c82f20ca11cf646a5fc289 |
29-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement review feedback git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36564 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
09e4b7e1b7d624a3010ace2c23783e77b366fa7e |
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
memory operands that have a direct operand should have their stores created before the copies into physregs are done. This avoids having flag operands skip the store, causing cycles in the dag at sched time. This fixes infinite loops on these tests: test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll for PR1308 test/CodeGen/PowerPC/2007-01-29-lbrx-asm.ll test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll test/CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll for PR828 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c83994e5d4c75b4dc3d0e2ac52972a4fff816eb6 |
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate more redundant constraint type analysis git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2a600be22618b09165f3fe2a88bbe2fb71bc478d |
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
merge constraint type analysis stuff together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0c58340aead6880876076ee4e3abf3aca92a2647 |
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Significant refactoring of the inline asm stuff, to support future changes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a80e1181b78183dc36ec6568559d38faa86981f0 |
28-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement review feedback. Aliasees can be either GlobalValue's or bitcasts of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36537 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
44b2c5098f5cf766b4eff43d9eb0d8a9a143e7d8 |
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
memory inputs to an inline asm are required to have an address available. If the operand is not already an indirect operand, spill it to a constant pool entry or a stack slot. This fixes PR1356 and CodeGen/X86/2007-04-27-InlineAsm-IntMemInput.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36536 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f2f3cd5129a1eef6034ce09314b10f3a1e1abaf6 |
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2007-04-27-LargeMemObject.ll and CodeGen/Generic/2007-04-27-InlineAsm-X-Dest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36534 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b01731812284e5396dcb6dd3b0eae769fcaed6d1 |
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix this to match change to InlineAsm class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eb7f34f2cb1584f155b9cefdb246b300fb2fc9c4 |
27-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix incorrect legalization of EHSELECTOR. This fixes CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36510 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4c6cfad85e63e2dbe273431bdf20533b495c955d |
27-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Expand UINT_TO_FP in turns of SINT_TO_FP when UINTTOFP_* libcalls are not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
99f9a77c496e8dc65fa7d9f693de9bec9aa574e5 |
27-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
improve EH global handling, patch by Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36499 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
64c0f84c725a5a21c4753575347f24ce0e250088 |
26-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
enable Anton's shift/and switch lowering stuff! It now passes ppc bootstrap successfully! woohoo... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ab8fd404034439ba23230df512a8a2779e5d48a3 |
26-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
edc1d159841fd279d58177bfd6ac4bc1f616d91a |
26-Apr-2007 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
faa510726f4b40aa4495e60e4d341c6467e3fb01 |
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
egisterScavenging.cpp
irtRegMap.cpp
|
8e29b2192b498342682f9d79881c00248e3a5c0a |
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36473 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
05350288a6bc22a294ff7625f244731ef7125f8a |
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Be careful when to add implicit kill / dead operands. Don't add them during / post reg-allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36458 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
6c087e5585b227f3c1d8278304c7cfbc7cd4f6e8 |
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Match MachineFunction::UsedPhysRegs changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36452 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
irtRegMap.cpp
|
505e5510a258699d1fb267142c247079a4b3d796 |
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change UsedPhysRegs from array bool to BitVector to save some space. Setting / getting its states now go through MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36451 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
ade31f9f07537502f68850d771678bfbef003c7e |
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36449 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
e96f50142e8d12a2e12c3329bffb372e09731dd2 |
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Data structure change to improve compile time (especially in debug mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36447 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
c1a3520580c11f5d3430d5dab1e8006f8a0c7dc2 |
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
This was lefted out. Fixed sumarray-dbl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8b0a8c84da2030ee8f4440d5b60a8033de691222 |
25-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement aliases. This fixes PR1017 and it's dependent bugs. CFE part will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36435 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
24a3cc4c83e5edb25fadf7b8979a26b4451795c6 |
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1306. - A register def / use now implicitly affects sub-register liveness but does not affect liveness information of super-registers. - Def of a larger register (if followed by a use later) is treated as read/mod/write of a smaller register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36434 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
92efbfcd2d2309aedbab4a1269763c3de96219d4 |
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36431 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ea84c5ee952c62dd0c703c9852d7a60715e4a435 |
25-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
support for >4G stack frames git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36425 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
a401b1e1c5eb9563617db8a2477b4c5f8b239521 |
25-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
support > 4G stack objects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36422 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
|
6266c18ea12b42bd9b262a1f4f8c3d7a85130118 |
25-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
allow support for 64-bit stack objects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
964dd860542aa12bea93474dc159b4a7e3a6a9c1 |
25-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Be more careful about folding op(x, undef) when we have vector operands. This fixes CodeGen/X86/2007-04-24-VectorCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36413 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
95b39550344bad0d15d1ffa7afc300eb1533ed19 |
24-Apr-2007 |
Bill Wendling <isanbard@gmail.com> |
Assertion when using a 1-element vector for an add operation. Get the real vector type in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36402 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f147a8d56e0811525916f4d8cd5dd1777f834a85 |
24-Apr-2007 |
Scott Michel <scottm@aero.org> |
Use '-1U' where '-1UL' is obvious overkill, eliminating gcc warnings about tests always being true in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
00d56b96e599acbc4f895e86e17029ae7c45f142 |
24-Apr-2007 |
Dale Johannesen <dalej@apple.com> |
modify per review commentary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36383 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
19f5469be4af517aa7953988a6d2e92cc05d4c62 |
23-Apr-2007 |
Dale Johannesen <dalej@apple.com> |
make EmitAlignment work the way Chris says it should git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36368 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
95c218a83ecf77590b9dc40c636720772d2b5cd7 |
23-Apr-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
PR400 phase 2. Propagate attributed load/store information through DAGs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2c5c111b6c144b05718404c85b9dfcc76b1619e7 |
21-Apr-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
X86 TLS: Implement review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c67bdc288aac130d88630f7fa95ceca6bcf95077 |
21-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Revert Christopher Lamb's load/store alignment changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2330e4d4c4f8008d17f5a38ac0d7b04e139d4131 |
21-Apr-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
add support for alignment attributes on load/store instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36301 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0d3b67809ccab229a03db8c1bede852fb89eb081 |
21-Apr-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Allow the lowering of ISD::GLOBAL_OFFSET_TABLE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36290 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b3a0417cad8b625acc3033bd5e24afb9ffd0b084 |
20-Apr-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Implement "general dynamic", "initial exec" and "local exec" TLS models for X86 32 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36283 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
f44c72817e3a7f517ad796705effb8d59e6a6dfa |
18-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
VarInfo::UsedBlocks is no longer used. Remove. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36250 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
61a4c072b9407983df1a6c965ada57474766b282 |
18-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
allow SRL to simplify its operands, as it doesn't demand all bits as input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ec06e9a6707b9b00889e34ebad7cd3f20cb70bb6 |
18-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
When replacing a node in SimplifyDemandedBits, if the old node used any single-use nodes, they will be dead soon. Make sure to remove them before processing other nodes. This implements CodeGen/X86/shl_elim.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0a16a1f73816f7bdd420212feb72467707d5ac02 |
18-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
fix a pasto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
faf05bbaea5893488dac4eee58700912ddfe28cc |
18-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't populate TryAgainList when coalescing only physical registers with virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36240 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3fefc182a00663bfadbcbe17711b6d08469c9727 |
18-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Increment use count of new virtuals created during PHI elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36233 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
8c7d2d56bf5aa2186e2d08ed1dc37c2f392b4aae |
18-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in my previous patch, grabbing the shift amount width from the wrong operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
895c4ab564c145d16a585201ea49b91541d806b6 |
17-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fold (x << c1)>> c2 into a single shift if the bits shifted out aren't used. This compiles: int baz(long long a) { return (short)(((int)(a >>24)) >> 9); } into: _baz: srwi r2, r3, 1 extsh r3, r2 blr on PPC, instead of: _baz: slwi r2, r3, 8 srwi r2, r2, 9 extsh r3, r2 blr GCC produces: _baz: srwi r10,r4,24 insrwi r10,r3,24,0 srawi r9,r3,24 srawi r3,r10,9 extsh r3,r3 blr This implements CodeGen/PowerPC/shl_elim.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
20b0abc24fb3fa15098b7cb12c7762fb0770e133 |
17-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Copy coalescing change to prevent a physical register from being pin to a long live interval that has low usage density. 1. Change order of coalescing to join physical registers with virtual registers first before virtual register intervals become too long. 2. Check size and usage density to determine if it's worthwhile to join. 3. If joining is aborted, assign virtual register live interval allocation preference field to the physical register. 4. Register allocator should try to allocate to the preferred register first (if available) to create identify moves that can be eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36218 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
e52eef8e9a10ada9efc1fed115e5b6eefb22b1da |
17-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a register allocation preference field; add a method to compute size of a live interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36216 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
38b7ca6651643f1f98e1f7b0e7f8a3499883804b |
17-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Keep track of number of uses within the function per virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36214 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
95a5e0507e07fa3ef7c61aade9eb0efd1d716a25 |
17-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
SIGN_EXTEND_INREG does not demand its top bits. Give SimplifyDemandedBits a chance to hack on it. This compiles: int baz(long long a) { return (short)(((int)(a >>24)) >> 9); } into: _baz: slwi r2, r3, 8 srwi r2, r2, 9 extsh r3, r2 blr instead of: _baz: srwi r2, r4, 24 rlwimi r2, r3, 8, 0, 23 srwi r2, r2, 9 extsh r3, r2 blr This implements CodeGen/PowerPC/sign_ext_inreg1.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9a9203b8948cc4ab275ca21d34821589e272c47c |
17-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Fix problems in the PartSet lowering having to do with incorrect bit width. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36180 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
bed2946a96ecb15b0b636fa74cb26ce61b1c648e |
16-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Removed tabs everywhere except autogenerated & external files. Add make target for tabs checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36146 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.h
EADME.txt
electionDAG/ScheduleDAGSimple.cpp
electionDAG/TargetLowering.cpp
|
1c35968d4d622c30b82698506a6fa128f012a504 |
14-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
disable switch lowering using shift/and. It still breaks ppc bootstrap for some reason. :( Will investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e01017bba4f44ab65eba11fd065c9cd16b5edb33 |
14-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix PR1325: Case range optimization was performed in the case it shouldn't. Also fix some "latent" bug on 64-bit platforms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3ff981749bed4347dfe7196ac066be1d4f51ea1f |
14-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
disable shift/and lowering to work around PR1325 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35985 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8085bcfdca515a359c746ea475a3b8e9cac1c077 |
13-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix PR1323 : we haven't updated phi nodes in good manner :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35963 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
df41353497b7b561649303a6a8bf23a7cb995f5a |
12-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Make sure intrinsics that are lowered to functions make the function weak linkage so we only end up with one of them in a program. These are, after all overloaded and templatish in nature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35956 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
eeedcb6905febe0d3b68be2ce55347a211843da6 |
12-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Fix bugs in generated code for part_select and part_set so that llc doesn't barf when CBE is run with a program that contains these intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35946 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
37958093c6462a1226f9cfaeebf4d736aaf3606e |
12-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Fix a bug in PartSet. The replacement value needs to be zext or trunc to the size of the value, not just zext. Also, give better names to two BBs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35945 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
3a508c94a6c6f124e8b0549358ce76deb92ab662 |
12-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
the result of an inline asm copy can be an arbitrary VT that the register class supports. In the case of vectors, this means we often get the wrong type (e.g. we get v4f32 instead of v8i16). Make sure to convert the vector result to the right type. This fixes CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35944 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4829b1c6ab810ee274a104985915988b4f92aa7a |
12-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
fold noop vbitconvert instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c2941779c3ed1ffbe66716c6f6b2a9fc38a5ea7b |
12-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix weirdness handling single element vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f75b874957aa61e81804e266daf671aa9dcc75b9 |
12-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1284: Implement the "part_set" intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35938 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
c24bbaddf869aa904300fcb0e8174070bde5c5a2 |
11-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
fix an infinite loop compiling ldecod, notice by JeffC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35910 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1eba01e9a04f4a59ddc1cb66dc049a333f256112 |
11-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix this harder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c56a81dff1553536efee17445ef5eab276f22380 |
11-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
don't create shifts by zero, fix some problems with my previous patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35887 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
20a35c3fa57ba9c3184d8848541d9a89b6c2b338 |
11-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Teach the codegen to turn [aez]ext (setcc) -> selectcc of 1/0, which often allows other simplifications. For example, this compiles: int isnegative(unsigned int X) { return !(X < 2147483648U); } Into this code: x86: movl 4(%esp), %eax shrl $31, %eax ret arm: mov r0, r0, lsr #31 bx lr thumb: lsr r0, r0, #31 bx lr instead of: x86: cmpl $0, 4(%esp) sets %al movzbl %al, %eax ret arm: mov r3, #0 cmp r0, #0 movlt r3, #1 mov r0, r3 bx lr thumb: mov r2, #1 mov r1, #0 cmp r0, #0 blt LBB1_2 @entry LBB1_1: @entry cpy r2, r1 LBB1_2: @entry cpy r0, r2 bx lr Testcase here: test/CodeGen/Generic/ispositive.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1982ef20c44d85386a239a1b24eb2bb72cea29ec |
11-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Codegen integer abs more efficiently using the trick from the PPC CWG. This improves codegen on many architectures. Tests committed as CodeGen/*/iabs.ll X86 Old: X86 New: _test: _test: movl 4(%esp), %ecx movl 4(%esp), %eax movl %ecx, %eax movl %eax, %ecx negl %eax sarl $31, %ecx testl %ecx, %ecx addl %ecx, %eax cmovns %ecx, %eax xorl %ecx, %eax ret ret PPC Old: PPC New: _test: _test: cmpwi cr0, r3, -1 srawi r2, r3, 31 neg r2, r3 add r3, r3, r2 bgt cr0, LBB1_2 ; xor r3, r3, r2 LBB1_1: ; blr mr r3, r2 LBB1_2: ; blr ARM Old: ARM New: _test: _test: rsb r3, r0, #0 add r3, r0, r0, asr #31 cmp r0, #0 eor r0, r3, r0, asr #31 movge r3, r0 bx lr mov r0, r3 bx lr Thumb Old: Thumb New: _test: _test: neg r2, r0 asr r2, r0, #31 cmp r0, #0 add r0, r0, r2 bge LBB1_2 eor r0, r2 LBB1_1: @ bx lr cpy r0, r2 LBB1_2: @ bx lr Sparc Old: Sparc New: test: test: save -96, %o6, %o6 save -96, %o6, %o6 sethi 0, %l0 sra %i0, 31, %l0 sub %l0, %i0, %l0 add %i0, %l0, %l1 subcc %i0, -1, %l1 xor %l1, %l0, %i0 bg .BB1_2 restore %g0, %g0, %g0 nop retl .BB1_1: nop or %g0, %l0, %i0 .BB1_2: restore %g0, %g0, %g0 retl nop It also helps alpha/ia64 :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35881 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
18da0720887527ed570e9703ae5f290beb491ee1 |
11-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1146: Put the parameter attributes in their own ParamAttr name space. Adjust the rest of llvm as a result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35877 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c6eb6d72550aa3f7241141e3e28520dfef738c81 |
10-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
apparently some people commit without building the tree, or they forget to commit a LOT of files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35858 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
2da8da46ba48b857a2e3e71a97c18ebb23c14af5 |
10-Apr-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
No longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35850 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2b95fd67da204c6f608cc280ea91230ff781d998 |
10-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
remove dead target hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b445d0cbb9b299ba8ec7be2494e35c501b6d3a93 |
10-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
remove some dead target hooks, subsumed by isLegalAddressingMode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
54e2b142be6ac759e87dde8a643a7beaff0365df |
09-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use integer log for metric calculation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
efc366263659db05ddc5e14532946cb9213bcdd6 |
09-Apr-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35817 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4198c58c716cbe4516ac3a1a407a3cd52548bc3b |
09-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Next stage into switch lowering refactoring 1. Fix some bugs in the jump table lowering threshold 2. Implement much better metric for optimal pivot selection 3. Tune thresholds for different lowering methods 4. Implement shift-and trick for lowering small (<machine word length) cases with few destinations. Good testcase will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5694b6e90eaf94fa7a21f101a8e4424d813a85ce |
09-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1146: Adapt handling of parameter attributes to use the new ParamAttrsList class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1a6acc214dc066ea08365b605e109203e9164068 |
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
implement CodeGen/X86/inline-asm-x-scalar.ll:test3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35802 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ff33cc4d08a115e40b8ad0caabfe971cd9a8351a |
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
add some assertions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35800 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0ebe9c132c6b9c74b334f0c7503e702b499575d5 |
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a bug introduced with my previous patch, where it didn't correctly handle instructions which replace themselves when FI's are rewritten (common on ppc). This fixes CodeGen/PowerPC/2006-10-17-ppc64-alloca.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35789 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d2eae62e93fc6e398263a952609b6ea60a204802 |
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll and PR1308: some instructions can have multiple frame indices in them. If this happens, rewrite all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35785 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4b993b19f9837fdf2db55a3e042e8adab3d63c26 |
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1316 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
921169b103497001e1d22927f4fd1682d43eba57 |
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix for CodeGen/X86/2007-04-08-InlineAsmCrash.ll and PR1314 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e303ac9052b9d03eff236469eb560e5b5da7fae2 |
06-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
minor comment fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3f108cb5558a80a63711114d819358f19773c057 |
05-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Change the bit_part_select (non)implementation from "return 0" to abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
addd11d98ee3a3013c66d3fd25ee2cfb09b3c7bd |
05-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35678 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
5502bf67cd49221583c15472150905ce13184d36 |
04-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly emit range comparisons for switch cases, where neighbour cases go to the same destination. Now we're producing really good code for switch-lower-feature.ll testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35672 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9193514e2e3e599e241220b72bc9add25a80a8fd |
04-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Re-materialize all loads from fixed stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35660 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
710216275b93b332bc69f41a1d4553197b64edf8 |
04-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Trivially re-materializable instructions have spill weights that are half of what it would be otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35658 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
595b6d121cbbae3f58e508ae928b4ed917e686b6 |
03-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bad bad bug. findRegisterUseOperand() returns -1 if a use if not found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35618 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
c9dc11457809b6641de853af2261721a97ad1f26 |
02-Apr-2007 |
Scott Michel <scottm@aero.org> |
1. Insert custom lowering hooks for ISD::ROTR and ISD::ROTL. 2. Help DAGCombiner recognize zero/sign/any-extended versions of ROTR and ROTL patterns. This was motivated by the X86/rotate.ll testcase, which should now generate code for other platforms (and soon-to-come platforms.) Rewrote code slightly to make it easier to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
bcfd4665b5597ed1ba679584a69080396d68bcf9 |
02-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Ugh. Copy coalescer does not update register numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35600 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
dc1966e6bac9d323e18db2e18d955885e0edd702 |
02-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1297: Make sure that the CTPOP result is casted to i32 as the bit counting intrinsics all return i32 now (this affects CTLZ and CTTZ as well). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35567 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
e9391fd9b52e93717b365bdd05c471101323a4df |
01-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1297: Support overloaded intrinsics bswap, ctpop, cttz, ctlz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35547 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
a4f9c4d29affaae0b4a3315ffff20e9130ecd17f |
01-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1297: Adjust for changes in the bit counting intrinsics. They all return i32 now so we have to trunc/zext the DAG node accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
577cc32d9a1af6ad3f6adf8b6de072b9ee1c9a8b |
01-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1297: Change getOperationName to return std::string instead of const char* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c8d288f8fa9e46199a29e1954550c980f184bd1c |
31-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
move a bunch of code out of the sdisel pass into its own opt pass "codegenprepare". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35529 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
electionDAG/SelectionDAGISel.cpp
|
d2f340b746e54fca27b654fd6740973fdf6b85f1 |
31-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
switch TL::getValueType to use MVT::getValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
31442f9dc5512b6a29cdb332b12ae09a1c9e8176 |
31-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Add a -print-lsr-output option to LLC, to print the output of the LSR pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35522 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
1436bb657d22b01fd9a526ee7f9b2cb880c064a7 |
31-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
add one addressing mode description hook to rule them all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35520 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2041a0ef7544ec5ceece9cabd3963cc887861c1d |
30-Mar-2007 |
Dale Johannesen <dalej@apple.com> |
Fix incorrect combination of different loads. Reenable zext-over-truncate combination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7cb33c86522d05a5b10757e7b1593488e28a2431 |
30-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't add the same MI to register reuse "last def/use" twice if it reads the register more than once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35513 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
2f524575396b740b8bdae076b5711e602e82f834 |
30-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix for PR1279. When isDead is propagate by copy coalescing, we keep length of dead def live interval at 1 to avoid multiple def's targeting the same register. The previous patch missed a case where the source operand is live-in. In that case, remove the whole interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35512 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b0b6c76ffe71fc5d16a38b831ef0eddec02ddbe3 |
29-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Disable load width reduction xform of variant (zext (truncate load x)) for big endian targets until llvm-gcc build issue has been resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35449 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
974777868cfaaac6655ce00fae8bae0a000dd4a2 |
29-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
New entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35445 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
197d19d11c949743c29d3996e391ba0caeae040d |
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Notes on re-materialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35420 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
2005a02f321c315c1d6dcbe482024999b48b1c10 |
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move rematerialization out of beta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35419 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7aff11a1eddcebe9936e14836cd527c46acde651 |
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Scale 1 is always ok. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
caaf69107ece8bd9864fed4d64e2a84fa5f8cd4b |
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove isLegalAddressImmediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35406 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
baeccc8741958c0d27f1ba1d162468f615b565ac |
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
GEP index sinking fixes: 1) Take address scale into consideration. e.g. i32* -> scale 4. 2) Examine all the users of GEP. 3) Generalize to inter-block GEP's (no longer uses loopinfo). 4) Don't do xform if GEP has other variable index(es). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35403 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d592a28ca1506f2ccd6384679d87cce4b4fd874a |
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1279. Dead def has a live interval of length 1. Copy coalescing should not violate that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35396 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
dd433210797bc13513989a033e488d4e19442723 |
27-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35380 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b17b08d1f2cdbc3aba28e31755d7a5c3c55e4c3a |
27-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Split big monster into small helpers. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35379 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d0083bc5eccd2f776788cb67e589edb456e59a7e |
27-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
SDISel does not preserve all, it changes CFG and other info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
018d6e153768b382ac663164d91e2ea539e7cb0e |
27-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Don't call getOperandConstraint() if operand index is greater than TID->numOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35375 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ad7ccf34b5de14bd2b9ddc8072d14582a2ce29d9 |
27-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1266. Don't mark a two address operand IsKill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35365 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
32eb1f1ca4220d2f24916e587ad7e8574d7d82a1 |
27-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change findRegisterUseOperand() to return operand index instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35363 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
c6b9ef80a890fcf75f18cabc3fe2d5f9ef2faaf5 |
27-Mar-2007 |
Dale Johannesen <dalej@apple.com> |
Fix reversed logic in getRegsUsed. Rename RegStates to RegsAvailable to hopefully forestall similar errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35362 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
15213b77cfb1f725ebe199b4d68b79407d9e3a84 |
26-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
SIGN_EXTEND_INREG requires one extra operand, a ValueType node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3a84b9baf67c938454840d10d9e53269c755cd3e |
25-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
First step of switch lowering refactoring: perform worklist-driven strategy, emit JT's where possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35338 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5df99b376f38a2a0aaa2fc63254cf0306eef3c1b |
25-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Implement support for vector operands to inline asm, implementing CodeGen/X86/2007-03-24-InlineAsmVectorOp.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35332 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c13dd1cf4c0d83ac3ed2a6b0c36fab72e9d6c6e5 |
25-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
implement initial support for the silly X constraint. Testcase here: CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35327 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
065421f99fc155c3910a77c3a47de99f3f6af4d0 |
25-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Implement CodeGen/X86/2007-03-24-InlineAsmMultiRegConstraint.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
4234f57fa02b1f04a9f52a7b3c2aa22d32ac521c |
25-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
switch TargetLowering::getConstraintType to take the entire constraint, not just the first letter. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35322 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
82dcb4fe23686784a5ad6379860970f1146db50d |
24-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
don't rely on ADL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dae54ce7fc96be8d8d5d3a5afff856bbdf1e81a9 |
24-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Adjust offset to compensate for big endian machines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e177e307fce9cf543b8f0b7a7963cc0328c5f362 |
23-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Make sure SEXTLOAD of the specific type is supported on the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35289 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b37b80ce4669c41dcebaeb227b15f552b2c24210 |
23-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Also replace uses of SRL if that's also folded during ReduceLoadWidth(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0b063def9809ed59797fd40a616665ac3e675657 |
23-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
A couple of bug fixes for reducing load width xform: 1. Address offset is in bytes. 2. Make sure truncate node uses are replaced with new load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ecb7a77885b174cf4d001a9b48533b3979e7810d |
22-Mar-2007 |
Dan Gohman <gohman@apple.com> |
Change uses of Function::front to Function::getEntryBlock for readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c88138fb5e0aa0bcbc95d6c3352e08cfdfcfecef |
22-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
More opportunities to reduce load size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2c3535d2a6738d154914a59f272fac45e50b706b |
22-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1257. Bug in live range shortening as a result of copy coalescing where the destination is dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35252 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fa4bce2b76c8557cfd0794beef86efe5fb0087fa |
21-Mar-2007 |
Dale Johannesen <dalej@apple.com> |
repair x86 performance, dejagnu problems from previous change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35245 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
007b69eeaa59fef76acdf38726cec13862f9dd0c |
21-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
fold (truncate (srl (load x), c)) -> (smaller load (x+c/vt bits)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c3c70881cf7457535182add96d0ea96a3a12e9f2 |
20-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Potential spiller improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35228 91177308-0d34-0410-b5e6-96231b3b80d8
EADME.txt
|
8e59e163db8cd3e7b4c96e438fbedf78bff06707 |
20-Mar-2007 |
Dale Johannesen <dalej@apple.com> |
do not share old induction variables when this would result in invalid instructions (that would have to be split later) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35227 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
69cb9b78f11d505f4351a269fc90e7b77fcda437 |
20-Mar-2007 |
Dale Johannesen <dalej@apple.com> |
maintain LiveIn when splitting blocks (register scavenging needs it) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35226 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
egisterScavenging.cpp
|
c01a53007a4f4f9a601f1cc83ff4e2935405b905 |
20-Mar-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix some VC++ warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35224 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a0a26b7454ae6e7a729b4a47ee1b1e37c7c71858 |
20-Mar-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35220 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
29a68fb5b733119dd8295a4f7c7d069b9f78f0a3 |
20-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35219 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8334b9fa3bdfca1cc3c85b4156b165ed3f5f8c99 |
20-Mar-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
CopyToReg source operand can be a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
2638e1a6b9e3c0e22b398987e1db99bee81db4fb |
20-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
First cut trivial re-materialization support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35208 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
irtRegMap.cpp
irtRegMap.h
|
757072d954937514585b5c213f01f851d31826a1 |
19-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove -reduce-joining-phys-regs options. Make it on by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35165 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
79b098445b93e551dba79aeb9584ee24be0d3dae |
19-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35153 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cf596c54d4089ef23ce00be04bbb674d3ae2e0a6 |
18-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Merge UsedBlocks info after two virtual registers are coalesced. - Use distance to closest use to determine whether to abort coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35141 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e951cd1647834c1c6877ca9a699ef6b00a2d0ce9 |
18-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Keep UsedBlocks info accurate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35140 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
woAddressInstructionPass.cpp
|
c6a2410d58916b8a8a1b26f2448b903d12e77f2f |
17-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Track the BB's where each virtual register is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35135 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
ba1a3df608a14ca37ca944f4c942c202e919ea80 |
17-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Joining a live interval of a physical register with a virtual one can turn out to be really bad. Once they are joined they are not broken apart. Also, physical intervals cannot be spilled! Added a heuristic as a workaround for this. Be careful coalescing with a physical register if the virtual register uses are "far". Check if there are uses in the same loop as the source (copy instruction). Check if it is in the loop preheader, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35134 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
db264ae07f451cbd5bb33d528ae00e4910ce386b |
17-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use SmallSet instead of std::set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35133 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2edd5638255dbbcdad55ca724953e155ab13b5d1 |
17-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
If sdisel has decided to sink GEP index expression into any BB. Replace all uses in that BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35132 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9e2d86add8ae62026d2f07ea1b33d6e1ae418449 |
16-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Turn on GEP index sinking by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35127 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9f5ead9601e110b2e67123d73647cbd88308c379 |
16-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Stupid bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35126 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3cd4e5095b06b2be94a0cab3060272aae3460167 |
16-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Sink a binary expression into its use blocks if it is a loop invariant computation used as GEP indexes and if the expression can be folded into target addressing mode of GEP load / store use types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
14245a9d62d9a785a5d6590516380b300bab4957 |
16-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added isLegalAddressExpression hook to test if the given expression can be folded into target addressing mode for the given type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35121 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
56fdd7af884a35673fb6dd3e01333960922c3ac2 |
15-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Debugging output stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35117 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c6deb3d44707de57e82e16642ab845bc8b9e9e01 |
14-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Estimate a cost using the possible number of scratch registers required and use it as a late BURR scheduling tie-breaker. Intuitively, it's good to push down instructions whose results are liveout so their long live ranges won't conflict with other values which are needed inside the BB. Further prioritize liveout instructions by the number of operands which are calculated within the BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35109 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
61230d18d21a5dca1378e994f43934e4b314e595 |
14-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Try schedule def + use closer whne Sethi-Ullman numbers are the same. e.g. t1 = op t2, c1 t3 = op t4, c2 and the following instructions are both ready. t2 = op c3 t4 = op c4 Then schedule t2 = op first. i.e. t4 = op c4 t2 = op c3 t1 = op t2, c1 t3 = op t4, c2 This creates more short live intervals which work better with the register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c289faf01559584be1ead2574631d54940a4dd4f |
13-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
More flexible TargetLowering LSR hooks for testing whether an immediate is a legal target address immediate or scale. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e2ee99620fa6e428292737349d8e28bbcdcdaa0b |
09-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a virtual register is already marked alive in this block, that means it is alive in one of the successor block. Do not add it to the kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35041 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
219705131d5f6911d4b40fcfdcc614a7f3a5e035 |
09-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Print preds / succs BB numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35040 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
f0e3bb13337f59c7f158e4af5aa9a11a2e76fa9d |
09-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid variable shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35039 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
6dfc6806bf4091cc736312a3ceca6225f81ef63e |
08-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
implement support for floating point constants used as inline asm memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b4ddac9bf7b9d4aa7267702f375647b370ad32f4 |
08-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
make this fail even in non-assert builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d0b82b301d700217a716526f9329bb031e0d6578 |
07-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Refactoring of formal parameter flags. Enable properly use of zext/sext/aext stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6a143590b3e283321af981abc4336f35efea2fed |
07-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Cleanup: make SetCounter an instance variable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35007 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
83060c544bde0e2e9798829516040c76c5dd5013 |
07-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid combining indexed load further. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a6199c87c293d937b1e57549864345e64e6c6e8b |
07-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix DWARF debugging information on x86/Linux and (hopefully) Mingw32/Cygwin targets. This fixes PR978 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35000 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
caddd590f72376aaac531c1004be0535b460992a |
06-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34985 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
0f54dcbf07c69e41ecaa6b4fbf0d94956d8e9ff5 |
06-Mar-2007 |
Devang Patel <dpatel@apple.com> |
Now LoopStrengthReduce is a LoopPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34984 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
edf2e8da256496c19390cfd46da80746373e9989 |
06-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
big endian 32-bit systems (e.g. ppc32) want to return the high reg first, not the lo-reg first. This is fallout from my ppc calling conv change yesterday, it fixes test/ExecutionEngine/2003-05-06-LivenessClobber.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34983 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fb269cf3e7893e1e5265db818e7ce78b6b2f75b5 |
06-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Small eye-candy: use asciz directive everywhere, where possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
87f8bf65dd869348dd4d2884a417e2e22ae4f981 |
06-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
If target decides to create an emergency spill slot, make sure it's closest to SP or frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34965 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
b74a3e6fda768eb6160559e025f8b65c46db46d9 |
06-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Register scavenger is now capable of scavenging. It spills a register whose use of furthest away to make it available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34964 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
0db79d86de74c315813d60f51ed842c0ba0f34dd |
06-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Enumerate SDISel formal parameter attributes. Make use of new enumeration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ca5183d445954a9b2a570d6bbba1bc2b00ad6442 |
05-Mar-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b654176cb4d58c8784043fbedd4584f3f0eedc07 |
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
fold away addc nodes when we know there cannot be a carry-out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34913 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
bcf24844508a6acdc6d3078cc4d24978fcd0cca5 |
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
generalize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34910 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
91153686f04bafe3b10c99edb1735444953f7517 |
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
canonicalize constants to the RHS of addc/adde. If nothing uses the carry out of addc, turn it into add. This allows us to compile: long long test(long long A, unsigned B) { return (A + ((long long)B << 32)) & 123; } into: _test: movl $123, %eax andl 4(%esp), %eax xorl %edx, %edx ret instead of: _test: xorl %edx, %edx movl %edx, %eax addl 4(%esp), %eax ;; add of zero andl $123, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34909 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
175415e116feef0def0f7c084cca3646a403412b |
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate some ops if they have an undef RHS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34908 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d7f3de655b205a0551991ecbd0ce9000568b389e |
04-Mar-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Remove unneeded header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34903 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
8b2d42c9494a42c8b5b9e5c2e46c8001b89e75b5 |
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/fpowi-promote.ll and PR1239 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a9569f10de686119ff34b89e102b5a3cbafdf195 |
03-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Add an expand action for ISD label which just deletes the label. This "fixes" PR1238. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34890 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a7288df62db835ba4958d6e7c7fca237682840db |
03-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Only propagate IsKill if the last use is a kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34878 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
af8063886966fd1f59d170335902d6da4e3fe1aa |
03-Mar-2007 |
Nate Begeman <natebegeman@mac.com> |
http://llvm.org/bugs/show_bug.cgi?id=1237 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34875 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
a16d4429e49b5406c0af905953b5eae13b9cf47c |
03-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for cases like this: entry (0x8b056f0, LLVM BB @0x8b01b30, ID#0): Live Ins: %r0 %r1 %r2 %r3 %reg1032 = tMOVrr %r3<kill> %reg1033 = tMOVri8 1 %reg1034 = tMOVri8 0 tCMPi8 %reg1029<kill>, 0 tBcc mbb<entry,0x8b06a10>, 0 Successors according to CFG: 0x8b06980 0x8b06a10 entry (0x8b06980, LLVM BB @0x8b01b30, ID#12): Predecessors according to CFG: 0x8b056f0 %reg1036 = tMOVrr %reg1034<kill> Successors according to CFG: 0x8b06a10 entry (0x8b06a10, LLVM BB @0x8b01b30, ID#13): Predecessors according to CFG: 0x8b056f0 0x8b06980 %reg1024<dead> = tMOVrr %reg1030<kill> ... reg1030 and r1 have already been joined. When reg1024 and reg1030 are joined, r1 live range from function entry to the tMOVrr instruction are dead. Eliminate r1 from the livein set of the entry BB, not the BB where the copy is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34866 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5de3b7f35131b3c17e0b3c711d47ab3fb2c1e9be |
02-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Mark dead def as unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34844 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
7b466d048110ec149446bfb9856f79b7b17cf5d3 |
02-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Dead live-in detection bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34843 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6b448092bff8d149769becaa14415bc1a3857e33 |
02-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Keep track all def and uses of stack slot available in register. - Available value use may be deleted (e.g. noop move). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34841 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c3dd314b78c22007243c98f3f3521c7fdaa67c1b |
02-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Invalidate last use of a reused register if the use is a deleted noop copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34839 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
0102ca8f5a79def51018675048172822113e352f |
01-Mar-2007 |
Jim Laskey <jlaskey@mac.com> |
Emit eh filter info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34805 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
59e8434a855737ce3324e4b1acf5e9f12b57a2fc |
01-Mar-2007 |
Jim Laskey <jlaskey@mac.com> |
Collect eh filter info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34804 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
0b4711bd94e0723735848ad999bccfb1fb61eeb9 |
01-Mar-2007 |
Jim Laskey <jlaskey@mac.com> |
Lower eh filter intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34802 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
a81a5ab35793a4c46235367d73bf3e7569535a4c |
01-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Delete register scavenger when done with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34786 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
5196b3680cf8df32b6c763e3d97e963e45150e5a |
01-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a version of FindUnusedReg that restrict search to a specific set of registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34784 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
c0ba1bc49b2b544159425e3c4769a8bbf1635a3e |
01-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
A restore is promoted to copy (or deleted entirely), remove the kill from the last use of the targetted register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34773 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
23322d1427e319089f5098d02cefbc7d8446d746 |
01-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Interface clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34772 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
a3756ee7fe384210eddcfd66e2934439960b13a1 |
01-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Interface clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34770 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
8e92b4bae298d079e28f4166d335cc662a50d6cc |
01-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34768 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
88d1f587d2205b4275dc4c0319a5f2d4d1e6fd42 |
01-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Track all joined registers and eliminate unneeded kills after all joining are done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34767 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8782d481a3c720304540254a7b71d25bbe7cbf49 |
28-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Chain is on second operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3f09fc2ff8d010b39f9b5315e4b89307991cc636 |
28-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Handle mix of personalities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34752 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
63f3e3fa1d67f7696298373d43a2e064b7a0d1c2 |
28-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Provide a more meaningful name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34751 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
64ce0ca90d358da4984a089404dc2dabe45d05f1 |
28-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
MERGE_VALUES unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34750 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a0a6278c7cf6dc7338e38d36e6ab4a96b688e46e |
28-Feb-2007 |
Nate Begeman <natebegeman@mac.com> |
Fix a typo, thanks Bill! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34741 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
fec910c3b9ba5790e5a627e1801fce25fbdddbaa |
28-Feb-2007 |
Nate Begeman <natebegeman@mac.com> |
More Mach-O writer improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34740 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
achOWriter.h
|
66baf26fe0c229142d483030e1633f656822c5ee |
28-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
add methods for analysis of call results and return nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34738 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
fb39f99fa4cdeab24c1b462cdd954a7d792323b7 |
28-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
add methods to analyze calls and formals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34736 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
e5876ce21a23aeef913b25ffc09ad3829e6ade1e |
28-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
add a newline at end of file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34735 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
36230cdda48edf6c634f2dcf69f9d78ac5a17377 |
28-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Make requiresRegisterScavenging determination on a per MachineFunction basis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34711 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
37f15a6d488d256d371f6c39ab83837bc9c0772d |
28-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
MRegisterInfo disowns RegScavenger. It's immutable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34706 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
898218cc5edecea1275ee266b2cd13313ea6b67b |
27-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Some more code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34700 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
8cab162e03d7ae0638a3ab51e92ac228abe17d55 |
27-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34698 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
3f6fd87473c3fc7d2e99a43b17140d70daa7148c |
27-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Let MRegisterInfo now owns RegScavenger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34691 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
bb6fb3357d6c1e9ffb15de4893e59e3bbdd600a3 |
27-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
RegScavenger interface change to make it more flexible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34690 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
13513b7a50f5b4497c276796e00ef9bae730d8e0 |
27-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Minor refactoring of CC Lowering interfaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
362e98a5f5cf1919ac6435ff5b630b58ecd95fc5 |
27-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
move CC Lowering stuff to its own public interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34655 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/CallingConvLower.cpp
|
ed570dedad945e1fe9a4bfeaa47276d875f1feed |
27-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
forward() should not increment internal iterator. Its client may insert instruction between now and next forward() call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34649 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egisterScavenging.cpp
|
edeffb37dc41591b3d3943a5c02c04e55d348524 |
26-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Joining an interval with a dead copy instruction. Shorten the live range to the last use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34645 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
2255887574250bb0bc577fcfc0c65b3f617e8c3c |
26-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fold (sext (truncate x)) more aggressively, by avoiding creation of a sextinreg if not needed. This is useful in two cases: before legalize, it avoids creating a sextinreg that will be trivially removed. After legalize if the target doesn't support sextinreg, the trunc/sext would not have been removed before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ddf53e45b29087c57e0c864c93f86d5e99182d55 |
26-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
track signedness of formal argument, though we have a fixme here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
183f47fb1aa30ba9a56e645c35a7d798cf7e467c |
25-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Fix for PR1224. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
251db1890c1fe03d02ee878ada8129537844d031 |
25-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
optimize duplicate ValueMap lookups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34599 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
de4e942faa12a52242915e3334c25f19687f36e2 |
25-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
A couple of more places where a register liveness has been extended and its last kill should be updated accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34597 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
0badfea274f9612780caccbad6e1870f39ed9f40 |
25-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34596 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
48ef398ebd2f2b992c81bebd5159de119ce62c80 |
25-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a couple of bugs related IsDead back propagation during coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34595 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
16191f03337645dc1638b7489d71d685e6c07cdd |
25-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
If the liveinterval of the source instruction has been extended, remove the IsKill marker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34594 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bc025fbb64038b9f2c6615dd2d090c1c2ba0a91c |
25-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Only add liveinterval to livein set if it isn't assigned a stack slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34593 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
753d9cb50e1d2e78b9a82185dc64f0e672560775 |
25-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
fold trivial token factor nodes. This allows us to compile test/CodeGen/X86/fp-stack-ret.ll into: movl 4(%esp), %eax fldl (%eax) ret instead of: subl $12, %esp movl 16(%esp), %eax movsd (%eax), %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret by eliminating a token factor that blocked a check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6618039f9f1f2e41fe2742d83007c68bdebc3656 |
25-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
initialize a instance variable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7a1de987a69a059ba67779ee8fca3b391e8aa253 |
24-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Deal with cases when MMI is not requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34556 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e80873ee75a96916176c505aa0e3242edf1204d3 |
24-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Drop unused operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
01ca65b23e31a1dfac702cef9a2fc963347a3f71 |
24-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2007-02-23-DAGCombine-Miscompile.ll and PR1219 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
50d25d7ff7326adef7c76ba79be3dd1d7240a81f |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Reuse extends the liveness of a register. Transfer the kill to the operand that reuse it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34536 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
1da20a71d1bbabc472f281208be77475550be751 |
23-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Handle improper cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
da2295e631ae07788f7db53efa3bea6367e7656c |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Handle cases when joining live intervals of two virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34534 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
403c45dfcc74585b02339b5f55f739672e3d141a |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Mark livein registers as being in used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34525 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
91e2390818080ae2b059e3ff850a9455858e4f7b |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
A spill kills the register being stored. But it is later being reused by spiller, its live range has to be extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34517 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
49dd06461a7e027a6c938f0570297d46f2f34218 |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
First potential client of register scavenger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34516 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
76d7e76c15c258ec4a71fd75a2a32bca3a5e5e27 |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use findRegisterUseOperand to find a kill of particular register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34512 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
96fa612373e258120d351ed14361f964ad22f99d |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Initial check in of register scavenger. Its only current functionality is tracking live registers per MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34511 91177308-0d34-0410-b5e6-96231b3b80d8
egisterScavenging.cpp
|
30cac02a925c9d56613711b0e77099cb7252bc9b |
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove unnecessary isKill properties if a live range has been lengthened due to coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34503 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
774b864f0e7f3812e7daddf8553649e995ce040a |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34502 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
5df3ad8b7ac9d676d357ed015946f6756d9181f4 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Missing end of abbreviations - correction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34501 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
7b1b39d9bc6116e23a13668e0e38105e110fd383 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Missing end of abbreviations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34500 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
9bb3c93af271449dcbfce9f7fb7442dd11d93813 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Need to init. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34499 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
033c9715d9bf7ce59ad2e466bf0720811b34da08 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Remove isAccessable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34497 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a4e7cd947e378aa3ffe633be227138d8f859c9e3 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Use exception flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34496 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
f9b1cbc80d89b9a03d73b8b3c1703b344e1d9b70 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Remove assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34494 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
cbfdb7b871ddb383c9b323d4b9fba112ad500214 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Tighten up error checking of args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
735b6f8cc3abe3d6939d44a39d2e512c32716538 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Handle lowering invoke to call correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34492 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2bc210d99f5a7322a1ae84775eba351d9ab6ea85 |
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Simplify lowering and selection of exception ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34491 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b180aa17539e14a5430d020bbc7de83c79b7fc4b |
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Selection and lowering for exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34481 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
bacd30446332b55de93e8beda0154e3fbe254110 |
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Exception handling support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34479 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
bda9b0ec7bd6974cebf751ecd23c5434b34054e9 |
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Add support for changes in DwarfWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34478 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
02b3f5ec4ac120d14a63f7fd4f4388b7d0ab6c22 |
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Make branch folding behave in the presence of landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34476 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
9b25b8ca24d6df2e097741dcc15016772ee4eda7 |
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Allow for live in registers for eh landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34475 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
59667fe20379d65129ef5f3665e9f87e654c8623 |
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Add structures used for collecting eh information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34473 91177308-0d34-0410-b5e6-96231b3b80d8
achineModuleInfo.cpp
|
788fb1c103f1d1b8ec7e7f96df01fbfc1a5005d9 |
21-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Out of bound reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34461 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
957840b3e14938fc86c306fda99ac039d1777a4c |
21-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use BitVector instead. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34460 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
667089de045cf8aee785ea57e49b8ebb0942b442 |
20-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34435 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
b371f457b0ea4a652a9f526ba4375c80ae542252 |
19-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
egAllocLinearScan.cpp
|
a284cbf667e11660840dc7bae3ee9eeaa3c7cbd2 |
19-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1207: Revert patches that caused the problem. Evan, please investigate and reapply when you've discovered the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
egAllocLinearScan.cpp
|
aa7976199c0dfe45f52f327b74fc547ad2c5fffd |
17-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Changes how function livein's are handled, they now have a start index of 0. - When coalescing a copy MI, if its destination is "dead", propagate the property to the source MI's destination if there are no intervening uses. - Detect dead function live-in's and remove them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34383 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e1fd6828afee1cb3df1e1206aeb10cbb5021547f |
17-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not add livein's to entry MBB twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34382 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
795d9509d5e11dcbbb355260d993b4a15c2be073 |
17-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added removeLiveIn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34381 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
094e3e553f57b877153828e420cd2dacfb2b364c |
17-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added findRegisterDefOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34380 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e15764f28f10f86ad88c4391bb5619191609f6b4 |
17-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Use MRegister::regsOverlap(). - Allow LiveVariables to track liveness of more registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34379 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
95ad943ed5b2212652b40ebcbb675fde67dc474a |
17-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
print target nodes nicely git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
9ff6ee85fe281c5686e0885eaa0c37ad5378ed52 |
17-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Implement i/n/s constraints correctly. This fixes test/CodeGen/PowerPC/2007-02-16-InlineAsmNConstraint.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34368 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6b896cec8b703e08e5f3d809e086a39b6ebe6589 |
17-Feb-2007 |
Dale Johannesen <dalej@apple.com> |
Fixes PR 1200 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34359 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
bdf44b929f6bd0983b0f0df0d2ae66610e81e149 |
16-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Print <dead> def operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34343 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9fc508fdc482789c8f81da99a13c63b822c1a99d |
16-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add live-ins to every BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34342 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
4c3a5f8ccba6680b948a1a234f123b4505e43529 |
16-Feb-2007 |
Dale Johannesen <dalej@apple.com> |
test commit (blank line) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34337 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5d4a9f77314952af0638e7339bcd3f4f236c6098 |
15-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34307 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
0152829e89427a6c6cb22ff54dd580ccc4f4cc2a |
15-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Apply B Scott Michel's patch for PR1184, which improves diagnostics in an abort case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
61de82d8853a02fe39c47302432abb70a586704f |
15-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use BitVector instead of vector<bool> which can be extremely slow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34302 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLocal.cpp
|
ac9dcb94dde5f166ee29372385c0e3b695227ab4 |
15-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1195: Change use of "packed" term to "vector" in comments, strings, variable names, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e |
15-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1195: Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
c661d61d82b2b512ad9670b248bbacb4eda5d293 |
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
fix a warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34272 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
21840b1c5c8e0fcedf236f0c2b95e9e147859a8e |
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Refix CodeGen/Generic/switch-lower.ll. In contrast to my previous patch, this doesn't miscompile lots of programs :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d2b7cec527a0efa552628378ebca7a8ca63bb45d |
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Generalize TargetData strings, to support more interesting forms of data. Patch by Scott Michel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34266 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
achineFunction.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4c948eb373779718e5be36d7674382b52114bf65 |
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
implement expand of truncate. This allows truncates from i128 to i64 to be supported on 32-bit hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34257 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f839ce7d03ce3ec6c7e36b71267f43a6b6aefeaa |
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1198, by adding initial i128 support. Patch by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ae4f99d8430f06cfbc316f231e404201d288ef94 |
13-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
revert my previous switch lowering change, which miscompiles a few programs. This will break a dj test until I have time to investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cf8270a9941e697243bb9c91d5d8b2e1fc01a35c |
13-Feb-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Add a space between // and the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7aa47b69ca5f4feb6b106a50959e37822bd25b4f |
13-Feb-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Add "original alignment" to function arguments flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
990b849abc9481b8c7a482019cd0d95fe2f2a3ea |
13-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate vector-related allocations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34223 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
0c9f92e1ff64ee56724eae444a0442b02f83d0a8 |
13-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow any MachineBasicBlock (not just the entry block) to have live-in physical registers. Make sure liveinterval analysis is correctly creating live ranges for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34217 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
818d42f1e81db75300223fedb75227c17ec0ef83 |
13-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fix switch lowering to order cases in zext order, which is how we emit the comparisons. This fixes an infinite loop on CodeGen/Generic/switch-lower.ll and PR1197 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7f6b9d2f1a7d55f6a84a1e8078b895ce4ff66dae |
10-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate temporary vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34161 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
|
b0c39a3b4d1daa93d339493751976944b6422fd5 |
10-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
encapsulate the rest of the StructLayout members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34157 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
b1919e2f08ecb37140af676fd2916f8d5ed7df3d |
10-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Privatize StructLayout::MemberOffsets, adding an accessor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34156 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
electionDAG/SelectionDAGISel.cpp
|
ad2070c667ebabf1650be63e6b3e0b411da86918 |
10-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add function live-ins to entry block live-in set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34112 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
13d828567812041c1ca1817f4b66fce840903a1f |
10-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add live-ins to MachineBasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34111 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
15699fc5ed0378205f9705d35d019d9ff0cf200d |
10-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Rename some variables to avoid confusion with SelectionDAGISel::BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2e67781ef571f5daffd7e6c2f71750be122e0ac9 |
08-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Make use of TLI.SimplifySetCC() in LegalizeSetCCOperands(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34066 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fa1eb27b76ab1e0f78574bf52a432c84a4c1a520 |
08-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Move SimplifySetCC to TargetLowering and allow it to be shared with legalizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34065 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
f50d09ad21dbb16e35460d63d23d331a2cac7a91 |
08-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a long standing spiller bug that's exposed by Thumb: The code sequence before the spiller is something like: = tMOVrr %reg1117 = tMOVrr %reg1078 = tLSLri %reg1117, 2 The it starts spilling: %r0 = tRestore <fi#5>, 0 %r1 = tRestore <fi#7>, 0 %r1 = tMOVrr %r1<kill> tSpill %r1, <fi#5>, 0 %reg1078 = tLSLri %reg1117, 2 It restores the value while processing the first tMOVrr. At this point, the spiller remembers fi#5 is available in %r0. Next it processes the second move. It restores the source before the move and spills the result afterwards. The move becomes a noop and is deleted. However, a spill has been inserted and that should invalidate reuse of %r0 for fi#5 and add reuse of %r1 for fi#5. Therefore, %reg1117 (which is also assigned fi#5) should get %r1, not %r0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34039 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
04523eab6bbc5d55a6e3f3296ddd583c8ad5ebb1 |
08-Feb-2007 |
Bill Wendling <isanbard@gmail.com> |
Split the addPassesToEmitFile method up into two. This is so that we can do some common stuff, then on our own add an object file writer (by calling a concrete function), and then do some finishing stuff, if need be. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34032 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
8f84f1f30197dbaf87fd32b7de05dd91ae435cdb |
08-Feb-2007 |
Bill Wendling <isanbard@gmail.com> |
Add function to create a file writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34031 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
4b2ca1a3c4231cd05366565e91ce09ec9fc3d3c9 |
08-Feb-2007 |
Bill Wendling <isanbard@gmail.com> |
Moved from include/llvm/CodeGen to lib/CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34027 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.h
achOWriter.h
|
c2b2d6a7c9c76693a45f316ca1f167dd185b33e4 |
07-Feb-2007 |
Nate Begeman <natebegeman@mac.com> |
Fix a fixme by correctly calculating preferred alignments for functions, based on the alignment of the symbol and the target data's preferred align for that type. Also, rename some arguments for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33984 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
c67da0cf13e2d671061449e8da4ffe102e5fc848 |
06-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Two fixes: 1. Memset takes an i32 for the value to set, not i8. This was causing GCC to ICE all over the place (PR1183). 2. memcpy/memmove were not properly zext/trunc'ing the size in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33970 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
7d6f77db284913a1dd4b5f362fd62ba65b76784b |
06-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1181 and CodeGen/CBackend/2007-02-05-memset.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33957 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
4b09252e4b9af6f90f2bd2c1b4283c058e9b4e95 |
06-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Oops, swap this. This fixes a regression I introduced in the ARM backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33946 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
b6a24bfa9550e5561da3091f7e5132575bf5a19e |
05-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1178 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33924 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
13b7d3d499ec63c5f417f7a7246afb77adb63b2e |
05-Feb-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fixing silly "not-implemented" bug in AsmPrinter. This fixes PR1169. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33888 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
831e0374a7da654071279f2b1f93f52f7eeb5eae |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
switch the VRBaseMap in the scheduler from an std::map to a DenseMap. This speeds up the isel pass from 2.5570s to 2.4722s on kc++ (3.4%). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGSimple.cpp
|
3f97eb449b08069e3370d4ba7566c60bdbf0babd |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate their operands with the node itself. This reduces malloc traffic for operand lists. This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33878 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ab4ed595385d0b9421c0d45c809ec6324cf11f11 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate the SDNode::setValueTypes method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
63e3f14df6cf76f1a12de1153e1114f4b20b15a9 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate a bunch of duplicate ctors and helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d429bcd4ac734540ebbc15a0ee37d154ae1daf73 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
move MorphNode to out of line and merge setNodeOperands into it. There is no behavior or performance change here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
48b85926524f9d29ae600123c90194cd73fd629e |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
simplify MorphNodeTo to take a VTList operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
67612a1188980d92a4bdd84c34a5aa89a4b9d929 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate some extraneous methods in SDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c76e3c86026b9fa44bfbb0888881b52955078011 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Give each selectiondag node class a home for it's vtable and rtti info git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9f24ad79ce32200b06499ef638b502fc1c36ed04 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch VAlueMap from std::map to DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0da331fe0bff24e6c90c706ef8f1f1c3a8d90c2a |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch NodeMap from std::map to DenseMap, this speeds up isel by 2.3% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33862 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0ed44170752b85c3dd3bbf95459dd2668864f5ec |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
swtich vector-> smallvector, speeding up selectiondag stuff 1% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
40030bfa75ae6d72702bc60e964ae2fce8c0f3ed |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch promoted/expanded ops over to using a DenseMap. Vector related maps aren't worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
718071c476014cb0aaff9c7d018120d5a8930217 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
switch LegalizedNodes from std::map to a DenseMap. This speeds up isel time as a whole on kc++ by 11%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33857 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
00755df36c1448ac4728a74d907aa09e3d8b2d49 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Eliminate some malloc traffic from LegalizeAllNodesNotLeadingTo, speeding up isel on kimwitu by 0.7%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33853 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d48c5e871a0f3386e536e0987ca06dbc4e274acf |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Eliminate some std::sets. This speeds up isel of kimwitu by about 0.9% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33852 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cf5640bd52e919b6fbb06f231122e718f48dbb12 |
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch SelectionDAG::ReplaceAllUsesOfValueWith to use a SmallSetVector for the users set (most nodes have 1 or 2 users). This speeds up the isel pass 3.2% on kimwitu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
886b412fb0baa3c2fab36fc1f2a46f53bc453f62 |
03-Feb-2007 |
Bill Wendling <isanbard@gmail.com> |
Pass in non-Mach-O-specific parameters to the GetTargetRelocation method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33816 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
2ba528b3a75955c960347e5b5b28ae74d5a81909 |
03-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
switch the sched unit map over to use a DenseMap instead of std::map. This speeds up isel as a whole time by 2.6%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33810 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
7971514755a08ec156a1b9c0f7f05d67919c56b7 |
03-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch ComputeTopDownOrdering over to using a densemap. This speeds up isel as a whole by 3.3%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33809 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5efdecc030f1a71cdb5b49d97c6c1c45e68ff731 |
03-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Pasto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1b19cd35fe86810c9f3c56e5dd577bd3c8520231 |
02-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Use short form of BinaryOperator create function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33784 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
832254e1c2387c0cbeb0a820b8315fbe85cb003a |
02-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Changes to support making the shift instructions be true BinaryOperators. This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
b47f32e0e932a0da11e6deae81dc0481dea4d80b |
01-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Slip up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33758 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
29bf16a0bd7483abc99102cee40c266ceacc8b3b |
01-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Emit labels as label_n and not as debug_n git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33757 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
b82313fdc21e8190768addf0f16710b94f0e1441 |
01-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Support for non-landing pad exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33755 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
achineModuleInfo.cpp
|
b25fe8267182662750dcb76a70a20f4b14a5568d |
01-Feb-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fixed uninitialized stuff inside LegalizeDAG. Fortunately, the only affected part is codegen of "memove" inside x86 backend. This fixes PR1144 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33752 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
94c002a190cd2e3a52b1510bc997e53d63af0b3b |
01-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
rename DenseMap to IndexedMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33749 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
egAllocLocal.cpp
irtRegMap.h
|
fea997aac5773e936754de5436029c2a4fa1e930 |
01-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fit in 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33745 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
527fae12c3b58d6151aa1c534c10b55d603b8da1 |
01-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Emit a better assertion message for PR1133 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33736 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d385fd62cb43435b3ad70d789198d34bf148e579 |
31-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow the target to override the ISD::CondCode that's to be used to test the result of the comparison libcall against zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
5cbf985dcbc89fba3208e7baf8b6f488b06d3ec9 |
30-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid confusion with external linkage types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33663 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
367f109ba954239a348c624a3331422bfdb31d03 |
30-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
add initial support for handling inline asms with multiple constraints. This doesn't do the "right thing" but will probably work in most cases. This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33643 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c1c47c3fa4d6d21b65924c02ab2f228e6285152d |
30-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Out of line function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33641 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineModuleInfo.cpp
|
e078d1a14a2633d5fe5b5b9d9dec90669f5c7082 |
30-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Only gather frame info if debug or eh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33639 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
bcc5f36765e8111c13873a0c0dc874c92385d808 |
29-Jan-2007 |
Nate Begeman <natebegeman@mac.com> |
Finish off bug 680, allowing targets to custom lower frame and return address nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
1257c855d7546afc2705463d9ca913d405724738 |
29-Jan-2007 |
Nate Begeman <natebegeman@mac.com> |
Properly support cstrings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33629 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
1b340dc8e20dc1ce204ebdcc2ff11c3dd36888f1 |
29-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Flag to control exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33628 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
d683ef6655f255170ac460f20963320a19f6d2cd |
29-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Disable zero landing pads for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33625 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
072200c36dd96b94e772029fd72edf9fa120c467 |
29-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Landing pad-less eh for PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33622 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
6addf2ceeb7b231e32308b7b15c77bc8992868a7 |
29-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Use TargetData to obtain the correct size of the "size_t" argument for functions like memcpy, memmove and memset. Ensure only one prototype is used for these functions and that it matches the system definition by using the appropriate type for the size argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33618 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
1e9126b3c47d5ecee98fd7384628a4f098857a6b |
28-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1138: Force memcpy to be the 32-bit variant. Since this is only used with CBE and lli which both target 32-bit machines, this should be okay. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33608 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
6aa279dc8b5a05499b2cd158f8187d7225adc4f4 |
28-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Arguments are counting from 1. not from 0. Maybe we should change numbering somehow? E.g. make return argument the last? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ac2b2cf88c9331bf44e802f6d31805c40a56af0f |
28-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
More cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
b10308e440c80dd6ffb4b478f741ff7e5f30cb48 |
28-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Propagate changes from my local tree. This patch includes: 1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5d73a2a156d9b232cf31150b3aff17fb07230c82 |
27-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Use TargetELFWriterInfo class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33573 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
6635f35cae9d5a5d363d3ba425d4b1f323fc689d |
26-Jan-2007 |
Nate Begeman <natebegeman@mac.com> |
Handle multiple functions, properly mangle symbols, and fix support for scattered relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33555 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
6da186480b55c10b96a255ce0a4ab731155da907 |
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
rename files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33552 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
achineModuleInfo.cpp
|
44c3b9fdd416c79f4b67cde1aecfced5921efd81 |
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Change the MachineDebugInfo to MachineModuleInfo to better reflect usage for debugging and exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33550 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
warfWriter.cpp
rologEpilogInserter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
1ee29257428960fede862fcfdbe80d5d007927e9 |
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Make LABEL a builtin opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
achineDebugInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2b935d55b04b8dfeedc67c3b376efd523344c44d |
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Clarify some constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33536 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
02a20291410a6814c657b69901a57103d4861a07 |
25-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added a MRegisterInfo hook that tells PEI the target is responsible for rounding the stack frame to a multiple of stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33504 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
1a4a83ca394868b57ad884fc5ddd38d05a66092a |
25-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
1. Remove dwarf-verbose option (now asm-verbose.) 2. Clean up end of lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33499 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f1cdea1d021068f5c9e118d68321ce28fcea63fa |
25-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Migrate print routines to asm to be shared by exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33498 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
5e73d5bd2e98afda12fa69a7ea83050c69be0d34 |
24-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Repair debug frames as a prelude to eh_frames. Switched to using MachineMoves by value so that clean up is less confusing (these vectors tend to be small.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33488 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
f9e56198a39a08272c072211722b3c97ef88853c |
24-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Use asm printer to emit alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33485 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
2b7218218faa02d9ece90f2ae6e009d7c55534df |
24-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Make ivars private and use getters. Have the MachOWriter return "Mach-O Writer" for the pass name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33483 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
de268f7dcf8a650afde162b84608ed434fb10613 |
24-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Renamed getTypeAlignmentShift() to getPreferredTypeAlignmentShift(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a4b7324fa0c77e50863a0e5ccd43285b64c2f1bf |
24-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Use the TargetMachOWriterInfo class to get this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33478 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
367372a30c36776e31958f0dc38306f32b80aa7c |
23-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
PEI is now responsible for adding MaxCallFrameSize to frame size and align the stack. Each target can further adjust the frame size if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33460 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
08a4d5a343e886816b31a78d9b7e70240d9c67be |
23-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Switch this to use SmallSet to avoid mallocs in the common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33457 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
fad2912522a4c97128d8afcc2f40ca0e39287ddb |
23-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a bunch of inline asm failures git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33454 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
f6d039a039ca35f9f0ee835c40cfced946915d5b |
23-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove the DoubleTy special case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33449 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
24d6da5fedcf39891f7d8c5b031c01324b3db545 |
21-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR970: Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
58092e35a3368e130438cbc793c8f9dce2e4fe0f |
20-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Teach TargetData to handle 'preferred' alignment for each target, and use these alignment amounts to align scalars when we can. Patch by Scott Michel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33409 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
achineFunction.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
597a3bde3578f33dc2a038186275b021c79c00b9 |
20-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1108: type of insert_vector_elt index operand is PtrVT, not MVT::i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33398 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
70cfa8894443281c77df5d3790e014647d1ccd05 |
20-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33396 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
57a2306074989dfd6e1c0d9ddd2b5084f664e2a9 |
20-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
We not align the final stack slot but instead let the target do so in emitPrologue(). Each target can make adjustments to the stack frame and re-align the stack as it deem appropriate. Do not align it twice which can end up wasting stack space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33387 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3c82cab9aad8bd1ae7a9dd03548f721522db79f3 |
19-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
GetRegForReload() now keeps track which registers have been considered and rejected during its quest to find a suitable reload register. This avoids an infinite loop in case like this: t1 := op t2, t3 t2 <- assigned r0 for use by the reload but ended up reuse r1 t3 <- assigned r1 for use by the reload but ended up reuse r0 t1 <- desires r1 sees r1 is taken by t2, tries t2's reload register r0 sees r0 is taken by t3, tries t3's reload register r1 sees r1 is taken by t2, tries t2's reload register r0 ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33382 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c10305743c313558405079452138f03124e87581 |
19-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1043: This is the final patch for this PR. It implements some minor cleanup in the use of IntegerType, to wit: 1. Type::getIntegerTypeMask -> IntegerType::getBitMask 2. Type::Int*Ty changed to IntegerType* from Type* 3. ConstantInt::getType() returns IntegerType* now, not Type* This also fixes PR1120. Patch by Sheng Zhou. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33370 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
42d7ccfd8e672bf3a5d42052f8da50f0d610afb2 |
19-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove this xform: (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) Replace it with: (add (shl (add x, c1), c2), ) -> (add (add (shl x, c2), c1<<c2), ) This fixes test/CodeGen/ARM/smul.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c904a5b925ce9981ad7501b14ee39cbc8795e23c |
18-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Have the OutputBuffer take the is64Bit and isLittleEndian booleans. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33316 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
393a8eea3c15de08eaf6953aa8a65a3961b76153 |
18-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
add new JumpTableSpecialLabelPrefix hook to asmprinter for jumptable emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33314 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
203d3e4386ff2b8e66378bf7cfb12ec25869b866 |
17-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Changed to use the OutputBuffer instead of the methods in MachO and ELF writers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33311 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
e911615c4769d793588087b5321d303ecb9661c7 |
17-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Revert patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33298 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
157c4eeb4d81140ce8c4dbff630828546d62d599 |
17-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Use the methods in the TargetObjInfo object instead of internal methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33289 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
c4e664bb9d640e7b04f6fce23830dfb808895b31 |
16-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1114 and CodeGen/Generic/2007-01-15-LoadSelectCycle.ll by being careful when folding "c ? load p : load q" that C doesn't reach either load. If so, folding this into load (c ? p : q) will induce a cycle in the graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33251 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
938ab02256289a688b1d4f992349f35d44afe4a0 |
16-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
add options to view the dags before the first or second pass of dag combine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
eb9a42c90bf7e21ad8544315a65f86b668cc0277 |
16-Jan-2007 |
Bill Wendling <isanbard@gmail.com> |
Fix for PR1095: LLVM would miscompile ASM dialects when compiling for PPC. Added dialects for the X86 and PPC backends. It defaults to "0", the first variant of a compound inline asm expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33246 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
42a75517250017a52afb03a0ade03cbd49559fe5 |
15-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger. rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33225 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ntrinsicLowering.cpp
|
0ee69bbd333c22198344e7336ae74767ca9381cc |
15-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate calls to Type::isInteger, preferring isIntegral instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33222 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
e5530da20895a49ddef3201de0d5f8587d007977 |
13-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Compensate for loss of DerivedTypes.h in TargetLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33159 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
02114aa0e507a10b18989ff6f4542d8572a07da0 |
13-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Move a function out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33158 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
79cca507fe51aa8af7a9006b380977c61b6f3fea |
12-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33149 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a875df3aaac9548dc78466bb2a9d6e85feddade7 |
12-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Simplify code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33123 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a54b7cbd452b3adb2f51346140d996b29c2cdb30 |
12-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1064: Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33113 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
|
579dca12c2cfd60bc18aaadbd5331897d48fec29 |
12-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Implement review feedback for the ConstantBool->ConstantInt merge. Chris recommended that getBoolValue be replaced with getZExtValue and that get(bool) be replaced by get(const Type*, uint64_t). This implements those changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33110 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineDebugInfo.cpp
|
56966225d1eed9f9a6951d2167bfbbec9628c8d6 |
12-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Store default libgcc routine names and allow them to be redefined by target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
4fe16d607d11e29d742208894909733f5ad01f8f |
11-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Rename BoolTy as Int1Ty. Patch by Sheng Zhou. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33076 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achOWriter.cpp
achineDebugInfo.cpp
|
6b6b6ef1677fa71b1072c2911b4c1f9524a558c9 |
11-Jan-2007 |
Zhou Sheng <zhousheng00@gmail.com> |
For PR1043: Merge ConstantIntegral and ConstantBool into ConstantInt. Remove ConstantIntegral and ConstantBool from LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33073 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineDebugInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
c8edc64188399437f5476d7fa45f714a92f2cb93 |
09-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Naming consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
c62d4bb6952a1459f10aa93579e1b881d42a33ea |
09-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1075: bottom-up register-reduction scheduling actually increases register pressure. - Fixed bugs in sethi-ullman number computation and priority queue comparison functions. - Separate code that handles priority computation special cases from SU number computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
ddae4bd68358df7415d532e6930c0ba9c60f6cb5 |
09-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Implement some trivial FP foldings when -enable-unsafe-fp-math is specified. This implements CodeGen/PowerPC/unsafe-math.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33024 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6488a078baefe7e638a8c0a12396173d32092f1e |
08-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Need to handle static declarations properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33022 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f01da5939d1f62e3c2b69beecd184001a5dfc983 |
07-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
llvm 2.0 doesn't support llvm.isunordered.* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32994 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
a4810b52d024ec4dcf638c906db9589338c05117 |
07-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
remove support for llvm.isunordered git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b76efb71d41dc1ae33e47d5d9ef79df25cde0b5d |
07-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Change the interface to Module::getOrInsertFunction to be easier to use,to resolve PR1088, and to help PR411. This simplifies many clients also git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32989 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
636c753b6ba2418ed707ef0efb31444ec70a46f2 |
06-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Expand fcopysign to the bitwise sequence if select is marked as expensive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
068c5f47ea9243b353a49ca7eb07fac0cb32f1ee |
05-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bug in ExpandFCOPYSIGNToBitwiseOps(). Clear the old sign bit of operand 0 before or'ing in the sign bit of operand 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
489a87ca091ff4208ce0a972480e41ba1f78a2bf |
05-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
CopyToReg source operand can be a register as well. e.g. Copy from GlobalBaseReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32929 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
0d630d220414b02fed6873555bb46795a682174b |
05-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
GEP subscript is interpreted as a signed value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f8e7a219121b7d6f8bcf1e22828648a243384fbb |
04-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
fix PowerPC/2007-01-04-ArgExtension.ll, a bug handling K&R prototypes with the recent signless changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
912095becac923ff614d7b07728eb345ada67765 |
04-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
Expand fcopysign to a series of bitwise of operations when it's profitable to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32881 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bcca3405bd6698af82eeed20e24744d0625aa1b3 |
03-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Legalizer doesn't do an ANY_EXTEND if we don't ask for one so make sure that we default to an ANY_EXTEND if no parameter attribute is set on the result value of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32836 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
26a3687d53b7381dd2b6abdd2e4e38271c8da37e |
03-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
NULL names should pass validation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32835 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
1e3a5772d8efa207aa6f03888164ba57236ed705 |
03-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Silence warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32834 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
376dd212f9142cd0f0b03e0b6296b2df7208bb9a |
03-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Restore previous behavior of defaulting to ZEXT. This works around two things: (1) preventing PR1071 and (2) working around missing parameter attributes for bool type. (2) will be fixed shortly. When PR1071 is fixed, this patch should be undone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8c57dfb1aea24132bd5b58c4ed4893ea967ba131 |
03-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Two changes: 1. Switch expression and cases are compared signed and are sign extended. 2. For function results needing extended, do SIGN_EXTEND if the SExtAttribute is set and ZERO_EXTEND if the ZExtAttribute is set, otherwise just let the Legalizer do ANY_EXTEND. This fixes the recent regression in kimwitu++ and probably the llvm-gcc bootstrap issue we had today. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b47b25cfda5aee910e128c89d08c630722eb480b |
03-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Clean up from recent changes. Comment the new parameter to ExpandLibCall. Consolidate some lines of code and remove duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32829 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ad93d7fda53d92d07a3b3a2087e46de7cd695752 |
02-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Fixing naming inconsistency: calleesave -> calleesaved. - Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32822 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
47857812e29324a9d1560796a05b53d3a9217fd9 |
31-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: Three changes: 1. Convert signed integer types to signless versions. 2. Implement the @sext and @zext parameter attributes. Previously the type of an function parameter was used to determine whether it should be sign extended or zero extended before the call. This information is now communicated via the function type's parameter attributes. 3. The interface to LowerCallTo had to be changed in order to accommodate the parameter attribute information. Although it would have been convenient to pass in the FunctionType itself, there isn't always one present in the caller. Consequently, a signedness indication for the result type and for each parameter was provided for in the interface to this method. All implementations were changed to make the adjustment necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32788 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ntrinsicLowering.cpp
achOWriter.cpp
achineDebugInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
e4d87aa2de6e52952dca73716386db09aad5a8fd |
23-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
ee5f9274b925c59082e7ed7f5506bbb5af0d854b |
22-Dec-2006 |
Jim Laskey <jlaskey@mac.com> |
Need to walk the derived chain of typedefs to get actual size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32744 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
d472ad7c7cb9378367bdc105dd208f80c7cd5998 |
22-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Debug dump error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32743 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
246dd65a13111f0288d14ff6b765688e3e5edaa7 |
21-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Just print integer constants as signed values. The actual signedness doesn't matter as it is determined in the way the constant is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32733 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
eefef64e591a851a47cd0525d96616ba99f73c75 |
21-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Simplify all the casting business and get rid of isSigned(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32731 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
0b4f80ee898c1e85242482e4cb363e6bfe0a133b |
20-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
getLoad() and getStore() calls missed SVOffset operand. Thanks to Dan Gohman for pointing it out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cd3245ac45c595da96bb768a55cddc356dff55fe |
19-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate static ctors from Statistics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32698 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
HIElimination.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGList.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
24287ddb81aca5d2579dc30ebd3528d2521529d7 |
19-Dec-2006 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix for PR1059: http://llvm.org/PR1059 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32685 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7df28dc9d7160772c3c0aabd72c32830c1bb5e57 |
19-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
May need to promote the operand (either sign_extend_inreg or and) before expanding a {s|u}int_to_fp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
722cb360690e5d7742b01a9f497fdb65bf8079d5 |
18-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
LegalizeSetCCOperands() may end up inserting libcalls. They need to be properly serialized. Do not clear LastCallSEQ_END until that is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32659 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8a903db4990d57aadea5cdad601ff26e92899103 |
18-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Convert the last uses of CastInst::createInferredCast to a normal cast creation. These changes are still temporary but at least this pushes knowledge of signedness out closer to where it can be determined properly and allows signedness to be removed from VMCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32654 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
15404d060ba8b604c03b9223a0f2e2abcd0fdded |
18-Dec-2006 |
Rafael Espindola <rafael.espindola@gmail.com> |
move ExtWeakSymbols to AsmPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32648 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
f2174da7132b1a3ce81d8a154a20c1285b5b15dd |
17-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Fixed so that it dereferences the ostream pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
5c7e326585f3a543388ba871c3425f7664cd9143 |
17-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Added an automatic cast to "std::ostream*" etc. from OStream. We then can rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
iveInterval.cpp
electionDAG/ScheduleDAGSimple.cpp
irtRegMap.cpp
irtRegMap.h
|
36d439666c9f9f781d57dc2fd6d3cc80602fe095 |
16-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Fix PR1049 and CodeGen/Generic/2006-12-16-InlineAsmCrash.ll by producing target constants instead of constants. Constants can get selected to li/movri instructions, which causes the scheduler to explode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32633 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e90460ee9ae9844d4dba9a29c39161ece61e8094 |
16-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Cannot combine an indexed load / store any further. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32629 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aa975c1c4785a1d7930f2cd1026cb40ce54d21e4 |
16-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand FP undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32623 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4b607748d86b44cc59e5cf3eee194dfd9b0fcd86 |
16-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
The best unbreakage yet, addressing Bill's concerns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32622 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineBasicBlock.cpp
achineInstr.cpp
|
0b1b9dcf22745b533562134c2f0472098fe085fd |
16-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow promoted FP_TO_UINT / FP_TO_SINT to expand operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
966bf24491f7e53238fc4127bb9fcf43e6739586 |
16-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand fabs / fneg to and / xor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c21c5eeb4f56f160e79522df2d3aab5cfe73c05d |
15-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
An even better unbreakage... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32617 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
achineBasicBlock.cpp
achineInstr.cpp
|
19103b11ecbd5153537a1c64ffefa922fe591add |
15-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix select_cc, select expansion to soft-fp bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f6c4ccfaab372081e021c9b02415f3db4190b37d |
15-Dec-2006 |
Jim Laskey <jlaskey@mac.com> |
This code was usurping the sextload expand in teh legalizer. Just make sure the right conditions are checked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2d53a320b4dbcd4af54b17458ed81c3963b544fd |
15-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
silence a bogus warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
86facc282850f99479584596058a5625b53caa69 |
15-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Minor clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32593 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
2b49c500838666dd0186d021389d4dd70ffda240 |
15-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand FP compares to soft-fp call(s) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
acd80ac7bb19f8bdfa55336d567c9ecbe695c8b8 |
14-Dec-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Tidy up jump table info. 2. Allow the jit to handle PIC relocable jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32581 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineFunction.cpp
electionDAG/LegalizeDAG.cpp
|
7a0d51c8e3d6cdc6d961f6525f97f8926fb76c83 |
14-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix a long-standing spiller bug: If a spillslot value is available in a register, and there is a noop copy that targets that register, the spiller correctly decide not to invalidate the spillslot register. However, even though the noop copy does not clobbers the value. It does start a new intersecting live range. That means the spillslot register is available for use but should not be reused for a two-address instruction modref operand which would clobber the new live range. When we remove the noop copy, update the available information by clearing the canClobber bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32576 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
9f87788040786b1bc6530763e4cf7e105bfb2924 |
13-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
More soft-fp work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
548f611baeb53e821e7e80f97722b048ab6b09b2 |
13-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand (f64 extload f32) to (f64 fp_ext (load f32)) if f64 type action is expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
98ff3b979af4916ba8a82eda7d77a66cdad31842 |
13-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand fsqrt, fsin, and fcos to libcalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6af00d588c1b353d9d7a3dd8f58927056eccd6c1 |
13-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand f32 / f64 to i32 / i64 conversion to soft-fp library calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32523 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7b06bd532d3324a2f76bbc856ae20ff89d8e0e92 |
13-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Replace CastInst::createInferredCast calls with more accurate cast creation calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32521 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
279101eb1ac61e2d5b83d5bdcc5be56e710d2cd7 |
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand FP constant to integers if FP types are not legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32497 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5c9ce1893a4bee65bc05c7c48f11734f55405692 |
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Soft fp FNEG, SINT_TO_FP, UINT_TO_FP libcall expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32495 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
004952140f3cf92ee098c2c5b8cdee1449bdc2ed |
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand ConstantFP to load from CP if float types are being expanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32494 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0ca67332fa4eaed35e8e85b2c935500798ea6c2a |
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand i32/i64 CopyToReg f32/f64 to BIT_CONVERT + CopyToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7b2b5c846c371f58db73f453a007e52eda62da89 |
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
- When expanding a bit_convert whose src operand is also to be expanded and its expansion result type is equal to the result type of the bit_convert, e.g. (i64 bit_convert (f64 op)) if FP is not legal returns the result of the expanded source operand. - Store f32 / f64 may be expanded to a single store i32/i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b15974a65ce3c5d5cdde8d5e524055d3f1d59a77 |
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand formal arguments and call arguments recursively: e.g. f64 -> i64 -> 2 x i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32476 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f0094839f058f56983f674ca575fcfda23d495ca |
12-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
fit in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d9e06a5d031ca370e3137c93f4bd1b97c719633d |
12-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
this can only be fptrunc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3bb7e3f3bae7f5004e82b9af0a6d713ddef4be8f |
12-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
This case isn't needed with recent changes to ConstantInt::get git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32472 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
ddc94019916fbe4d3fff915e6002c39c63488a44 |
12-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
split up inttoptr from ptrtoint handling, the cases aren't similar at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32471 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
cb0a6819895bf5e357a205b72f0a6fce90025f21 |
12-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
the operand of a bitcast is always the right size, just emit it in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32470 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
d93d46ee7e0a0e539d42139b85c71b2b8c3968fe |
12-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Revert Nate's patch to fix X86/store-fp-constant.ll. With the dag combiner and legalizer separated like they currently are, I don't see a way to handle this xform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32466 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
62be1a71f41813c99f24a136cc31c20fecd9bfb1 |
12-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
make this code more aggressive about turning store fpimm into store int imm. This is not sufficient to fix X86/store-fp-constant.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
86b89e55290e2245dc3fe72c4e084cc74179ac08 |
12-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Tidy up a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32462 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
15f46d6c280cc91be70c60ed181931fbe0088652 |
12-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Change inferred cast creation calls to more specific cast creations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32460 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ntrinsicLowering.cpp
achineDebugInfo.cpp
electionDAG/LegalizeDAG.cpp
|
13acce3ef03d29679c2b241bdba6ca015644e8b6 |
11-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply changes that were backed out and fix a naughty typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2381f6f6c6ab62724caaded8268b425564d61aca |
11-Dec-2006 |
John Criswell <criswell@uiuc.edu> |
It seems the llvm::OStream class does not handle stream manipulators. For now, just grab the stream and perform the output on it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
70a24b3141c098d67321dda4d6f615a9153d7d9b |
11-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Revert changes that broke oggenc on ppc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
25ece66ff39e9f136a8b48e0fea7aff2332848dc |
11-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Don't convert store double C, Ptr to store long C, Ptr if i64 is not a legal type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bbf1e5e2e9608d6077bc4ac03e884c1972148fe0 |
11-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
f32 / f64 node is expanded to one i32 / i64 node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32433 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b618230231273e9e609b9a39b8eb4684820b7149 |
11-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clean up some bad code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2cbba8934745fe30662f2d5a59d03545ad5212c5 |
11-Dec-2006 |
Nate Begeman <natebegeman@mac.com> |
Move something that should be in the dag combiner from the legalizer to the dag combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32431 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
bfaaaa6e0f105cc57933afa9a380763fe87a5ff3 |
11-Dec-2006 |
Nate Begeman <natebegeman@mac.com> |
Properly mangles symbol table names Supports constant pools Supports relocations to jump tables Supports relocations within the data segment (global = address of global) Allocates memory in a non-hacky for all non-code objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32430 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
d27a258d2d7691db3731135a448b7654d260cc07 |
11-Dec-2006 |
Anton Korobeynikov <asl@math.spbu.ru> |
Cleaned setjmp/longjmp lowering interfaces. Now we're producing right code (both asm & cbe) for Mingw32 target. Removed autoconf checks for underscored versions of setjmp/longjmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
1a8f1fe676f1d83e0da7336e744ebcdcc14a88c4 |
09-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Preliminary soft float support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32394 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
cc22a7a2adfea3fc318a6d8ca0c692a8e892105b |
08-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Move findTiedToSrcOperand to TargetInstrDescriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32366 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
irtRegMap.cpp
|
5c2a46052b3fa69dbdae483870ebe1b9e50386b5 |
08-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Proper fix for PR1037: to determine is a VR is a modref, check 1) whether it is tied to another oeprand, 2) whether is is being tied to by another operand. So the destination operand of a two-address MI can be correctly identified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32354 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7814ad0bf38047628eb3165e1b73e44da7e8b825 |
08-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
findTiedToSrcOperand() changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32353 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
555d8d6f4b0693309cd70efbf51b7abf804df5e4 |
07-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/PowerPC/2006-12-07-SelectCrash.ll on PPC64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32336 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bcd2498f4f1682dbdc41452add5b9bc72cbd6b3f |
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removed more <iostream> includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32321 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
iveVariables.cpp
achOWriter.cpp
achineBasicBlock.cpp
achineFunction.cpp
egAllocSimple.cpp
electionDAG/SelectionDAG.cpp
woAddressInstructionPass.cpp
|
832171cb9724d2d31c8dfb73172e2be8f6dd13ee |
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removing even more <iostream> includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32320 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
egAllocLocal.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
fe46361719e86c75c9f7470c7f8ed0e3c3611bdf |
07-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Revision 1.83 causes PR1037. Reverted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32305 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7d3223eef2982d7acdfb24facde6605fd9a8b5e8 |
07-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Initialize {Min|Max}CSFrameIndex properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32299 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
e81561909d128c6e2d8033cb5465a49b2596b26a |
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
LFWriter.cpp
ntrinsicLowering.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
irtRegMap.cpp
irtRegMap.h
|
51cdcd197268a7abf19b2698fc824e0da3d98049 |
07-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
MI keeps a ptr of TargetInstrDescriptor, use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32296 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
6065f66e7c3fbde299a387d8a42c2d3a57d13c38 |
07-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
getOperandConstraint returns -1 if the operand does have the specific constraint. This bug was causing excessive spills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32295 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ac0b6ae358944ae8b2b5a11dc08f52c3ed89f2da |
06-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
iveIntervalAnalysis.cpp
HIElimination.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGList.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
2b4e98cb20c9391399b2601a793b6ea689da3cee |
06-Dec-2006 |
Jim Laskey <jlaskey@mac.com> |
Some addresssed should be 64-bit and some shouldn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32278 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
576d123e130a8291669dd2384a3735cc4933fd00 |
06-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32273 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4c7e227973132deb49f2feb7293e080b55c377e0 |
06-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate fp statistic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32251 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
97af751deb9b26fd42fbcee082da9ccc4ded5b45 |
02-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32113 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
electionDAG/SelectionDAG.cpp
|
ba59a1e453e110f7b84233f07613f9c5d9a39b87 |
01-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Match TargetInstrInfo changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32098 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
2bbff6d17350edae5d9ae48b3f0735386d69cccf |
30-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
better check for version git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32045 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
2172f966ca6ddd805d914498851243099c778b54 |
30-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Change global descriptor names to provide name, full name and linkage name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32036 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
749b01d5ff44e34018254d1653982efa94642a26 |
30-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Temp fix to deal gdb issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32035 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
67f660cb080965ea93ed6d7265a67100f2fe38e4 |
30-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode. - Remove the ugly TargetInstrDescriptors hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32032 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6a16c5ab2d7786583d3c9a79646dc85fbda6cd41 |
29-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Avoid inifinite looping if READCYCLECOUNTER isn't custom lowered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
36729ddd23fe51e10eabfc7e8ac4d4635a0b7935 |
29-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Eliminate unnecessary scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32020 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f0b3ba6752a49a8868d423ddc2704a52b7101571 |
29-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to custom lower READCYCLECOUNTER (when it doesn't have to be expanded). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f3e486e069011c70abb771958dc1218912b98eea |
29-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1023 by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32003 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a5a57d66f5717873dbf3c48b174c0b0ce54b6612 |
29-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1022 (folding loads of static initializers) by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3f7927c84c1b8c449378eaaf67eb9c563eb78949 |
29-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
add a hook to allow targets to hack on inline asms to lower them to llvm when they want to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bdc679d564e67a81792e463f6614b0088f975025 |
29-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Converted to using llvm streams instead of <iostream>s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31992 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
LFWriter.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
|
a09362eb975730ac624c0bd210a95655ee105296 |
28-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Use llvm streams instead of <iostream> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31985 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
|
38b0e7bbf2590f99122a2535d16f34bd12c3bb24 |
28-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Put the #include for a module first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31958 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
8bcb042f22f06d034f18aee8cb5dd0a04745fd97 |
28-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31957 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d9fd2acc1f172e4b8c33c3562667102f9af4d28d |
28-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Changed to using llvm streams. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31954 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
iveInterval.cpp
|
b6c806045bbd4a650f90f613a96cee01a1584412 |
28-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Fix PR1016 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31950 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c0f64ffab93d11fb27a3b8a0707b77400918a20e |
28-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead of opcode and number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
3687c1a4d3ecbe6709fddd77d79dc6b128d31431 |
27-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Fix the dag combiner bug corresponding to PR1014. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
bc4cf8d5b137d43a1d6fde8238184e47efe162be |
27-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
For better or worse, load from i1 is assumed to be zero extended. Do not form a load from i1 from larger loads that may not be zext'd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31933 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f9908172e980aab15a36bd110ccdbc5f7afa44f6 |
27-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
If a brcond condition is promoted, make sure to zero extend it, even if not expanded into BR_CC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3da59db637a887474c1b1346c1f3ccf53b6c4663 |
27-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ntrinsicLowering.cpp
achineDebugInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
0374248e86f66231ff5f07e6bce14e3dd67abd14 |
20-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Global label not handled correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31883 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
32ba1aa20468a1906ee69315bda47da6b1b2dc5e |
20-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Fix PR1011 and CodeGen/Generic/2006-11-20-DAGCombineCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31878 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a138c6c73a9e594d82958af6b9ee01108e05e7ac |
20-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
setOperand should not zap the operand list or add implicit operands to an instruction. Doing so breaks the FP stackifier, the alpha branch selector the sparc fpmover. This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31876 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
45fb3f3cb2b8efc01d9bbe42a64194f35b92c759 |
20-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: First in a series of patches to convert SetCondInst into ICmpInst and FCmpInst using only two opcodes and having the instructions contain their predicate value. Nothing uses these classes yet. More patches to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4b105912657c0472dc4f6f7244ce20bf7cf9a7dc |
18-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Don't transform in another bad case: if the block is empty, it should be simplified before we do this xform so that our cost model is accurate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31864 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f10a56a86f8ae32d0493c7de770493d55519b073 |
18-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Fix another case we *don't* want to do this xform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31861 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
1ccc4684f3413d1f176a2c7a867545ce03b6414c |
18-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Implement operator<< for machine basic blocks to make it easier to dump them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31857 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
154e1047184384afd0a701a9f8816459cf0b3490 |
18-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
make the previous change more aggressive, moving any block with no fallthrough. This speeds up yacr2 by 7% on a core2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31856 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a7bef4a4e49f461984c04ef6be6eef3f1c023558 |
18-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Minor code layout tweak: if we have something like this: if (cond) goto BB2 BB1: ... return; BB2: ... Move BB1 to the end of the function so that the code falls through in the non-return case. This has the effect of moving assert (and other no-return call) bodies and return blocks out of loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31855 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
5f64a16869ea8982146fccbc2f94011d550392f5 |
17-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Fixing the ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1 build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
b2b9c20b6121a54a41ee1c583a4bff4389622da2 |
17-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
More removal of std::cerr and DEBUG, replacing with DOUT instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31806 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
irtRegMap.cpp
irtRegMap.h
|
54fcc7f70405646a386c7718896fe8f28d5f5308 |
17-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Replace std::cerr uses of the "DEBUG" macro with "DOUT" instead. Removes a #include of iostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31800 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
00e533043d37e4a5b6783da7e3e29e8e6b240ad5 |
16-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31789 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
ce9a576f298b2159c5f9f39275214870e38ffbef |
16-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Match MachineCodeEmitter changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31787 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achOWriter.cpp
|
beeb77f3ae9e784f45ede2e38f51b9b25eb65913 |
16-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Don't recompute getNumOperands for each iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31783 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
01352aa1875ee08ae847cce398322042830d92ed |
16-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Added a new method "CreateNewLiveInterval" which, given a list of LiveRanges, creates a new LiveInterval from them. The LiveRanges should have existed already in another LiveInterval, but removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31780 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e01eaa09c6be30497fde9bc4a8776752f27f74b6 |
16-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
enable the branch folding pass for the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31777 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
cc47021f49851a1b5344b7a0530f7ac50a395216 |
16-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix an incorrectly inverted condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31773 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
ddee8420622db50f7714c7a17188449c395a4392 |
15-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Match live variable changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31762 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
6b2c05f3d3c7b44183c629485ade10c18b86828d |
15-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Minor updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31761 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9a1956ae6ad2d4892afbc9f1b97d645d220b6d4a |
15-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
A register def can be partially dead when the whole register has use(s) but a subreg does not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31760 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a6c4c1eb90413986519c46f70222539dee39ffe9 |
15-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Do away with kill / dead maps. Move kill / dead info onto MI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31759 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
b71fd7897f6b4500cdbe602c5a9907316750cf5a |
15-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify IntrinsicLowering and clarify that it is only for use by the CBE and interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31755 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
43193d60e9c512fbb7ac8e682b4c807ba3e8408e |
15-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
remove dead #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7ce45783531cfa81bfd7be561ea7e4738e8c6ca8 |
14-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Matches MachineInstr changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d7de496b23fca8145f777a56281457bf64e8bbad |
14-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Let MachineInstr ctors add implicit def and use operands. Other operands will be inserted before these operands. If the opcode changes (by setOpcode), the implicit operands are updated as well. - Added IsKill, IsDead fields to MachineOperand in preparation for changes that move kill / dead info to MachineInstr's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31711 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a07d5b91644eedadf768f91d3959224357fafbc9 |
11-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Make an assert comment match the tested assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3ba433a7e85c4f5b943ae6585a0327f4ccd461a0 |
11-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add methods to add implicit def use operands to a MI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31675 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
41e53fd39b453be9266e832d7534ae0edeaf334c |
11-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
disallow preinc of a frameindex. This is not profitable and causes 2-addr pass to explode. This fixes a bunch of llc-beta failures on ppc last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9f1794ea58fd2acd10b6f39a01ff0fb5a29466cc |
11-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
reduce indentation by using early exits. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31660 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
448f219fedf4f2d119599952b6229f11ed11b035 |
11-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
move big chunks of code out-of-line, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31658 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
734c91d2506233d6e5d6531abcfbf6302bff3c8d |
10-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a dag combiner bug exposed by my recent instcombine patch. This fixes CodeGen/Generic/2006-11-10-DAGCombineMiscompile.ll and PPC gsm/toast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31644 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
438f7bc67cf235ccee7e6f7ac7f4ae2186eb8020 |
10-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add implicit def / use operands to MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31633 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
egAllocLocal.cpp
electionDAG/ScheduleDAG.cpp
|
a7ff64d6080ed2b4bd08b6ee75920e8ad5302143 |
10-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
When forming a pre-indexed store, make sure ptr isn't the same or is a pred of value being stored. It would cause a cycle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1e7aa5c209109d07af30c8a2e9bfd82cf3824246 |
10-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
commentate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31627 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8dc5cad8a255caa4d12d4eba20ad66f3959d161c |
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Don't attempt expensive pre-/post- indexed dag combine if target does not support them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31598 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5ff839fbabe8b1d26cf4db5c541eb5d7942c25d6 |
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add a mechanism to specify whether a target supports a particular indexed load / store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
00305822396b34bce1b48231b0aaefaadd08e099 |
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
144d8f09e139f691cafadbc17873943ba4c465f3 |
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31595 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
85f419b36c5bd9802476721eb4ceeec953a21e29 |
09-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Allows debugging llc self hosted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31594 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
5496f01465b671c95556edfb6433aa0098a12356 |
09-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Merging dwarf info to a single compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31593 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
d258efaf6eeb63792ba630edc50405fb559337fb |
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
getPostIndexedAddressParts change: passes in load/store instead of its loaded / stored VT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a1fd6504aaf62b87530e8230517957bad3facc96 |
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove M_2_ADDR_FLAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31583 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b00dddd1643f207f09de382dd67675f375327bb7 |
08-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Match more post-indexed ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d6c3422e3126927840683574a658a0deada903f0 |
08-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Remove redundant <cmath>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31561 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
6ea0f6bce837a0133f9f0bc0ee0f1f7eb1e91644 |
08-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Now can re-enable debug label folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31549 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
03fa6ea4025d9c658badc5670413e02e4eefc2f2 |
08-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
- When performing pre-/post- indexed load/store transformation, do not worry about whether the new base ptr would be live below the load/store. Let two address pass split it back to non-indexed ops. - Minor tweaks / fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a4f53ef527e20310555f73e624e7343cda3496cd |
08-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a minor bug preventing some pre-indexed load / store transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31543 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3822ff5c71478c7c90a50ca57045fb676fcb5005 |
08-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch converts the old SHR instruction into two instructions, AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not dependent on the sign of their operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31542 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
6c1491dd0610ca826d460ad469af9ade62290708 |
08-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix a obscure post-indexed load / store dag combine bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5d056952ba2f97729c5db69a3f14250595fa1ee8 |
08-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
optimize single MBB loops better. In particular, produce: LBB1_57: #bb207.i movl 72(%esp), %ecx movb (%ecx,%eax), %cl movl 80(%esp), %edx movb %cl, 1(%edx,%eax) incl %eax cmpl $143, %eax jne LBB1_57 #bb207.i jmp LBB1_64 #cond_next255.i intead of: LBB1_57: #bb207.i movl 72(%esp), %ecx movb (%ecx,%eax), %cl movl 80(%esp), %edx movb %cl, 1(%edx,%eax) incl %eax cmpl $143, %eax je LBB1_64 #cond_next255.i jmp LBB1_57 #bb207.i This eliminates a branch per iteration of the loop. This hurted PPC particularly, because the extra branch meant another dispatch group for each iteration of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31530 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
4d0c1a04bca539e1c6dd5541c25880e7fe7b69c3 |
07-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Accidently reran commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31516 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
5e213ea69796f695d5c33f18c25c82dad4c87a24 |
07-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Missed a label map, reverting till covered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31514 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
fffcd69709142c1afef256fff21585ba642734a8 |
07-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Missed a label map, reverting till covered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31512 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
9d4209fb82cab74bae76511e3f21ef1c24ec948a |
07-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Add a pass to fold debug label instructions so a debug info client can detect empty ranges. 2. Reorg how MachineDebugInfo maintains changes to debug labels. 3. Have dwarf writer use debug label info to simplify scopes and source line coorespondence. 4. Revert the merging of compile units until I can get the bugs ironed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31507 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
LVMTargetMachine.cpp
achineDebugInfo.cpp
|
393ebae0ef7fa72d133bf901a02fcce3b5554ab7 |
07-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Enable improved spilling costs by default. This speeds up viterbi on x86 by 40%, FreeBench/fourinarow by 20%, and many other programs 10-25%. On PPC, this speeds up fourinarow by 18%, and probably other things as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31504 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7902c75331fa8f38fc8380f5573d935c0d149ef5 |
07-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Use correct value for float HUGH_VAL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31500 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
bbd6f6ec1a79c1624fb9cd0a3a1d26155de7c090 |
07-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add post-indexed load / store transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b75a663707e40a6b72bf404e7fbf08f7d9e1eb90 |
07-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new llcbeta option. This speeds up viterbi from 12.34 to 8.76s on X86. If happy, I'll enable this by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31493 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5a4951e93622118eaf345d6c7599eccb6d4cfb65 |
07-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Unbreak X86/ELF Debugging. Somehow this line got lost in Jim's cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31492 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
fa9aa2b424d0a7d9f7201f8fdcf5ccfa05db3a80 |
07-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Fix PR988 and CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll. The low part goes in the first operand of expandop, not the second one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31487 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d5ad440f4371448e2c926b4f6613cc7107dd5c5c |
06-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove dead code; added a missing null ptr check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f910a3ff0f63143f44536db38e5975aec01c01d8 |
06-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Tab interferes with uniqueness. NOTE: There doesn't seem to be consistency for whether a leading tab is present in a section heading. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31475 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
84ca10f47b2f9951e2156e430a800ce8d98e2000 |
06-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
D'oh - reversed logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31474 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
3ef554d2b12af4ed0a25161fa02222d8f14026e5 |
06-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31473 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d41b30def3181bce4bf87e8bde664d15663165d0 |
05-Nov-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
33dbedcdcb6d4d647b013b1c57ad30bf53b15e1f |
05-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added pre-indexed store support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9109fb1eb7d3341727353777c2a4282aa1a0c39a |
05-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added getIndexedStore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31458 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5cd496e72773985590a7dfc003279459951c81d7 |
04-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Live local variables are being dropped because the begin or end labels marking their scope are being deleted. Workaround is to widen scope to full function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31454 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
95f6edeff5ab6de9cf5589f662c8e7a6ba119c2c |
04-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Changes to use operand constraints to process two-address instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
e077ef6e85fe0c18f135e6c2c78572a44f689b14 |
04-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fixed some spiller bugs exposed by the recent two-address code changes. Now there may be other def(s) apart from the use&def two-address operand. We need to check if the register reuse for a use&def operand may conflicts with another def. Provide a mean to recover from the conflict if it is detected when the defs are processed later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31439 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
033b107e10c6b859ad45a126edbe54746547c0c4 |
03-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
this will work better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31419 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
070971866586bb0f45c7e5001b63ced0a1b64387 |
03-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Fix the build on xcode < 2.4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31417 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
e6e97e66a366cc7d2d103ac58db56e4bfd700b10 |
03-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31414 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1a854be35295fd1c9c4d0d0f8894e720e22b5e4f |
03-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31413 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b8f4e0aa1719c1d5b93b096a8723ec7f68b4929a |
03-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Remove dead variable. Fix 80 column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31412 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7fc033a24d5e82674212379ef4d4d67373a03990 |
03-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added DAG combiner transformation to generate pre-indexed loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c5fc57dcaeac6b479fb15b9e1f4aca0845141006 |
03-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added isPredecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31409 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bf105c842450d3308d024be203ddd533f37051ec |
03-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Proper check for two-addressness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31408 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
02cb49ee679f60662220fca4e26df4f9f16db5e0 |
03-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAG.cpp
|
97821311a32b5ca11b5f843f90a85875feb7d142 |
03-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Make CodeGen libs -pedantic clean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31387 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
akefile
|
f673388351b7156e384bbcd45401fcab400be356 |
02-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Hash not quite right for DIEValues. 2. Not going to use Usage (no significant benefit.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31384 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
9bd6d65e299ee3937c29904821b2b6d8bb87ae4a |
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31382 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
3ed469ccd7b028a030b550d84b7336d146f5d8fa |
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR786: Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
warfWriter.cpp
LFWriter.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
ef42a01113a1ee8ef0f2c803ec05a5f20eca2854 |
02-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
General clean up of teh dwarf writer. 1. Most significant is the folding of debug information entries. This reduced self hosted -g SelectionDAGISel.s from 120M to 13M and pretty close to matching .o file sizes with gcc. 2. Debug information entry printing for debugging the dwarf code. 3. Bring all the code closer to llvm standards. 4. Misc. fixes and doc clean ups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31379 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
0a783f783ca05c961234385f5b269d4cf03dbbdb |
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: Replace the REM instruction with UREM, SREM and FREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2a821601f1db665fbb825727aacf1a54d17b91ef |
02-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Allow the getRegForInlineAsmConstraint method to return a register class with no fixes physreg. Treat this as permission to use any register in the register class. When this happens and it is safe, allow the llvm register allcoator to allocate the register instead of doing it at isel time. This eliminates a ton of copies around common inline asms. For example: int test2(int Y, int X) { asm("foo %0, %1" : "=r"(X): "r"(X)); return X; } now compiles to: _test2: foo r3, r4 blr instead of: _test2: mr r2, r4 foo r2, r2 mr r3, r2 blr GCC produces: _test2: foo r4, r4 mr r3,r4 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e6ae14e1f413987f3de31a7cad1b20a7893f8cae |
02-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31364 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
irtRegMap.cpp
|
360c2dd25a0dc7eaed3d57af47a47ac7d12a6886 |
02-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Two-address instructions no longer have to be A := A op C. Now any pair of dest / src operands can be tied together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31363 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
1dabb68ab45cb05a2c50e9a6f18f60cd3d7105f4 |
01-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
93467e7fe3ba5cb60dec94b3ae8cdb13e51aa9a2 |
01-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
CopyFromReg starts a live range so its use should not be considered a floater. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
d4bf3c2fd60975b30cd067b59f743a3ea45e45b5 |
01-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
give branch folding a simple heuristic to decide which block to split so that it inserts an uncond branch where it is less likely to cause a problem. This fixes some perf issues on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31354 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
41349c10cbb166c58a20896e4761455f001c611e |
01-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add a printSetLabel that takes two id's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31347 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
6cc31ae4da958abc85309f2160e64d6effaa2d3c |
01-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Print jumptable index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
1d08d83230338ca5969ff6ae6737a978336538bf |
01-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
make tail merging more aggressive. If two blocks share a common tail, but the tail is not an entire block for either of them, pick one, split it, then merge the common part. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31336 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
d8ccff0c3e5028019a02dd44bf7d906efc9effd8 |
01-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
enable branch folding with an option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31335 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
0ccb500fa7a28baeb66754ff4a6950fa0e82617d |
01-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Compile CodeGen/PowerPC/fp-branch.ll to: _intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 blt cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr instead of: _intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bge cr0, LBB1_1 ;bb72.exitStub LBB1_4: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bnu cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
df19f27d039fd791c73e39f4134319debc75db4f |
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
look through isunordered to inline it into branch blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31328 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
efa46ce87bd454d128c4429475fea805aa98a5f6 |
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
handle global address constant sdnodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31323 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
53069fbbae2558a3138df24776448791fea3acee |
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
TargetLowering::isOperandValidForConstraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31319 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dba1aeedd8179114a45be655b985455218d20806 |
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Change the prototype for TargetLowering::isOperandValidForConstraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ab4022f196059745c0ca0780b71a80fa67e896be |
31-Oct-2006 |
Anton Korobeynikov <asl@math.spbu.ru> |
1. Clean up code due to changes in SwitchTo*Section(2) 2. Added partial debug support for mingw\cygwin targets (the same as Linux\ELF). Please note, that currently mingw\cygwin uses 'stabs' format for storing debug info by default, thus many (runtime) libraries has this information included. These formats shouldn't be mixed in one binary ('stabs' & 'DWARF'), otherwise binutils tools will be confused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31311 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
d03f1581c8a854fdbe4f5a738e9322341c2bc77f |
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Turn an assert into an error message. This is commonly triggered when we don't support a specific constraint yet. When this happens, print the unsupported constraint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31310 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d063189c0958536aae7ecebec5676541b2cdef9b |
31-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo which can break jumptables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0de0c5da429f8651eeccbcbe68feab23054bd55d |
31-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Fix a problem introduced by a last-minute change (logic negation). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31302 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
02b8511364a61b559369d8dc36e82a486f42fec3 |
30-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Add debug support for X86/ELF targets (Linux). This allows llvm-gcc4 generated object modules to be debugged with gdb. Hopefully this helps pre-release debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31299 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
a9c83fe5e110108c83427339265f733dc711f625 |
30-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Switch abbreviations to use the folding set.a. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31296 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
6519546edabd107815637d596f1ece3d88d1b317 |
30-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Simplify DwarfWriter header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31295 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
3d4ce1108520a4dcf31cb01523e145d286ee64c1 |
30-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Lower jumptable to BR_JT. The legalizer can lower it to a BRIND or let the target custom lower it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c41cd9c391f1f69adf416145a5a1308d7ce342fc |
30-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added a new SDNode type: BR_JT for jumptable branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31292 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6b0e3f890779b7fc912bec8d40a9590e44742737 |
29-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Make CanFallThrough more intelligent (so it can handle blocks with (e.g.) no successors), and make island block movement more general. This compiles CodeGen/X86/2006-04-27-ISelFoldingBug.ll to: _loadAndRLEsource_no_exit_2E_1_label_2E_0: subl $8, %esp movl %esi, 4(%esp) movl %ebx, (%esp) movl 16(%esp), %eax movl 12(%esp), %ecx LBB1_3: #label.0 movl _last, %edx movl %edx, %esi incl %esi movl %esi, _last movl %ecx, %ebx # TRUNCATE movb %bl, %bl movl _block, %esi movb %bl, 1(%esi,%edx) cmpl %eax, _last jge LBB1_2 #codeRepl5.exitStub LBB1_4: #label.0 cmpl $257, %ecx je LBB1_2 #codeRepl5.exitStub LBB1_1: #label.0.no_exit.1_crit_edge.exitStub movl $1, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret LBB1_2: #codeRepl5.exitStub xorl %eax, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret instead of: _loadAndRLEsource_no_exit_2E_1_label_2E_0: subl $8, %esp movl %esi, 4(%esp) movl %ebx, (%esp) movl 16(%esp), %eax movl 12(%esp), %ecx jmp LBB1_3 #label.0 LBB1_1: #label.0.no_exit.1_crit_edge.exitStub movl $1, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret LBB1_2: #codeRepl5.exitStub xorl %eax, %eax movl (%esp), %ebx movl 4(%esp), %esi addl $8, %esp ret LBB1_3: #label.0 movl _last, %edx movl %edx, %esi incl %esi movl %esi, _last movl %ecx, %ebx # TRUNCATE movb %bl, %bl movl _block, %esi movb %bl, 1(%esi,%edx) cmpl %eax, _last jge LBB1_2 #codeRepl5.exitStub LBB1_4: #label.0 cmpl $257, %ecx jne LBB1_1 #label.0.no_exit.1_crit_edge.exitStub jmp LBB1_2 #codeRepl5.exitStub ... which is much better layout :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31282 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
6a586c8d9a7ba032adf0619d06473310c41cae14 |
29-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
fix Generic/2006-10-29-Crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31281 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5a145f0094d7e15ca3c0326b1af2ea0ad19f9726 |
29-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a load folding issue that Evan noticed: there is no need to export values used by comparisons in the main block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ba726ab3ec88b3b149b4caa34dec5ade5a3a7f89 |
29-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
VLOAD is not the LoadSDNode opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31276 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f6aaaaa39ef0901623965b9e8306c36a6d3bb89e |
29-Oct-2006 |
Nick Lewycky <nicholas@mxc.ca> |
Remove spurious case. EXTLOAD is not one of the node opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31275 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bad7f48c7070444eeb767c169f8bbed86b2c1ae1 |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
split critical edges more carefully and intelligently. In particular, critical edges whose destinations are not phi nodes don't bother us. Also, share split edges, since the split edge can't have a phi. This significantly reduces the complexity of generated code in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6acfe12dd6d52c801f78c240528b7cb42fa91159 |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Teach branch folding to fold identical jump tables together and to delete jump tables that are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31273 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a4eb44a285984ec999de632beb5145b099f5416d |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
const'ify jump table stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31269 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e7251a0377334bdb57bd188828bf89c9e3980fad |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add an assert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31267 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
07371882208f913d18a7f2a47373eaee7138416b |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
don't print dead jump tables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31266 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
cf420cca572b061fdd63587cb90904c641b6e216 |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
improve deletion of blocks that just contain branches by knowing that the pred block doesn't fall through into them if it's a jumptable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31263 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
1c6f01aaa58c1f8666c30465b73b702524fa9553 |
28-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Load and stores have not been uniqued properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
47e32e6b831dad8289fd498c71c5f641172b1c09 |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Split *all* critical edges before isel. This resolves issues with spill code being inserted on unsplit critical edges, which introduces (sometimes large amounts of) partially dead spill code. This also fixes PR925 + CodeGen/Generic/switch-crit-edge-constant.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6fb6ef4d65abcbbb0b0d81e1b51d99949664ac86 |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a serious bug that caused any x86 vector stuff to infinite loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
def69b92e70d156ed6f8c7af33c9a87d3f475e09 |
28-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8c494ab759266322aa05d5e99af9c05eb0d44576 |
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in merged condition handling (CodeGen/Generic/2006-10-27-CondFolding.ll). Add many fewer CFG edges and PHI node entries. If there is a switch which has the same block as multiple destinations, only add that block once as a successor/phi node (in the jumptable case) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
583bd47f777fe3eb8305872fa0eadab31e833dff |
28-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Switch over from SelectionNodeCSEMap to FoldingSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31240 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
|
1c9b2f312d63902303507ee35dbd7631447773be |
27-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
remove debug code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d2f9ee9ea7b08c23a8742b6a53dd78a20233adc0 |
27-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen cond&cond with two branches. This compiles (f.e.) PowerPC/and-branch.ll to: cmpwi cr0, r4, 4 bgt cr0, LBB1_2 ;UnifiedReturnBlock LBB1_3: ;entry cmplwi cr0, r3, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock instead of: cmpwi cr7, r4, 4 mfcr r2 addic r4, r3, -1 subfe r3, r4, r3 rlwinm r2, r2, 30, 31, 31 or r2, r2, r3 cmplwi cr0, r2, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock LBB1_1: ;cond_true git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31232 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
571e434a34e26f295f13db2dd07551de7e25f8a9 |
27-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Turn conditions like x<Y|z==q into multiple blocks. This compiles Regression/CodeGen/X86/or-branch.ll into: _foo: subl $12, %esp call L_bar$stub movl 20(%esp), %eax movl 16(%esp), %ecx cmpl $5, %eax jl LBB1_1 #cond_true LBB1_3: #entry testl %ecx, %ecx jne LBB1_2 #UnifiedReturnBlock LBB1_1: #cond_true call L_bar$stub addl $12, %esp ret LBB1_2: #UnifiedReturnBlock addl $12, %esp ret instead of: _foo: subl $12, %esp call L_bar$stub movl 20(%esp), %eax movl 16(%esp), %ecx cmpl $4, %eax setg %al testl %ecx, %ecx setne %cl testb %cl, %al jne LBB1_2 #UnifiedReturnBlock LBB1_1: #cond_true call L_bar$stub addl $12, %esp ret LBB1_2: #UnifiedReturnBlock addl $12, %esp ret And on ppc to: cmpwi cr0, r29, 5 blt cr0, LBB1_1 ;cond_true LBB1_3: ;entry cmplwi cr0, r30, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock instead of: cmpwi cr7, r4, 4 mfcr r2 addic r4, r3, -1 subfe r30, r4, r3 rlwinm r29, r2, 30, 31, 31 and r2, r29, r30 cmplwi cr0, r2, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5270cf1b77e68b19e2c689e87700029821c70aa2 |
26-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
getPreIndexedLoad -> getIndexedLoad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31209 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1628cec4d7fce310d9cde0bcc73997e5a71692c4 |
26-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: Make necessary changes to support DIV -> [SUF]Div. This changes llvm to have three division instructions: signed, unsigned, floating point. The bytecode and assembler are bacwards compatible, however. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c2e91e34dc18d794435db86713c06400ea60e930 |
26-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
simplify code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31188 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
323ece6fcd9722482a0be6c82afc5abc75739c78 |
25-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
turn off tail merging for now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31180 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
13a04125df039d118c688df26998343a00d8a749 |
25-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
be more aggressive about matching identical instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31179 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f9c197e022521a83f8876890b4241fc23e63572c |
24-Oct-2006 |
Devang Patel <dpatel@apple.com> |
Move getPreferredAlignmentLog from AsmPrinter to TargetData git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31171 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
2452595927a19a84ab20f012f1e2414a18f65ffb |
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
visitSwitchCase knows how to insert conditional branches well. Change visitBr to just call visitSwitchCase, eliminating duplicate logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
57ab65972e09be54da6461e483664ebf34afa1ee |
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Generalize CaseBlock a bit more: Rename LHSBB/RHSBB to TrueBB/FalseBB. Allow the RHS value to be null, in which case the LHS is treated as a bool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7b248d986670c214674c45d362950ec105668255 |
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
generalize 'CaseBlock'. It really allows any comparison to be inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
62d07d6acef9f5fd807b98a509d164bd3d6f0187 |
24-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Don't do dead block elimination in fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31155 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
e719d9f8f29bfc227eb109f6cee51a150a25189f |
24-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
LinearScanner hotspot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31153 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
fcc1d9473ee6dbc79128561449ff8d603a846f92 |
24-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Tighter data structure for deleted debug labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31152 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
7d09784d3fc652131a2afbf06a0f2ed893837fb9 |
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
move single basic blocks that are neither fallen into nor fall out of into a place more useful. In particular, if we can put them in a place where code will be able to fall into it, do so. Otherwise, put it in a place it can fall through into a successor. Otherwise, if preventing a fallthrough, move to the end of the function, out of the way. This deletes several hundred unconditional branches from spass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31149 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
c585a3f62adb2e491d792115af637ef75bdf489e |
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add moveBefore/moveAfter helper methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31145 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
a4bcfe12d1ea16e3e4ea9148e2d9cba3bb63dbda |
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Enable tail merging by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31140 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
b354343af79ce7b64e3b32696f37ad0ce29f3ffd |
23-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Minor tweak. Instead of generating: movl 32(%esp), %eax cmpl $1, %eax je LBB1_1 #bb LBB1_4: #entry cmpl $2, %eax je LBB1_2 #bb2 jmp LBB1_3 #UnifiedReturnBlock LBB1_1: #bb notice that we would miss the fall through and emit this instead: movl 32(%esp), %eax cmpl $2, %eax je LBB1_2 #bb2 LBB1_4: #entry cmpl $1, %eax jne LBB1_3 #UnifiedReturnBlock LBB1_1: #bb git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
66ebf0973d717b4b2cdef731847aef3904fd04b2 |
23-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
More complete solution to deleting blocks and debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31129 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
warfWriter.cpp
achineDebugInfo.cpp
|
b2e806eecd85c98367f038817e742ef183dd9f87 |
23-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix phi node updating for switches lowered to linear sequences of branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31125 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e236ac64a2b149ccf4216159430de512ec58a504 |
23-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
disable this code for now, it's not yet safely updating phi nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d2c1d2200b4d1012c61c4bcddfbc6fefcf3a05e1 |
22-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Implement PR964 and Regression/CodeGen/Generic/SwitchLowering.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31119 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4bc135e93beebdcb3b9c44745c5ccbc91199ac0b |
21-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
don't break infinite loops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31102 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a2d799531a748a349b9a458dbbc580b134074c49 |
21-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Use branch reversal to do stuff like this: call L_strcmp$stub testl %eax, %eax - jne LBB26_208 #cond_true6020 - jmp LBB26_227 #bb7119 + je LBB26_227 #bb7119 LBB26_208: #cond_true6020 movl $l31_str14, 4(%esp) testl %eax, %eax - jne LBB26_704 #cond_true13042 - jmp LBB26_713 #bb13151 + je LBB26_713 #bb13151 LBB26_704: #cond_true13042 movl $_str52, 4(%esp) cmpl 76(%ecx), %eax - jge LBB26_1628 #cond_false63.i.i - jmp LBB26_1769 #_Z8makeGridP13mrSurfaceListidiidd.exit.i + jl LBB26_1769 #_Z8makeGridP13mrSurfaceListidiidd.exit.i LBB26_1628: #cond_false63.i.i movl $0, 48964(%esp) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31100 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
2d47bd937c13556ace07b2b2daf4dfe75f4e1e90 |
21-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Transform code like: jle FOO jmp BAR BAR: into: jle FOO BAR: ... whoa! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31098 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
386e29065db5b05b57440f6b2a6dfa1e7f29a00d |
21-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Three changes: 1. Remove a bunch of ifdef'd code. 2. When a block just contains an uncond branch, change all blocks branching to it to jump to the destination instead. 3. If branch analysis tells us some edges in the machinecfg are not actually possible, remove them. #2 triggers a suprisingly large number of times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31094 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
12143054aa6d120f029d268a5154bf2ecd0f707f |
21-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Add an experimental cross-jumping implementation. This is currently disabled by default and limited in several ways, but does have a positive effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31090 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
8ace2cd034be10c09be51daf08c3dda327f54262 |
21-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
implement MachineOperand::isIdenticalTo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31088 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
34ab4d45d2aa11bee666836e3571be2627959a42 |
20-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Make flag and chain edges visually distinguishable from value edges in DOT output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31067 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
b83eb6447ba155342598f0fabe1f08f5baa9164a |
20-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31063 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ntrinsicLowering.cpp
achineDebugInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c70ddad2b7d7abffeaaace913939fb3c5c55a38b |
19-Oct-2006 |
Bill Wendling <isanbard@gmail.com> |
Partially in response to PR926: insert the newly created machine basic blocks into the basic block list when lowering the switch inst. into a binary tree of if-then statements. This allows the "visitSwitchCase" func to allow for fall-through behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31057 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
07a2709e9de7c619edc26d97b3491c48ccae55ef |
18-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Add option for controlling inclusion of global AA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31040 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
096c22ea3d0174d1c75358dbdc49618cf18e9fb7 |
18-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Use global info for alias analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
683747abb81a7b7711ad6cb5abf5a4227f7ab691 |
18-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Teach the branch folder to update debug info if it removes blocks with line # notes in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31026 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
a97906b6e6e85934d6cb71ddf3ca9bb72fe66695 |
18-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add a method to remove a line # record. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31025 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
8466b214328b162a0be648dd324db8b6a1cfe0df |
18-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Do not leak all of the SourceLineInfo objects. Do not bother mallocing each one separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31022 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
b360729873eb142ae2327cd399880e4ef55bea2a |
17-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Trivial patch to speed up legalizing common i64 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
50662beab7cc6394a0d6524d16fe7de1d5192196 |
17-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/PowerPC/2006-10-17-brcc-miscompile.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
649b7ef6273aced78ae32321de282489ce9be6b3 |
17-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix printer for StoreSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31017 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
2cacccae194b5ed648c004f6c06fce5565331ee9 |
17-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Reflect MemOpAddrMode change; added a helper to create pre-indexed load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
26f7fa7bba94eb18bf0e43586dd2b596cb58ca80 |
17-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
ffddf6ba1c58b42dcfd071972754649c3ca5dff7 |
17-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Enable deleting branches to successor blocks. With the previous patches, branch folding can now compile stuff like this: void foo(int W, int X, int Y, int Z) { if (W & 1) { for (; X;--X) bar(); } else if (W & 2) { for (; Y;--Y) bar(); } else if (W & 4) { for (; Z;--Z) bar(); } else if (W & 8) { for (; W;--W) bar(); } if (W) { bar(); } } contrived testcase where loops exits all end up merging together. To have the loop merges be: ... cmplw cr0, r30, r27 bne cr0, LBB1_14 ;bb38 LBB1_16: ;cond_next48.loopexit mr r27, r29 LBB1_20: ;cond_next48 cmplwi cr0, r27, 0 beq cr0, LBB1_22 ;UnifiedReturnBlock ... instead of: ... cmplw cr0, r30, r27 bne cr0, LBB1_14 ;bb38 LBB1_16: ;cond_next48.loopexit mr r27, r29 b LBB1_20 ;cond_next48 LBB1_17: ;cond_next48.loopexit1 b LBB1_20 ;cond_next48 LBB1_18: ;cond_next48.loopexit2 b LBB1_20 ;cond_next48 LBB1_19: ;cond_next48.loopexit3 LBB1_20: ;cond_next48 cmplwi cr0, r27, 0 beq cr0, LBB1_22 ;UnifiedReturnBlock ... This is CodeGen/PowerPC/branch-opt.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31006 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
99e41eed6d8b89b2ba4807625d13d08d85ea493d |
17-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Clean up interface to getGlobalLinkName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31001 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
c50ffcb7fcb7c1109fee2406e8f74d096f755f47 |
17-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Reenable this pass, fixing the bugs in it. It now correctly deletes unreachable blocks and blocks that are empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31000 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
5d04a1af4fe7600b43812d28757a5d62ba409942 |
17-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Make sure operand does have size and element type operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30999 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a1a19f803c8fef05db627a8b73c909a50306e9d6 |
17-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Basic support for getGlobalLinkName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30997 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
5956922a2d22dc46523078e35de7dc648a1db172 |
17-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Be careful when looking through a vbit_convert. Optimizing this: (vector_shuffle (vbitconvert (vbuildvector (copyfromreg v4f32), 1, v4f32), 4, f32), (undef, undef, undef, undef), (0, 0, 0, 0), 4, f32) to the vbitconvert is a very bad idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30989 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c7c3f110eda0ff8040e4bd99e38d3112b910810f |
16-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Pass AliasAnalysis thru to DAGCombiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30984 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
|
ba8a2ee548ba8d589fd22cf61d479bc5f1274c69 |
16-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Global name regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30982 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
d4edf2cf911f1f6543ec6cc89fe7b8bb37ad95b3 |
14-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Tidy up after truncstore changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d42a5238a967c9cdfec8fe086bd18876bff5a951 |
14-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Debug tweak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30959 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
30f73e78bd92f9815647ef8e3d29dd355f29432c |
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Make sure that the node returned by SimplifySetCC is added to the worklist so that it can be deleted if unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30955 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8ac9d0ebdea49dedca3387fafa4e40e911d3269f |
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
fold setcc of a setcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30953 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
51dabfb28375be7bc5848806ae31cd068b6133f8 |
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
When SimplifySetCC was moved to the DAGCombiner, it was never removed from SelectionDAG and it has since bitrotted. Remove the copy from SelectionDAG. Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into a new FoldSetCC method which can be used by getNode() and SimplifySetCC. This fixes obscure bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
8f16eb98ed21a642d7f75c76f4b1acf0f199ee6d |
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
disable this pass for now, it's causing issues git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30951 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7821a8afd3009c3c2760592e61de9e2c31c73e18 |
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
falling off the end of a function is ok with an unreachable instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30950 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
274062c172bbdf70b8f717875ecf0dabb176c6e5 |
14-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Reduce the workload by not adding chain users to work list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
dc78cbf45794739ee0fbc8e0c0597f97b5e94df6 |
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where we incorrectly turned '(X & 0) == 0' into '(X & 0) >> -1', which is undefined. "0" isn't a power of 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30947 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8b2794aeff151be8cdbd44786c1d0f94f8f2e427 |
13-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30945 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
4a84ad7a2bfd1795357776164e3bf80a2600d924 |
13-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add the branch folding pass as a late cleanup pass for all targets. For now it just deletes empty MBB's. Soon it will do more :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30941 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
eb15eeec396145b6f5028d07bd2c4a5e903fdec5 |
13-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
disable some objectionable code, maybe we can bring this pass to life git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30939 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
339ec4cb15cba923605bafdbd20dcfe30caffc0e |
13-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Workaround for templates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30927 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
774f85465e72c95c39f71cb3eb9008f7e89c3673 |
13-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Clean up dump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30926 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
26d2990e03e60adc66fc5232baac5855fe65c747 |
12-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Lower X%C into X/C+stuff. This allows the 'division by a constant' logic to apply to rems as well as divs. This fixes PR945 and speeds up ReedSolomon from 14.57s to 10.90s (which is now faster than gcc). It compiles CodeGen/X86/rem.ll into: _test1: subl $4, %esp movl %esi, (%esp) movl $2155905153, %ecx movl 8(%esp), %esi movl %esi, %eax imull %ecx addl %esi, %edx movl %edx, %eax shrl $31, %eax sarl $7, %edx addl %eax, %edx imull $255, %edx, %eax subl %eax, %esi movl %esi, %eax movl (%esp), %esi addl $4, %esp ret _test2: movl 4(%esp), %eax movl %eax, %ecx sarl $31, %ecx shrl $24, %ecx addl %eax, %ecx andl $4294967040, %ecx subl %ecx, %eax ret _test3: subl $4, %esp movl %esi, (%esp) movl $2155905153, %ecx movl 8(%esp), %esi movl %esi, %eax mull %ecx shrl $7, %edx imull $255, %edx, %eax subl %eax, %esi movl %esi, %eax movl (%esp), %esi addl $4, %esp ret instead of div/idiv instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
130a6471b90f66e99b1f9f42877fdf611c330ac6 |
12-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add RemoveDeadNode to remove a dead node and its (potentially) dead operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3657ffe03733cf7cd9d6ed823ad696edb4547362 |
12-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add a minor dag combine noticed when looking at PR945 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6ec3626be40963fa405992e219f94d9524fb6c15 |
12-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
restore my previous patch, now that the X86 backend bug has been fixed: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061009/038518.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30906 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
3ad175bd707f268436afa42af8672569b5b92cb2 |
12-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
D'oh - need to use the rigth kind of store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30903 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b870100f2a2be0e7de99f7710db01a3e1f9d305b |
12-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Backing out Chris' last commit. It's breaking llvm-gcc bootstrapping. It's turning: movl -24(%ebp), %esp subl $16, %esp movl -24(%ebp), %ecx into movl -24(%ebp), %esp subl $16, %esp movl %esp, (%esp) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30902 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
f183cabba8ec381685807ab40a6e7e3b4077e95a |
12-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
If we see a load from a stack slot into a physreg, consider it as providing the stack slot. This fixes PR943. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30898 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7aed46c25b9c1527b4112e71060f35c4f9c6b024 |
11-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Alias analysis of TRUNCSTORE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2d84c4c7b314242346dea1a7f48563333476a4d5 |
11-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c2b19f3449a48bb4810afbf1a80a46bc87098606 |
11-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Handle aliasing of loadext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30883 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7ca56aff2257ac0acceb54f3ae7ba65458d46e67 |
11-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Fix regression in combiner alias analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2e49f090f9656af7d5ed4d5c4e9fa26af59c7233 |
11-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Naming consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30878 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
electionDAG/TargetLowering.cpp
|
82c3d8f81ab20dc7571f29ffc46a5bb1b7ed8323 |
11-Oct-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Jimptables working again on alpha. As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30873 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
755480681c795d585c73556c028b6143c46bda86 |
11-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add two helper methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9629abac79fe4efdd000ca1996b2cabd1609190c |
11-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper SelectionDAGCSEMap ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
45aeccc1fda9e0938c38f554c002c6950bd92500 |
10-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Also update getNodeLabel for LoadSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
0ac1c6ad9af78654188ca5164c1d0839e834444e |
10-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
SDNode::dump should also print out extension type and VT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
55b5708b6bbffc79cf133c31faa51d144bfc5d4a |
10-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix another bug in extload promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30857 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
62f2a3c7aa0eba3e7bc5e2d59e268c5e1f48fb46 |
10-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug introduced by my LOAD/LOADX changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30853 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
466685d41a9ea4905b9486fea38e83802e46f196 |
09-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30844 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
6270f686b323281aa6774d019413a52696337ff2 |
09-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate more token factors by taking advantage of transitivity: if TF depends on A and B, and A depends on B, TF just needs to depend on A. With Jim's alias-analysis stuff enabled, this compiles the testcase in PR892 into: __Z4test3Val: subl $44, %esp call L__Z3foov$stub movl %edx, 28(%esp) movl %eax, 32(%esp) movl %eax, 24(%esp) movl %edx, 36(%esp) movl 52(%esp), %ecx movl %ecx, 4(%esp) movl %eax, 8(%esp) movl %edx, 12(%esp) movl 48(%esp), %eax movl %eax, (%esp) call L__Z3bar3ValS_$stub addl $44, %esp ret instead of: __Z4test3Val: subl $44, %esp call L__Z3foov$stub movl %eax, 24(%esp) movl %edx, 28(%esp) movl 24(%esp), %eax movl %eax, 32(%esp) movl 28(%esp), %eax movl %eax, 36(%esp) movl 32(%esp), %eax movl 36(%esp), %ecx movl 52(%esp), %edx movl %edx, 4(%esp) movl %eax, 8(%esp) movl %ecx, 12(%esp) movl 48(%esp), %eax movl %eax, (%esp) call L__Z3bar3ValS_$stub addl $44, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30821 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7138234bafedf3fc3b9099d3d4bb7c062eb49c6a |
08-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Combiner alias analysis passes Multisource (release-asserts.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ed83a7019be05c2ed16a134fc9a708eb25dcd641 |
07-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug legalizing zero-extending i64 loads into 32-bit loads. The bottom part was always forced to be sextload, even when we needed an zextload. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30782 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cf9668f23d67b171d3529087061b1387b20eb8b9 |
07-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
initialize ivar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
0336fdba858830d515bf53ac29b8e5ff24dfa823 |
07-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
If a target uses a GOT, put it in the jt data section, not the text section. This will fix alpha when Andrew implements AlphaTargetMachine::getTargetLowering(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30779 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e0cfc8b2f24394c7b5d9275235678269aa4425fd |
07-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
jump tables handle pic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30776 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
db3ea6754bc314cb0ba5b4c2ae534b3b33633cf1 |
06-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
print labels even if a MBB doesn't have a corresponding LLVM BB, just don't print the LLVM BB label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30775 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
4bdd2753db4a9d92b64c68b042c8b38f7223238d |
06-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a miscompilation of: long long foo(long long X) { return (long long)(signed char)(int)X; } Instead of: _foo: extsb r2, r4 srawi r3, r4, 31 mr r4, r2 blr we now produce: _foo: extsb r4, r4 srawi r3, r4, 31 blr This fixes a miscompilation in ConstantFolding.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5504602836de40f07ac390a836161e45389870c2 |
06-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
MachineBasicBlock::splice was incorrectly updating parent pointers on instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30760 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
786225adf09e606c795ef68a1f789c12f37869f2 |
06-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Make use of getStore(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30759 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ad071e1cd1a4b880019f1b2e827ee81867815f82 |
06-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add getStore() helper function to create ISD::STORE nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30758 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9c78ecb511ba6c8f53579ce60bcc4ef782eb831c |
05-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Don't crash if an MBB doesn't have an LLVM BB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30757 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
bc588b8bbf30a3349ff7b8fa7a8fa2326b0a5df0 |
05-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Alias analysis code clean ups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e08d6e915eba62bacc4441b3d4b24bbed67cd6a0 |
05-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Emit pic jumptables to the same section that the function is emitted to, allowing label differences to work. This fixes CodeGen/X86/pic_jumptable.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30744 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
1da31ee472b9615d7329c656e2cc17c419ed7c95 |
05-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Pass the MachineFunction into EmitJumpTableInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30742 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
52f0670470020d7672f9b0669c07324814e84a07 |
05-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
move getSectionForFunction to AsmPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30736 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
693163e74d047a05799eaaf619ba4972fdc3a0e9 |
05-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix some typos that can cause a flag value to have more than one use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6ff23e5e844b49cee021894f168c739a4af423b5 |
04-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
More extensive alias analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0c0feb9d5f208cde7c0f61899333da913018f17f |
04-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
More long term solution git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30720 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
0f77fe5ea64d19a014c1ce7de77f5738d390fd9c |
04-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Work around for some problems with templates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30715 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
c548428c5d7328592f4db6f6cd815af18b3152a3 |
04-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an extra operand to LOADX to specify the exact value extension type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30714 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
faf1daeb92bf4db4a6a68d296e24a6e2a4768022 |
04-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Use $( $| $) to represent alternatives in asm blocks instead of {|}. This is needed to support targets where {|} aren't special symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30712 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
bf497a3a68b18472d8ad755bf483588b0caaa8cb |
04-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f28bbda2c6c965dbd28e73e06c9e09231a77b0dc |
03-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Bugfixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30709 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
ee773ba72b372460429431ee094690da2464082b |
03-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Print the MBB ID # along with the bb tag in the -print-machine-instrs output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30708 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
e70cab0ca4d7835c8e1e0ee6a125be8f2790a136 |
03-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Provide a function that ensures MBB numbering is dense and inorder. This can be used by MachineFunctionPasses who need this property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30706 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
f7da4e939f02678cbe56cae666506da3b1a5e100 |
03-Oct-2006 |
Bill Wendling <isanbard@gmail.com> |
Fix for PR929. The PHI nodes were being gone through for each instruction in a successor block for every block...resulting in some O(N^k) algorithm which wasn't very good for performance. Calculating this information up front and keeping it in a map made it much faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30697 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
01078fb7ec3b8f62679c49a147a69b3978092500 |
02-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Debugging kruft git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
ec20402c90b605afeedbcf0e3aabe6f8054f23dd |
02-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Add ability to annotate (color) nodes in a viewGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
f8f791ef1e8f0e58206dc60b1afa43d93fd46520 |
29-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
simplify code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30659 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5feaa9a70716e9181a9b940236bc461f2a75334a |
28-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
TargetRegisterClass specifies the desired spill alignment. However, it cannot be honored if stack alignment is smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30648 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
ca756d2cf9bd88f210d61dd5f9776920a6178441 |
28-Sep-2006 |
Bill Wendling <isanbard@gmail.com> |
"Once more into the breach, dear friends, once more, or fill the wall up with our English dead." No! Really! Serious this time...It was how the vreg uses were being adjusted that was causing hte Olden tests to fail. I corrected this and the Olden and Regression tests all passed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30644 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
57f9a43c64e8c5c8b2566fb6649754c11b59b98a |
28-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
refactor critical edge breaking out into the SplitCritEdgesForPHIConstants method. This is a baby step towards fixing PR925. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30643 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8af24b86a8dea1696839104c34d6445ee7294d2a |
28-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
re-re-revert this, back to the right revision. It currently breaks bisort/mst in olden among others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30637 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
c2b4ec37dea2586765a04d74120e1b6197bbd804 |
28-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
PEI now place callee save spills closest to the address pointed to by the incoming stack. This allows X86 backend to use push / pop in epilogue / prologue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30636 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
31cefb99431a10ced8660b14c61fc2ad6b172f75 |
28-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
re-revert this patch, bisort and mst are still broken in Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30634 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
4da1abb311b424d581cc1a67cde3aa0233da99b5 |
28-Sep-2006 |
Bill Wendling <isanbard@gmail.com> |
Reapplying this patch. With the newest commits, the error in Olden/bisort has disappeared. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30633 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
6c88e9b458648c1c0cdecfd03e8b85b3f7db2d25 |
27-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Temporarily revert this. This breaks Olden/bisort on PPC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30628 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
c36f2a4ceadff85c83f9a2d68b187ec67d547b79 |
27-Sep-2006 |
Bill Wendling <isanbard@gmail.com> |
PR878: Instead of calculating the vreg to PHI use count everytime we get a function, do it up front in linear time (going through all of the instructions once). We create a map out of them. Then it's no problem to use the information in it during elimination... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30624 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
bae02cfd46c569bb571a234544fb1bbe19c43b59 |
27-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for ${:private} which prints "L" on darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30620 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
3ce9b67e0c0f171c6d09c19407930ce6989f1b9d |
27-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for ${:comment}, which expands to the current target's comment character, and ${:uid} which expands to a unique ID for the MachineInstr. More can be added if/when they are needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30619 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
692d4e0823774730b90e8e2d7bf58119397f0535 |
27-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename function. It's determining which callee-save registers to save. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30616 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
16113431e84bb8adba21fc73bb5715a1297000ae |
26-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Comments on JumpTableness git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30615 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
bb1518585b2f2b2f501f70cc45c49a2d2ea57804 |
26-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Load chain check is not needed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
79597d2af6e1bd80a7768eab3b380d3d71469f5d |
26-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Chain can be any operand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3dd1170616001e38b4dd899d5990734cea339663 |
26-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Wrong size for load git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
172585b3aac4444e22d250a68e59bc03b8837ef4 |
26-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Can't move a load node if it's chain is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30609 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
681764b20c3418b4af783a84eb2a68145d69a9d7 |
26-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
print the preds of each MBB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30606 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
cb05af852f1d346ac07b84c74a930a5cdbd6d427 |
26-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that want to do something with the llvm.used list, because they have an aggressive linker that does dead code stripping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30604 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
14fbcbfa2b7146569c588c451825206906c3b55a |
25-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Accidental enable of bad code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
288af5e740174463c27539e6021369e0e8ca20fa |
25-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Fix chain dropping in load and drop unused stores in ret blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
279f053eae35729f449f38e08618664b118806bd |
25-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Core antialiasing for load and store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
beec30eaf301bd6882cd06800b5175b94f033f9d |
24-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Add support for other relocation bases to jump tables, as well as custom asm directives git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30593 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2ae5b87996dca039d0721f1c463835f726979030 |
24-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
PIC jump table entries are always 32-bit. This fixes PIC jump table support on X86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2adffa1f6648c2bb1d96f22a4bf97964b7e4128f |
21-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Make it work for DAG combine of multi-value nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
516b0eacff5aedf26e146812d1fbcd5f3ceedca8 |
21-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
core corrections git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d1aed7aaf7047873b8878502859905159eaf5362 |
21-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Basic "in frame" alias analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0e4b922680f55a8e28fc2c3db0b80a1c78d24918 |
21-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
fold (aext (and (trunc x), cst)) -> (and x, cst). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bf3708794f4dca6e959247a3fe7cbe0cb5348eeb |
21-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Check the right value type. This fixes 186.crafty on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
111c22824115ed77a8f14e555c10880d07a45eb4 |
21-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Compile: int %test(ulong *%tmp) { %tmp = load ulong* %tmp ; <ulong> [#uses=1] %tmp.mask = shr ulong %tmp, ubyte 50 ; <ulong> [#uses=1] %tmp.mask = cast ulong %tmp.mask to ubyte %tmp2 = and ubyte %tmp.mask, 3 ; <ubyte> [#uses=1] %tmp2 = cast ubyte %tmp2 to int ; <int> [#uses=1] ret int %tmp2 } to: _test: movl 4(%esp), %eax movl 4(%eax), %eax shrl $18, %eax andl $3, %eax ret instead of: _test: movl 4(%esp), %eax movl 4(%eax), %eax shrl $18, %eax # TRUNCATE movb %al, %al andb $3, %al movzbl %al, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6007b84a5bdcba9ee012418fedd32c236aad2cf6 |
21-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Generalize (zext (truncate x)) and (sext (truncate x)) folding to work when the src/dst are not the same size. This catches things like "truncate 32-bit X to 8 bits, then zext to 16", which happens a bit on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30557 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e3152e54b5e92ef4bc29b3d8c5923893d31617ab |
20-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Compile: int test3(int a, int b) { return (a < 0) ? a : 0; } to: _test3: srawi r2, r3, 31 and r3, r2, r3 blr instead of: _test3: cmpwi cr0, r3, 1 li r2, 0 blt cr0, LBB2_2 ;entry LBB2_1: ;entry mr r3, r2 LBB2_2: ;entry blr This implements: PowerPC/select_lt0.ll:seli32_a_a git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
84750587bf859a048580f7f13b1b2710d0b681fb |
20-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fold the full generality of (any_extend (truncate x)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5f42a240ba5c6199d2d78fb1238938da2c073755 |
20-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Two things: 1. teach SimplifySetCC that '(srl (ctlz x), 5) == 0' is really x != 0. 2. Teach visitSELECT_CC to use SimplifySetCC instead of calling it and ignoring the result. This allows us to compile: bool %test(ulong %x) { %tmp = setlt ulong %x, 4294967296 ret bool %tmp } to: _test: cntlzw r2, r3 cmplwi cr0, r3, 1 srwi r2, r2, 5 li r3, 0 beq cr0, LBB1_2 ; LBB1_1: ; mr r3, r2 LBB1_2: ; blr instead of: _test: addi r2, r3, -1 cntlzw r2, r2 cntlzw r3, r3 srwi r2, r2, 5 cmplwi cr0, r2, 0 srwi r2, r3, 5 li r3, 0 bne cr0, LBB1_2 ; LBB1_1: ; mr r3, r2 LBB1_2: ; blr This isn't wonderful, but it's an improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30513 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0ea26ca45b56b2b4cc1839cdbccc13a38b066969 |
20-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Expand 64-bit shifts more optimally if we know that the high bit of the shift amount is one or zero. For example, for: long long foo1(long long X, int C) { return X << (C|32); } long long foo2(long long X, int C) { return X << (C&~32); } we get: _foo1: movb $31, %cl movl 4(%esp), %edx andb 12(%esp), %cl shll %cl, %edx xorl %eax, %eax ret _foo2: movb $223, %cl movl 4(%esp), %eax movl 8(%esp), %edx andb 12(%esp), %cl shldl %cl, %eax, %edx shll %cl, %eax ret instead of: _foo1: subl $4, %esp movl %ebx, (%esp) movb $32, %bl movl 8(%esp), %eax movl 12(%esp), %edx movb %bl, %cl orb 16(%esp), %cl shldl %cl, %eax, %edx shll %cl, %eax xorl %ecx, %ecx testb %bl, %bl cmovne %eax, %edx cmovne %ecx, %eax movl (%esp), %ebx addl $4, %esp ret _foo2: subl $4, %esp movl %ebx, (%esp) movb $223, %cl movl 8(%esp), %eax movl 12(%esp), %edx andb 16(%esp), %cl shldl %cl, %eax, %edx shll %cl, %eax xorl %ecx, %ecx xorb %bl, %bl testb %bl, %bl cmovne %eax, %edx cmovne %ecx, %eax movl (%esp), %ebx addl $4, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30506 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2b41b8e8701cc9188c12ead84f87e614c86be8c0 |
19-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix UnitTests/2005-05-12-Int64ToFP.c with llc-beta. In particular, do not allow it to go into an infinite loop, filling up the disk! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30494 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
863ac769b850d75a390bfdc20b62d7d120fb69a9 |
19-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fold extract_element(cst) to cst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30478 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5c6621c3bc7e53e0754cb74062d27a6e8b7275e8 |
19-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Minor speedup for legalize by avoiding some malloc traffic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30477 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6b5578f052c2405c0d622192ccacfd47563c99a8 |
19-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30474 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
52cc1ea2a1a374b58801398460a6289723089d91 |
18-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow i32 UDIV, SDIV, UREM, SREM to be expanded into libcalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30470 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
303c6222a437bfabf4c1bfd1e00b3481dcda4755 |
18-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
oops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30462 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
3fbd67898e365f12436564a52d8995a4aeb4ef89 |
18-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
absolute addresses must match pointer size git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30461 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
|
e85fb6719a3cdd011359b9cdee27a175bfe5baf7 |
18-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Sort out mangled names for globals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30460 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
8829dc88a8637fe588e299d96de394afc3ecc528 |
16-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Oh yeah, this is needed too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a89654b1a17478a272af33221e325b7feb9aec1b |
16-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
simplify control flow, no functionality change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30403 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7d7bffe157c0896cc850ed384dd748aae1a00c7b |
16-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Allow custom expand of mul git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30402 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
428b92eb83b457b71d29d1d4b7900d36a0ce9a53 |
15-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Keep track of the start of MBB's in a separate map from instructions. This is faster and is needed for future improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30383 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1ec72738ac685543a02068559877ec713b36a463 |
14-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fold (X & C1) | (Y & C2) -> (X|Y) & C3 when possible. This implements CodeGen/X86/and-or-fold.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30379 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
516b962b5a043e4773f0655d0790e58780e3a345 |
14-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Split rotate matching code out to its own function. Make it stronger, by matching things like ((x >> c1) & c2) | ((x << c3) & c4) to (rot x, c5) & c6 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30376 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a17cf0a7e2d9aa6d9bb6f9461a6fa8a9ac02bab4 |
14-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Use getOffset() instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30327 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
d5a99d781053f7809dc3f3ae2359b92c084d4659 |
14-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Use MachineConstantPoolEntry getOffset() and getType() accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30326 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
9abd7c38675ad305c733b7e90578255271afc6bd |
14-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
A MachineConstantPool may have mixed Constant* and MachineConstantPoolValue* values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30316 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c970f062e0a66d97a06eca213486a16fae1b37a4 |
13-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
If LSR went through a lot of trouble to put constants (e.g. the addr of a global in a specific BB, don't undo this!). This allows us to compile CodeGen/X86/loop-hoist.ll into: _foo: xorl %eax, %eax *** movl L_Arr$non_lazy_ptr, %ecx movl 4(%esp), %edx LBB1_1: #cond_true movl %eax, (%ecx,%eax,4) incl %eax cmpl %edx, %eax jne LBB1_1 #cond_true LBB1_2: #return ret instead of: _foo: xorl %eax, %eax movl 4(%esp), %ecx LBB1_1: #cond_true *** movl L_Arr$non_lazy_ptr, %edx movl %eax, (%edx,%eax,4) incl %eax cmpl %ecx, %eax jne LBB1_1 #cond_true LBB1_2: #return ret This was noticed in 464.h264ref. This doesn't usually affect PPC, but strikes X86 all the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30290 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
79980b07dab50da1a8f572f9504674bfa853d484 |
13-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Compile X << 1 (where X is a long-long) to: addl %ecx, %ecx adcl %eax, %eax instead of: movl %ecx, %edx addl %edx, %edx shrl $31, %ecx addl %eax, %eax orl %ecx, %eax and to: addc r5, r5, r5 adde r4, r4, r4 instead of: slwi r2,r9,1 srwi r0,r11,31 slwi r3,r11,1 or r2,r0,r2 on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d6594ae54cfde4db4d30272192645c0a45fb9902 |
12-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added support for machine specific constantpool values. These are useful for representing expressions that can only be resolved at link time, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30278 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineFunction.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
electionDAG/SelectionDAGPrinter.cpp
|
019f851ab26511c089e41b61901f743e75f90714 |
11-Sep-2006 |
Nate Begeman <natebegeman@mac.com> |
Behold, more work on relocations. Things are looking pretty good now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30240 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
c66764c00756d800aede2fd32d55658a236b1912 |
10-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
This code was trying too hard. By eliminating redundant edges in the CFG due to switch cases going to the same place, it make #pred != #phi entries, breaking live interval analysis. This fixes 458.sjeng on x86 with llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30236 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6ddf8ed6fe2d0aa5e15f7b9ad7e5049e2223bbd1 |
09-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the fpowi now by lowering to a libcall git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30225 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f3f333dbd67afde147165bb5ba87889d76a6f436 |
09-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Allow targets to custom lower expanded BIT_CONVERT's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30217 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
94be248dbb2d2a44e8f4d47f161b93704d33d279 |
09-Sep-2006 |
Nate Begeman <natebegeman@mac.com> |
First pass at supporting relocations. Relocations are written correctly to the file now, however the relocated address is currently wrong. Fixing that will require some deep pondering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30207 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
0c5b8dac794b23ac7f84acdc6d2661edb28ed5c8 |
08-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Non-allocatable physregs can be killed and dead, but don't treat them as safe for later allocation. This fixes McCat/18-imp with llc-beta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30204 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
cc406328bf0aaa5f25e268deed5b38be7d4dc7a5 |
08-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
This fixes Benchmarks/Prolangs-C/unix-smail git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30198 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
45d5788123bdb5c59979a3189d4587c84e41a12d |
08-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bunch of llc-beta failures on x86 yesterday. Don't allow selection of unallocatable registers, just because an alias is allocatable. We were picking registers like SIL just because ESI was being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30197 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a0f3d17daac73c9c71aad497b298cbe82848f726 |
08-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Make target asm info a property of the target machine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30162 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
61c958e691bdaa04897553d97153bcdd73996aa0 |
07-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix pasto that was breaking x86 tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30151 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
d5e93c07957844e3086fb12d686b93dbbd2524c2 |
07-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2006-09-06-SwitchLowering.ll, a bug where SDIsel inserted too many phi operands when lowering a switch to branches in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
563321a2582851c653d0863e8e0bba3d483734f9 |
06-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Separate target specific asm properties from the asm printers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30126 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
5d8062bcee81a40d976bf0ed653b633b466c16d9 |
05-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Only call isUse/isDef on register operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30122 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
d8f44e07b89e651b2f0e3b0d680a775f44e667da |
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Only call isUse/isDef on register operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30118 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
achineInstr.cpp
|
67942f5dc30be1810f983aba8c94c49ca44e8634 |
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Don't call isDef on non-registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30117 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7acf5f39fea463df5ad196affbef0176f3b25e0f |
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Change the default to 0, which means 'default'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30114 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
09e460662a8d7328da1b938d5581a6ef3740b51d |
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Completely eliminate def&use operands. Now a register operand is EITHER a def operand or a use operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30109 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2926869b4a083fc951484de03a9867eabf81e880 |
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a long-standing wart in the code generator: two-address instruction lowering actually *removes* one of the operands, instead of just assigning both operands the same register. This make reasoning about instructions unnecessarily complex, because you need to know if you are before or after register allocation to match up operand #'s with the target description file. Changing this also gets rid of a bunch of hacky code in various places. This patch also includes changes to fold loads into cmp/test instructions in the X86 backend, along with a significant simplification to the X86 spill folding code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30108 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
irtRegMap.h
|
dffb2e83ed2546226d09c40aa43524e2392322da |
04-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Correct fix for a crasher on functions with live in values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30099 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5277e4304e9559c13aa42b1d056e828f8f75ff08 |
04-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Hack around a regression I introduced yesterday git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30098 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0c9e0ff24900aa2bcae9518f8b1bdc3fd41dc2ed |
04-Sep-2006 |
Duraid Madina <duraid@octopus.com.au> |
forgot this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30097 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2a0013f59fb3b23010c0509fab8bf509eb30fb36 |
04-Sep-2006 |
Duraid Madina <duraid@octopus.com.au> |
add setJumpBufSize() and setJumpBufAlignment() to target-lowering. Call these from your backend to enjoy setjmp/longjmp goodness, see lib/Target/IA64/IA64ISelLowering.cpp for an example git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30095 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
47877050e7ea02c3514497aba54eef1d4cee8452 |
04-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
new file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30082 91177308-0d34-0410-b5e6-96231b3b80d8
LVMTargetMachine.cpp
|
6b128bdc58a496e9f08e4d09416330320761baff |
03-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Avoid beating on the mi2i map when we know the answer already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30066 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fbecc5a593da0a5b4d9ff6be63c5558060e31e43 |
03-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
minor speedup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30065 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5e50349070972ca4e590f6211184df1d4ec28ac8 |
03-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86. Just because an alias of a register is available, it doesn't mean that we can arbitrarily evict the register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30064 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
2ac0d43fa2cbf2dd1b024a40685eb1b758ddac56 |
03-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
When deleting a machine instruction, make sure to remove it from the livevariables information. This fixes several regalloc=local failures on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30062 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
7a3abdc63c0cc4e5d5411c3add0e909c6ac49e79 |
03-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Move two methods out of line, make them work when the record for a machine instruction includes physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30061 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
94425996c5f58b8c2eb8be3c48c5f80fcb0d3481 |
02-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
improve compat with certain versions of GCC (on cygwin?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30054 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
1acb17cb8392dce33079fe45f383944ec6616757 |
02-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Iteration is required for some cases, even if they don't occur in crafty. Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30050 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f21f0205b5dec61f165518887f54e01ab5aab13c |
02-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
When joining two intervals where the RHS is really simple, use a light-weight method for joining the live ranges instead of the fully-general one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30049 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
3f4fd0fd644faec87330ef17ebcb93acb74da9c6 |
01-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow legalizer to expand ISD::MUL using only MULHS in the rare case that is possible and the target only supports MULHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3ebe71db6bf74f3c46123370ec9c5a28f76b9206 |
01-Sep-2006 |
Jim Laskey <jlaskey@mac.com> |
Corrections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30021 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
8a67f6e848244b00dd706a7e01079d1b39c07731 |
01-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Pull some code out of a hot recursive function because the common case doesn't need recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30015 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
238416c99b2a2baea06ac05a5964bbbbf660f3dd |
01-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Reserve space in the ValueNumberInfo vector. This speeds up live interval analysis 16% on crafty. Wrap long lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30012 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a2a8f0919d6d000e894f31b8cb416b4fbe17bb07 |
01-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Iterative coallescing doesn't buy us anything (we get identical results on crafty with and without it). Removing it speeds up live intervals 6%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30010 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
dfcfacb0cba97e1ac7e1f619b091d4383218fbd0 |
31-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
DAG combiner fix for rotates. Previously the outer-most condition checks for ROTL availability. This prevents it from forming ROTR for targets that has ROTR only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2ebfa0c61823c5d7528b1b3235106c30cb8d53f1 |
31-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Add a special case that speeds up coallescing a bit, but not enough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29996 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
bfe180af9eef1cf767f61f501ca325fcce2ae7ce |
31-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Delete copies as they are coallesced instead of waiting until the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29995 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
91725b75852443923b419fd23215194cfc65dd88 |
31-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
avoid calling the virtual isMoveInstr method endlessly by caching its results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29994 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
ba256037ced5606d5cea8a1676b21eaf91d924de |
31-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a compiler crash bootstrapping llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29989 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6d8fbef015ff836bcb8f64f52c49805e43f8ea9f |
30-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Teach the coallescer to coallesce live intervals joined by an arbitrary number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coallsced. Among other things, this fixes CodeGen/X86/shift-coalesce.ll and PR687. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29968 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
ce50a165c784d71abf1b2f981be18f867787d972 |
29-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Handle callee saved registers in dwarf frame info (lead up to exception handling.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29954 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
1efba0ecb4d0b3807c48e6e0f74e3ce5c9fad809 |
29-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make it a static method of SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
7f8897f22e88271cfa114998a4d6088e7c8e8e11 |
28-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate RegisterOpt. It does the same thing as RegisterPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29925 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
5d8925c7c506a54ebdfb0bc93437ec9f602eaaa0 |
28-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate RegisterAnalysis. RegisterPass now does all that is necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29921 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
a4f0b3a084d120cfc5b5bb06f64b222f5cb72740 |
27-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
s|llvm/Support/Visibility.h|llvm/Support/Compiler.h| git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29911 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
|
c9d94d12900bd0d2bd482ef31f8f1deb3ffafa23 |
27-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
typo fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29910 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
694481ee01bfe507c6e37de0dc1c64cff455eefd |
27-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate SelectNodeTo() and getTargetNode() variants which take more than 3 SDOperand operands. They are replaced by versions which take an array of SDOperand and the number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29905 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d2030e6c990fdcc522d194ac34a6b71df79e3ab7 |
26-Aug-2006 |
Nate Begeman <natebegeman@mac.com> |
Properly size the string table, and emit symbol table and string table entries in the correct order, fixing several fixmes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29902 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
95514bae7309ffacfc0a79b267159dcfde2b7720 |
26-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
SelectNodeTo now returns a SDNode*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e7f729b42b54fa751ba3524e1c597aad6d3ec3d7 |
26-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Simplifications to liveinterval analysis, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29896 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
c114b2cad7293d98686d380273085f5c32966b52 |
26-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Completely change the way that joining with physregs is implemented. This paves the way for future changes, increases coallescing opportunities (in theory, not witnessed in practice), and eliminates the really expensive LiveIntervals::overlapsAliases method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29890 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
08ede262a744f99429658fadb43662441bdcb42d |
26-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29888 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
f3e4f0e615bb2c36c4a9d60bb908e08b76025c75 |
25-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Consolidate callee saved register information so that it can me used by debug information and exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29881 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3d3d404b8a22c9e105bdc54bef24fb1dd7c5ad87 |
25-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Allow for register numbers > 31. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29879 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f8f2c5a1723b46290c0e2d4ba6cf05ee11993002 |
25-Aug-2006 |
Nate Begeman <natebegeman@mac.com> |
Get closer to handling globals correctly. We now generally get them in the right section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29871 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
c82b3aab6502a9766ddf42b45faeca3d6fa0ad65 |
25-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
When replacing value numbers, make sure to compactify the value # space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29865 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f7da2c7b0c6293c268881628fc351bed7763f1f4 |
25-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Take advantage of the recent improvements to the liveintervals set (tracking instructions which define each value#) to simplify and improve the coallescer. In particular, this patch: 1. Implements iterative coallescing. 2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a better solution. 3. Implements PR865, "coallescing" away the second copy in code like: A = B ... B = A This also includes changes to symbolically print registers in intervals when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29862 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
eb883af3903286ac20f5bbf549c555c9ef961e14 |
23-Aug-2006 |
Nate Begeman <natebegeman@mac.com> |
Initial checkin of the Mach-O emitter. There's plenty of fixmes, but it does emit linkable .o files in very simple cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29850 91177308-0d34-0410-b5e6-96231b3b80d8
achOWriter.cpp
|
be4f88a8b8bb3311e0dc4cde8533763d7923c3ea |
22-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Improve the LiveInterval class to keep track of which machine instruction defines each value# tracked by the interval. This will be used to improve coallescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29830 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
8222b2de224647e4ca8ac36adff87b2c93daf7cc |
22-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Print physreg names symbolically in dumps git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29805 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7c10b0d2c9b4d637edf27548c104b7199b0e3578 |
22-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Print debug info as: *** Register mapping *** reg 1024 -> %reg1028 reg 1026 -> EAX reg 1027 -> %reg1028 instead of: *** Register mapping *** reg 1024 -> reg 1028 reg 1026 -> reg 15 reg 1027 -> reg 1028 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29803 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
760383e298f5b4633b4454ad4184b379d56f17e2 |
21-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Adding C++ member support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29799 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
f921a518912df706a8edf1f867f52e8afc6e2b55 |
21-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Fix PR861 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29796 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d36d03bf2daec79a364f32aba4f4a672c814c1bd |
21-Aug-2006 |
Bill Wendling <isanbard@gmail.com> |
Added a check so that if we have two machine instructions in this form MOV R0, R1 MOV R1, R0 the second machine instruction is removed. Added a regression test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29792 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
228a18e0f220fb85ee06fd5bfa29304e57047ff1 |
17-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
switch the SUnit pred/succ sets from being std::sets to being smallvectors. This reduces selectiondag time on kc++ from 5.43s to 4.98s (9%). More significantly, this speeds up the default ppc scheduler from ~1571ms to 1063ms, a 33% speedup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29743 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
|
be384162c68641233deba8702666af51bdfd4b83 |
17-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
minor changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f83482dcad35ac4fcb0d387d8f84794cda70f857 |
16-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Use the appropriate typedef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29730 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0b3e525a3a6b55b66dc5676675712b26e4c1ed9f |
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Start using SDVTList more consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
|
70046e920fa37989a041af663ada2b2b646e258f |
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
add a new SDVTList type and new SelectionDAG::getVTList methods to streamline the creation of canonical VTLists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29709 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f9f37fc52c444e34bad7846729ae5481a65e0a53 |
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate use of getNode that takes vector of valuetypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29687 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2fa6d3b1fcadbde90eaee0e8e89aebd81630b662 |
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new getNode() method that takes a pointer to an already-intern'd list of value-type nodes. This avoids having to do mallocs for std::vectors of valuetypes when a node returns more than one type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29685 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e51ee04c3d682b4701e4ba03233a37645206cf20 |
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
remove SelectionDAG::InsertISelMapEntry, it is dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
213a16c637926bfc38ba373d3aba6778e181e3ec |
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Add code to resize the CSEMap hash table. This doesn't speedup codegen of kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29675 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
|
130fc13506b4da64981632c83734721a8b5b2d2d |
14-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Add the actual constant to the hash for ConstantPool nodes. Thanks to Rafael Espindola for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29669 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
|
52a51e38dc312aa262b0d771419afe1785f3cb22 |
12-Aug-2006 |
Nate Begeman <natebegeman@mac.com> |
Emit .set directives for jump table entries when possible, which reduces the number of relocations in object files, shrinkifying them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29650 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
103de7785aaf7375460adac32c63335a24fc440d |
12-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Fix an obvious bug, noticed by inspection. No current targets trigger this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29648 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
dd289001684a6c4fba54328255329325bb7b2ff5 |
12-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Switch to using SuperFastHash instead of adding all elements together. This doesn't significantly improve performance but it helps a small amount. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGCSEMap.cpp
|
7ed9ea81f8b4ec26c27da73ea9ad0e84337a3e4a |
12-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Switch NodeID to track 32-bit chunks instead of 8-bit chunks, for a 2.5% speedup in isel time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGCSEMap.cpp
|
c9f8f416800784ca6453222b307bc44ad24739b0 |
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Remove 8 more std::map's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
|
61b09412fe2c98367730c7064d56eff537b03434 |
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants, RegNodes, and ValueNodes maps into the CSEMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29626 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
|
4a283e90af7984762eb3e984cee747d32c82e3db |
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate the NullaryOps map, use CSEMap instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29621 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3577e38c2b34c7978b8a1b6047eed3e421559d28 |
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
change internal impl of dag combiner so that calls to CombineTo never have to make a temporary vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29618 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b9ea4a39b8192bd13d69d5e15d1e6a2290d24e80 |
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Change one ReplaceAllUsesWith method to take an array of operands to replace instead of a vector of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29616 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
bd564bfc63163e31f320c3da9749db70992dc35e |
08-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Start eliminating temporary vectors used to create DAG nodes. Instead, pass in the start of an array and a count of operands where applicable. In many cases, the number of operands is known, so this static array can be allocated on the stack, avoiding the heap. In many other cases, a SmallVector can be used, which has the same benefit in the common cases. I updated a lot of code calling getNode that takes a vector, but ran out of time. The rest of the code should be updated, and these methods should be removed. We should also do the same thing to eliminate the methods that take a vector of MVT::ValueTypes. It would be extra nice to convert the dagiselemitter to avoid creating vectors for operands when calling getTargetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29566 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f06f35e30b4c4d7db304f717a3d4dc6595fbd078 |
08-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate some malloc traffic by allocating vectors on the stack. Change some method that took std::vector<SDOperand> to take a pointer to a first operand and #operands. This speeds up isel on kc++ by about 3%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
a5682853b9921bbb0dd2ee175c9bd44142d4819e |
08-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Revamp the "CSEMap" datastructure used in the SelectionDAG class. This eliminates a bunch of std::map's in the SelectionDAG, replacing them with a home-grown hashtable. This is still a work in progress: not all the maps have been moved over and the hashtable never resizes. That said, this still speeds up llc 20% on kimwitu++ with -fast -regalloc=local using a release build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGCSEMap.cpp
|
99157a00a6cadfd733cf02b947e2b7c7ed27246b |
08-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clear TopOrder before assigning topological order. Some clean ups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3b97acdbdb179cf592f62a3491d82f5e234a863c |
08-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Reverse the FlaggedNodes after scanning up for flagged preds or else the order would be reversed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
190a418bf6b49a4ef1c1980229a2f0d516e8a2cd |
04-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, which also make it simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
f492391de03dc1f1fe539d97271bdb05f59dbdbc |
03-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Copy the liveins for the first block. PR859 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
3700f90c19f51deae00f85b80d31e1f7fbda1f99 |
03-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Work around a GCC 3.3.5 bug noticed by a user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29490 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8653b37ab97ce69e8ff81e28f702ae94e20f6dec |
03-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Work around a bug in gcc 3.3.5, reported by a user git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29489 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
c384d6c3989cf2055b577754fc61a4673af30618 |
03-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Change AssignTopologicalOrder to return vector of SDNode* by reference. - Tweak implementation to avoid using std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
eb577ba3b815a1fa4627b060dd2345d17abf672d |
02-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Final polish on machine pass registries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29471 91177308-0d34-0410-b5e6-96231b3b80d8
achinePassRegistry.cpp
asses.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
|
9373beba6010dd34316a801c3a9b37ab9e048031 |
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Now that the ISel is available, it's possible to create a default instruction scheduler creator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9ff542f2cce5bf7bf3cf9f692cf3ec0690ad2b3b |
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Change use of "Cache" to "Default". 2. Added argument to instruction scheduler creators so the creators can do special things. 3. Repaired target hazard code. 4. Misc. More to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29450 91177308-0d34-0410-b5e6-96231b3b80d8
achinePassRegistry.cpp
asses.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
|
c6a0a117a63b22ac8f4ae1aaa16a4a4fb57a45f1 |
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Forgot the added files for plugable machine passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29436 91177308-0d34-0410-b5e6-96231b3b80d8
achinePassRegistry.cpp
|
13ec702c430b91ee49b9e6d9581cd95412f216c8 |
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Introducing plugable register allocators and instruction schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29434 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
|
e6f35d8a5cc92d776cf460200e2b815e8c301b14 |
01-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added AssignTopologicalOrder() to assign each node an unique id based on their topological order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29431 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8825a485e2e99216adc0c469a7c43895cd4eae40 |
01-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
PIC jump table entries are always 32-bit even in 64-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4a6bd33da0e30c26568baf3ad6c94d1f497e5ea7 |
29-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Instead of blindly looking past constantexpr casts, actually constant fold them. This correctly truncates constants that are too large for the destination slot and makes the code easier to understand. This fixes PR853 and Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29408 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
2641cad180e94c0d26630d4ed455352f19be3d3e |
28-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove InFlightSet hack. No longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29373 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f26f5dde14dddb7540d4d8024ecdd7f5a8390b39 |
28-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Print empty inline asms as a blank line instead of: # InlineAsm Start # InlineAsm End git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29372 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
33a0a6ddf5427e05b1d9477075c6f6bf60aa7e62 |
27-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Working toward registration of register allocators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29360 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
4d9bbdc4408cc871d229677313cc4887862719d7 |
27-Jul-2006 |
Nate Begeman <natebegeman@mac.com> |
Code cleanups, per review git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29347 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
|
7c16d776cb827922dd0f8f0a88c5b65a90810c0b |
27-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
AssignNodeIds should return unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29343 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
091cba1b9132759cc4ef0e9e528f244c2024c445 |
27-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
AssignNodeIds assign each node in the DAG an unique id. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29337 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2f1ae88445c696a9b9d61e14747ba721190cdc99 |
27-Jul-2006 |
Nate Begeman <natebegeman@mac.com> |
Support jump tables when in PIC relocation model git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29318 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
|
c9cf4f1a7573ac7e379efd6ad15d7bd0a84a097c |
27-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a case where LegalizeAllNodesNotLeadingTo could take exponential time. This manifested itself as really long time to compile Regression/CodeGen/Generic/2003-05-28-ManyArgs.ll on ppc. This is PR847. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7107c3badfe78ec89dcab6c02cf1b1bcaccc42a8 |
26-Jul-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR780: 1. Move IncludeFile.h to System library 2. Move IncludeFile.cpp to System library 3. #1 and #2 required to prevent cyclic library dependencies for libSystem 4. Convert all existing uses of Support/IncludeFile.h to System/IncludeFile.h 5. Add IncludeFile support to various lib/System classes. 6. Add new lib/System classes to LinkAllVMCore.h All this in an attempt to pull in lib/System to what's required for VMCore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29287 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/Makefile
|
9160a6a18fdd091717cc3375bbac604d1949a65c |
25-Jul-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Initialize some variables the compiler warns about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cd4317efcf334be10d9a98008a1445d6e12a7712 |
21-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Eliminate data relocations by using NULL instead of global empty list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29250 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
egAllocLocal.cpp
egAllocSimple.cpp
irtRegMap.cpp
|
60f09928a0d22d5927ff0a40fe9163cf1ba1014a |
21-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Use an enumeration to eliminate data relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
917ec983df36c642492cdc786dee531fbdd6a775 |
21-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
If a shuffle is a splat, check if the argument is a build_vector with all elements being the same. If so, return the argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
02b04b4d347b537becdf8453c511bf058fa4389a |
21-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Build more debugger/selectiondag libraries as archives instead of .o files. This works around bugs in some versions of the cygwin linker. Patch contributed by Anton Korobeynikov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29239 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/Makefile
|
e7bec0dbb50235ec60f78f1f7b3f6d2f6bb5cd91 |
21-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
If a shuffle is unary, i.e. one of the vector argument is not needed, turn the operand into a undef and adjust mask accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29232 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a15cf7045efc688b813f4bc7cbc9f17c27114c04 |
20-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Mems can be in the output list also. This is the second half of a fix for PR833 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29224 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ae6153f943970f3899ace54287ef4421879813e6 |
20-Jul-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29221 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
electionDAG/DAGCombiner.cpp
|
ed41f1bb1981a98eea63f00c5988cf62bbdd7c59 |
20-Jul-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Reduce number of exported symbols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29220 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
asses.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/DAGCombiner.cpp
electionDAG/ScheduleDAGList.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
74bda2e320b92c017c1938ab35a18071d22f5127 |
20-Jul-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Fix linking on Alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29219 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
917d2c9dc2cc8879ed97533e7f75f3f92fa26b61 |
19-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Add an out-of-line virtual method for the sdnode class to give it a home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29192 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0c4e6789da4dba6c7b0010886776b24dec3f3bb8 |
15-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
On 64-bit targets like ppc64, we should use .quad to output pointer directives, not .long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29157 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
efb9b813fa74d3134dd185df10f6577ceab72bcd |
15-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Add an out-of-line virtual function to home class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29154 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
d04c159ac13abbf15de719de1637c59dc38d4216 |
13-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Fixed a bug handling void function types. Requires rebuild of llvm-gcc4 (touch llvm-debug.cpp.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29131 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
16d42c6ac65e19aedfb4853724416cefda27134e |
11-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
It was pointed out that DEBUG() is only available with -debug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29106 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e37fe9b3a1cadceb42ac27fa0718f5a10ea2f0e6 |
11-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Ensure that dump calls that are associated with asserts are removed from non-debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29105 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
e2a78f2e3dcea4a087fd776aefc56e9edef840a9 |
11-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Support for c++ mangled names. 2. Support for private/protected class members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29104 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
25a022c7801b047b31d7610386e8a9ddca878cb1 |
11-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll and PR818. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29099 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
42f75a926ab4b55f97da010f2ac05d2bc97a6dbf |
07-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo that causes 2006-07-07-ComputeMaskedBits.ll to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
322812e603705e1c2037313633e72f689524b163 |
30-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Ugly hack! Add helper functions InsertInFlightSetEntry and RemoveInFlightSetEntry. They are used in place of direct set operators to reduce instruction selection function stack size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2d2cec1e9e93a388bd8448f4bad661ac89a49de3 |
29-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add support to print 4-, 8-, and 16- byte constant literals in special sections. e.g. On Darwin that would be .literal4 and .literal8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28977 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
9525528a7dc5462b6374d38c81ba5c07b11741fe |
29-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Use hidden visibility to make symbols in an anonymous namespace get dropped. This shrinks libllvmgcc.dylib another 67K git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28975 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
egAllocLocal.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
nreachableBlockElim.cpp
|
f8c68f694c25b1ae8c0e5adb2a19432cb405d232 |
29-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Shave another 27K off libllvmgcc.dylib with visibility hidden git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28973 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocSimple.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
360e8200ec544a3c877ff74b48f445140ac9bbd6 |
28-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Mark these two classes as hidden, shrinking libllbmgcc.dylib by 25K git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
883a52de66da854de158b602952d8242acddcb48 |
28-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9d5b532de9bdca37810a59a93a69128441b02c55 |
27-Jun-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR801: Refactor the Graph writing code to use a common implementation which is now in lib/Support/GraphWriter.cpp. This completes the PR. Patch by Anton Korobeynikov. Thanks, Anton! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28925 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/SelectionDAGPrinter.cpp
|
89d67faf30ed1a8b5364f53c9a0f5e07a9a0719c |
23-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
Add and sort "sections" in debug lines. This always stepping through code in sections other than ".text", including weak sections like ctors and dtors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28909 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
650f609734b0f948be89376acfebb56249990619 |
20-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
Add support for function types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28874 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
d16f2a73264a8247437278b768dd3842b02b57b3 |
19-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
References need to be section relative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28861 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
067ef412bbc915d0756f28b09a449e7ccc2d369d |
19-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
References need to be section relative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28858 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
ca0dc56742986df05f9a7e0b425e2e798eaa2f92 |
19-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
Handle versioning of compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28855 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
7089f45987728197e80174e7640f0178d688080e |
16-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Revise vector debug support. 2. Update docs for vector debug support and new version control. 3. Simplify serialization of DebugDescInfo subclasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28816 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
44500e3d538a250d8591e708b62741cde0bdc249 |
16-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Teach the local allocator to know that live-in values (e.g. arguments) are live at function entry. This prevents it from using arg registers for other purposes before the arguments are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28809 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
f8a01a966120a041fe96300271573a8bf5a3e668 |
15-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Support standard dwarf format (was bootstrapping in Apple format.) 2. Add vector support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28807 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
d5a932b92af122209bfb53fc3198698a4af18371 |
15-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
Was pointed out that structure alignment and type alignment are not the same thing. Doubles still need to be special cased. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28806 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
35f8c208a98371b3eb38494c03514f497b9af12b |
15-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
Alignment of globals has not been quite right. Needed to drop the pointer type to get the alignment of the element type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28799 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a844126c43976387a66dafbe5137a762169f1f34 |
15-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Consistency. EXTRACT_ELEMENT index operand should have ptr type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28795 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a9767f6218bf5d56953ae28b0531f6d558bf36c2 |
15-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Assert. Rather than silently stop printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28794 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
8d3af5e7d082dbd029c3987ceadbdcf9e49af6d7 |
15-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Instructions with variable operands (variable_ops) can have a number required operands. e.g. def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst, variable_ops), "call {*}$dst", [(X86call GR32:$dst)]>; TableGen should emit operand informations for the "required" operands. Added a target instruction info flag M_VARIABLE_OPS to indicate the target instruction may have more operands in addition to the minimum required operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28791 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
ed4e566ddae779d6325b8ad96fa0020909550690 |
14-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
Change versioning to per debug info descriptor (merged with tag.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28782 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
014f98c7e5cbf41104ab9a86e32b8ce869982934 |
14-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
Place dwarf headers at earliest possible point. Well behaved when skipping functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28781 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
c4fa603347e798c94f54430227df8265736ef183 |
13-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Port some bugfixes in shift handling from SimplifyDemandedBits over to ComputeMaskedBits. DemandedMasks and KnownZero/One masks should never have bits set out of the range of the base datatype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28768 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
9bfa2dcff6c341814c18703d6760c3645bcc14e9 |
13-Jun-2006 |
Jim Laskey <jlaskey@mac.com> |
TargetLowering::ComputeMaskedBits was not clearing reciprocal bits on shifts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
a3bb86dd6b6220c69d9d7e4e11aea42fa1ec2bc5 |
12-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Make sure to update the CFG correctly if a switch only has a default dest. This fixes CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
232c910b8acd81cbf47fb18595ce557789c2217c |
12-Jun-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Start on my todo list git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28752 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
0c48fd4610cc7a90a998428c93a0c68246e79e57 |
08-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix X86/inline-asm.ll:test2, a case where an input value was implicitly truncated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28733 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cf752aa502a2ce6eaca9db4640171143c49e1733 |
08-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Regression/CodeGen/X86/inline-asm.ll, a case where inline asm causes implement extension of a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fd561cded3cbaec1a4bdfae0703b4be4ea4092f3 |
08-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix an assert-on-inline-inline-asm bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28727 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
fcadfbbdef6c87cf3952142e396e5872e30da8a3 |
05-Jun-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR798: Provide GraphViz support for MingW32. Patch provided by Anton Korobeynikov git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
3e0c1542409eda9afaf7427ad72facdecb91128c |
05-Jun-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR798: Add support for Graphviz. Patch contributed by Anton Korobeynikov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28684 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
177284ce8976d840e6093c6555dacc13f3ed0c4f |
01-Jun-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Prevent the -pedantic option from causing Mac OS/X build problems: LiveIntervalAnalysis.cpp:218: error: floating constant exceeds range of 'double' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28620 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
18c8b49e7d3c94d7f84a4205a19f8761722fc4e5 |
01-Jun-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Use archive libraries instead of object files for VMCore, BCReader, BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate these changes. This was done to speed up link times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28610 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
electionDAG/Makefile
|
4c6f2f9e92eae3e676ee09133e9666567782faa3 |
31-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
commuteInstruction() does not always create a new MI! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28592 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
16eee25c660010e5fc632b3707037b3baaa32909 |
31-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a memory leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28585 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
7b336a87466da67cbd528d124e38c12390707a24 |
31-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
visitVBinOp: Can't fold divide by zero! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6b8e5a93183ab08811b7b71887d8c7d774666210 |
30-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Make sure the register pressure reduction schedulers work for non-uniform latency targets, e.g. PPC32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28561 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
19564e3d83c9c3cdf908005c91bad13d26b5cedf |
30-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
When a priority_queue is empty, the behavior of top() operator is non-deterministic. Returns NULL when it's empty! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28560 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
729c6d1da87ad5b3bf849c4102b255657f67276c |
27-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!): SimplifySelectOps would eliminate a Select, delete it, then return true. The clients would see that it did something and return null. The top level would see a null return, and decide that nothing happened, proceeding to process the node in other ways: boom. The fix is simple: clients of SimplifySelectOps should return the select node itself. In order to catch really obnoxious boogs like this in the future, add an assert that nodes are not deleted. We do this by checking for a sentry node type that the SDNode dtor sets when a node is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d61c4820c9e39500a67bec4d6cfe521a833afdcc |
27-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Make CALL node consistent with RET node. Signness of value has type MVT::i32 instead of MVT::i1. Either is fine except MVT::i32 is probably a legal type for most (if not all) platforms while MVT::i1 is not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8e7d056bc5c0688501f6721994c8f4074d699c69 |
27-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Change RET node to include signness information of the return values. e.g. RET chain, value1, sign1, value2, sign2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28509 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
00aff7d9772e4945e3a946e70a3ef9998006b8de |
26-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove a bogus cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28492 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3b788238683396671e63cad36298d26eb4806dbe |
25-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Turn on -sched-commute-nodes by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGRRList.cpp
|
f6d62c2e2a53e3ebf2e25f0891e5f1a0b772b368 |
25-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
CALL node change: now including signness of every argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28461 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d74ea2bbd8bb630331f35ead42d385249bd42af8 |
24-May-2006 |
Chris Lattner <sabre@nondot.org> |
Patches to make the LLVM sources more -pedantic clean. Patch provided by Anton Korobeynikov! This is a step towards closing PR786. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28447 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
electionDAG/LegalizeDAG.cpp
woAddressInstructionPass.cpp
|
80235d508e5f7a9603ef43ba6625984173ff0323 |
23-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
-enable-unsafe-fp-math implies -enable-finite-only-fp-math git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28437 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
124729155d860a0850eb4ef2a7cea4145e13a057 |
23-May-2006 |
Vladimir Prus <ghost@cs.msu.su> |
Fix missing include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28435 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f6f9581983c85f8b4d2775b22870c1a4516fabdf |
23-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Incorrect SETCC CondCode used for FP comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28433 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
21d03f2de0087d60dbf575d95924404a97852879 |
18-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
lib/Target/Target.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d202ca4d988b5ee3f30656a7e82443db4752dd91 |
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix the result of the call to use a correct vbitconvert. There is no need to use getPackedTypeBreakdown at all here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28365 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
1b8daae71b0118b489cbecf2f1b8ed86b6bc8e57 |
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Correct a previous patch which broke CodeGen/PowerPC/vec_call.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7e399c14abb27f9d1291442ee7f9251fa827f2e9 |
17-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Another typo. Pointed out by Nate Begeman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28353 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6c43f35d740ccd1d746be90d98ee11f8829fe543 |
17-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a LowerCallTo and LowerArguments bug. They were introducing illegal VBIT_VECTOR nodes. There were some confusion about the semantics of getPackedTypeBreakdown(). e.g. for <4 x f32> it returns 1 and v4f32, not 4, and f32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28352 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e9b3da17cdc5b54bb1194043f27d4d2914d77097 |
17-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious bug in getPackedTypeBreakdown. Return 1 if type is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
c5d7d7c715f7b7a4eeea1ceaafefc3d1d6df2add |
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
When we legalize target nodes, do not use getNode to create a new node, use UpdateNodeOperands to just update the operands! This is important because getNode will allocate a new node if the node returns a flag and this breaks assumptions in the legalizer that you can legalize some things multiple times and get exactly the same results. This latent bug was exposed by my ppc patch last night, and this fixes gsm/toast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b248e16afd105fd8c01e08d8bf997b08ff08d127 |
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add an assertion, avoid some unneeded work for each call. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
da098e7d1017e9435617d4c3de58ff72ae01ca22 |
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for calls that pass and return legal vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f4ec817299a4187044a6162c2f520772b3ad69a0 |
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallTo produce it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28338 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
3e348494bbe72609893957510d56fb0266531306 |
16-May-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
this should be 128 I think git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
dae9cbe8d4fcd8f182a99403d67cae906bdb3175 |
16-May-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Move this code to a common place git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
8c0c10c2b9fef21dcbabac81fffa32f4407a0b7f |
16-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add a chain to FORMAL_ARGUMENTS. This is a minimal port of the X86 backend, it doesn't currently use/maintain the chain properly. Also, make the X86ISelLowering.cpp file 80-col clean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
966454129dc62260df1f438f0243f6877dcd185c |
16-May-2006 |
Chris Lattner <sabre@nondot.org> |
Move function-live-in-handling code from the sdisel code to the scheduler. This code should be emitted after legalize, so it can't be in sdisel. Note that the EmitFunctionEntryCode hook should be updated to operate on the DAG. The X86 backend is the only one currently using this hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28315 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4e92027837136233db0fc1c1a4fa2bc456d74de3 |
16-May-2006 |
Chris Lattner <sabre@nondot.org> |
Print the vreg that livein physregs are live in git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28314 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e2e41730ccfa9bebfabbd17ab3454aa2bb620b2a |
16-May-2006 |
Chris Lattner <sabre@nondot.org> |
Legalize FORMAL_ARGUMENTS nodes correctly, we don't want to legalize them once for each argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8820ad5154eae194a685a8735bd5999221fdffd0 |
13-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fixing 2006-05-01-SchedCausingSpills.ll; some clean up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28279 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
ee00a1d12c631eb7360ddd4809bdde72331b2736 |
13-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Revert an un-intended change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28278 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a2d079a7763d01922e806e7874553da2ae4006af |
13-May-2006 |
Chris Lattner <sabre@nondot.org> |
Merge identical code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3b6d56cab3dde20699d862fbd859bcb4ea4ed16e |
12-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
If the register allocator cannot find a register to spill, try the aliases. If that still fails (because all the register spill weights are inf), just grab one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28262 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
b5d9319bc585d872b59967eec71ada21a3bbd497 |
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove dead vars git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f1343c1b7929930c276939ac571cfbfadc283c4e |
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
remove dead vars git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c485e55c651fe6240e118e42bdf98effb6d06584 |
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove dead variable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28253 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
5eed34d208159e02949097ec91d98d5d9eb30e27 |
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Comment out dead variables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9dcb780e23abdec3e348124b47cf78cbff167154 |
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove dead var git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28250 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e41102bb610aeebe73eeec6a4afe62301de10042 |
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Compile: %tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1] %tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1] %bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1] To setne, not setune, which causes an assertion fault. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
07000c6f01d8f57170f2d4c77a86d934bdc5c696 |
12-May-2006 |
Owen Anderson <resistor@mac.com> |
Refactor a bunch of includes so that TargetMachine.h doesn't have to include TargetData.h. This should make recompiles a bit faster with my current TargetData tinkering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28238 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
LFWriter.cpp
achineBasicBlock.cpp
achineFunction.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/TargetLowering.cpp
|
647c15e58ed4c3fda81041d401ca7547639958dc |
12-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Backing out fix for PR770. Need to re-apply it after live range splitting is possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28236 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
626da3d9aeb5e18a47a7516cbeae38c9324636e5 |
12-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Duh. That could take a long time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
21a57dc75172aa964c51d386b2cdd0ad3be7792f |
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Two simplifications for token factor nodes: simplify tf(x,x) -> x. simplify tf(x,y,y,z) -> tf(x,y,z). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
13d41b9d721f98372b97d2ec119e6c91932ab0ae |
12-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add capability to scheduler to commute nodes for profit. If a two-address code whose first operand has uses below, it should be commuted when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGRRList.cpp
|
e165a78551a91d8420cd8f074d97701e8788f8b5 |
12-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Refactor scheduler code. Move register-reduction list scheduler to a separate file. Added an initial implementation of top-down register pressure reduction list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28226 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGRRList.cpp
electionDAG/SelectionDAGISel.cpp
|
993141402f57b4d4cbb7f8a3113f19c61688f9b7 |
11-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Set weight of zero length intervals to infinite to prevent them from being spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28220 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5d02eafaf250931838e77a6f5741e3738764e908 |
11-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Backing out previous check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28219 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
1f300190f35ac0f99403ead9363d40ecfc98df89 |
11-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
If the live interval legnth is essentially zero, i.e. in every live range the use follows def immediately, it doesn't make sense to spill it and hope it will be easier to allocate for this LI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28217 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
90db0358bbe4479099adfe41589f1787e3dc1545 |
10-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Templatify RegReductionPriorityQueue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
ec57fd91af6be26a29535e7dd3dcb63beb71d898 |
09-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Fix PR773 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28207 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c8d37c6e140dcddfc2d841ccd0a0924030ce15f8 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a regression in my patch from last night that broke the llvmgcc4 build on ppc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28205 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
b63b0679251834601633ed91b5567801a89d77fe |
09-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add pseudo dependency to force a def&use operand to be scheduled last (unless the distance between the def and another use is much longer). This is under option control for now "-sched-lower-defnuse". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
60e8c71c9f63959890ecabb70c6e2cde2f947224 |
09-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Debugging info git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28200 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e73701df947d23c65e96abc71a3be40ad77058ee |
09-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
PR 770 - permit coallescing of registers in subset register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28197 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7faec9b93ad8c1f40ec2dd415c7f2ccbe48cfe30 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Implement MASM sections correctly, without a "has masm sections flag" and a bunch of special case code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28194 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a7090ae7a3209783ba2a2f7b8ab5744ec3d292b3 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Oh yeah, there are two of these now, unify both. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28192 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
b81cb6133e224e37b1783fa2343a4789536fb0a4 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Setting SwitchToSectionDirective properly in the MASM backend permits a bunch of code to be unified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28191 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
23b9eac4cbd0d3aba53eb802d7af8a11280985e7 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Don't prefix section directives with a tab. Doing so causes blank lines to be emitted to the .s file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28189 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
13f161c51844d02af9b3637330af95f79db2f1c1 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Make the masm codepath work like the normal code path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28188 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
4ca4bb1ed2963a09c758677727a9f5432448fac9 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
The MASM asmprinter has been fixed, these hacks are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28186 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
4632d7a57008564c4b0f8246e85bd813a200d2c6 |
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Split SwitchSection into SwitchTo{Text|Data}Section methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28184 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
4b37e87ab9e7bfad8b87115278ca589f8d49ba26 |
08-May-2006 |
Chris Lattner <sabre@nondot.org> |
Make the case I just checked in stronger. Now we compile this: short test2(short X, short x) { int Y = (short)(X+x); return Y >> 1; } to: _test2: add r2, r3, r4 extsh r2, r2 srawi r3, r2, 1 blr instead of: _test2: add r2, r3, r4 extsh r2, r2 srwi r2, r2, 1 extsh r3, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
eaeda56649052fc75e527b37089d6d67c4a5976d |
08-May-2006 |
Chris Lattner <sabre@nondot.org> |
Implement and_sext.ll:test3, generating: _test4: srawi r3, r3, 16 blr instead of: _test4: srwi r2, r3, 16 extsh r3, r2 blr for: short test4(unsigned X) { return (X >> 16); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28174 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a850446a0be73ceb9ac1b312bffb1e06d7e40d99 |
08-May-2006 |
Chris Lattner <sabre@nondot.org> |
Compile this: short test4(unsigned X) { return (X >> 16); } to: _test4: movl 4(%esp), %eax sarl $16, %eax ret instead of: _test4: movl $-65536, %eax andl 4(%esp), %eax sarl $16, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2cfd6746ae4ab9dbfc25b025bc3e8bccddc47475 |
08-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fold shifts with undef operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1b7371331fef3db77999b9c4ca62c2ddbaf1d804 |
08-May-2006 |
Chris Lattner <sabre@nondot.org> |
When tracking demanded bits, if any bits from the sext of an SRA are demanded, then so is the input sign bit. This fixes mediabench/g721 on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
17c275ff2ce9e94d647e781f6dac6320d088f899 |
08-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Make emission of jump tables a bit less conservative; they are now required to be only 31.25% dense, rather than 75% dense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5c742681edc9d0e8be16f7518af5429d2b643078 |
08-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Fix PR772 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
822db93e57f9b8800268e8ba7b2cbc1234bc265c |
07-May-2006 |
Chris Lattner <sabre@nondot.org> |
Use ComputeMaskedBits to determine # sign bits as a fallback. This allows us to handle all kinds of stuff, including silly things like: sextinreg(setcc,i16) -> setcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28155 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
e60351bb72938117a0a0dd6fe2844381e9ec4ca9 |
07-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add some more sign propagation cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28154 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
310b578023bc6c91f5961582ec8de49c9268f711 |
07-May-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify some code, add a couple minor missed folds git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28152 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b9ebacdb4dccd0048b7fc8bcd2559d17e5293d38 |
07-May-2006 |
Chris Lattner <sabre@nondot.org> |
constant fold sign_extend_inreg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
541a24f7af685610838b5a89b2feffc2285937db |
07-May-2006 |
Chris Lattner <sabre@nondot.org> |
remove cases handled elsewhere git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28150 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d6f7fe76a63ae8c3eff0699b3214278cae30e4b6 |
07-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add some more simple sign bit propagation cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28149 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d43b18d9e47326cb83b11d684d569ee9050ebefa |
06-May-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix some loose ends in MASM support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28148 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
ee4ea923589a2556ff85edbaf444d9575050613a |
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
Use the new TargetLowering::ComputeNumSignBits method to eliminate sign_extend_inreg operations. Though ComputeNumSignBits is still rudimentary, this is enough to compile this: short test(short X, short x) { int Y = X+x; return (Y >> 1); } short test2(short X, short x) { int Y = (short)(X+x); return Y >> 1; } into: _test: add r2, r3, r4 srawi r3, r2, 1 blr _test2: add r2, r3, r4 extsh r2, r2 srawi r3, r2, 1 blr instead of: _test: add r2, r3, r4 srawi r2, r2, 1 extsh r3, r2 blr _test2: add r2, r3, r4 extsh r2, r2 srawi r2, r2, 1 extsh r3, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28146 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5c3e21d68726dbfc313d8af3d320b0a6b3eeac36 |
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add some really really simple code for computing sign-bit propagation. This will certainly be enhanced in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f0df8824eb2bf8a5fb91ce6fd1db590caf34f994 |
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
When inserting casts, be careful of where we put them. We cannot insert a cast immediately before a PHI node. This fixes Regression/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28143 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c93dfda9056a83a81b07ad25ed567cc303893990 |
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fold (trunc (srl x, c)) -> (srl (trunc x), c) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28138 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b72773bb88859633c62bc4938d05aafedb1442f1 |
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fold trunc(any_ext). This gives stuff like: 27,28c27 < movzwl %di, %edi < movl %edi, %ebx --- > movw %di, %bx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28137 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
06afe070371c5bdcdc76d90d9e13f8532d9f95aa |
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
Shrink shifts when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28136 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fe8babf689c624c53d03f5629324b049b5327a6e |
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
Implement ComputeMaskedBits/SimplifyDemandedBits for ISD::TRUNCATE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28135 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1c05997bd8d8b3e97c9a5384f8197d0348e237a3 |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Indent multiline asm strings more nicely git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28132 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e564dbb51ca1ad9ff6d88ae6120782a48bd040c2 |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fold (fpext (load x)) -> (extload x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
903236468c3ebb3f9ae8f51b6f2e68f10c7e1d3a |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
More aggressively sink GEP offsets into loops. For example, before we generated: movl 8(%esp), %eax movl %eax, %edx addl $4316, %edx cmpb $1, %cl ja LBB1_2 #cond_false LBB1_1: #cond_true movl L_QuantizationTables720$non_lazy_ptr, %ecx movl %ecx, (%edx) movl L_QNOtoQuantTableShift720$non_lazy_ptr, %edx movl %edx, 4460(%eax) ret ... Now we generate: movl 8(%esp), %eax cmpb $1, %cl ja LBB1_2 #cond_false LBB1_1: #cond_true movl L_QuantizationTables720$non_lazy_ptr, %ecx movl %ecx, 4316(%eax) movl L_QNOtoQuantTableShift720$non_lazy_ptr, %ecx movl %ecx, 4460(%eax) ret ... which uses one fewer register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0d8dae749c116a4168c3b4312f1bc0352d22c9db |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fold some common code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
540121f1ec6495445aab87ff464b170c0b762d05 |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Implement: // fold (and (sext x), (sext y)) -> (sext (and x, y)) // fold (or (sext x), (sext y)) -> (sext (or x, y)) // fold (xor (sext x), (sext y)) -> (sext (xor x, y)) // fold (and (aext x), (aext y)) -> (aext (and x, y)) // fold (or (aext x), (aext y)) -> (aext (or x, y)) // fold (xor (aext x), (aext y)) -> (aext (xor x, y)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28123 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a3dc3f692c2967dc9cfac6344c7216f62098feda |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Pull and through and/or/xor. This compiles some bitfield code to: mov EAX, DWORD PTR [ESP + 4] mov ECX, DWORD PTR [EAX] mov EDX, ECX add EDX, EDX or EDX, ECX and EDX, -2147483648 and ECX, 2147483647 or EDX, ECX mov DWORD PTR [EAX], EDX ret instead of: sub ESP, 4 mov DWORD PTR [ESP], ESI mov EAX, DWORD PTR [ESP + 8] mov ECX, DWORD PTR [EAX] mov EDX, ECX add EDX, EDX mov ESI, ECX and ESI, -2147483648 and EDX, -2147483648 or EDX, ESI and ECX, 2147483647 or EDX, ECX mov DWORD PTR [EAX], EDX mov ESI, DWORD PTR [ESP] add ESP, 4 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5ffc066912ce4f5c32741c5e56dc28a8fe1dc050 |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Implement a variety of simplifications for ANY_EXTEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28121 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
35e5c14b80a732c7d061a13a3717362e936852b1 |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Factor some code, add these transformations: // fold (and (trunc x), (trunc y)) -> (trunc (and x, y)) // fold (or (trunc x), (trunc y)) -> (trunc (or x, y)) // fold (xor (trunc x), (trunc y)) -> (trunc (xor x, y)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4b75e73791f32f73ca1fc91f073a5126e6700b7a |
05-May-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28117 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
7e598096ea8db3f19f4ec8f4cb407aea996bd7c2 |
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Sink noop copies into the basic block that uses them. This reduces the number of cross-block live ranges, and allows the bb-at-a-time selector to always coallesce these away, at isel time. This reduces the load on the coallescer and register allocator. For example on a codec on X86, we went from: 1643 asm-printer - Number of machine instrs printed 419 liveintervals - Number of loads/stores folded into instructions 1144 liveintervals - Number of identity moves eliminated after coalescing 1022 liveintervals - Number of interval joins performed 282 liveintervals - Number of intervals after coalescing 1304 liveintervals - Number of original intervals 86 regalloc - Number of times we had to backtrack 1.90232 regalloc - Ratio of intervals processed over total intervals 40 spiller - Number of values reused 182 spiller - Number of loads added 121 spiller - Number of stores added 132 spiller - Number of register spills 6 twoaddressinstruction - Number of instructions commuted to coalesce 360 twoaddressinstruction - Number of two-address instructions to: 1636 asm-printer - Number of machine instrs printed 403 liveintervals - Number of loads/stores folded into instructions 1155 liveintervals - Number of identity moves eliminated after coalescing 1033 liveintervals - Number of interval joins performed 279 liveintervals - Number of intervals after coalescing 1312 liveintervals - Number of original intervals 76 regalloc - Number of times we had to backtrack 1.88998 regalloc - Ratio of intervals processed over total intervals 1 spiller - Number of copies elided 41 spiller - Number of values reused 191 spiller - Number of loads added 114 spiller - Number of stores added 128 spiller - Number of register spills 4 twoaddressinstruction - Number of instructions commuted to coalesce 356 twoaddressinstruction - Number of two-address instructions On this testcase, this change provides a modest reduction in spill code, regalloc iterations, and total instructions emitted. It increases the number of register coallesces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28115 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6e994b74921d8519472a087246d7a56731e958d4 |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Final pass of minor cleanups for MachineInstr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28110 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
14a6db8bd9c83f5fa1821c133f43ccaebdebef91 |
04-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Initial support for register pressure aware scheduling. The register reduction scheduler can go into a "vertical mode" (i.e. traversing up the two-address chain, etc.) when the register pressure is low. This does seem to reduce the number of spills in the cases I've looked at. But with x86, it's no guarantee the performance of the code improves. It can be turned on with -sched-vertically option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28108 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
943b5e117fe9a087f9aa529a2632c2d32cc22374 |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove redundancy and a level of indirection when creating machine operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28107 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8b915b4ed2c6e43413937ac71c0cbcf476ad1a98 |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove and simplify some more machineinstr/machineoperand stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28105 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
2d90ac7ca6117d3b160dde8a4f322c1079a6ffce |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28104 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
e53f4a055f74bded20d6129b4724ddd17fd199f6 |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Move some methods out of MachineInstr into MachineOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28102 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineInstr.cpp
egAllocLocal.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
63b3d7113d93fda622c4954c6b1d046ce029044e |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
There shalt be only one "immediate" operand type! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28099 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ceb408f6a263e319683209ae5c6f8d1e3e4d9b69 |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Change "value" in MachineOperand to be a GlobalValue, as that is the only thing that can be in it. Remove a dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28098 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4efeab208cf0fe7ae2f68bcdd1264a8fdb18826c |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch more dead V9 specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28094 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
|
ea50fabfd4e5fad25a25b312f64a9b2a53363586 |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch more SparcV9 specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28093 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
electionDAG/ScheduleDAG.cpp
|
34fb2cad46adb39f3c2cc705fbbf439a383d0f65 |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some more V9-specific stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28092 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
10f3597c4e0c13ecf0272b7ca0be741a91ade48c |
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some more unused stuff from MachineInstr that was leftover from V9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28091 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b4432f3d4754e16c918428d34a9d8ec18ab79204 |
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Suck block address tracking out of targets into the JIT Emitter. This simplifies the MachineCodeEmitter interface just a little bit and makes BasicBlocks work like constant pools and jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28082 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
f4360a478944af45d5f851a0903fbbfa44f520dc |
03-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Finish up the initial jump table implementation by allowing jump tables to not be 100% dense. Increase the minimum threshold for the number of cases in a switch statement from 4 to 6 in order to create a jump table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28079 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c9a83a45ba53abeab329548e7ac9f3968b440e64 |
03-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Bottom up register pressure reduction work: clean up some hacks and enhanced the heuristic to further reduce spills for several test cases. (Note, it may not necessarily translate to runtime win!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28076 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
a69571c7991813c93cba64e88eced6899ce93d81 |
03-May-2006 |
Owen Anderson <resistor@mac.com> |
Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28074 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
LFWriter.cpp
achineFunction.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
af1563fb62ed76f4818ac172ab1c6cf15fa35a82 |
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Change the BasicBlockAddrs map to be a vector, indexed by MBB number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28069 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
f75f9be3fb89eb6661a0ed8bfee8a6328ee5a4d1 |
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Several related changes: 1. Change several methods in the MachineCodeEmitter class to be pure virtual. 2. Suck emitConstantPool/initJumpTableInfo into startFunction, removing them from the MachineCodeEmitter interface, and reducing the amount of target- specific code. 3. Change the JITEmitter so that it allocates constantpools and jump tables *right* next to the functions that they belong to, instead of in a separate pool of memory. This makes all memory for a function be contiguous, and means the JITEmitter only tracks one block of memory now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28065 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
f5d438c1f0e0c0ed44475ab69f03d86a3c818c60 |
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Do not make the JIT memory manager manage the memory for globals. Instead just have the JIT malloc them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28062 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
43b429b05989075b60693d57395c99b0ad789f8d |
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor the machine code emitter interface to pull the pointers for the current code emission location into the base class, instead of being in the derived classes. This change means that low-level methods like emitByte/emitWord now are no longer virtual (yaay for speed), and we now have a framework to support growable code segments. This implements feature request #1 of PR469. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28059 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achineCodeEmitter.cpp
|
9d51eeb8bc2ccdd488aab90eb57672de6155f2d5 |
02-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Print function number instead of name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28057 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
b0cc79d45b1e455b486f8ca5cc68546b7a865eb3 |
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove dead method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28055 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achineCodeEmitter.cpp
|
3a9cfbaf861076128be6acd27826a1176abf79b3 |
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove the debug machine code emitter. The "FilePrinterEmitter" is more useful for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28051 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
cdf38c4edb892c356cfaa3c09c57728bc8d6bfd0 |
02-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Extend printBasicBlockLabel a bit so that it can be used to print all basic block labels, consolidating the code to do so in one place for each target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28050 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
51b776d25915ca7fbfc14578ff479352a772da06 |
02-May-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
De-virtualize SwitchSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28047 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c6a057b04db506152c98355b51ba15d82a15b90a |
02-May-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
De-virtualize EmitZeroes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28046 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c884db47f1a1d5449b749e6528292451e49025e4 |
02-May-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Make Intel syntax mode friendlier to Microsoft ML assembler (still needs more work). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28044 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
229924a79f9a3b33b767527b9d4249e1133ceeda |
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a latent bug that my spiller patch last week exposed: we were leaving instructions in the virtregfolded map that were deleted. Because they were deleted, newly allocated instructions could end up at the same address, magically finding themselves in the map. The solution is to remove entries from the map when we delete the instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28041 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
8a18c13fa5d226e60a875eff5ae66cefe4093bc9 |
01-May-2006 |
Chris Lattner <sabre@nondot.org> |
When promoting a load to a reg-reg copy, where the load was a previous instruction folded with spill code, make sure the remove the load from the virt reg folded map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28040 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
35f2705e3de4600c3621b883eed9b22e4607ddf4 |
01-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove previous patch, which wasn't quite right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28039 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
22608c2d1feeb649770f8cceab5ccdf949a24543 |
01-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Dis-favor stores more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
f229a5d4beffae21e89481cb93c874ac5a149c2d |
01-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Bottom up register-pressure reduction scheduler now pushes store operations up the schedule. This helps code that looks like this: loads ... computations (first set) ... stores (first set) ... loads computations (seccond set) ... stores (seccond set) ... Without this change, the stores and computations are more likely to interleave: loads ... loads ... computations (first set) ... computations (second set) ... computations (first set) ... stores (first set) ... computations (second set) ... stores (stores set) ... This can increase the number of spills if we are unlucky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28033 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
3766d66b91c2cf850c79c6f0dbb5f20413edea71 |
01-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Didn't mean ScheduleDAGList.cpp to make the last checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28030 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
10dbd3ead83e64aae614181ee23965e10f341973 |
01-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove temp. option -spiller-check-liveout, it didn't cause any failure nor performance regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28029 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
irtRegMap.cpp
|
c80c43eee09e151b3f2137e405004772f0ebc1a5 |
01-May-2006 |
Chris Lattner <sabre@nondot.org> |
Format #APP lines a bit nicer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28026 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
200370fb5617a1719f0054804b412469ce486ebd |
30-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Local spiller kills a store if the folded restore is turned into a copy. But this is incorrect if the spilled value live range extends beyond the current BB. It is currently controlled by a temporary option -spiller-check-liveout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28024 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
25c344a7589054bd3f6ad31c777a02fb4916c31f |
29-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Remove a bogus transformation. This fixes SingleSource/UnitTests/2006-01-23-InitializedBitField.c with some changes I have to the new CFE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
55d0fa1bfaec665c949b1069225bbc23ca7782bc |
28-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove the temporary option: -no-isel-fold-inflight git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
020c41f21e8b6b01bc40db69e660c3c6e29b0978 |
28-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
TargetLowering::LowerArguments should return a VBIT_CONVERT of FORMAL_ARGUMENTS SDOperand in the return result vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ba1fc3daf757c8f880c3069eed20218c91f2c3a8 |
28-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Mapping of physregs can make it so that the designated and input physregs are the same. In this case, don't emit a noop copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28008 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
552c4a849422ad91fa9988255ae35aebbf3acf7b |
28-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added a temporary option -no-isel-fold-inflight to control whether a "inflight" node can be folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28003 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
addc55af6c7f8b71eedd68d48f6a93ceecff2840 |
28-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
When we have a two-address instruction where the input cannot be clobbered and is already available, instead of falling back to emitting a load, fall back to emitting a reg-reg copy. This generates significantly better code for some SSE testcases, as SSE has lots of two-address instructions and none of them are read/modify/write. As one example, this change does: pshufd %XMM5, XMMWORD PTR [%ESP + 84], 255 xorps %XMM2, %XMM5 cmpltps %XMM1, %XMM0 - movaps XMMWORD PTR [%ESP + 52], %XMM0 - movapd %XMM6, XMMWORD PTR [%ESP + 52] + movaps %XMM6, %XMM0 cmpltps %XMM6, XMMWORD PTR [%ESP + 68] movapd XMMWORD PTR [%ESP + 52], %XMM6 movaps %XMM6, %XMM0 cmpltps %XMM6, XMMWORD PTR [%ESP + 36] cmpltps %XMM3, %XMM0 - movaps XMMWORD PTR [%ESP + 20], %XMM0 - movapd %XMM7, XMMWORD PTR [%ESP + 20] + movaps %XMM7, %XMM0 cmpltps %XMM7, XMMWORD PTR [%ESP + 4] movapd XMMWORD PTR [%ESP + 20], %XMM7 cmpltps %XMM4, %XMM0 ... which is far better than a store followed by a load! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28001 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
f7179bb56ea49e627cdc531ea73d7b6940e87372 |
27-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Insert a VBIT_CONVERT between a FORMAL_ARGUMENT node and its vector uses (VAND, VADD, etc.). Legalizer will assert otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27991 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a83385fb7bdb325921d091729d95e2e1f4d49cc1 |
27-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Regression/CodeGen/Generic/2006-04-26-SetCCAnd.ll and PR748. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27987 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3b0d286d0085fbf8314d9f5510c2f78558ab5dea |
26-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Don't forget return void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27974 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9453eea49bca1c3904047db495855c93e001d1cd |
23-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
Fix the updating of the machine CFG when a PHI node was in a successor of the jump table's range check block. This re-enables 100% dense jump tables by default on PPC & x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3700a4d3a27ca8d39c73049020623cf4963d6c13 |
23-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
Code cleanup associated with jump tables, thanks to Chris for noticing these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27950 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
05f9466cf0f4f47803af7283f7708cb25f4da889 |
23-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
Turn of jump tables for a bit, there are still some issues to work out with updating the machine CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
37efe6764568a3829fee26aba532283131d1a104 |
22-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
LFWriter.cpp
achineCodeEmitter.cpp
achineFunction.cpp
achineInstr.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4a1cd9c61e3e648587d33d5f02ddad97e87f16aa |
21-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
The BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap miscompares). Switch RISC targets to use the list-td scheduler, which isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27933 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ef027f940cca409d9e923be3e30afa3f4f0af41a |
21-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a couple more memory issues git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fedced7bc3702f2db5c5d78531b7f58e0f6c9c50 |
21-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a really subtle and obnoxious memory bug that caused issues with an llvm-gcc4 boostrap. Whenever a node is deleted by the dag combiner, it *must* be returned by the visit function, or the dag combiner will not know that the node has been processed (and will, e.g., send it to the target dag combine xforms). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1b87c42c82883e37099c777d08474f89834010dd |
20-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
This field no longer exists git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27899 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
02e5f8dcda4319e05fe49301ab72c386ed859e16 |
20-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some of the obvious V9-specific cruft git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27893 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
44f1f09b4e08bf6f94269c1fe4363b99ef17af50 |
20-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Turn a VAND into a VECTOR_SHUFFLE is applicable. DAG combiner can turn a VAND V, <-1, 0, -1, -1>, i.e. vector clear elements, into a vector shuffle with a zero vector. It only does so when TLI tells it the xform is profitable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27874 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
62b5772959741f1f1368e9a603d171caac1083f5 |
20-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement folding of a bunch of binops with undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
89a1b380a475cbe477e50ff4b94335596b37f21a |
20-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27846 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
80edfb3af5ed214c5cd7797b37cb3bb024e98cc6 |
18-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Fix handling of calls in functions that use vectors. This fixes a crash on the code in GCC PR26546. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
48d7c069c76882475c23de153bda9483cd3c9bb4 |
17-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add a MachineInstr::eraseFromParent convenience method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27775 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8d5a894501b7546dee94df03118b90126c420820 |
17-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen insertelement with constant insertion points as scalar_to_vector and a shuffle. For this: void %test2(<4 x float>* %F, float %f) { %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] %tmp2 = insertelement <4 x float> %tmp3, float %f, uint 2 ; <<4 x float>> [#uses=2] %tmp6 = add <4 x float> %tmp2, %tmp2 ; <<4 x float>> [#uses=1] store <4 x float> %tmp6, <4 x float>* %F ret void } we now get this on X86 (which will get better): _test2: movl 4(%esp), %eax movaps (%eax), %xmm0 addps %xmm0, %xmm0 movaps %xmm0, %xmm1 shufps $3, %xmm1, %xmm1 movaps %xmm0, %xmm2 shufps $1, %xmm2, %xmm2 unpcklps %xmm1, %xmm2 movss 8(%esp), %xmm1 unpcklps %xmm1, %xmm0 unpcklps %xmm2, %xmm0 addps %xmm0, %xmm0 movaps %xmm0, (%eax) ret instead of: _test2: subl $28, %esp movl 32(%esp), %eax movaps (%eax), %xmm0 addps %xmm0, %xmm0 movaps %xmm0, (%esp) movss 36(%esp), %xmm0 movss %xmm0, 8(%esp) movaps (%esp), %xmm0 addps %xmm0, %xmm0 movaps %xmm0, (%eax) addl $28, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27765 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2efce0a589e2a688a1a06b5dc2ed0db32ae79924 |
16-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for promoting stores from one legal type to another, allowing us to write one pattern for vector stores instead of 4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27730 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
547a16f27315a08527c41dc521c7cdf6ad9a0b6c |
16-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Make these predicates return true for bit_convert(buildvector)'s as well as buildvectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3824e50b1e931f15e47bdf9edeb324737f236fe6 |
14-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Make this assertion better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27695 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
60d07eeffe80e8b7a3e1fad9420614b8438ba7e3 |
13-Apr-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Expand some code with temporary variables to rid ourselves of the warning about "dereferencing type-punned pointer will break strict-aliasing rules" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27671 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
cc9876124e7096d050e6750dd075758320f2cdce |
12-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Promote vector AND, OR, and XOR git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
41f6cbbeb21d7d4376b8c0302b9766c3e43be5f2 |
12-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Vector type promotion for ISD::LOAD and ISD::SELECT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fdfded55888e35b76bb70231a5bb2f60877c2f6a |
12-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement support for the formal_arguments node. To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
9d956250f547eb50c453edcb83b9d1783ee1558c |
12-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Don't memoize vloads in the load map! Don't memoize them anywhere here, let getNode do it. This fixes CodeGen/Generic/2006-04-11-vecload.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27602 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
98f8aeb45fc1e54437cbb8f2a7445c609deab832 |
11-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Only get Tmp2 for cases where number of operands is > 1. Fixed return void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b49e52c7e2d828c45583f862c0f7e1a4a2649aca |
11-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
add some todos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f87324e44de88da5b3d57d6aeda5bc9d30f86374 |
11-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add basic support for legalizing returns of vectors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1069fbdd2fc637321ca69f501b8af4f321aeb9f7 |
11-Apr-2006 |
Jim Laskey <jlaskey@mac.com> |
Use existing information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27574 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
db3c626eb9e85e9192dbee59ff0c4d143c37c94d |
10-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Missing break git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b22e35a3c3bec07f5559c1476b3143e0d6d64269 |
09-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add code generator support for VSELECT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
17614ea63db9189050b6ca0310f535d12bdedb81 |
08-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Canonicalize vvector_shuffle(x,x) -> vvector_shuffle(x,undef) to enable patterns to match again :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27533 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
3e104b11168da4692b69cc6b236c1da22adff959 |
08-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen shufflevector as VVECTOR_SHUFFLE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27529 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
|
4ddd283f6928fc337c1bf3277566d7b31526e8d9 |
08-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
add a sanity check: LegalizeOp should return a value that is the same type as its input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27528 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f6bf87f2cc685d13d6a8fa37693425956b33a840 |
08-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
INSERT_VECTOR_ELT lowering bug: store vector to $esp store element to $esp + sizeof(VT) * index load vector from $esp The bug is VT is the type of the vector element, not the type of the vector! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
67f13514984c71f80cedf32b698e585a68bcf3e0 |
08-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Stub out shufflevector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27514 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f36e2d3415e91d51b0da2883ad57f663a34a1b97 |
08-Apr-2006 |
Jim Laskey <jlaskey@mac.com> |
Remove section change in function end, preventing override of function's real section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27503 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
6b92b8e50d7e5b48407865c3aaf9966c01416c69 |
07-Apr-2006 |
Jim Laskey <jlaskey@mac.com> |
Make sure that debug labels are defined within the same section and after the entry point of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27494 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
4188699f80c233a20b6ddc61570a8a8c1804cb85 |
07-Apr-2006 |
Jim Laskey <jlaskey@mac.com> |
Foundation for call frame information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27491 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
rologEpilogInserter.cpp
|
c04766a22832bd044bf3e1c3740415165b9400d6 |
07-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
1. If both vector operands of a vector_shuffle are undef, turn it into an undef. 2. A shuffle mask element can also be an undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27472 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2e2ef9535070bb352601482cceac1140c1158cdd |
05-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Make a vector live across blocks have the correct Vec type. This fixes CodeGen/X86/2006-04-04-CrossBlockCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
18dd6d0a2aeb3b827391f46996a7b40c9b1f907a |
05-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Exapnd a VECTOR_SHUFFLE to a BUILD_VECTOR if target asks for it to be expanded or custom lowering fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e44be60ee91b65df8dcf13cca15563ab80b236c4 |
04-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Do not create ZEXTLOAD's unless we are before legalize or the operation is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27402 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4352cc9e217e4482ad53f5a7b92c3543f569eb6e |
04-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
* Add supprot for SCALAR_TO_VECTOR operations where the input needs to be promoted/expanded (e.g. SCALAR_TO_VECTOR from i8/i16 on PPC). * Add support for targets to request that VECTOR_SHUFFLE nodes be promoted to a canonical type, for example, we only want v16i8 shuffles on PPC. * Move isShuffleLegal out of TLI into Legalize. * Teach isShuffleLegal to allow shuffles that need to be promoted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27399 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
08da55eeff8fdacd232e69c76bc5142eb4b1474e |
04-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Constant fold bitconvert(undef) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4672f71ac4d056aa22d6b09838a3eb22a2e384e7 |
03-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
The stack alignment is now computed dynamically, just verify it is correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27380 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7dca8e2d732bdbf72034def4d6b9d3d6b99d4ba5 |
03-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Remove unused method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27379 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
97c2073270e59efd966e9fe1c9b6697cc863d680 |
03-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add a missing check, this fixes UnitTests/Vector/sumarray.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a4c5d8c6b4e91b880fcd1b8b293f330e3aa198a3 |
03-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add a missing check, which broke a bunch of vector tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cf4fb61f6c1daa3b4446ad0444b63770f3026d2d |
03-Apr-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
back this out git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
50a0d426e85b4e27766a99279d2e61f622525f94 |
02-Apr-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
This should be a win of every arch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1b5232a93767eac1424c67fb86580deef97e21e0 |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
relax assertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1482b5fc7affd691fbd8ece7808ddd4559ad20ae |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Allow targets to compute masked bits for intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
350bec0fb9680b849942052b25f838d8ad10c743 |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add a little dag combine to compile this: int %AreSecondAndThirdElementsBothNegative(<4 x float>* %in) { entry: %tmp1 = load <4 x float>* %in ; <<4 x float>> [#uses=1] %tmp = tail call int %llvm.ppc.altivec.vcmpgefp.p( int 1, <4 x float> < float 0x7FF8000000000000, float 0.000000e+00, float 0.000000e+00, float 0x7FF8000000000000 >, <4 x float> %tmp1 ) ; <int> [#uses=1] %tmp = seteq int %tmp, 0 ; <bool> [#uses=1] %tmp3 = cast bool %tmp to int ; <int> [#uses=1] ret int %tmp3 } into this: _AreSecondAndThirdElementsBothNegative: mfspr r2, 256 oris r4, r2, 49152 mtspr 256, r4 li r4, lo16(LCPI1_0) lis r5, ha16(LCPI1_0) lvx v0, 0, r3 lvx v1, r5, r4 vcmpgefp. v0, v1, v0 mfcr r3, 2 rlwinm r3, r3, 27, 31, 31 mtspr 256, r2 blr instead of this: _AreSecondAndThirdElementsBothNegative: mfspr r2, 256 oris r4, r2, 49152 mtspr 256, r4 li r4, lo16(LCPI1_0) lis r5, ha16(LCPI1_0) lvx v0, 0, r3 lvx v1, r5, r4 vcmpgefp. v0, v1, v0 mfcr r3, 2 rlwinm r3, r3, 27, 31, 31 xori r3, r3, 1 cntlzw r3, r3 srwi r3, r3, 5 mtspr 256, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4aab2f4ab50d2b04dc559c7b197f1de7612c896b |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement promotion for EXTRACT_VECTOR_ELT, allowing v16i8 multiplies to work with PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bc70cf8be95f33f9aa30c8c3d0fd79e3fa636360 |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the Expand action for binary vector operations to break the binop into elements and operate on each piece. This allows generic vector integer multiplies to work on PPC, though the generated code is horrible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27347 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e58a780166eb684164a0a95b999f29328d4e9b2b |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Intrinsics that just load from memory can be treated like loads: they don't have to serialize against each other. This allows us to schedule lvx's across each other, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
edab1b91336af19e815e780f2e28eb3d2013ddf4 |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Constant fold all of the vector binops. This allows us to compile this: "vector unsigned char mergeLowHigh = (vector unsigned char) ( 8, 9, 10, 11, 16, 17, 18, 19, 12, 13, 14, 15, 20, 21, 22, 23 ); vector unsigned char mergeHighLow = vec_xor( mergeLowHigh, vec_splat_u8(8));" aka: void %test2(<16 x sbyte>* %P) { store <16 x sbyte> cast (<4 x int> xor (<4 x int> cast (<16 x ubyte> < ubyte 8, ubyte 9, ubyte 10, ubyte 11, ubyte 16, ubyte 17, ubyte 18, ubyte 19, ubyte 12, ubyte 13, ubyte 14, ubyte 15, ubyte 20, ubyte 21, ubyte 22, ubyte 23 > to <4 x int>), <4 x int> cast (<16 x sbyte> < sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8, sbyte 8 > to <4 x int>)) to <16 x sbyte>), <16 x sbyte> * %P ret void } into this: _test2: mfspr r2, 256 oris r4, r2, 32768 mtspr 256, r4 li r4, lo16(LCPI2_0) lis r5, ha16(LCPI2_0) lvx v0, r5, r4 stvx v0, 0, r3 mtspr 256, r2 blr instead of this: _test2: mfspr r2, 256 oris r4, r2, 49152 mtspr 256, r4 li r4, lo16(LCPI2_0) lis r5, ha16(LCPI2_0) vspltisb v0, 8 lvx v1, r5, r4 vxor v0, v1, v0 stvx v0, 0, r3 mtspr 256, r2 blr ... which occurs here: http://developer.apple.com/hardware/ve/calcspeed.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27343 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5e46a19ec848cd4fc9649bd5170c43d9e657668c |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new -view-legalize-dags command line option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27342 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6258fb2592d97e1c8e58d4fadf6c47ddeb23b455 |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement constant folding of bit_convert of arbitrary constant vbuild_vector nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27341 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5e08a1103950722c1faa999aabb04048342392b7 |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
These entries already exist git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27340 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
97d23335ad9a3a1e5b78b9feea49c57252ab53e9 |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add some missing node names git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f8814cf8b8ba8953add60078e304fd5a4113f9cc |
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Prefer larger register classes over smaller ones when a register occurs in multiple register classes. This fixes PowerPC/2006-04-01-FloatDoubleExtend.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27334 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f1d0c623c6d9ce3e5d1b30ba3e76e122adc6720e |
01-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Delete identity shuffles, implementing CodeGen/Generic/vector-identity-shuffle.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27317 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c741ea424a290373b24b06b77f161d06f08f7fa7 |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Do not endian swap split vector loads. This fixes UnitTests/Vector/sumarray-dbl on PPC. Now all UnitTests/Vector/* tests pass on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27299 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d9731af75b38f30c02f19d6e81333b9c2599ad5f |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Do not endian swap the operands to a store if the operands came from a vector. This fixes UnitTests/Vector/simple.c with altivec. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27298 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
29cd7db31097a1ae70a88d7f721a46f207363b46 |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Remove dead *extloads. This allows us to codegen vector.ll:test_extract_elt to: test_extract_elt: alloc r3 = ar.pfs,0,1,0,0 adds r8 = 12, r32 ;; ldfs f8 = [r8] mov ar.pfs = r3 br.ret.sptk.many rp instead of: test_extract_elt: alloc r3 = ar.pfs,0,1,0,0 adds r8 = 28, r32 adds r9 = 24, r32 adds r10 = 20, r32 adds r11 = 16, r32 ;; ldfs f6 = [r8] ;; ldfs f6 = [r9] adds r8 = 12, r32 adds r9 = 8, r32 adds r14 = 4, r32 ;; ldfs f6 = [r10] ;; ldfs f6 = [r11] ldfs f8 = [r8] ;; ldfs f6 = [r9] ;; ldfs f6 = [r14] ;; ldfs f6 = [r32] mov ar.pfs = r3 br.ret.sptk.many rp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e4b953939c2848cd71ab4aeaecaa150ba1ae7fd9 |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Delete dead loads in the dag. This allows us to compile vector.ll:test_extract_elt2 into: _test_extract_elt2: lfd f1, 32(r3) blr instead of: _test_extract_elt2: lfd f0, 56(r3) lfd f0, 48(r3) lfd f0, 40(r3) lfd f1, 32(r3) lfd f0, 24(r3) lfd f0, 16(r3) lfd f0, 8(r3) lfd f0, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27296 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1597221eace1c53ce5f84a7018397497d11a8393 |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement PromoteOp for VEXTRACT_VECTOR_ELT. Thsi fixes Generic/vector.ll:test_extract_elt on non-sse X86 systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27294 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2ae2e98d4f83a02b5e576ec7a0da74d8aebb38cf |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Scalarized vector stores need not be legal, e.g. if the vector element type needs to be promoted or expanded. Relegalize the scalar store once created. This fixes CodeGen/Generic/vector.ll:test1 on non-SSE x86 targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27293 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7e02151ce2686687446ba7293e66d6b096106e68 |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Make sure to pass enough values to phi nodes when we are dealing with decimated vectors. This fixes UnitTests/Vector/sumarray-dbl.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
70c2a61e0a0fb0a7e8b9bddd26bdcc92762772f0 |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Significantly improve handling of vectors that are live across basic blocks, handling cases where the vector elements need promotion, expansion, and when the vector type itself needs to be decimated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27278 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a6c9de42938a26aa7edf50f4250cfd5cdca7737d |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Was returning the wrong type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27277 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
eb0b461cf4884bf2c98e463663a298e5c4ae9883 |
31-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand INSERT_VECTOR_ELT to store vec, sp; store elt, sp+k; vec = load sp; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27274 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
79227e2906656b2c92965f5dbebcd66a5774c87f |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Modify the TargetLowering::getPackedTypeBreakdown method to also return the unpromoted element type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
dc879296090a738c66968f5eec77db65d7e03623 |
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement TargetLowering::getPackedTypeBreakdown git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2bbd81064a6998496a71ff7ae8160b3caada64fa |
29-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Bug fixes: handle constantexpr insert/extract element operations Handle constantpacked vectors with constantexpr elements. This fixes CodeGen/Generic/vector-constantexpr.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27241 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cef896e50cf58e6b3dc3cd431693d78b8ebfa079 |
29-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
When building a VVECTOR_SHUFFLE node from extract_element operations, make sure to build it as SHUFFLE(X, undef, mask), not SHUFFLE(X, X, mask). The later is not canonical form, and prevents the PPC splat pattern from matching. For a particular splat, we go from generating this: li r10, lo16(LCPI1_0) lis r11, ha16(LCPI1_0) lvx v3, r11, r10 vperm v3, v2, v2, v3 to generating: vspltw v3, v2, 3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27236 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
66445d3e0a3c6d02585a3c18ec295451a80d427c |
29-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Canonicalize VECTOR_SHUFFLE(X, X, Y) -> VECTOR_SHUFFLE(X,undef,Y') git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d7648c89343c62e154a7d374485dc93a9dc49d54 |
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Turn a series of extract_element's feeding a build_vector into a vector_shuffle node. For this: void test(__m128 *res, __m128 *A, __m128 *B) { *res = _mm_unpacklo_ps(*A, *B); } we now produce this code: _test: movl 8(%esp), %eax movaps (%eax), %xmm0 movl 12(%esp), %eax unpcklps (%eax), %xmm0 movl 4(%esp), %eax movaps %xmm0, (%eax) ret instead of this: _test: subl $76, %esp movl 88(%esp), %eax movaps (%eax), %xmm0 movaps %xmm0, (%esp) movaps %xmm0, 32(%esp) movss 4(%esp), %xmm0 movss 32(%esp), %xmm1 unpcklps %xmm0, %xmm1 movl 84(%esp), %eax movaps (%eax), %xmm0 movaps %xmm0, 16(%esp) movaps %xmm0, 48(%esp) movss 20(%esp), %xmm0 movss 48(%esp), %xmm2 unpcklps %xmm0, %xmm2 unpcklps %xmm1, %xmm2 movl 80(%esp), %eax movaps %xmm2, (%eax) addl $76, %esp ret GCC produces this (with -fomit-frame-pointer): _test: subl $12, %esp movl 20(%esp), %eax movaps (%eax), %xmm0 movl 24(%esp), %eax unpcklps (%eax), %xmm0 movl 16(%esp), %eax movaps %xmm0, (%eax) addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27233 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5b2316e2b06e0fb6aea31d9d3eb61376b40c23a6 |
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Teach Legalize how to pack VVECTOR_SHUFFLE nodes into VECTOR_SHUFFLE nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27232 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
354cde9a7e7038ec0cb61a76f22baae289131ade |
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
new node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4fbdd59f4ff40122ddf5a7adb40e1344da4f5f2b |
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Don't crash on X^X if X is a vector. Instead, produce a vector of zeros. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27229 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f35b29765b2c1393aa479cd2d9c82d99c18d7430 |
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add an assertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b3e7be25be0b6fafae5b5301df40e09a7cae0ede |
28-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Refactor address attributes. Add base register to frame info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27226 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
bf7637d59028a5d9911769810f537c499e23bb8e |
28-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
More bulletproofing of llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27224 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
aaa80ebd10c62a903537d386b0d3738b0595491f |
28-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
More bulletproofing of DebugInfoDesc verify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27203 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
48b61a729df6576c8833a83893d4086bddff69a5 |
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum value. Split them into separate enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
8c39020359e1b80277277382c63560f592619a2f |
28-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Reactivate llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27192 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
67995340fb223d91636c95ba35488c34d47b726a |
27-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Disable dbg_declare, it currently breaks the CFE build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27182 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
13fc2f1d270cdedffb72b33621369cee9a2cdaaa |
27-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix legalization of intrinsics with chain and result values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27181 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
401ec7f6a9fb339f752ec424efe13431a556cc6d |
27-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Unbreak the build on non-apple compilers :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27173 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
23cc8708c316128088674675707e140658043f85 |
27-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Try again git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f48b50a7ef18044c8f05075e6432d072db069f5d |
27-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Incorrect check for FP all one's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a8df166fbef047c90adba3c673162a1b1f6681c4 |
27-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check for floating point cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
70a248d284af550ae46c8dfc18ea2bbc15d31eb0 |
27-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Instead of printing "INTRINSIC" on intrinsic node, print the intrinsic name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a8299deab75b9675f46a2ba03ea8a1ba19ffe280 |
27-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Pass llvm/test/Regression/CodeGen/Generic/debug-info.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27158 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
f15485a8d0dff5f720b7ad27346129ac5c3ec503 |
27-Mar-2006 |
Nate Begeman <natebegeman@mac.com> |
SelectionDAGISel can now natively handle Switch instructions, in the same manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary search tree of basic blocks. The new approach has several advantages: it is faster, it generates significantly smaller code in many cases, and it paves the way for implementing dense switch tables as a jump table by handling switches directly in the instruction selector. This functionality is currently only enabled on x86, but should be safe for every target. In anticipation of making it the default, the cfg is now properly updated in the x86, ppc, and sparc select lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fbcf23c3c12449c264f1448a2eee524be0b799f7 |
27-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Bullet proof against undefined args produced by upgrading ols-style debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27155 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
98e0410f078185d54195d2594be3cb96e6e8ab5d |
27-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
How to be dumb on $5/day. Need a tri-state to track valid debug descriptors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27154 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
4a147842eb24a7611fcd7bfb37c55185b4664927 |
26-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add ISD::isBuildVectorAllZeros predicate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27147 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
10d7fa62fffbceed580c34a00bd30f16643f6607 |
26-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Allow targets to custom lower their own intrinsics if desired. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27146 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c8e2c5561c65d048198c211baae9e5b961799767 |
26-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27133 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
452e8354d58960289aae610fa265ee69431b6b83 |
25-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in ISD::isBuildVectorAllOnesInteger that caused it to always return false git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27131 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
61d4399dfc7046595e30ad34a28c72a885cb8100 |
25-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the ISD::isBuildVectorAllOnesInteger predicate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6ea2dee6f675bd5eb32de08b4eecfe21ebe107a0 |
25-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Don't call SimplifyDemandedBits on vectors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7255a545613f9e713779ca81f55711c0863d9cc9 |
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
fix inverted conditional git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5b4939907edab7ca3d77b04bc1d436668af50b3b |
24-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Hack no more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27079 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
73d7b6029ac8b52a90f302d06831abcc04c77077 |
24-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Only to vector shuffle for {x,x,y,y} cases when SCALAR_TO_VECTOR is free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0892cee81fa8c1ea6a0901b268fe9ad2b8fa733a |
24-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Rename for truth in advertising. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27063 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2eb8653157ccd318b357af74bfd517c76ef166b8 |
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
prefer to generate constant pool loads over splats. This prevents us from using a splat for {1.0,1.0,1.0,1.0} git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27055 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
45053fc7fc2712d5ead1c087ce603637c99cad93 |
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
fix spello git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27053 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d1f04d40a078d6ca7c876b16a178992a109af774 |
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
legalize vbit_convert nodes whose result is a legal type. Legalize intrinsic nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27036 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0eade319cdb72e24c11d068728a98083737c6435 |
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Lower target intrinsics into an INTRINSIC node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e8a30fdf519a7db1c5e157aa29d72839cfc16174 |
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
fix some bogus assertions: noop bitconverts are legal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27032 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
033e6816668da71ff0866a61f5c0a7e7e795d069 |
24-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Lower BUILD_VECTOR to VECTOR_SHUFFLE if there are two distinct nodes (and if the target can handle it). Issue two SCALAR_TO_VECTOR ops followed by a VECTOR_SHUFFLE to select from the two vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27023 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3e8f3ce8f6d7fb7bee4cf7ac27bea2e90f83b25d |
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Identify the INTRINSIC node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
677274b1cb511613df087adaebfdb0817c7beb49 |
24-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7e0911585ec2996837f151baab3d3fc9145a7e02 |
24-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Unneeded forward. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27004 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
90c79d73ac071978f01eb48ea3f7e1cea79a730d |
24-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Make sure types are allocated in the scope of their use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27002 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
7692eb4201e2071fb2afddcdaa6ba93b5e6abad4 |
23-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add support for splitting casts. This implements CodeGen/Generic/vector.ll:test_cast_2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26999 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b8509c5752d58280178f611e0c3f8b89ed076598 |
23-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Generate local variable and scope information and equivalent dwarf forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26989 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
43970fec322d9e0153ca513de41d80af1c79bdde |
23-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Handle new forms of llvm.dbg intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26988 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
408c428096df3a3970a8387f9dd258ae948663a6 |
23-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
simplify some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26972 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7e358908b885f50fb9258b7d10509bad20ca4c3b |
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e25ca692c0478af5e15170fce23cea2a5b5fd0b9 |
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement simple support for vector casting. This can currently only handle casts between legal vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26961 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
841c882f5dae8c953ea99b5824108313549cfaf8 |
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Endianness does not affect the order of vector fields. This fixes SingleSource/UnitTests/Vector/build.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26936 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3b9fa89fcaf3eb08397c4c68b60c72fc73f8ab44 |
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Enclose some variables in a scope to avoid error with some gcc versions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e35c218f3e8e15f96cb44c5fbc70c7ea20d6c962 |
21-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add expand support for extractelement git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
384504cea6c392125a2318d8bbb7f25aa0bbff7e |
21-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add some trivial support for extractelement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26928 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
1c6191ffe764f3294cc2dda2bb3703403a416414 |
21-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add a hacky workaround for crashes due to vectors live across blocks. Note that this code won't work for vectors that aren't legal on the target. Improvements coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26925 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
87100e0b83b808757bf44dabecd1d1048255d1ad |
20-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
If a target supports splatting with SHUFFLE_VECTOR, lower to it from BUILD_VECTOR(x,x,x,x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
54a30b9639d81abb91022963054e6d17ea21e9ca |
20-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
TargetData doesn't know the alignment of vectors :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26884 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
fb194b9e738ab2730ea0a3189f091737aba31c5b |
20-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add very basic support for VECTOR_SHUFFLE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4d3abee6183f110c9db56b94b0a4b5f8c985002a |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Allow SCALAR_TO_VECTOR to be custom lowered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26867 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ce87215131efcc68dcf7fca61055ad783a7aeb0e |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add SCALAR_TO_VECTOR support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
74881908fec5de98175d41d6fa065971736b2119 |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Don't bother storing undef elements of BUILD_VECTOR's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26858 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5fcd0350be08acc2f0415941c1e2101f5a399622 |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement expand of BUILD_VECTOR containing variable elements. This implements CodeGen/Generic/vector.ll:test_variable_buildvector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26852 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ca2424423416032dc95dae4c106a5cf99795e589 |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
fold insertelement(buildvector) -> buildvector if the inserted element # is a constant. This implements test_constant_insert in CodeGen/Generic/vector.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26851 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2332b9f16fe17d1886566729b2241b8cd90f9916 |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
implement basic support for INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26849 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
b2827b0901162169bb2692b77a839c9767849134 |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. Allow*BUILD_VECTOR to take variable inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26847 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
23d564c11fbe628dbebd6d8f09d7d07fa862b719 |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
implement vector.ll:test_undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4794a6b6a09e3440438cd653ec09cf0c2e45be1c |
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix the remaining bugs in the vector expansion rework I commited yesterday. This fixes CodeGen/Generic/vector.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c7029805ef35ce9805931067b841e6af11db382e |
18-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Change the structure of lowering vector stuff. Note: This breaks some things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26840 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0c486bdc221768f229e97ad15f5d160288817e96 |
17-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add a couple enum values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26830 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
81e8097377529dc3b666f33bb525c49cfbac3f51 |
17-Mar-2006 |
Nate Begeman <natebegeman@mac.com> |
Remove BRTWOWAY* Make the PPC backend not dependent on BRTWOWAY_CC and make the branch selector smarter about the code it generates, fixing a case in the readme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6cb7004c3499f07c034a01f6335b5058aa80a5ce |
17-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a problem fully scalarizing values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26811 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
199862b74973198c2ab5a139f664c86713e7b579 |
16-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for CopyFromReg from vector values. Note: this doesn't support illegal vector types yet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26799 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3c38449be6371d53a58d0df80ecf3772a2f9a79f |
16-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Teach CreateRegForValue how to handle vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26798 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3a59358499f527ad9a8d1d4ed7d80b6bf0f1c12d |
16-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
set TransformToType correctly for vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
28b5b1c7b54c2065882b98af2406c38a3bcee802 |
15-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add support for vector->vector casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26788 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
06ac6ab938cf54596202de851da4b20aa61fe64e |
15-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add a note, this code should be moved to the dag combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26787 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9d0ff8e6f9077dd7fe4836c7f06524eb12cd3a7e |
15-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Expand subprogram and added block descriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26782 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
2140798cc4fe05fdaf04082abf6a3b03b2a005ab |
14-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Use null for serialized empty strings. 2. Allow for user defined debug descriptors. 3. Allow for user augmented fields on debug descriptors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26760 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
30b37b5f29991874648d839d018aa2921b39355f |
14-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add LSR hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ac0f8f29290ff018d51ce58bd11be13ab148e698 |
13-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
make sure dead token factor nodes are removed by the dag combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f4321a3a438833dade457e24da6e1e6907cabcd5 |
13-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Handle the removal of the debug chain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26729 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
947c28935d179f486c8137323361923ba4f23886 |
13-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fold X+Y -> X|Y when safe. This implements: Regression/CodeGen/PowerPC/and_add.ll a case that occurs with dynamic allocas of constant size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b6b17ffbc61025c6b3233787ccce2e6335d60b49 |
13-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
I can't convince myself that this is safe, remove the recursive call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
79dbea5ab4c73243a4f6a09fa1637a618263493e |
13-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add a couple of missing folds git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8f4191d61978529e9e9d7ddc24dbcd528ef7dd4c |
13-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
For targets with FABS/FNEG support, lower copysign to an integer load, a select and FABS/FNEG. This speeds up a trivial (aka stupid) copysign benchmark I wrote from 6.73s to 2.64s, woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fc3549ee8ccf15ab3fad8ec18a299eef0aa53b41 |
12-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Don't advance the hazard recognizer when there are no hazards and no instructions to be emitted. Don't add one to the latency of a completed instruction if the latency of the op is 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26718 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
b2215030d6a6c3096ed5da8fde43c4eed7165768 |
12-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Chain operands aren't real uses: they don't require the full latency of the predecessor to finish before they can start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
53fbf2a8e810bbdf5ad5d7808fabe9ae4f3497e2 |
12-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
As a pending queue data structure to keep track of instructions whose operands have all issued, but whose results are not yet available. This allows us to compile: int G; int test(int A, int B, int* P) { return (G+A)*(B+1); } to: _test: lis r2, ha16(L_G$non_lazy_ptr) addi r4, r4, 1 lwz r2, lo16(L_G$non_lazy_ptr)(r2) lwz r2, 0(r2) add r2, r2, r3 mullw r3, r2, r4 blr instead of this, which has a stall between the lis/lwz: _test: lis r2, ha16(L_G$non_lazy_ptr) lwz r2, lo16(L_G$non_lazy_ptr)(r2) addi r4, r4, 1 lwz r2, 0(r2) add r2, r2, r3 mullw r3, r2, r4 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
84690316227247b9375a797184ca2cbea55e9f62 |
11-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
rename priorityqueue -> availablequeue. When a node is scheduled, remember which cycle it lands on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26714 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
c1c078c170b45459f7fb914079cd7aff14878f17 |
11-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Make CurrCycle a local var instead of an instance var git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26713 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
7d82b000488fbb2cd7abae073770c94d8ed2fbc2 |
11-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Move some methods around so that BU specific code is together, TD specific code is together, and direction independent code is together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
309cf8a7132bf6dcd00135a49fef4258bbd1a903 |
11-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
merge preds/chainpreds -> preds set merge succs/chainsuccs -> succs set This has no functionality change, simplifies the code, and reduces the size of sunits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
0937103368992af8d3d8032d31a7d152aeae32d5 |
11-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added a parameter to control whether Constant::getStringValue() would chop off the result string at the first null terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7d74d1145fd17cdc11113755cee2a21f3cb0b7cf |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
scrape out bits of llvm-db git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a34b6f8713cd065306b07aafb1c978c30bc64947 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Move simple-selector-specific types to the simple selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26693 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
20a4921791eafc0cce00fb01dcacfcfc15a0d0fc |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify the interface to the schedulers, to not pass the selected heuristicin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
|
2f5806c2b37a4e59cb12a6d49f0e3423c2082a64 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Move some simple-sched-specific instance vars to the simple scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGSimple.cpp
|
1e433c59e0e123743bc08ba9518fa3c9792dc419 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
prune #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26689 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e76074ab89136d9ffd4520949f580c6114402512 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
move some simple scheduler methods into the simple scheduler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGSimple.cpp
|
8c7ef0599c3d5b0beea9c16ac1e4ac6755d34de2 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Make EmitNode take a SDNode instead of a NodeInfo* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26687 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
|
df3750642a90e2865145104157f9f12b46ce5e24 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Move the VRBase field from NodeInfo to being a separate, explicit, map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
|
8d41651da73e2458f6eff9926a3de0a7932653e4 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
no need to build groups anymore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26684 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
b2042e31a7cc58a454889593a39bce42de09fd62 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Create SUnits directly from the SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26683 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
be24e5996c9cb06c6af5d9c86d1181b62a3a8393 |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Push PrepareNodeInfo/IdentifyGroups down the inheritance hierarchy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26682 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/ScheduleDAGSimple.cpp
|
da4ff69153c7562a71a1990929adc0faa8d0996d |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Teach the latency scheduler some new tricks. In particular, to break ties, keep track of a sense of "mobility", i.e. how many other nodes scheduling one node will free up. For something like this: float testadd(float *X, float *Y, float *Z, float *W, float *V) { return (*X+*Y)*(*Z+*W)+*V; } For example, this makes us schedule *X then *Y, not *X then *Z. The former allows us to issue the add, the later only lets us issue other loads. This turns the above code from this: _testadd: lfs f0, 0(r3) lfs f1, 0(r6) lfs f2, 0(r4) lfs f3, 0(r5) fadds f0, f0, f2 fadds f1, f3, f1 lfs f2, 0(r7) fmadds f1, f0, f1, f2 blr into this: _testadd: lfs f0, 0(r6) lfs f1, 0(r5) fadds f0, f1, f0 lfs f1, 0(r4) lfs f2, 0(r3) fadds f1, f2, f1 lfs f2, 0(r7) fmadds f1, f1, f0, f2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
f83a47d905f4c6a4d1099bc5e1963c84af5300ee |
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add an aggregate method for reinserting scheduled nodes, add a callback for priority impls that want to be notified when a node is scheduled git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
9630d271c524fac27301ac205b16f90eae461721 |
10-Mar-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ build breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26676 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
59bcce5ae52afff2ba4840bfa630b20e8ff4ddb2 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove dbg_declare, it's not used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26659 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
2695de410d1d055ecc1b6eb6fea965f06598ad00 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
back out my previous hack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26650 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
8c84f3f0dfae7975e93fb5465c41c8a41bd70aa6 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove temporary option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26646 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
8bf586f3056df3bbbd40d324a207736e00bb70c8 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
temporary hack to get the build working again, apparently a header commit was forgotten git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26642 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
54689c2beeac17793ba9cdbc1fc0d4e679390b7b |
09-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Move bit field endianness to backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26639 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
571340633f1d4941a606a4049c1d7d982002f754 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
yes yes, enabled debug output is bad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26637 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
6a4b70bbcfa0ebdc36420de4d16b62cb62f76ef7 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
switch the t-d scheduler to use a really dumb and trivial critical path latency priority function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
477ef6d8cb987e90a177b39ae0207139059de5c3 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Pull latency information for target instructions out of the latency tables. :) Only enable this with -use-sched-latencies, I'll enable it by default with a clean nightly tester run tonight. PPC is the only target that provides latency info currently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
e70f671b97a59cb0851131b398384f7ba88bf7c7 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
don't copy all itinerary data git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26633 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
0324ba8f02f4193659c1ff35d8de3cc7e14f604e |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
PriorityQueue is an instance var, use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
e87c5c8088d2f267469917ca69c0f6dc324a5249 |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add some comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
e32178dd32ebe28034528bbc47c4d253cadb6faf |
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor the priority mechanism one step further: now that it is a separate class, sever its implementation from the interface. Now we can provide new implementations of the same interface (priority computation) without touching the scheduler itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
21b6c9d6477c8df3f884c3f1ebeaaa44dd53aafe |
08-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Get rid of the multiple copies of getStringValue. Now a Constant:: method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26616 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
49eee4a26f17b27d8949be3b6da7d9e75846be00 |
08-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Split the priority function computation and priority queue management out of the ScheduleDAGList class into a new SchedulingPriorityQueue class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
c45a59bb327a1c8b908f43a1112a0118b659495b |
08-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
switch from an explicitly managed list of SUnits to a simple vector of sunits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
6a67b3a4e636bccb25c5003972424d4545efa279 |
08-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Shrinkify some fields, fit to 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
6b24af87e6af1d2e8beb644554e06fcb5d620182 |
08-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
revert the previous patch, didn't mean to check it in yet git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5874f82564d6cd9da086cc705e1c5c8ec8ff8361 |
08-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove "Slot", it is dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26609 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAGList.cpp
|
b0d21ef20c29f4ea46d21b488f17feaa6a8760e1 |
08-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Change the interface for getting a target HazardRecognizer to be more clean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
electionDAG/SelectionDAGISel.cpp
|
2b0e309640c638025d83c8f6f4ee2698ba1b8b92 |
08-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
libstdc++-v3 was failing to build. Needed to handle composite types with empty members (running into a zero initializer.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26607 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
7809811e4ed3c2462efa327cef0464b9844baea2 |
07-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Use "llvm.metadata" section for debug globals. Filter out these globals in the asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26599 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineDebugInfo.cpp
|
e8c3e3b51c21dad94f0b427d7e0d6722e663fc64 |
07-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Switch to using a numeric id for anchors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26598 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
20c3ed8166d3eb436ac4edc33b33b4538ff75073 |
07-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Bitfield support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26593 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
b2d635803db0e82ce6f6692af6fac4880e029fac |
07-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix some formatting, when looking for hazards, prefer target nodes over things like copyfromreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
6af7ef8da874635f5f060ad19afb19811452b447 |
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
update file comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
adc5e5c85fdf188166690084675a971aa5e9f188 |
06-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove some code that doesn't make sense git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26572 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
6b36ce920254dc8ca5c60baec1a23e271e7a34ce |
06-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove SUnit::Priority1: it is re-calculated on demand as number of live range to be generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
03fc53c174e654adae4e42a0c352c7937de2cd87 |
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where targets can implement them. Make the top-down scheduler non-g5-specific. Remove the old testing hazard recognizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/SelectionDAGISel.cpp
|
67727308fa1fbcc5090e1da657bd2bb93c6d0858 |
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Comment fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26567 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
3c232c83be461b741c40fb25b932a1f60256a462 |
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Don't depend on the C99 copysign function, implement it ourselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26566 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a93dfcd40a0750455d093903a9b65627c4e58a8e |
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
When a hazard recognizer needs noops to be inserted, do so. This represents noops as null pointers in the instruction sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26564 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGList.cpp
|
6cc3f0a77427b66378f5a57aff2cd4310b91a670 |
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement G5HazardRecognizer as a trivial thing that wants 5 cycles between copyfromreg nodes. Clearly useful! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
ad0f78ace25ebc5a9597c189b0a797331f350fea |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add basic hazard recognizer support. noop insertion isn't complete yet though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26558 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
3d68e15c20fd91183e352b906395fbc98c27d7af |
05-Mar-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a5de484bc7c8f896b5903999797c4d57f4e45185 |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Split the list scheduler into top-down and bottom-up pieces. The priority function of the top-down scheduler are completely bogus currently, and having (future) PPC specific in this file is also wrong, but this is a small incremental step. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26552 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/SelectionDAGISel.cpp
|
41f5ea06659026f149915009217f7caeb463cc53 |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Move the available queue to being inside the ListSchedule method, since it bounds its lifetime. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26550 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
cac7059d0f8e6e1be5d4001eb942e23780af2300 |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Reinstate this now that the offending opposite xform has been removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c1d9f1de41b26769752224829987a6aa06fe4b87 |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Do not fold (add (shl x, c1), (shl c2, c1)) -> (shl (add x, c2), c1), we want to canonicalize the other way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
52676510577a5fdab082eb0c065ae151903d9dcf |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
print arbitrary constant pool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
9176b0169c8650fa6fb1d0464256d7c3e8ecf115 |
05-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Back out fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) for now. It's causing an infinite loop compiling ldecod on x86 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
12d830346b78b8e92dc0346e710f261cc680480f |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add some simple copysign folds git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26543 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
a09f848c11c9db3c2614e0275a3256310ac26653 |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen copysign[f] into a FCOPYSIGN node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26542 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a1deca3cd62963c1f5a7c48e7e5e67fec9beadaa |
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
fold (mul (add x, c1), c2) -> (add (mul x, c2), c1*c2) fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) This allows us to compile CodeGen/PowerPC/addi-reassoc.ll into: _test1: slwi r2, r4, 4 add r2, r2, r3 lwz r3, 36(r2) blr _test2: mulli r2, r4, 5 add r2, r2, r3 lbz r2, 11(r2) extsb r3, r2 blr instead of: _test1: addi r2, r4, 2 slwi r2, r2, 4 add r2, r3, r2 lwz r3, 4(r2) blr _test2: addi r2, r4, 2 mulli r2, r2, 5 add r2, r3, r2 lbz r2, 1(r2) extsb r3, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b80af6f572394dda2ea4620da963878f403c2c59 |
03-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Added support for dwarf block data entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26509 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f01e54770033fe6dde528eea655d91e279b43d21 |
03-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Adding basic structure support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26505 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
3e1ce5a44d3d59b2b9ca68a21261f0f487d69269 |
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
33143dce15c0dc4155ff4cf2e375a9a59c8a5d61 |
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Number of NodeTypes now exceeds 128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26503 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
bfa284f69752c54f81bffc2b0d15d5c1e618a659 |
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
SDOperand::isOperand should not be a forwarding. It must check *this against N's operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26502 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
80d8eaae05d9bcb25abf6c6f0385ec2554355f26 |
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added isOperand(N): true if this is an operand of N git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26501 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fb43331226ae41cac862972c52a05f6c05dfcf19 |
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
A bit more tweaking git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26500 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
d84525480ae75e783b2a4d9a9480f1ec11222ce3 |
03-Mar-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
932f022b826c7b0b821c6a5369e18e4ebdceeb4c |
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Move #include "llvm/CodeGen/AsmPrinter.h" to top since it's the interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26493 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
41edaa0529997e41a2bd64efd5f3e8027c67d99f |
03-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove the read/write port/io intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26479 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
03dd4652158f8a4c1db65f066195342d4a3695a7 |
03-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving PR709, and paving the way for future progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26476 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
86ec7d1d073dae5b75ad5749f65fc54c141180f5 |
02-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Fixed some priority calculation bugs that were causing bug 478. Among them: a predecessor appearing more than once in the operand list was counted as multiple predecessor; priority1 should be updated during scheduling; CycleBound was updated after the node is inserted into priority queue; one of the tie breaking condition was flipped. - Take into consideration of two address opcodes. If a predecessor is a def&use operand, it should have a higher priority. - Scheduler should also favor floaters, i.e. nodes that do not have real predecessors such as MOV32ri. - The scheduling fixes / tweaks fixed bug 478: .text .align 4 .globl _f _f: movl 4(%esp), %eax movl 8(%esp), %ecx movl %eax, %edx imull %ecx, %edx imull %eax, %eax imull %ecx, %ecx addl %eax, %ecx leal (%ecx,%edx,2), %eax ret It is also a slight performance win (1% - 3%) for most tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26470 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
6a3eb01084ff5fe0eee64a66cd050d86a38579c7 |
02-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Support for enumerations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26466 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
246ae0dcf750401ee84e1319ebe0b790744097a5 |
01-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Don't print llvm constant in assmebly file. Assembler won't like comments that span multiple lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26463 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
1ec05d1bb4e8903321caf29f57a805952f5b8b86 |
01-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2006-03-01-dagcombineinfloop.ll, an infinite loop in the dag combiner on 176.gcc on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26459 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9c4447aa2b47f133ac3eac095adb3c375d33031e |
01-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Switch back to using actual dwarf tags. Simplifies code without loss to other debug forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26455 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
b2742f4a2693510aa77d69f6e91fd8983e07680f |
01-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a typo evan noticed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26454 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
92ae7403964e522267f557772e0eb408116e35ac |
01-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Use context and not compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26453 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
288fe0f74da02944e3a9b3fc2a751789482faf0b |
01-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
I guess I can handle large type sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26452 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f8913f19ae83927521103b9c84189c8d716e85ad |
01-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Basic array support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26451 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
2466472a2b6a2992a65efdc4634bcee08d23d8a8 |
01-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for target-specific dag combines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
00ffed0468ad406062b7c08c2ff46d79d2d1be4d |
01-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add interfaces for targets to provide target-specific dag combiner optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26442 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5750df9d695bf5aea6d672d00fdfb4243984fd38 |
01-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new AddToWorkList method, start using it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0b1a85f110c4ed50f7adf181490d9f6a1b4f55a5 |
01-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Pull shifts by a constant through multiplies (a form of reassociation), implementing Regression/CodeGen/X86/mul-shift-reassoc.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
860771d2d86243b65ec16fac6cc57b285078f138 |
01-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Vector ops lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
1ab7d859cf5c490612799d7e132c0b1c39f8f497 |
01-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Added VConstant as an abstract version of ConstantVec. - All abstrct vector nodes must have # of elements and element type as their first two operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
45ccae5b7d658e9948f3cdfc8f06facaca536e1f |
28-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Add const, volatile, restrict support. Add array of debug descriptor support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26428 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
35a9f5a24114f65002504b2276ee1b553f282058 |
28-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Compile: unsigned foo4(unsigned short *P) { return *P & 255; } unsigned foo5(short *P) { return *P & 255; } to: _foo4: lbz r3,1(r3) blr _foo5: lbz r3,1(r3) blr not: _foo4: lhz r2, 0(r3) rlwinm r3, r2, 0, 24, 31 blr _foo5: lhz r2, 0(r3) rlwinm r3, r2, 0, 24, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
15045b6973bfe7a5adda8c0fb53bb1b0cdc06b8d |
28-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fold "and (LOAD P), 255" -> zextload. This allows us to compile: unsigned foo3(unsigned *P) { return *P & 255; } as: _foo3: lbz r3, 3(r3) blr instead of: _foo3: lwz r2, 0(r3) rlwinm r3, r2, 0, 24, 31 blr and: unsigned short foo2(float a) { return a; } as: _foo2: fctiwz f0, f1 stfd f0, -8(r1) lhz r3, -2(r1) blr instead of: _foo2: fctiwz f0, f1 stfd f0, -8(r1) lwz r2, -4(r1) rlwinm r3, r2, 0, 16, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
71d9ebcbc1c74848372e11c96989ede974b2366d |
28-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
fold (sra (sra x, c1), c2) -> (sra x, c1+c2) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
22873462c965a57664c4e375aa6e8bf02c9c6ad8 |
28-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for output memory constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26410 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9a777a3a8ed8f73cc9a256208ad3c52391eb5aae |
27-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Qualify dwarf namespace inside llvm namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26409 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
8a8e9756c83f269c1223039b9fd5552ac6cfe7b3 |
27-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Partial enabling of functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26404 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
bd76184e67faf1ece54ff984739c29239e118c76 |
27-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Supporting multiple compile units. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26402 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
0d086af82b2b659688911a5e8c3eb27d58156063 |
27-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Re-orging file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26401 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
a6bc5a4d2138ea3cba90f5a794dd525228ec2c73 |
27-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement bit propagation through sub nodes, this (re)implements PowerPC/div-2.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26392 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2d2536c9d7669c1ba809664dd164be50222183dd |
27-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
remove some completed notes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26390 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
81cd35586f5b675faf5391e1f597908bdda5338e |
27-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Check RHS simplification before LHS simplification to avoid infinitely looping on PowerPC/small-arguments.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5f0c658aa40c6d1475f7c9daa72497362fbee216 |
27-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Just like we use the RHS of an AND to simplify the LHS, use the LHS to simplify the RHS. This allows for the elimination of many thousands of ands from multisource, and compiles CodeGen/PowerPC/and-elim.ll:test2 into this: _test2: srwi r2, r3, 1 xori r3, r2, 40961 blr instead of this: _test2: rlwinm r2, r3, 31, 17, 31 xori r2, r2, 40961 rlwinm r3, r2, 0, 16, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26388 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
ec665151b891bf59d7c7c6cab180a978e2c20265 |
27-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add a bunch of missed cases. Perhaps the most significant of which is that assertzext produces zero bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26386 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
38b7327ec02fbc6f163905ac85ea55d357dece51 |
26-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Print ConstantPoolSDNode offset field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26381 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
404cb4f9fa2df50eac4d84b8a77c84a92188c6d5 |
25-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added an offset field to ConstantPoolSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
28bad084118a9746df95084364d7d95de00c3b67 |
25-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug that Evan exposed with some changes he's making, and that was exposed with a fastcc problem (breaking pcompress2 on x86 with -enable-x86-fastcc). When reloading a reused reg, make sure to invalidate the reloaded reg, and check to see if there are any other pending uses of the same register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26369 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
47cb7173ea48691343b1046a0228a87c03b4167e |
25-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Remove debugging printout :) Add a minor compile time win, no codegen change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26368 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
540fec6b38c8107161a0db4f8a6b7cc50be38b4a |
25-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor some code from being inline to being out in a new class with methods. This gets rid of two gotos, which is always nice, and also adds some comments. No functionality change, this is just a refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26367 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
dd26033002b1b4c569df84ac947828c0fc02f6ba |
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Use the PrintAsmMemoryOperand to print addressing modes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26364 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
daf6bc6347b4785102611bdf21c512e8a7678cce |
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Pass all the flags to the asm printer, not just the # operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26362 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/ScheduleDAG.cpp
|
fd6d282a7154fd724e7fe6abaac358bb3041cb23 |
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
rename NumOps -> NumVals to avoid shadowing a NumOps var in an outer scope. Add support for addressing modes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
ed18b6896ee244b1484daea3fbd5987bea25658f |
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor operand adding out to a new AddOperand method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
6990600f93c212bd73623d523eb8f53ae0b6eee5 |
24-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Add pointer and reference types. Added short-term code to ignore NULL types (to allow llvm-gcc4 to build.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26355 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
7e88103cdea8c36b2229dae8c60def14e3816512 |
24-Feb-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Get VC++ building again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26351 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0e43f2ba114df7bfc1f70d0ef62b663f6ea4c09d |
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement (most of) selection of inline asm memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
87bc3bd1213ced06eade93e3267178198d41a381 |
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Lower C_Memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2b7401e28e0c3c18ef027345560f9ce5abeef4d2 |
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Recognize memory operand codes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26345 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
434b40b42f915822871d26ab3eb13db36d2984a3 |
23-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Added basic support for typedefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26339 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
9f6637db10642fae51fa3628b7833c6999f7fdb3 |
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix an endianness problem on big-endian targets with expanded operands to inline asms. Mark some methods const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26334 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c3a9f8d31ce93ba384bd2bbdd55c757b06600a15 |
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Record all of the expanded registers in the DAG and machine instr, fixing several bugs in inline asm expanded operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26332 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f4afdd9f413c472e5785355f0d69847eaf729192 |
23-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
DwarfWriter reading basic type information from llvm-gcc4 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26331 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
ffab42263ae3436229e5aeb1414e1a788c1d7378 |
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Code cleanups, no functionality change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26328 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9b6fb5de49f30d03b3e3f2fcb99e777b3149b783 |
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
This fixes a couple of problems with expansion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b3befd41b4b5aa882bed9796bbb097df29b505ac |
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Don't return registers from register classes that aren't legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26317 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
864635ad7b3046d3042311423071152c613961de |
22-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Change a whole bunch of code to be built around RegsForValue instead of a single register number. This fully implements promotion for inline asms, expand is close but not quite right yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0420f2aaf9551a10e2060d076de2fcdd7b316370 |
22-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Coordinate activities with llvm-gcc4 and dwarf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26314 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
1efa40f6a4b561cf8f80fe018684236010645cd0 |
22-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
split register class handling from explicit physreg handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26308 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
0f0b7d4927e56e622cf43da0db56f3e0d40b8aaf |
22-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Adjust to changes in getRegForInlineAsmConstraint prototype git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4217ca8dc175f7268a4335c8406dedd901e8e631 |
22-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Updates to match change of getRegForInlineAsmConstraint prototype git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26305 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
7d20d39009f89e7c2ab905d0b5dc3af059e7e886 |
20-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a problem Nate and Duraid reported where simplifying nodes can cause them to get ressurected, in which case, deleting the undead nodes is unfriendly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26291 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
dca7abed918c8191de6e258ddf394cf11de240f2 |
20-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a problem on itanium with memset. The value to set has been promoted to i64 before this code, so zero_ext doesn't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26290 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
003a272319d8871492edf9cecc25d9275b872f99 |
18-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Add a fold for add that exchanges it with a constant shift if possible, so that the shift may be more easily folded into other operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26286 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b0d04a7deaf1ffc78f2eb85295af987a54223c00 |
18-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Add checks to make sure we don't create bogus extend nodes, and fix a bug where we were doing exactly that which was causing failures on x86 and alpha. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26284 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
012f241987a017ea74d34d4c126997f84902ef61 |
17-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a tricky issue in the SimplifyDemandedBits code where CombineTo wasn't exactly the API we wanted to call into. This fixes the crash on crafty last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26269 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
fb7217bea3fe0472850798a0554c9b45689c4fbd |
17-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Clean up DemandedBitsAreZero interface Make more use of the new mask helpers in valuetypes.h Combine (sra (srl x, c1), c1) -> sext_inreg if legal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cd6a6ed0a9d4b63535b430bf4c5c4396cd9d4e86 |
17-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Don't expand sdiv by power of two before legalize, since it will likely generate illegal nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
551bf3f80058a026b6a128dffd5530019e1df1b9 |
17-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
25125697fb0a761da440b222671cf2d6d4deaeac |
17-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix another miscompilation exposed by lencode, where we lowered i64->f32 conversions to __floatdidf instead of __floatdisf on targets that support f32 but not i64 (e.g. sparc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5755b17044b5929b89f06f6f8d19e9ccd4d6c0c9 |
17-Feb-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix bug noticed by VC++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
cffbb5174f283d123d6bfc582292f4a9c84cb3ed |
17-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Dumb bug. Code sees a memcpy from X+c so it increments src offset. But it turns out not to point to a constant string but it forgot change the offset back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
368e18d56a87308045d341e85584597bfe7426e9 |
16-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Rework the SelectionDAG-based implementations of SimplifyDemandedBits and ComputeMaskedBits to match the new improved versions in instcombine. Tested against all of multisource/benchmarks on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26238 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
298ebf2bd80ca415e58bbcbd9866ee58f167b620 |
16-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
If the false case is the current basic block, then this is a self loop. We do not want to emit "Loop: ... brcond Out; br Loop", as it adds an extra instruction in the loop. Instead, invert the condition and emit "Loop: ... br!cond Loop; br Out. Generalize the fix by moving it from PPCDAGToDAGISel to SelectionDAGLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8f4880be6675dbf1840446bc7a335f71ff557154 |
16-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Lowering of sdiv X, pow2 was broken, this fixes it. This patch is written by Nate, I'm just committing it for him. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a47876d87a84fa94bf9f09cfef6756223575611d |
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unused function parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
74d0aa9a4b1f5e021d2ce851a7af344e9b4ebb23 |
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Turn a memcpy from string constant into a series of stores of constant values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26219 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d0e58e36a9857c45ecdc910ec8db04c21e143db5 |
15-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Should not combine ISD::LOCATIONs until we have scheme to remove from MachineDebugInfo tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26216 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
c080d6fb3dc7769c5a1e00c6a77cb415453b0b89 |
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Lower memcpy with small constant size operand into a series of load / store ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
dea7245997f37972ed2f94d4ca1ec50c5af5000a |
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Doh again! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ae9a84b9be2df23be256e48d7749eaec3a016477 |
14-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Using wrong DW_FORM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26184 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
c4f8eee05447a1d7ead3deabbeb087e3e037f3f8 |
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Keep to < 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26177 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ac940ab1bf21be40f74a83b202419a20ad2e279f |
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Missed a break so memcpy cases fell through to memset. Doh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26176 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
80e89d7d6c02233a92d26bd4625e4188d48cbfa1 |
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a build breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26175 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a03a5dc7ce876dac4b3b91bae14216de4233bacd |
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename maxStoresPerMemSet to maxStoresPerMemset, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26174 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
1db92f947cc600dee5edb9305a4e0f1c5c872965 |
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand memset dst, c, size to a series of stores if size falls below the target specific theshold, e.g. 16 for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
06a248c9b398049d41cf6dd1a3f9eecc75603401 |
14-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
now that libcalls don't suck, we can remove this hack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4b653a0405bb16b555334d134c1eb8a97366ec3d |
14-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a latent bug in the call sequence handling stuff. Some targets (e.g. x86) create these nodes with flag results. Remember that we legalized them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d96185aa62dacf5c75d889231a8ab2e0f1ceb073 |
13-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Rename to better reflect usage (current and planned.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26145 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
6831a815999dde4cf801e2076e66b4943964daf2 |
13-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Completely rewrite libcall insertion by the legalizer, providing the following handy-dandy properties: 1. it is always correct now 2. it is much faster than before 3. it is easier to understand This implementation builds off of the recent simplifications of the legalizer that made it single-pass instead of iterative. This fixes JM/lencod, JM/ldecod, and CodeGen/Generic/2006-02-12-InsertLibcall.ll (at least on PPC). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26144 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ce72b1755f5993a42c2e04e32a93fa5228a285d4 |
11-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Reorg for integration with gcc4. Old style debug info will not be passed though to SelIDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26115 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
electionDAG/SelectionDAGISel.cpp
|
fae9f1cb34d6d2c4dbd007f2d748a70b67776a82 |
09-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gcc problem where it inline the map insertion call too aggressively. Before this change it was producing a frame size of 24k for Select_store(), now it's down to 10k (by calling this method rather than calling the map insertion operator). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26094 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6ae46c4c8757237bca2b78b589c96c37015bc356 |
09-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
More changes to reduce frame size. Move all getTargetNode() out of SelectionDAG.h into SelectionDAG.cpp. This prevents them from being inlined. Change getTargetNode() so they return SDNode * instead of SDOperand to prevent copying. It should also help compilation speed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26083 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3029f920519e0871a5aad5d7c592281093953733 |
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Adjust to MachineConstantPool interface change: instead of keeping a value/alignment pair for each constant, keep a value/offset pair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26078 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineFunction.cpp
|
fa77d43ba1d91ed39f46e11caeb28dcabae9e193 |
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
rename fields of constant pool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26076 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineFunction.cpp
|
74b7d27ab177be8c643591427c912e24aaf7e585 |
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify code, alignment must be specified now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26074 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
948d9668a7bc96b435de7ebc1b4a28b70aeb0fc3 |
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Make MachineConstantPool entries alignments explicit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d6c65ea92449bfba377baccf9b15d9346e96a029 |
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for assembler directives that wrap inline asm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26065 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
3391bcd434c644747f6340e8077b3dac858b9d5d |
08-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Compile this: xori r6, r2, 1 rlwinm r6, r6, 0, 31, 31 cmpwi cr0, r6, 0 bne cr0, LBB1_3 ; endif to this: rlwinm r6, r2, 0, 31, 31 cmpwi cr0, r6, 0 beq cr0, LBB1_3 ; endif git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26047 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a36cb0a6b110f1ac9a9388019febb64620a124b9 |
06-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for modifier characters to operand printers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26021 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
f60c2414abadd31217e7a797a3e70c8330ff372e |
06-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Goodbye nasty macro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26019 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
c2f0c8def74dcdf5b142291029fdfc2a8d161cb9 |
06-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Edit requests from Sabre. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26018 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
86cbdba5228a3cb043a73c630e8d93e1a943cbe3 |
06-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Changing model for the construction of debug information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26016 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
be71442292e89b2e0cca61a8ecca9997df319d93 |
05-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Back out previous commit, it isn't safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bab9239d0572d35a08423782eb964e532c3c6524 |
05-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
fold c1 << (x + c2) into (c1 << c2) << x. fix a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26005 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c031e33b68168ee776b825b01eca83c56b2b2996 |
05-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Handle urem by shifted powers of 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fb5e4bdded9c204c5f50c4770431544c074ef7bb |
05-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
handle combining A / (B << N) into A >>u (log2(B)+N) when B is a power of 2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26000 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
4ee621125876cc954cba5280dd9395552755a871 |
05-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
* Added SDNode::isOnlyUse(). * Fix hasNUsesOfValue(), it should be const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25990 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
519ea2abc9f43a374443d112d386cce13a04ecf3 |
05-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
make sure that global doubles are aligned to 8 bytes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25981 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
4d57e0cd69d8466c9321d67021c4747ce822f79a |
05-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the AsmPrinter::getPreferredAlignmentLog method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25978 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
f3afef3b3a9d7c4ca69d4b0306a684a61e1e50d5 |
04-Feb-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25975 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
cccf1232a69e2d78516c61a97e7bfa26acefb714 |
04-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Get rid of some memory leaks identified by Valgrind git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25960 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
003cecbc9d210fa23f0ba68ac288748d20780cc7 |
04-Feb-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25957 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
dc19b70d24e5fc0b80da36240550e31eb6ee4ee8 |
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add initial support for immediates. This allows us to compile this: int %rlwnm(int %A, int %B) { %C = call int asm "rlwnm $0, $1, $2, $3, $4", "=r,r,r,n,n"(int %A, int %B, int 4, int 17) ret int %C } into: _rlwnm: or r2, r3, r3 or r3, r4, r4 rlwnm r2, r2, r3, 4, 17 ;; note the immediates :) or r3, r2, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25955 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
3d81fee8511536962543cbf420fd70ef15ae9c3a |
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Initial early support for non-register operands, like immediates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25952 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eb8146b5ee4b9b66d6294f62a5ed556e332018ab |
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
implementation of some methods for inlineasm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25951 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8666249ad6eca27d267f251495545bca132a9a5c |
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Handle another case exposed on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25949 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
593c95878b089388f9c82b8c7b1f4731af86c792 |
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a nasty problem on two-address machines in the following situation: store EAX -> [ss#0] [ss#0] += 1 ... use(EAX) In this case, it is not valid to rewrite this as: store EAX -> [ss#0] EAX += 1 store EAX -> [ss#0] ;;; this would also delete the store above ... use(EAX) ... because EAX is not a dead at that point. Keep track of which registers we are allowed to clobber, and which ones we aren't, and don't clobber the ones we're not supposed to. :) This should resolve the issues on X86 last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25948 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
66cf80f226e04e6704a78da83e08c7b0af944ef1 |
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
significantly simplify the VirtRegMap code by pulling the SpillSlotsAvailable and PhysRegsAvailable maps out into a new AvailableSpills struct. No functionality change. This paves the way for a bugfix, coming up next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25947 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
244d1dccd11fc4b35f6d90e08631cc40f722ff95 |
03-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Implement some feedback from sabre git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25946 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
de99629e2ae8cd7cc731328d2ad6ed6b8e759f2c |
03-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Add a framework for eliminating instructions that produces undemanded bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25945 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
7632e2beb4f0eacc49d580cbf23c89f24ad07ce9 |
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
remove some #ifdef'd out code, which should properly be in the dag combiner anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25941 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
eefae25034a116d8cd1639f61e2920e913f2259f |
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
remove dead fn git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25935 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cd4d58cef1b932fe6ae66fdccdb2f69e80bbb734 |
03-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Add common code for reassociating ops in the dag combiner git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
2ba0b02e15d8ed79e0c42fd6f85ab6c142d93a8a |
03-Feb-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error caused by using a std::map iterator variable to receive a std::multimap iterator value. For some reason, GCC doesn't have a problem with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25927 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
109afed40bec552e4d37115c971e082e79eb0093 |
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Remove move copies and dead stuff by not clobbering the result reg of a noop copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25926 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
84e752a8129e7a02ee6e3c6d356a8fd68fbdf698 |
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25924 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
1118d25d3971bc4fce9715c8c83ea7a197bf2eff |
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add code that checks for noop copies, which triggers when either: 1. a target doesn't know how to fold load/stores into copies, or 2. the spiller rewrites the input to a copy to the same register as the dest instead of to the reloaded reg. This will be moved/improved in the near future, but allows elimination of some ancient x86 hacks. This eliminates 92 copies from SMG2000 on X86 and 163 copies from 252.eon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25922 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
9fda2f9106112a522aecf080c016ea5317f52b21 |
03-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added case HANDLENODE to getOperationName(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25920 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
07cf14112dcdb9c6b20a4f8e17de717b5219dad8 |
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Physregs may hold multiple stack slot values at the same time. Keep track of this, and use it to our advantage (bwahahah). This allows us to eliminate another 60 instructions from smg2000 on PPC (probably significantly more on X86). A common old-new diff looks like this: stw r2, 3304(r1) - lwz r2, 3192(r1) stw r2, 3300(r1) - lwz r2, 3192(r1) stw r2, 3296(r1) - lwz r2, 3192(r1) stw r2, 3200(r1) - lwz r2, 3192(r1) stw r2, 3196(r1) - lwz r2, 3192(r1) + or r2, r2, r2 stw r2, 3188(r1) and - lwz r31, 604(r1) - lwz r13, 604(r1) - lwz r14, 604(r1) - lwz r15, 604(r1) - lwz r16, 604(r1) - lwz r30, 604(r1) + or r31, r30, r30 + or r13, r30, r30 + or r14, r30, r30 + or r15, r30, r30 + or r16, r30, r30 + or r30, r30, r30 Removal of the R = R copies is coming next... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25919 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
cd81639d2e3705ee13b1869d6c166b5f5b4c29c4 |
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a deficiency in the spiller that Evan noticed. In particular, consider this code: store [stack slot #0], R10 = add R14, [stack slot #0] The spiller didn't know that the store made the value of [stackslot#0] available in R10 *IF* the store came from a copy instruction with the store folded into it. This patch teaches VirtRegMap to look at these stores and recognize the values they make available. In one case Evan provided, this code: divsd %XMM0, %XMM1 movsd %XMM1, QWORD PTR [%ESP + 40] 1) movsd QWORD PTR [%ESP + 48], %XMM1 2) movsd %XMM1, QWORD PTR [%ESP + 48] addsd %XMM1, %XMM0 3) movsd QWORD PTR [%ESP + 48], %XMM1 movsd QWORD PTR [%ESP + 4], %XMM0 turns into: divsd %XMM0, %XMM1 movsd %XMM1, QWORD PTR [%ESP + 40] addsd %XMM1, %XMM0 3) movsd QWORD PTR [%ESP + 48], %XMM1 movsd QWORD PTR [%ESP + 4], %XMM0 In this case, instruction #2 was removed because of the value made available by #1, and inst #1 was later deleted because it is now never used before the stack slot is redefined by #3. This occurs here and there in a lot of code with high spilling, on PPC most of the removed loads/stores are LSU-reject-causing loads, which is nice. On X86, things are much better (because it spills more), where we nuke about 1% of the instructions from SMG2000 and several hundred from eon. More improvements to come... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25917 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
408396014742a05cad1c91949d2226169e3f9d80 |
02-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Move isLoadFrom/StoreToStackSlot from MRegisterInfo to TargetInstrInfo,a far more logical place. Other methods should also be moved if anyoneis interested. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25913 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
3603cd62aed5cc54ec626848d0195eed2958312a |
02-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Turn any_extend nodes into zero_extend nodes when it allows us to remove an and instruction. This allows us to compile stuff like this: bool %X(int %X) { %Y = add int %X, 14 %Z = setne int %Y, 12345 ret bool %Z } to this: _X: cmpl $12331, 4(%esp) setne %al movzbl %al, %eax ret instead of this: _X: cmpl $12331, 4(%esp) setne %al movzbl %al, %eax andl $1, %eax ret This occurs quite a bit with the X86 backend. For example, 25 times in lambda, 30 times in 177.mesa, 14 times in galgel, 70 times in fma3d, 25 times in vpr, several hundred times in gcc, ~45 times in crafty, ~60 times in parser, ~140 times in eon, 110 times in perlbmk, 55 on gap, 16 times on bzip2, 14 times on twolf, and 1-2 times in many other SPEC2K programs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9a06cce0f2088a298f357b933fb7d8e268f6ca52 |
02-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement MaskedValueIsZero for ANY_EXTEND nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b3ddfc42af8d6f5c4b168797ccbcb6b55cb9397f |
02-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
add two dag combines: (C1-X) == C2 --> X == C1-C2 (X+C1) == C2 --> X == C2-C1 This allows us to compile this: bool %X(int %X) { %Y = add int %X, 14 %Z = setne int %Y, 12345 ret bool %Z } into this: _X: cmpl $12331, 4(%esp) setne %al movzbl %al, %eax andl $1, %eax ret not this: _X: movl $14, %eax addl 4(%esp), %eax cmpl $12345, %eax setne %al movzbl %al, %eax andl $1, %eax ret Testcase here: Regression/CodeGen/X86/compare-add.ll nukage of the and coming up next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25898 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1e8791d790ad3a3bbc141eb8a7ff326b618d799c |
02-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
make -debug output less newliney git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25895 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
2223aea6ed33e4261d506afdcfbf30ccd8f52bfb |
02-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement matching constraints. We can now say things like this: %C = call int asm "xyz $0, $1, $2, $3", "=r,r,r,0"(int %A, int %B, int 4) and get: xyz r2, r3, r4, r2 note that the r2's are pinned together. Yaay for 2-address instructions. 2342 ---------------------------------------------------------------------- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25893 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6609913b7d0ad13058d4ffffb17fb8d8078799ef |
01-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement smart printing of inline asm strings, handling variants and substituted operands. For this testcase: int %test(int %A, int %B) { %C = call int asm "xyz $0, $1, $2", "=r,r,r"(int %A, int %B) ret int %C } we now emit: _test: or r2, r3, r3 or r3, r4, r4 xyz r2, r2, r3 ;; look here or r3, r2, r2 blr ... note the substituted operands. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25886 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
da06e9e665a1a94886541ed85e97315f58b357b0 |
01-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4e4b576e2edfc7d40a3d7177c639acbe91cfd45f |
01-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement simple register assignment for inline asms. This allows us to compile: int %test(int %A, int %B) { %C = call int asm "xyz $0, $1, $2", "=r,r,r"(int %A, int %B) ret int %C } into: (0x8906130, LLVM BB @0x8902220): %r2 = OR4 %r3, %r3 %r3 = OR4 %r4, %r4 INLINEASM <es:xyz $0, $1, $2>, %r2<def>, %r2, %r3 %r3 = OR4 %r2, %r2 BLR which asmprints as: _test: or r2, r3, r3 or r3, r4, r4 xyz $0, $1, $2 ;; need to print the operands now :) or r3, r2, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25878 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
750ac1bdfa6f09bddfd9efce1d6360dde8fa74c0 |
01-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Fix some of the stuff in the PPC README file, and clean up legalization of the SELECT_CC, BR_CC, and BRTWOWAY_CC nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
a55079a5ccdf0cdb4d482fb47a3fb21825f56713 |
01-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Beef up the interface to inline asm constraint parsing, making it more general, useful, and easier to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
2cc2f66c25d9576743026688fdae5ed402726532 |
01-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
adjust to changes in InlineAsm interface. Fix a few minor bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25865 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/SelectionDAGISel.cpp
|
b8973bd8f50d7321635e1e07b81a880a0828d185 |
31-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow the specification of explicit alignments for constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25855 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
achineFunction.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
59ad781e0118021d1ca7dfbc9f8db2ed828745e0 |
31-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow custom lowering of fabs. I forgot to check in this change which caused several test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25852 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
19c5c4cca9edd0e1e2961879d3da164325af6d63 |
31-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Only insert an AND when converting from BR_COND to BRCC if needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25832 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6656dd1a7888e6dabc82ebce734734127b1df6a7 |
31-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Handle physreg input/outputs. We now compile this: int %test_cpuid(int %op) { %B = alloca int %C = alloca int %D = alloca int %A = call int asm "cpuid", "=eax,==ebx,==ecx,==edx,eax"(int* %B, int* %C, int* %D, int %op) %Bv = load int* %B %Cv = load int* %C %Dv = load int* %D %x = add int %A, %Bv %y = add int %x, %Cv %z = add int %y, %Dv ret int %z } to this: _test_cpuid: sub %ESP, 16 mov DWORD PTR [%ESP], %EBX mov %EAX, DWORD PTR [%ESP + 20] cpuid mov DWORD PTR [%ESP + 8], %ECX mov DWORD PTR [%ESP + 12], %EBX mov DWORD PTR [%ESP + 4], %EDX mov %ECX, DWORD PTR [%ESP + 12] add %EAX, %ECX mov %ECX, DWORD PTR [%ESP + 8] add %EAX, %ECX mov %ECX, DWORD PTR [%ESP + 4] add %EAX, %ECX mov %EBX, DWORD PTR [%ESP] add %ESP, 16 ret ... note the proper register allocation. :) it is unclear to me why the loads aren't folded into the adds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f2b67cff040d1eb3229f7929d0ec7a5e016a7a57 |
31-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Print the most trivial inline asms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25822 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
73e142f2b6a3b5223de2d557d646f319ca8168cf |
30-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in my legalizer reworking that caused the X86 backend to not get a chance to custom legalize setcc, which broke a bunch of C++ Codes. Testcase here: CodeGen/X86/2006-01-30-LongSetcc.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25821 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0e753d617be1ff6a9ac0f894da9d2544e2489850 |
30-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
don't insert an and node if it isn't needed here, this can prevent folding of lowered target nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25804 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c6fd6cd65c88ef1f11da43c11be0152cb69013a7 |
30-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Move MaskedValueIsZero from the DAGCombiner to the TargetLowering interface,making isMaskedValueZeroForTargetNode simpler, and useable from other partsof the compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25803 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
5c413bc451f6e889639864fda6157be6a5f4fd7c |
30-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
pass the address of MaskedValueIsZero into isMaskedValueZeroForTargetNode, to permit recursion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25799 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
87c890a9c2a8f9818772f3b9e359d301b246e3a4 |
30-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
adjust prototype git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25798 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
6862dbc446f2f633f6f4905d07a3bafd96741da2 |
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix RET of promoted values on targets that custom expand RET to a target node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25794 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
68a17febc70d9beb5353454e0c6d136ca1e87605 |
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
cleanups to the ValueTypeActions interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25785 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3e6e8cc26b0f78e7e9164b59aaf7bdead6715127 |
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
clean up interface to ValueTypeActions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25783 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
70814bc38435d61a8c7cc32f2375c09e21f12a8a |
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some special case hacks for CALLSEQ_*, using UpdateNodeOperands instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
8ca05e0c302e15d6365afd2a0ea5fe15c9e85758 |
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Allow custom expansion of ConstantVec nodes. PPC will use this in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3181a771ff5b2090b7ed55f9b18a684ea8fe625a |
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Legalize ConstantFP into TargetConstantFP when the target allows. Implement custom expansion of ConstantFP nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25772 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
03d5e877fd30d7f18546e6df8fd60837081ad8cc |
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate uses of SelectionDAG::getBR2Way_CC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25767 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
c52ad4f04ea5f51a1b4c67e585acea5c0525fc3d |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Use the new "UpdateNodeOperands" method to simplify LegalizeDAG and make it faster. This cuts about 120 lines of code out of the legalizer (mostly code checking to see if operands have changed). It also fixes an ugly performance issue, where the legalizer cloned the entire graph after any change. Now the "UpdateNodeOperands" method gives it a chance to reuse nodes if the operands of a node change but not its opcode or valuetypes. This speeds up instruction selection time on kimwitu++ by about 8.2% with a release build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25746 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
809ec110885ad7cc820889d789b06aaa3ea7358f |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add another method variant git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25744 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
df6eb30fa9bc8600862cae18fce66da466188323 |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add some methods for updating nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25742 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
948c1b1cda280c6428dbeaa03a6c2c559dbb93f4 |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
minor tweaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25740 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
22cde6a518782cafc2115ad8d8233f79c9e9d52e |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
move a bunch of code, no other change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7cd2997a83444b4ce14644db1a985f6c717f765e |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
remove a couple more now-extraneous legalizeop's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25738 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5c62f337fe846247f5e72acb32844e24b4f18b71 |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
fix a bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25737 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
456a93afcec7740c45cafa8354317f7b17987a6d |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Several major changes: 1. Pull out the expand cases for BSWAP and CT* into a separate function, reducing the size of LegalizeOp. 2. Fix a bug where expand(bswap i64) was wrong when i64 is legal. 3. Changed LegalizeOp/PromoteOp so that the legalizer never needs to be iterative. It now operates in a single pass over the nodes. 4. Simplify a LOT of code, with a net reduction of ~280 lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25736 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8137c9e41d69943ac84066e6c7a95390b84e29f2 |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate the need for ExpandOp to set 'needsanotheriteration', as it already relegalizes the stuff it returns. Add the ability to custom expand ADD/SUB, so that targets don't need to deal with ADD_PARTS/SUB_PARTS if they don't want. Fix some obscure potential bugs and simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25732 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9c6b4b8c3a48aa420f6499ca6c1a356f74e100f8 |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Instead of making callers of ExpandLibCall legalize the result, make ExpandLibCall do it itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0e8ea71a4f45b070aecfe9a896bbe402c8b175d6 |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate the need to do another iteration of the legalizer after inserting a libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25730 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
04c62c78f451807b13520efbfe0f5d432bc755cb |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
remove method I just added git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4f16e70faad0840357998059f7f296e5f5e412be |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add a new callback git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0aed7840ec8cc85f91b4aa6e69318bba0cbd1f03 |
28-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Implement Promote for VAARG, and allow it to be custom promoted for people who don't want the default behavior (Alpha). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25726 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
61af66e687561a821181f742677c38a933a6fea0 |
28-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Add a missing case to the dag combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25723 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
0ff5c27a00926e2ea4c99b3d5e62c55b29faf06b |
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Remove the ISD::CALL and ISD::TAILCALL nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
ee625573b5b39b91441fc6ea23f3ba415abdc71f |
27-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Remove TLI.LowerReturnTo, and just let targets custom lower ISD::RET for the same functionality. This addresses another piece of bug 680. Next, on to fixing Alpha VAARG, which I broke last time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25696 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
da427fa5daa4fca1a437e1ca8ff2e68925688fe9 |
27-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Using bit size of integers instead of ambiguous "long" et all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25694 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
3ea0e0e005b6e047756f40c0848b82811d357463 |
27-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Sorry - really folowing convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25691 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
bb5830d127b8a07b86ca1fe764e8a51fbc0e2535 |
27-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Following convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25689 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
97d938c971a1a67370ec18447227925861567b7e |
27-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
fix build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25687 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
22760af21f0012ba3dcdeb319ea55970f93389c5 |
27-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix build error that is apparently only a warning with some compilers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25686 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
1a05851a27f42ef2718d04119c616a7fecdffb32 |
27-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Forgot the version number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25685 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
d8f77bae03b4ff701ed24ce74d1bf079f2dd197f |
27-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Improve visibility/correctness of operand indices in "llvm.db" objects. Handle 64 in DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25684 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
0264d1a4777370009176157b76d116b3195e3767 |
27-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Stub out a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25676 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
acc43bf4ab8d7fe6fdb0deee13931e4935fbf145 |
27-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Teach the scheduler to emit the appropriate INLINEASM MachineInstr for an ISD::INLINEASM node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25668 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
ce7518ce92f45568dc7d4cbb863284afb962fec5 |
26-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
initial selectiondag support for new INLINEASM node. Note that inline asms with outputs or inputs are not supported yet. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25664 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6e87c0e029c011b9ee61068c607080ca4934378a |
26-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Use global information to fill out Dwarf compile units. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25662 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
|
4ccb070f158b0f331c68de800c6bab8c31c2ecb6 |
26-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Implement a method for inline asm support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25660 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
b3e789ac2548a4382d0db03b573fd8a127617f8f |
26-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Set up MachineDebugInfo to scan for debug information form "llvm.db"g globals. Global Variable information is now pulled from "llvm.dbg.globals" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25655 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
achineDebugInfo.cpp
|
cdf3838bf180d7295c3a4eca5efd3e5a58b714fd |
26-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clean up some code; improve efficiency; and fixed a potential bug involving chain successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
2a8e6186e971743da51e9220753f7803a9fb3f88 |
25-Jan-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Don't break the optimized build (by incorrect placement of #endif) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
ee4a76563a84839453588104e94d4891fc44d625 |
25-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
initialize an instance var, apparently I forgot to commit this long ago git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25609 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
46c01cfe9f1c6900ea63df9c79094d0826fd9ecc |
25-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
No need to keep track of top and bottom nodes in a group since the vector is already in order. Thanks Jim for pointing it out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25608 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
0577a22c678bd5e31047e6b8038c6917202271ee |
25-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Set SchedulingForLatency to be the default scheduling preference for all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25607 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
acc398c195a697795bff3245943d104eb19192b9 |
25-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
First part of bug 680: Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same way as everything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
05ebc8d795f039f1b7647bb33e995aa2f5c40b73 |
25-Jan-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Make it even more portable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25605 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
44c687d0afa9be89e1dc45dca96713e58a94ccb8 |
25-Jan-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25604 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
cd1419af1e9ef5472e09cd8a7c7eca971eae94ae |
25-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Bottom up register usage reducing list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25601 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
|
e0a58323747bfca126f698d4e89e719b36007bf7 |
25-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Keep track of bottom / top element of a set of flagged nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25600 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
3f23952404cd03a8ab934cedcef7916f52a796c0 |
25-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
If scheduler choice is the default (-sched=default), use target scheduling preference to determine which scheduler to use. SchedulingForLatency == Breadth first; SchedulingForRegPressure == bottom up register reduction list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25599 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fb709b6817426c99d2ce48a2d08ef20e376a0e06 |
25-Jan-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Portably cast a pointer to an integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25594 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
50d1e8b70d1499e4a5aeba0a92ae9d33712e5f9e |
24-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
fix build on 64 bit hosts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25591 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
6a5428934ba6159c1acc541944332e51a6cfa59a |
24-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix an infinite loop I caused by making sure to legalize the flag operand of CALLSEQ_* nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25582 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
2aa750a874b31ecab56f923a714e43a029526e56 |
24-Jan-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
83404e320d5074f6bd7919ca56decf4a211bfeae |
24-Jan-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Remove unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25576 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
3e2fa7a746270452316523f27b9055b007feba32 |
24-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
rename method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25572 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
52060a0e7190d7713042f18b1b949d1ae953638f |
24-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Crude Dwarf global variable debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25569 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
2c1b1597f244c836771b4f2668c0ae399d32a5e9 |
24-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Print file-scope inline asm blocks at the start of the output file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25565 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7cf11b4ab248d6ab7fb0d9df0b72baf158201abe |
23-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
another couple selects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25551 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8c6f1ee5aa376118f1cb7b16b62994fc255eac56 |
23-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
another selectto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
17d52f723421ce28d1b9fe2fc058366ed43ec094 |
23-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25545 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f0f9c90204c650b9f3c3feb02ccfcb1e40c6acdd |
23-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Skeleton of the list schedule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGList.cpp
electionDAG/SelectionDAGISel.cpp
|
414842906419a345813bb72edf698df9acdaad87 |
23-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Minor clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25543 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
67993f7b974cd17e4372a6b7b9f9cad5ed174df1 |
23-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Regression/CodeGen/SparcV8/2006-01-22-BitConvertLegalize.ll by making sure that the result of expanding a BIT_CONVERT node is itself legalized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25538 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dfeeac9f002454ccba362893f218fd2e6f502f48 |
23-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove a couple of unnecessary #include's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAGSimple.cpp
|
4ef10867499aa146cd819c78d8d37a8353d4f0ff |
23-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Factor out more instruction scheduler code to the base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25532 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
|
39a17dd31ddc4af6067940cb31e2c7d380773478 |
23-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix bugs lowering stackrestore, fixing 2004-08-12-InlinerAndAllocas.c on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2c2c6c61f100bc7c3df873b11203fcea1b5e18fe |
23-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add explicit #includes of <iostream> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25515 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/DAGCombiner.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
a3818e6f9a62db0c5b6aee28e44c30d5f96c9fa4 |
21-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in a recent refactor that caused a bunch of programs to miscompile or the compiler to crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25503 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
348e93c8f7132c6ecbaf5866048e087feb7520e2 |
21-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25496 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a9c2091cd38e401c846391c9951ff416e709b65e |
21-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Do some code refactoring on Jim's scheduler in preparation of the new list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25493 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/ScheduleDAGSimple.cpp
electionDAG/SelectionDAGISel.cpp
|
63ae85f194981cc6493b1aeda7b8c25d34fe7e8b |
21-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Simplify search for abbreviations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25491 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
736832107b64a80da1623868e7c16cb97d7ee826 |
21-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Correct some simple errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25490 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
4002017e6847a2d8fef7ba2cfe83a8ef2ce6a038 |
20-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Right size integer values before emitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25489 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
d18e28964bf8e8f0147f165c2080af20a28687c0 |
20-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Reworked how Dwarf debug info entries and abbreviations are handled. Added pubnames and debuy str sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25487 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
a68d204843fc8b9606e7760fcddd20b99e8e340d |
20-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
remove some unintentionally committed code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25483 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4eebb60f843e0aa67b62f3b8643101bc0e39531d |
20-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
If the target doesn't support f32 natively, insert the FP_EXTEND in target-indep code, so that the LowerReturn code doesn't have to handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
12f2274ba8c6af21e8b6c71ef872afe43a64b6d7 |
19-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Another typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25440 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8ff318b7fb6185e94403c0a902f1132141847ac5 |
19-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
was ignoring the legalized chain in this case, fixed SPASS on alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a148d9811a37a320adbf512276abcf42cc36d04c |
18-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Get rid of code in the DAGCombiner that is duplicated in SelectionDAG.cpp Now all constant folding in the code generator is in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25426 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d12b2d7b5ae73c6f1b89a30f12e9d30e731b2e20 |
18-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Temporary work around for a libcall insertion bug: If a target doesn't support FSIN/FCOS nodes, do not lower sin/cos to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4090aee72e0f29976c9b1e7a0e0c7b4456f645b5 |
18-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a backwards conditional that caused an inf loop in some cases. This fixes: test/Regression/CodeGen/Generic/2005-01-18-SetUO-InfLoop.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
e719a7c40b58a382144212828bfecd4e64210b92 |
18-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Added minimum Dwarf aranges. Cleaned up some section headers. Line number support now works in gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25417 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
19ef4efa70b29aa2ef2d68a60e9bdfa7a4b47d89 |
17-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Add frame work for additional dwarf sections. Comments will improve as code is added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25410 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
4eb2e3a6f45e6f0a4a8f0002918f8d14c34169c1 |
17-Jan-2006 |
Robert Bocchino <bocchino@illinois.edu> |
Support for the insertelement operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25405 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
433f8acefb78f1c8a2cf79c12b101ce7c4b20202 |
17-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix: missing LegalizeOp() on newly created nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25401 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
063e765345fd49df0f53b807e57ada7c2ded7e16 |
17-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Adding basic support for Dwarf line number debug information. I promise to keep future commits smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25396 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
achineDebugInfo.cpp
electionDAG/LegalizeDAG.cpp
|
0b118206bf3411722707f2e5cab8fd2eedcd50d6 |
16-Jan-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR411: This patch is an incremental step towards supporting a flat symbol table. It de-overloads the intrinsic functions by providing type-specific intrinsics and arranging for automatically upgrading from the old overloaded name to the new non-overloaded name. Specifically: llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64 llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64 llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64 llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64 llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64 New code should not use the overloaded intrinsic names. Warnings will be emitted if they are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25366 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
1b5db7aaec8bbe350b1af42ecfe97c73f0e07d0f |
16-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Constant fold ctpop/ctlz/cttz, and a couple other small cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c02d98e335703d8aa51b42d9b22a1fa2ac5d6c33 |
16-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Expand case for 64b Legalize, even though no one should end up using this (itanium supports bswap natively, alpha should custom lower it using the VAX floating point swapload, ha ha). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e598181889d8ab43c3924799fd310e68571186f1 |
16-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Add BSWAP stuff to intrinsic lowering for CBE & friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25355 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
bf40c4bfe1607980ea570ac69bf134cc4e58d0ca |
15-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Disable two transformations that contribute to bus errors on SparcV8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
903d278a9b7398d8905c90832e587e0556c52789 |
15-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Allow the target to specify 'expand' if they just require the amount to be subtracted from the stack pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5f652295c27826f26547cf5eb4096a59d86b56b8 |
15-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix custom lowering of dynamic_stackalloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cc0aad20dd1bac26f7da21fb9720df76cc3c26e7 |
15-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add a missing node name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25327 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c0ab5226cc92b8d33104374a21896b8331f3fee1 |
14-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Token chain results are not always the first or last result. Consider copyfromreg nodes, where they are the middle result (the flag result is last) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25325 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3a04ffbf6daa66e489aaf29f6c9c728d7272d8a8 |
14-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Remove some duplicated code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25313 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d88fc03602947b5baa35c8b09fe8bcfa2b4a03c1 |
14-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
bswap implementation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25312 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4f0d8e4018d50c5796660a4fa167763f46259646 |
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
If a target specified a stack pointer with setStackPointerRegisterToSaveRestore, lower STACKSAVE/STACKRESTORE into a copy from/to that register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25276 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
140d53c99c3a70b9d3858a3c87f8ecb098994748 |
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Compile llvm.stacksave/restore into STACKSAVE/STACKRESTORE nodes, and allow targets to custom expand them as they desire. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5a67afc118d47a0061ca9809c763451ea3125306 |
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add stacksave/stackrestore nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25270 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e8f7a4bbee5b29d0c94120e7e24365113758f0a2 |
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add "support" for stacksave/stackrestore to the dag isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25268 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0c067bc11d5274973c21f83b6c6403a9928265d8 |
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add "support" for the llvm.stacksave/stackrestore intrinsics, this is used by the C backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25267 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
4aafb4ff92ee6b5372aaaa51845445f2418a7fd1 |
12-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add a simple missing fold to produce this: subfic r3, r2, 33 instead of this: subfic r2, r2, 32 addi r3, r2, 1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5166b82866085db7ecb8a3fef790232faeec74ed |
12-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
If using __main, emit global ctor/dtor list like any other global git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25251 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
af551bcf6be6c2c44b1b5dac5573c58bdc3da972 |
12-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Don't create rotate instructions in unsupported types, because we don't have promote/expand code yet. This fixes the 177.mesa failure on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25250 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a7dce3c6c29fb9513d215c1bc44b01865571b4c2 |
11-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow custom lowering of DYNAMIC_STACKALLOC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25224 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
140e99babce85d0a54fc5df7bdec4603e718ccb9 |
11-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
ignore register #0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25223 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
35ef913ec21de0f4f1b39c811b4335438717a9b8 |
11-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Add bswap, rotl, and rotr nodes Add dag combiner code to recognize rotl, rotr Add ppc code to match rotl Targets should add rotl/rotr patterns if they have them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25222 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
269f8c069105e13f3845a8dbc7796ac9a15dc882 |
10-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
silence a warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25184 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c0f4cd99316b0b9ae10b5774d1036d74d838f0af |
10-Jan-2006 |
Robert Bocchino <bocchino@illinois.edu> |
Added selection DAG support for the extractelement operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25179 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
60d97d4f55b6bd51179eba3388c95d5ec6942ec8 |
10-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Minor cleanup, no functionality change for current targets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25173 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
de387ce81024f9be0ca523e9487b1aafeb95fa22 |
10-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix an exponential function in libcall insertion to not be exponential. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
05a2d568c60b8d547a5ac78f99107c476e6612b5 |
09-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
* Allow custom lowering of ADD_PARTS, SUB_PARTS, SHL_PARTS, SRA_PARTS, and SRL_PARTS. * Fix a bug that caused *_PARTS to be custom lowered twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25157 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
909addffc3c9391dfda2c67b7c05eeb42259eb90 |
09-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
New getNode() variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25156 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
47f5beaaaf41ffa2db51da6f99314474be6aca7d |
06-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Unbreak the build :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25124 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6907708c23303703c6f89e055d1c204c5abb27a5 |
06-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Revert the previous check-in. Leave shl x, 1 along for target to deal with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25121 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
da95a84a11e684072ea25fbb9830e769039fd985 |
06-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
fold (shl x, 1) -> (add x, x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25120 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
17c428e23dbeac1f985d725905ce6be1c725491f |
06-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Support for custom lowering of ISD::RET. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25116 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
abf6d1784b2d4bbcb7d20ab64881f77d755059f6 |
05-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Added initial support for DEBUG_LABEL allowing debug specific labels to be inserted in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25104 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
b2efb853f00d45b1c8d57f92acd0028fbdeffda6 |
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Applied some recommend changes from sabre. The dominate one beginning "let the pass manager do it's thing." Fixes crash when compiling -g files and suppresses dwarf statements if no debug info is present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25100 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
achineDebugInfo.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5bf6f25b4a888afaf3e37acd18c43186d45cac2e |
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Add unique id to debug location for debug label use (work in progress.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25096 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
7d78a2ab7e3575561a15abd5bd386ea4a0301b23 |
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Add check for debug presence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25095 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
a7cea6f599418a579ab5ce66413fba7efa8bf581 |
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Tie dwarf generation to darwin assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25093 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
warfWriter.cpp
|
f99c232506f134107f9ae02c118fe31685e6b06c |
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Moving MachineDebugInfo to module level location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25090 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
7ca9ab3f5c1e9f2b1d4ded2389373ec672da217a |
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Change how MachineDebugInfo is fetched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25089 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6af5681824713544a7a8c6e115649b29d59b3d13 |
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Extending MachineDebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25086 91177308-0d34-0410-b5e6-96231b3b80d8
achineDebugInfo.cpp
|
2adfa7e9320e79859beb556367ea607a329866b3 |
04-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for targets (like Alpha) that have terminator instructions which use virtual registers. We now allow the first instruction in a block of terminators to use virtual registers, and update phi elimination to correctly update livevar when eliminating phi's. This fixes a problem on a testcase Andrew sent me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25083 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
172c362fefe3d6e762ada119d4084ed4ed31595b |
04-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add an assertion, update DefInst even though no one uses it (dangling pointers don't help anyone) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25081 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
irtRegMap.cpp
|
dacceef2666d37eb984c6f5e0a84cdabab8dfffc |
04-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add a LiveVariables::VarInfo::dump method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25080 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
3b9db830f7f0ed33af13459be3fd60ebe01a13ca |
03-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Change a variable from being an iterator to a raw MachineInstr*, to make GDB use tolerable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25064 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
512beb9465ec9d22de6352eee4339e8295bfb79b |
30-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Make sure to pass the offset into the new node, so that we don't silently drop it on the floor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f65d917f71690dfc0e10f8d8d7672f3c2a84837e |
29-Dec-2005 |
Duraid Madina <duraid@octopus.com.au> |
purity++ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25041 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
2e096c1cbf83c3d6405f74481cb7880ba02cf092 |
28-Dec-2005 |
Duraid Madina <duraid@octopus.com.au> |
add these so I can be less naughty git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25034 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
LFWriter.cpp
|
3005961701ca5f08b3a4945e45123a373fd47582 |
28-Dec-2005 |
Duraid Madina <duraid@octopus.com.au> |
HB is *the* code janitor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25031 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
8c7bd3615a8722d981a1a7e8a6a2dd3b1d56ef4d |
28-Dec-2005 |
Duraid Madina <duraid@octopus.com.au> |
mixed-STL programs are big and nasty :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25030 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
57030e36e41ebd982a24632e7cea5b584b2d49fc |
25-Dec-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
allow custom lowering to return null for legal results git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25007 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e8f65f1e62ea1d4f2ca9fd0137ae2e0ce20e26e1 |
25-Dec-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Support Custom lowering of a few more operations. Alpha needs to custom lower *DIV and *REM git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25006 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d6e8d4134022a3b451439a631b41744e9e07c034 |
23-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Remove redundant debug locations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c26f7a033f5416f216ef08929cbc8cb8df509ef3 |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
unbreak the build :-/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f3fd9fe20dbcb40f3dffc1518ab955a0b5d6fa23 |
23-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Allow custom lowering of LOAD, EXTLOAD, ZEXTLOAD, STORE, and TRUNCSTORE. Not currently used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c33baaafb6fb59eb4077f7b2cadff6cf743ce605 |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify store(bitconv(x)) to store(x). This allows us to compile this: void bar(double Y, double *X) { *X = Y; } to this: bar: save -96, %o6, %o6 st %i1, [%i2+4] st %i0, [%i2] restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i2] restore %g0, %g0, %g0 retl nop on sparcv8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24983 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5710410deaceab136878e73dc48b6d468cff9701 |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
fold (conv (load x)) -> (load (conv*)x). This allows us to compile this: void foo(double); void bar(double *X) { foo(*X); } To this: bar: save -96, %o6, %o6 ld [%i0+4], %o1 ld [%i0], %o0 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 ldd [%i0], %f0 std %f0, [%i6+-8] ld [%i6+-4], %o1 ld [%i6+-8], %o0 call foo nop restore %g0, %g0, %g0 retl nop on SparcV8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24982 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c8547d856d3459a61ca9e35b5342288fe626c295 |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fold bitconv(bitconv(x)) -> x. We now compile this: void foo(double); void bar(double X) { foo(X); } to this: bar: save -96, %o6, %o6 or %g0, %i0, %o0 or %g0, %i1, %o1 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -112, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i6+-16] ld [%i6+-12], %o1 ld [%i6+-16], %o0 call foo nop restore %g0, %g0, %g0 retl nop on V8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24981 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
94683777aee436a0e5f12e08a4b3827a11265fb2 |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
constant fold bits_convert in getNode and in the dag combiner for fp<->int conversions. This allows V8 to compiles this: void %test() { call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null ) ret void } into: test: save -96, %o6, %o6 sethi 0, %o3 sethi 1049088, %o2 sethi 1048576, %o1 sethi 1040384, %o0 or %g0, %o3, %o4 call test2 nop restore %g0, %g0, %g0 retl nop instead of: test: save -112, %o6, %o6 sethi 0, %o4 sethi 1049088, %l0 st %o4, [%i6+-12] st %l0, [%i6+-16] ld [%i6+-12], %o3 ld [%i6+-16], %o2 sethi 1048576, %o1 sethi 1040384, %o0 call test2 nop restore %g0, %g0, %g0 retl nop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
232348d66fcfe8f42f8b14cfacd2df3d00d2596e |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a pasto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24973 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ed7b5babfbdc708c564266052ad3b0ce0a5726c5 |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
fix a thinko in the bit_convert handling code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24972 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
35481892da1e5634bf497c8a0cabb1bb5a8b8fef |
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
add very simple support for the BIT_CONVERT node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24970 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
0fcd40f501d99ce50b23f67e578a37f0943dec36 |
22-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
1ccf26a6392034a11827aeaa0d58d025ecb2b85a |
22-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
The 81st column doesn't like code in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
780c861733efa4533a77aa41d02af95920cfd0a4 |
22-Dec-2005 |
Reid Spencer <rspencer@reidspencer.com> |
Add an eol at the end to shut gcc sup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24926 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
ff9be11da215602358e9358c3ff2d7d08c319bab |
22-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Lefted out TargetLowering:: git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
3a03ebb37747c2b3fd9b4f8b44f1124f53727894 |
22-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
* Fix a GlobalAddress lowering bug. * Teach DAG combiner about X86ISD::SETCC by adding a TargetLowering hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24921 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
e81aecbae69d4b3bd24523ec87673632d3b0beec |
21-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Disengage DEBUG_LOC from non-PPC targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
|
d5781fca4f8f98863560338d4f8d017389428119 |
21-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
* Added support for X86 RET with an additional operand to specify number of bytes to pop off stack. * Added support for X86 SETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e503289977f3acb5055d03dc2c137eb832397fa7 |
21-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Start of Dwarf framework. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24914 91177308-0d34-0410-b5e6-96231b3b80d8
warfWriter.cpp
|
f9dee6a0473db4f3713bf40c7408fa30578ac141 |
21-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
make sure to relegalize all cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24911 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9797c5cc3ebc2c78ff30866ce0650d87ea02946c |
21-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
enable the gep isel opt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24910 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
83397363348662e9352455ea1e6e88e7026300a4 |
21-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
fix a bug I introduced that broke recursive expansion of nodes (e.g. scalarizing vectors) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24905 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3b841e9f52611c1f92c60f979c775adf2c1fe22d |
21-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Lower ConstantAggregateZero into zeros git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24890 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8de324b59ce81cfb4202c706c96a3140f52e00c0 |
21-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Don't emit a null terminator, nor anything after it, to the ctor/dtor list git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24887 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7226158d7e3986e55b58214a749aa4eabb3fb6d5 |
20-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Added a hook to print out names of target specific DAG nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24877 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/TargetLowering.cpp
|
69a889eb35d59a10e78a07cc26d41cbab31eddce |
20-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a nasty latent bug in the legalizer that was triggered by my patch last night, breaking crafty and twolf. Make sure that the newly found legal nodes are themselves not re-legalized until the next iteration. Also, since this functionality exists now, we can reduce number of legalizer iterations by depending on this behavior instead of having to misuse 'do another iteration' to get the same effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
898101c15fa11a896deb4e2fcb73b4727e1dcc1f |
20-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
X86 conditional branch support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24870 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
115c036a4c83cd277ffac0867a21b34f63829db7 |
20-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Print out opcode number if it's an unknown target node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24869 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9f8cc69009468a5096e32e897060ee0b5b9dddd8 |
19-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a case where the DAG Combiner would accidentally CSE flag-producing nodes, creating graphs that cannot be scheduled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d845582d4a4b866513f6e3b656dc80d59dc9c05b |
19-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Amend comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
de48ee28a319f3990dcaac637b6dad78d48ab61f |
19-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Create a strong dependency for loads following stores. This will leave a latency period between the two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24860 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e773673d8e0094bbff2f9ab2f2da9ecb5c4d0909 |
19-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Make sure to relegalize new nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24843 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
18840db533de12aaabbc3b7bdce7a4d1688f323e |
18-Dec-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Keep VC++ happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24835 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
f1a47c3371ecd5bb449f39736a36ebbebd4e9e14 |
18-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
More corrections for flagged copyto/from reg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7310fb11f2a074069bf9ec3fc169c742ac48d32b |
18-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
legalize copytoreg and copyfromreg nodes that have flag operands correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24826 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bd2b6214862ccc33d3bb63005faa15c16ee51c49 |
18-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Fix a bug Sabre was having where the DAG root was a group. The group dominator needed to be added to the ordering list, not the first member of the group. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24816 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
9022ed955adc8ecdc8ebf19bb05efea924d1ad0e |
18-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Groups were not emitted if the dominator node and the node in the ordering list were not the same node. Ultimately the test was bogus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24815 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a5282d8df2fe5253b274c97de2617a7c141c5ca8 |
18-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
181b7a382fbdd3d03ce373a6ffac2204e763f9c3 |
18-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
allow custom expansion of BR_CC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24804 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7df96d66729d1f33934de7b52553e5f071686041 |
17-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
X86 lowers SELECT to a cmp / test followed by a conditional move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24754 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f5395cee6a24699a016b2e379cf4804b09ce5030 |
16-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Added source file/line correspondence for dwarf (PowerPC only at this point.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24748 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
d0f6d18aa896a6c37f26e2d947d24d8ec95f1164 |
15-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Don't create SEXTLOAD/ZEXTLOAD instructions that the target doesn't support if after legalize. This fixes IA64 failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24725 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d4771840fd59654becb989675fbc0d0dc54c6dd4 |
14-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
When folding loads into ops, immediately replace uses of the op with the load. This reduces number of worklist iterations and avoid missing optimizations depending on folding of things into sext_inreg nodes (which aren't supported by all targets). Tested by Regression/CodeGen/X86/extend.ll:test2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24712 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ad25d4e2df3fe01541d62ab0fd22c7de22ce3a42 |
14-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the (zext (zextload)) case to trigger, similarly for sign extends. Allow (zext (truncate)) to apply after legalize if the target supports AND (which all do). This compiles short %foo() { %tmp.0 = load ubyte* %X ; <ubyte> [#uses=1] %tmp.3 = cast ubyte %tmp.0 to short ; <short> [#uses=1] ret short %tmp.3 } to: _foo: movzbl _X, %eax ret instead of: _foo: movzbl _X, %eax movzbl %al, %eax ret thanks to Evan for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24709 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
00cb95c9bef6b4d96994112422d9d66679dfe986 |
14-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a miscompilation in crafty due to a recent patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24706 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
110dec20008c94216a486f5c0d2eba30cbc2deef |
14-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Fold (zext (load x) to (zextload x). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24702 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
86cb643801be1308ba1da7db774b64852a119e94 |
13-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Don't lump the filename and working dir together git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24697 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ed13893ff729bc3b91697f6d80a3ba303782efcc |
13-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Add a couple more fields, move ctor init list to .cpp file, add support for emitting the ctor/dtor list for common targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24694 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
d7d746f60337684310fcd985d4466edd6a5980ac |
13-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Lowering constant pool entries on ppc exposed a bug in the recently added ConstantVec legalizing code, which would return constantpool nodes that were not of the target's pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24691 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ac22c83e6853c759a10eb7310b019b22e1d42d16 |
12-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Accept and ignore prefetches for now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
58f7963b8b3cb8894623a7d7663cc54005fea8f9 |
12-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2005-12-12-ExpandSextInreg.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3802c2552fe4475418db3c948e7601d7259f996d |
11-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Minor tweak to get isel opt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
28a6b02626c29b1fe9bb16c14c193549fab4cab8 |
10-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Add support for TargetConstantPool nodes to the dag isel emitter, and use them in the PPC backend, to simplify some logic out of Select and SelectAddr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24657 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7038daf34272d58da160989dd97f0bce39f5b0b1 |
10-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Added new getNode and getTargetNode variants for X86 stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24653 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
42a80fedad12fbdc585909762f2284268e5619a8 |
09-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Avoid emitting two tabs when switching to a named section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24646 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
5e3c5b4e13d45d631cddf42176b380f64fde918f |
09-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize how to promote sext_inreg to fix a problem Andrew pointed out to me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24644 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c78b0b740bcf2e00a8871090709c3571fe442f07 |
08-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
improve code insertion in two ways: 1. Only forward subst offsets into loads and stores, not into arbitrary things, where it will likely become a load. 2. If the source is a cast from pointer, forward subst the cast as well, allowing us to fold the cast away (improving cases when the cast is from an alloca or global). This hasn't been fully tested, but does appear to further reduce register pressure and improve code. Lets let the testers grind on it a bit. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cc827e60b67b2cbcf08a37b119e68081e4171b8a |
07-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a crash where ConstantVec nodes were being generated with the wrong type when the target did not support them. Also teach Legalize how to expand ConstantVecs. This allows us to generate _test: lwz r2, 12(r3) lwz r4, 8(r3) lwz r5, 4(r3) lwz r6, 0(r3) addi r2, r2, 4 addi r4, r4, 3 addi r5, r5, 2 addi r6, r6, 1 stw r2, 12(r3) stw r4, 8(r3) stw r5, 4(r3) stw r6, 0(r3) blr For: void %test(%v4i *%P) { %T = load %v4i* %P %S = add %v4i %T, <int 1, int 2, int 3, int 4> store %v4i %S, %v4i * %P ret void } On PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24633 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
cc2210b4fa9debfaafa2d385549b0c30448e9c12 |
07-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Only transform (sext (truncate x)) -> (sextinreg x) if before legalize or if the target supports the resultant sextinreg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
b14ab8a10d7955501ec80b247b2510bbd2511b12 |
07-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Teach the dag combiner to turn a truncate/sign_extend pair into a sextinreg when the types match up. This allows the X86 backend to compile: sbyte %toggle_value(sbyte* %tmp.1) { %tmp.2 = load sbyte* %tmp.1 ret sbyte %tmp.2 } to this: _toggle_value: mov %EAX, DWORD PTR [%ESP + 4] movsx %EAX, BYTE PTR [%EAX] ret instead of this: _toggle_value: mov %EAX, DWORD PTR [%ESP + 4] movsx %EAX, BYTE PTR [%EAX] movsx %EAX, %AL ret noticed in Shootout/objinst. -Chris git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8cfa57b1b4eade4e0101195b2f94ab288cd03563 |
06-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the SelectionDAG ISel how to turn ConstantPacked values into constant nodes with vector types. Also teach the asm printer how to print ConstantPacked constant pool entries. This allows us to generate altivec code such as the following, which adds a vector constantto a packed float. LCPI1_0: <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 > .space 4 .space 4 .space 4 .long 1065353216 ; float 1 .text .align 4 .globl _foo _foo: lis r2, ha16(LCPI1_0) la r2, lo16(LCPI1_0)(r2) li r4, 0 lvx v0, r4, r2 lvx v1, r4, r3 vaddfp v0, v1, v0 stvx v0, r4, r3 blr For the llvm code: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, < float 0.0, float 0.0, float 0.0, float 1.0 > store <4 x float> %tmp2, <4 x float> *%a ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24616 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
c88d8e944dae71e31595b8ae264668e68db6b8ed |
05-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the #1 code quality problem that I have seen on X86 (and it also affects PPC and other targets). In a particular, consider code like this: struct Vector3 { double x, y, z; }; struct Matrix3 { Vector3 a, b, c; }; double dot(Vector3 &a, Vector3 &b) { return a.x * b.x + a.y * b.y + a.z * b.z; } Vector3 mul(Vector3 &a, Matrix3 &b) { Vector3 r; r.x = dot( a, b.a ); r.y = dot( a, b.b ); r.z = dot( a, b.c ); return r; } void transform(Matrix3 &m, Vector3 *x, int n) { for (int i = 0; i < n; i++) x[i] = mul( x[i], m ); } we compile transform to a loop with all of the GEP instructions for indexing into 'm' pulled out of the loop (9 of them). Because isel occurs a bb at a time we are unable to fold the constant index into the loads in the loop, leading to PPC code that looks like this: LBB3_1: ; no_exit.preheader li r2, 0 addi r6, r3, 64 ;; 9 values live across the loop body! addi r7, r3, 56 addi r8, r3, 48 addi r9, r3, 40 addi r10, r3, 32 addi r11, r3, 24 addi r12, r3, 16 addi r30, r3, 8 LBB3_2: ; no_exit lfd f0, 0(r30) lfd f1, 8(r4) fmul f0, f1, f0 lfd f2, 0(r3) ;; no constant indices folded into the loads! lfd f3, 0(r4) lfd f4, 0(r10) lfd f5, 0(r6) lfd f6, 0(r7) lfd f7, 0(r8) lfd f8, 0(r9) lfd f9, 0(r11) lfd f10, 0(r12) lfd f11, 16(r4) fmadd f0, f3, f2, f0 fmul f2, f1, f4 fmadd f0, f11, f10, f0 fmadd f2, f3, f9, f2 fmul f1, f1, f6 stfd f0, 0(r4) fmadd f0, f11, f8, f2 fmadd f1, f3, f7, f1 stfd f0, 8(r4) fmadd f0, f11, f5, f1 addi r29, r4, 24 stfd f0, 16(r4) addi r2, r2, 1 cmpw cr0, r2, r5 or r4, r29, r29 bne cr0, LBB3_2 ; no_exit uh, yuck. With this patch, we now sink the constant offsets into the loop, producing this code: LBB3_1: ; no_exit.preheader li r2, 0 LBB3_2: ; no_exit lfd f0, 8(r3) lfd f1, 8(r4) fmul f0, f1, f0 lfd f2, 0(r3) lfd f3, 0(r4) lfd f4, 32(r3) ;; much nicer. lfd f5, 64(r3) lfd f6, 56(r3) lfd f7, 48(r3) lfd f8, 40(r3) lfd f9, 24(r3) lfd f10, 16(r3) lfd f11, 16(r4) fmadd f0, f3, f2, f0 fmul f2, f1, f4 fmadd f0, f11, f10, f0 fmadd f2, f3, f9, f2 fmul f1, f1, f6 stfd f0, 0(r4) fmadd f0, f11, f8, f2 fmadd f1, f3, f7, f1 stfd f0, 8(r4) fmadd f0, f11, f5, f1 addi r6, r4, 24 stfd f0, 16(r4) addi r2, r2, 1 cmpw cr0, r2, r5 or r4, r6, r6 bne cr0, LBB3_2 ; no_exit This is much nicer as it reduces register pressure in the loop a lot. On X86, this takes the function from having 9 spilled registers to 2. This should help some spec programs on X86 (gzip?) This is currently only enabled with -enable-gep-isel-opt to allow perf testing tonight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d67b3a8bf75d4d3c50263960a9375e6856588f2c |
03-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
dbg.stoppoint returns a value, don't forget to init it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cde0f5cfe7b7e0a73708c0db29dcfc0d00294e98 |
02-Dec-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
bah, must generate all results git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
49c709f891a3e49db58b56ca94eafa98cbb12c4d |
02-Dec-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
cycle counter fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fe14b34d83c085e6b7d46e915fdd9c21344e323b |
02-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Don't remove two operand, two result nodes from the binary ops map. These should come from the arbitrary ops map. This fixes Regression/CodeGen/PowerPC/2005-12-01-Crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24571 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9ad17c9c9abfd6e011751d2fd2b03448e1dccb71 |
01-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Promote line and column number information for our friendly 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c5e6c649b5856c8f02726de014fa3d415a0cb87b |
01-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
This is a bugfix for SelectNodeTo. In certain situations, we could be selecting a node and use a mix of getTargetNode() and SelectNodeTo. Because SelectNodeTo didn't check the CSE maps for a preexisting node and didn't insert its result into the CSE maps, we would sometimes miss a CSE opportunity. This is extremely rare, but worth fixing for completeness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6510b22cec7de4f0acc9965ec24c3668a6a8a87e |
01-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Support multiple ValueTypes per RegisterClass, needed for upcoming vector work. This change has no effect on generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24563 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
eb19e40efbd3cae80c908a30cdf4d33450733c45 |
30-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Make SelectNodeTo return N git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c85a9f37e92f972467962c82c08cc083c344243f |
30-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
CALLSEQ_START/END nodes don't get memoized, do not add them in when replaceAllUses'ing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24539 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ae35575957a3ab446e2766aa05d03020ced27d14 |
30-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
At long last, you can say that f32 isn't supported for setcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24537 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f43a3ca26d7bf431be5cdfb5963350a158e840af |
30-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
First chunk of actually generating vector code for packed types. These changes allow us to generate the following code: _foo: li r2, 0 lvx v0, r2, r3 vaddfp v0, v0, v0 stvx v0, r2, r3 blr for this llvm: void %foo(<4 x float>* %a) { entry: %tmp1 = load <4 x float>* %a %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float>* %a ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24534 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5b5b8c27556e5dc8792e37436e4ddd7ab157192d |
30-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
add support for custom lowering SINT_TO_FP git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6ff7240a5c484af6e42e2ba6a6d7e03ddf844922 |
30-Nov-2005 |
Reid Spencer <rspencer@reidspencer.com> |
Fix a problem with llvm-ranlib that (on some platforms) caused the archive file to become corrupted due to interactions between mmap'd memory segments and file descriptors closing. The problem is completely avoiding by using a third temporary file. Patch provided by Evan Jones git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
14229bb6369c110644c11bc7906b0c1167d3a87a |
30-Nov-2005 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a bug introduced by my last commit: TargetGlobalValues should key on GlobalValue * and index pair. Update getGlobalAddress() for symmetry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24524 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
61ca74bc3a29b2af2be7e4bd612289da8aae85b5 |
30-Nov-2005 |
Evan Cheng <evan.cheng@apple.com> |
Added an index field to GlobalAddressSDNode so it can represent X+12, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24523 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
36ce69195ed488034d0bb11180cc2ebd923679c8 |
29-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for a new STRING and LOCATION node for line number support, patch contributed by Daniel Berlin, with a few cleanups here and there by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24515 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
6a648614e88586e85a36ceb5c1d3b84e4f55b458 |
29-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Add the majority of the vector machien value types we expect to support, and make a few changes to the legalization machinery to support more than 16 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24511 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/TargetLowering.cpp
|
ab48be377298bd509427a29e174cf4e305138819 |
22-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Check in code to scalarize arbitrarily wide packed types for some simple vector operations (load, add, sub, mul). This allows us to codegen: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } on ppc as: _foo: lfs f0, 12(r3) lfs f1, 8(r3) lfs f2, 4(r3) lfs f3, 0(r3) fadds f0, f0, f0 fadds f1, f1, f1 fadds f2, f2, f2 fadds f3, f3, f3 stfs f0, 12(r3) stfs f1, 8(r3) stfs f2, 4(r3) stfs f3, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4ef3b817fee7ea5be7219e00ab8e15976bfe279f |
22-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Rather than attempting to legalize 1 x float, make sure the SD ISel never generates it. Make MVT::Vector expand-only, and remove the code in Legalize that attempts to legalize it. The plan for supporting N x Type is to continually epxand it in ExpandOp until it gets down to 2 x Type, where it will be scalarized into a pair of scalars. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/TargetLowering.cpp
|
e0b632a5d8940d415e67e3462a8ba5973255cda2 |
21-Nov-2005 |
Duraid Madina <duraid@octopus.com.au> |
I think I know what you meant here, but just to be safe I'll let you do it. :) <_sabre_> excuses excuses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24471 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
3b4fd32a41a90ea67fd09a020d480c20e9c40daf |
21-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Allow target to customize directive used to switch to arbitrary section in SwitchSection, add generic constant pool emitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24464 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
77bc22866aa212144ceec3590ea2df11585a7f0c |
21-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
increment the function number in SetupMachineFunction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24461 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
25045bdcda822d63674e2df7e34016536c5d3fa7 |
21-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to capitalized asmprinter method names git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24457 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
ac28fbd0436dd8b2bc0c071ba150b60bbfca67f3 |
21-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Add section switching to common code generator code. Add a couple of asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24445 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
iveVariables.cpp
egAllocLinearScan.cpp
|
308575be66ec3870d27b19df044fda18448feb41 |
20-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Legalize MERGE_VALUES, expand READCYCLECOUNTER correctly, so it doesn't break control dependence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24437 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f70e30b41dc6a92733681dcea2c06d8b3dd488db |
20-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
The first patch of X86 support for read cycle counter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24429 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6bf234c4a894b898954f8be3fb5973caba241012 |
20-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
more progress towards bug 291 being finished. Patch by Owen Anderson, HAVE_GV case fixed up by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24428 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
b67eb9131c5c04d2e55c6b587fde954619feceaf |
19-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Unbreak codegen of bools. This should fix the llc/jit/llc-beta failures from last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3aa2c74e192124244d22aaef857980e16fab49ea |
19-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Improve Selection DAG printer portability. Patch by Owen Anderson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
44fa764355eec81d8ef8fbd63824695b1554c4ab |
19-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Teach the graph viewer to handle register operands that are zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24421 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
b89175feffa7148c05d1d30a8e382b8d321edae5 |
19-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Silence a bogus warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24420 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0fb094fd60f3762f9031655e0223b3bfa72c5ac2 |
19-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Add some method variants, patch by Evan Cheng git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24418 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5fbb5d2459a5410590f285250faa604576308a93 |
19-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach LLVM how to scalarize packed types. Currently, this only works on packed types with an element count of 1, although more generic support is coming. This allows LLVM to turn the following code: void %foo(<1 x float> * %a) { entry: %tmp1 = load <1 x float> * %a; %tmp2 = add <1 x float> %tmp1, %tmp1 store <1 x float> %tmp2, <1 x float> *%a ret void } Into: _foo: lfs f0, 0(r3) fadds f0, f0, f0 stfs f0, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
e21ea61588996609f827213a2701a204f2f13fb3 |
18-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Split out the shift code from visitBinary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24412 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0c8fbe33a4bdf7c60e0cfd5a9c86499c817d9f1a |
17-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to custom legalize leaf nodes like GlobalAddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24387 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b9debbf54c926036d5c22b3e7f0d12c79c1c15a3 |
17-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize about targetglobaladdress git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24385 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b1a5a5c4c0182205b91b962def7b008228a1f7e6 |
16-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
when debugging lower dbg intrinsics to calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24377 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
27ecef510f785bc9345e6ddf058cd4f45e05bc4f |
15-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Remove extraneous parents around constants when using a constant expr cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24357 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a1ab72daadbdc5b499ce7e7e97c4b80efad46736 |
14-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Teach emitAlignment to handle explicit alignment requests by globals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24354 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
06d9b4ab24d1a6aa94fd0c6f24ab8381e1771f93 |
12-Nov-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix operator precedence bug caught by VC++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8b91c77385a055474d271aa8c10f0382fdeaafeb |
11-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
added a chain output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24306 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
51b8d54922350b7e1c2cd5a5183ef2c5f5d1b1d5 |
11-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
continued readcyclecounter support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24300 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
ed0c4ecf05e8fed9d76ed649c2dba0a238032a00 |
10-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
nuke blank line git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24278 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
450de393acdf4be89db8558522b04d8111e4562b |
10-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Get rid of casts by #including the right header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24275 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
2a21c6e86101c857d683e7bdefb775654ccab7e3 |
10-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Compile C strings to: l1__2E_str_1: ; '.str_1' .asciz "foo" not: .align 0 l1__2E_str_1: ; '.str_1' .asciz "foo" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24273 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
2980cefb809c60aa1d7dd85adfc2c269f731de88 |
10-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
add support for .asciz, and enable it by default. If your target assemblerdoesn't support .asciz, just set AscizDirective to null in your asmprinter. This compiles C strings to: l1__2E_str_1: ; '.str_1' .asciz "foo" instead of: l1__2E_str_1: ; '.str_1' .ascii "foo\000" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24272 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
de202b3cda00f17ba2c047be7270b51f9585a413 |
10-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Switch the allnodes list from a vector of pointers to an ilist of nodes.This eliminates the vector, allows constant time removal of a node froma graph, and makes iteration over the all nodes list stable when adding nodes to the graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24263 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
|
c9ea6fde305b35ab7c9f909ac390d4b53e33d536 |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor intrinsic lowering stuff out of visitCall git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
040c11c24e9f6c172eaf680e135d9bb466c284b2 |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Handle the trivial (but common) two-op case more efficiently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24259 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e6a88ac1b903206c777fdf85e1c2be4b01175107 |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Nuke noop copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24258 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
6b2d69655ace2788b244c8a4ebcfb6f2a926ad92 |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/X86/shift-folding.ll:test3 on X86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24256 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
9a5ef20f5ed0551e02e4e6d7a41185a52187f5cf |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Disable some overly-aggressive checking code. This speeds up the local allocator from 23s to 11s on kc++ in debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24255 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
7436b57de32333cc337b8c7cea208c8863eee793 |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Avoid creating a token factor node in trivially redundant cases. This eliminates almost one node per block in common cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7c0104b525a4ba8b5268ee5455f92b011f7cc263 |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Handle GEP's a bit more intelligently. Fold constant indices early and turn power-of-two multiplies into shifts early to improve compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0d902a9c740bdaa57396547f26a02c234752c579 |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Allocate the right amount of memory for this vector up front. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24252 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a32551197ab7f39bb2bff8cee24ecf70c2a40f6f |
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Change the ValueList array for each node to be shared instead of individuallyallocated. Further, in the common case where a node has a single value, justreference an element from a small array. This is a small compile-time win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24251 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
65113b2f86ac0b714f3f580beb886d42c988c5b6 |
08-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Switch the operandlist/valuelist from being vectors to being just an array.This saves 12 bytes from SDNode, but doesn't speed things up substantially (our graphs apparently already fit within the cache on my g5). In any case this reduces memory usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24249 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4012eb2137c91668d4951a312fc6067b4a5da4cd |
08-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Explicitly initialize some instance vars git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24247 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
f469cb654600969db1131eb80002fc7ff53d1f5e |
08-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Clean up RemoveDeadNodes significantly, by eliminating the need for a temporary set and eliminating the need to iterate whenever something is removed (which can be really slow in some cases). Thx to Jim for pointing out something silly I was getting stuck on. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24241 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
26b91ebb63b29c94b3803b15ff1e6929f135caec |
07-Nov-2005 |
Jim Laskey <jlaskey@mac.com> |
Let's try ignoring resource utilization on the backward pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
cbef8ba5f959b3c4f932005ceef5cf2e0d899f9b |
06-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Always compute max align. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24227 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
ae232e7a1055033436370c0b3aecf054fa44d5e7 |
06-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Add the necessary support to the ISel to allow targets to codegen the new alignment information appropriately. Includes code for PowerPC to support fixed-size allocas with alignment larger than the stack. Support for arbitrarily aligned dynamic allocas coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24224 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
electionDAG/SelectionDAGISel.cpp
|
a5e5bff8b85cc3b5bf0632b409e949eda5eb7ac1 |
05-Nov-2005 |
Jim Laskey <jlaskey@mac.com> |
Fix logic bug in finding retry slot in tally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24188 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
54f997d23f8fbab68bdb70bd0bc8b0a956134dae |
04-Nov-2005 |
Jim Laskey <jlaskey@mac.com> |
Fix a warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24187 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
7d090f3485b5a17431b5a956fdd5d1fc03cbd5d5 |
04-Nov-2005 |
Jim Laskey <jlaskey@mac.com> |
Scheduling now uses itinerary data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24180 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
5dc7e861f8c58301886b54f4ec1a1077b1e5281e |
02-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a crash that Andrew noticed, and add a pair of braces to unfconfuse XCode's indenting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24159 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
7c22575e3292a80b42ec6189d618976a464f7406 |
02-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a source of undefined behavior when dealing with 64-bit types. This may fix PR652. Thanks to Andrew for tracking down the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5a608ddadae5ad5bc121a263c37015c42c526d7a |
31-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
1. Embed and not inherit vector for NodeGroup. 2. Iterate operands and not uses (performance.) 3. Some long pending comment changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24119 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
bf209489ad3f7a38ce6b2159b22d8727500e60c2 |
30-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Significantly simplify this code and make it more aggressive. Instead of having a special case hack for X86, make the hack more general: if an incoming argument register is not used in any block other than the entry block, don't copy it to a vreg. This helps us compile code like this: %struct.foo = type { int, int, [0 x ubyte] } int %test(%struct.foo* %X) { %tmp1 = getelementptr %struct.foo* %X, int 0, uint 2, int 100 %tmp = load ubyte* %tmp1 ; <ubyte> [#uses=1] %tmp2 = cast ubyte %tmp to int ; <int> [#uses=1] ret int %tmp2 } to: _test: lbz r3, 108(r3) blr instead of: _test: lbz r2, 108(r3) or r3, r2, r2 blr The (dead) copy emitted to copy r3 into a vreg for extra-block uses was increasing the live range of r3 past the load, preventing the coallescing. This implements CodeGen/PowerPC/reg-coallesce-simple.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24115 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a4176525cc4018e781b48fd35d4000040841287f |
30-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Reduce the number of copies emitted as machine instructions by generating results in vregs that will need them. In the case of something like this: CopyToReg((add X, Y), reg1024), we no longer emit code like this: reg1025 = add X, Y reg1024 = reg 1025 Instead, we emit: reg1024 = add X, Y Whoa! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24111 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
3e6099b05fa85d9e5d82f04f73722f2af301c772 |
30-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen mul by negative power of two with a shift and negate. This implements test/Regression/CodeGen/PowerPC/mul-neg-power-2.ll, producing: _foo: slwi r2, r3, 1 subfic r3, r2, 63 blr instead of: _foo: mulli r2, r3, -2 addi r3, r2, 63 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24106 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fe7f046de875e41dd338163a719a32571da7ec06 |
27-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix DSE to not nuke dead stores unless they redundant store is the same VT as the killing one. Fix fixes PR491 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24034 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
731d348166792bb9846022a82f7712c7bcec8f30 |
27-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add a simple xform that is useful for bitfield operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24029 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c60e6020c0dd1260b0d60835e2ab823f97a4b810 |
26-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix some spello's pointed out by Gabor Greif git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24019 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
woAddressInstructionPass.cpp
|
b7f6ef12f682c7068ca7513e088177a0d1046b35 |
26-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Allow custom lowered FP_TO_SINT ops in the check for whether a larger FP_TO_SINT is preferred to a larger FP_TO_UINT. This seems to be begging for a TLI.isOperationCustom() helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23992 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a158eee3130b93717d9b53b6a128fe193238aea3 |
25-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Clear a bit in this file that was causing a miscompilation of 178.galgel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23980 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8a6cd98e964fa42f05773cd2389e8b663ffecc6c |
24-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Alkis agrees that that iterative scan allocator isn't going to be worked on in the future, remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23952 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
egAllocIterativeScan.cpp
|
66c5fd6c537269eaef0f630fa14360dcaff6a295 |
23-Oct-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
When a function takes a variable number of pointer arguments, with a zero pointer marking the end of the list, the zero *must* be cast to the pointer type. An un-cast zero is a 32-bit int, and at least on x86_64, gcc will not extend the zero to 64 bits, thus allowing the upper 32 bits to be random junk. The new END_WITH_NULL macro may be used to annotate a such a function so that GCC (version 4 or newer) will detect the use of un-casted zero at compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23888 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
2a2de66db2093a5bc1fd620d1b6ae7992a552b24 |
23-Oct-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
add TargetExternalSymbol git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23886 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e9936d14b899cc17572bfd6165dd6a9aa0ff89b8 |
22-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
BuildSDIV and BuildUDIV only work for i32/i64, but they don't check that the input is that type, this caused a failure on gs on X86 last night. Move the hard checks into Build[US]Div since that is where decisions like this should be made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23881 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
c8597ca6985f8de7ab4398f60b0be1e1bea3a5b9 |
21-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
add a case missing from the dag combiner that exposed the failure on 2005-10-21-longlonggtu.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
aa51a484e188ecb8d3e4b6ac852c553a4aacc89a |
21-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Make the coallescer a bit smarter, allowing it to join more live ranges. For example, we can now join things like [0-30:0)[31-40:1)[52-59:2) with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range. The resultant range ends up being [0-30:0)[31-60:1). This fires a lot through-out the test suite (e.g. shrinking bc from 19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about 50 copies eliminated from crafty). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23866 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9e20d352c2fec5731857313014107a586387d242 |
21-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix LiveInterval::getOverlapingRanges to take things in the right order (an unused method). Fix the merger so that it can merge ranges like this [10:12)[16:40) with [12:38) into [10:40) instead of bogus ranges. This sort of input will be possible for the merger coming shortly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23865 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
4d3856768934ee748f754cc134ba88180ce42d1c |
21-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a typo in the dag combiner, so that this can work on i64 targets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
405e3ecb563f21e7b4ee30f0de57821f3eb91219 |
21-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Invert the TargetLowering flag that controls divide by consant expansion. Add a new flag to TargetLowering indicating if the target has really cheap signed division by powers of two, make ppc use it. This will probably go away in the future. Implement some more ISD::SDIV folds in the dag combiner Remove now dead code in the x86 backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23853 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/TargetLowering.cpp
|
cef6010c64bc56fa2a8f1e7e9e28b8821adeceac |
21-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a conditional so we don't access past the end of the range. Thanks to Andrew for bringing this to my attn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23850 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
c6a454e8d57acd47e9769516b36ce0810e9dc4f4 |
20-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a couple bugs in the const div stuff where we'd generate MULHS/MULHU for types that aren't legal, and fail a divisor is less than zero comparison, which would cause us to drop a subtract. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23846 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f75f2a0a026621430f412d903c489b3fc951dbb3 |
20-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
don't use llabs with apparently VC++ doesn't have git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23845 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8317e12cef9b16b948231a20f02b4dd4c3623dfc |
20-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix order of eval problem from when I refactored this into a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23844 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
b0fa11ca41d85e35d3c1155c6a3af1b67788fce6 |
20-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
add a new method, play around with some code. Fix a *bug* in the extendIntervalEndTo method. In particular, if adding [2:10) to an interval containing [0:2),[10:30), we produced [0:10),[10,30). Which is not the most smart thing to do. Now produce [0:30). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23841 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f5ce2678f63f5776fddcfc34ae63ecdec622938c |
20-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor some code, pulling it out into a function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23839 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
6957523b9ddc6e85aede47a107502043fd1a3b2d |
20-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Move the target constant divide optimization up into the dag combiner, so that the nodes can be folded with other nodes, and we can not duplicate code in every backend. Alpha will probably want this too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23835 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5dc897b0e4e5eb4513adc2f161412ce23f6bf2e0 |
19-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach Legalize how to do something with EXTRACT_ELEMENT when the type of the pair of elements is a legal type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23804 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4a95945fa5aa431110f50092f4a45d24772a553b |
19-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Add the ability to lower return instructions to TargetLowering. This allows us to lower legal return types to something else, to meet ABI requirements (such as that i64 be returned in two i32 regs on Darwin/ppc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23802 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d222f6ab67472fa2b2e211172a11b43905aa9445 |
19-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix Generic/2005-10-18-ZeroSizeStackObject.ll by not requesting a zero sized stack object if either the array size or the type size is zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2dfa8192abaad8a3c29132dba50e8b85218e918c |
19-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
remove hack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
40c62d50697a8515abdaf83655c031968d06a900 |
18-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fold (select C, load A, load B) -> load (select C, A, B). This happens quite a lot throughout many programs. In particular, specfp triggers it a bunch for constant FP nodes when you have code like cond ? 1.0 : -1.0. If the PPC ISel exposed the loads implicit in pic references to external globals, we would be able to eliminate a load in cases like this as well: %X = external global int %Y = external global int int* %test4(bool %C) { %G = select bool %C, int* %X, int* %Y ret int* %G } Note that this breaks things that use SrcValue's (see the fixme), but since nothing uses them yet, this is ok. Also, simplify some code to use hasOneUse() on an SDOperand instead of hasNUsesOfValue directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a0e221dc75ee1f2d8830eec9569116386a56a936 |
18-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Implement some feedback from Chris re: constant canonicalization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23777 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
419f8b62f73541dd783aa98c9eda6e483a487d51 |
18-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Legalize BUILD_PAIR appropriately for upcoming 64 bit PowerPC work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23776 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
11af4eaa6d061befe341420b0ff7762b51e920ce |
17-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
fold fmul X, +2.0 -> fadd X, X; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
854077d3a5a42c3286f22fd5f72ee98797ed3d71 |
17-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
add a trivial fold git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23764 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
750dbd5950ab5a6689f189adbea900eee9e6884d |
16-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix this logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23756 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
85d63bbff740d23fae631ec1ecf5c7603e4b321d |
16-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add a case we were missing that was causing us to fail CodeGen/PowerPC/rlwinm.ll:test3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
8136cdae60eaa30cea91f288f25564a417b19a84 |
15-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Use getExtLoad here instead of getNode, as extloads produce two values. This fixes a legalize failure on SPASS for itanium. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23747 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
216def8ecfb8d2b03520a4fe004d498ad7b8b1c9 |
14-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
fold sext_in_reg, sext_in_reg where both have the same VT. This was popping up in Fourinarow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23722 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
5054f162127f19ad43bc4d0b8ab232f0fee32953 |
14-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Relax the checking on zextload generation a bit, since as sabre pointed out you could be AND'ing with the result of a shift that shifts out all the bits you care about, in addition to a constant. Also, move over an add/sub_parts fold from legalize to the dag combiner, where it works for things other than constants. Woot! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23720 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
|
24edbb7a6cdf8adcd80086700448d59c59a810b9 |
14-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the trunc(load) case, finally allowing crafty and povray to pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23718 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
f98840531a8da37e481a838971abd9ab4ee69eb9 |
13-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix some bugs in (sext (load x)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9ad8481cfbbb9dfe451b771978098677bc8dd254 |
13-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
When ExpandOp'ing a [SZ]EXTLOAD, make sure to remember that the chain is also legal. Add support for ExpandOp'ing raw EXTLOADs too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23716 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4c8f8f0481b26818d7810a6a585e7ecf52973e93 |
13-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Implement PromoteOp for *EXTLOAD, allowing MallocBench/gs to Legalize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bfd65a05c96988d175dec57b0b59e7dca2be04c1 |
13-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix the remaining DAGCombiner issues pointed out by sabre. This should fix the remainder of the failures introduced by my patch last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23714 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
67a44cd3aa26003a6bc2cd755516c9cc12c36ca0 |
13-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a minor bug in the dag combiner that broke pcompress2 and some other tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23713 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
144ff660e66845a575586bc4092c0cf349b5bfb9 |
13-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Add support to Legalize for expanding i64 sextload/zextload into hi and lo parts. This should fix the crafty and signed long long unit test failure on x86 last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23711 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
53c523c00e6c160bb8e3a6931497eb87d82eb108 |
13-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
Inhibit instructions from being pushed before function calls. This will minimize unnecessary spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23710 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
ded4963ab98c424a8e83f4dc0e63203754ca353b |
13-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Move some Legalize functionality over to the DAGCombiner where it belongs. Kill some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23706 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
765784ad760ee6cc504d79e4966c272387c313f8 |
13-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a potential bug with two combine-to's back to back that chris pointed out, where after the first CombineTo() call, the node the second CombineTo wishes to replace may no longer exist. Fix a very real bug with the truncated load optimization on little endian targets, which do not need a byte offset added to the load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23704 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3df4d525c58d5db878eaadcfdcffbbfca96dd6a2 |
12-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
More cool stuff for the dag combiner. We can now finally handle things like turning: _foo: fctiwz f0, f1 stfd f0, -8(r1) lwz r2, -4(r1) rlwinm r3, r2, 0, 16, 31 blr into _foo: fctiwz f0,f1 stfd f0,-8(r1) lhz r3,-2(r1) blr Also removed an unncessary constraint from sra -> srl conversion, which should take care of hte only reason we would ever need to handle sra in MaskedValueIsZero, AFAIK. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fab66f69009857f77bad1e9cb9f41733c04e011f |
12-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
Finally committing to the new scheduler. Still -sched=none by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23702 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
851a22db2bdbcab1768a87c4f02b5972e48db5ed |
12-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
Added graphviz/gv support for MF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23700 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
a179ab3016a08051c34ba82d7feaeb4198702a60 |
11-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a powerpc crash on CodeGen/Generic/llvm-ct-intrinsics.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23694 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
05b57433e68de3ba0f6eb01f4a0271fee3abeb09 |
11-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add a canonicalization that got lost, fixing PowerPC/fold-li.ll:SUB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23693 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
04ecf6d65fb5c8703eff8a3dcd5a8208e91318fe |
11-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
clean up some corner cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23692 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
87514ca04cb069310d29fd77e0501601c1e22c11 |
11-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Implement trivial DSE. If two stores are neighbors and store to the same location, replace them with a new store of the last value. This occurs in the same neighborhood in 197.parser, speeding it up about 1.5% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23691 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
01a220213852223f2503f05c8bbb8b72e3c71290 |
11-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for CombineTo, allowing the dag combiner to replace nodes with multiple results. Use this support to implement trivial store->load forwarding, implementing CodeGen/PowerPC/store-load-fwd.ll. Though this is the most simple case and can be extended in the future, it is still useful. For example, it speeds up 197.parser by 6.2% by avoiding an LSU reject in xalloc: stw r6, lo16(l5_end_of_array)(r2) addi r2, r5, -4 stwx r5, r4, r2 - lwzx r5, r4, r2 - rlwinm r5, r5, 0, 0, 30 stwx r5, r4, r2 lwz r2, -4(r4) ori r2, r2, 1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23690 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
07ed417df21269c51e61746176caf73d8aef43e8 |
10-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the DAGCombiner several new tricks, teaching it how to turn sext_inreg into zext_inreg based on the signbit (fires a lot), srem into urem, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23688 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d739075cbb88463dd83d212426cfe13ad17e00da |
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23686 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
bba9aa3475e307be7bd60eecc733cd46eeaf107a |
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add ISD::ADD to MaskedValueIsZero git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23685 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3892560680e244601e52080f448df75988d89663 |
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
This function is now dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23684 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
af21d55aee8d6852fedfd630395a3c7c95df8f12 |
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Enable Nate's excellent DAG combiner work by default. This allows the removal of a bunch of ad-hoc and crufty code from SelectionDAG.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23682 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a19cea061e661277489655f5d0777360fb9fe736 |
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
add a todo for something I noticed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
ee899e6bfc854adefdbfd6631e206d18fd43ab81 |
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
(X & Y) & C == 0 if either X&C or Y&C are zero git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
089c25ccb3469946d70d9fa97d2e0b7ab16902a2 |
09-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
When emiting a CopyFromReg and the source is already a vreg, do not bother creating a new vreg and inserting a copy: just use the input vreg directly. This speeds up the compile (e.g. about 5% on mesa with a debug build of llc) by not adding a bunch of copies and vregs to be coallesced away. On mesa, for example, this reduces the number of intervals from 168601 to 129040 going into the coallescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
f845b4563a960047b1092618093a79dc0bf998a8 |
08-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Lo and behold, the last bits of SelectionDAG.cpp have been moved over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23665 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9a9719eea1d134809c582754188cc10df1021717 |
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
remove debugging code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23663 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c4ced268d8d35942eb57aac2ce8d5dc7580cae94 |
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
implement CodeGen/PowerPC/div-2.ll:test2-4 by propagating zero bits through C-X's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23662 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
6c4dad0b8bd75f827c83a92245df54e1f776bc61 |
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23660 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
094c8fcd14a04a3bac12eb17e7e04276ce594e11 |
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Turn sdivs into udivs when we can prove the sign bits are clear. This implements CodeGen/PowerPC/div-2.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23659 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
cf5c79b34fcffdf7f0de72bc693ddcd3e2ec47a6 |
06-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
silence a bogus GCC warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23646 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8a61a7524af19d67bd11f8e7d868ca75efbf5c91 |
06-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the LLC regressions on X86 last night. In particular, when undoing previous copy elisions and we discover we need to reload a register, make sure to use the regclass of the original register for the reload, not the class of the current register. This avoid using 16-bit loads to reload 32-bit values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23645 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
32fca00a23a9872c31999d054b4dd7c724276d9d |
06-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Make the legalizer completely non-recursive git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0558f61b0c758344ce18c548e4046b794610ea42 |
05-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Let the combiner handle more cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23641 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
829cb818065673a50101435f3c25e50ca82a02bf |
05-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove some bad code from Legalize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23640 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e17daebb30195ad5e95c1dc0ade89aa1eca9fd51 |
05-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Check in some more DAGCombiner pieces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
22480c43504eca3092f79d9b42bdbb1b413e8e53 |
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the local spiller, where we could take code like this: store r12 -> [ss#2] R3 = load [ss#1] use R3 R3 = load [ss#2] R4 = load [ss#1] and turn it into this code: store R12 -> [ss#2] R3 = load [ss#1] use R3 R3 = R12 R4 = R3 <- oops! The problem was that promoting R3 = load[ss#2] to a copy missed the fact that the instruction invalidated R3 at that point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23638 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
3ea0b47f81caeb53f9594dd3f7702ae01c4f2cc6 |
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
implement visitBR_CC so that PowerPC/inverted-bool-compares.ll passes with the dag combiner. This speeds up espresso by 8%, reaching performance parity with the dag-combiner-disabled llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
ad13715ed4068a347452de9a86f5c1a702458f83 |
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
fix some pastos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9503859c545496838165a340b1e1730dc1b83736 |
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new HandleNode class, which is used to handle (haha) cases in the dead node elim and dag combiner passes where the root is potentially updated. This fixes a fixme in the dag combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23634 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
5c46f74ec78e73bc91785299a6877f45a7b2f1df |
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Implement the code for PowerPC/inverted-bool-compares.ll, even though it that testcase still does not pass with the dag combiner. This is because not all forms of br* are folded yet. Also, when we combine a node into another one, delete the node immediately instead of waiting for the node to potentially come up in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23632 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
d48050aa1509130871b8bb2453270c92b969c2e7 |
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
make sure that -view-isel-dags is the input to the isel, not the input to the second phase of dag combining git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23631 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
91559026d346747886bb4a5a686b29d64efdd640 |
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a crash compiling Olden/tsp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23630 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
9d528dc2b4a936a9515b874b59a3c1b9b786b37b |
04-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
Reverting to version - until problem isolated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23622 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
1aa1972c63fb6b940b11250f7c12bcb368026014 |
04-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix some faulty logic in the libcall inserter. Since calls return more than one value, don't bail if one of their uses happens to be a node that's not an MVT::Other when following the chain from CALLSEQ_START to CALLSEQ_END. Once we've found a CALLSEQ_START, we can just return; there's no need to tail-recurse further up the graph. Most importantly, just because something only has one use doesn't mean we should use it's one use to follow from start to end. This faulty logic caused us to follow a chain of one-use FP operations back to a much earlier call, putting a cycle in the graph from a later start to an earlier end. This is a better fix that reverting to the workaround committed earlier today. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23620 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
27d404ccd1e86b7fffaf8037bf6b6dfb0b9d683b |
04-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Add back a workaround that fixes some breakages from chris's last change. Neither of us have yet figured out why this code is necessary, but stuff breaks if its not there. Still tracking this down... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23617 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8ba732bb1c21059153215a1cbe664a1db9293e1f |
03-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
Refactor gathering node info and emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
6db0756f021a7b9c84d3bb7ae50498feb080a013 |
03-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
clean up this code a bit, no functionality change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23609 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
53a79aaae988d9dc9d12af8970f8b8fe58cc478d |
03-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Break the body of the loop out into a new method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23606 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
ab510a76d6fed412f2dbbb29b3e123eef34f9c0a |
02-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a problem where the legalizer would run out of stack space on extremely large basic blocks because it was purely recursive. This switches it to an iterative/recursive hybrid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dcd5abc70c03fe7679363ab704da57478a948b85 |
02-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
silence a bogus warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23595 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
a3638c0f1fd13d7c685de3f7ead39b046a604d84 |
02-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add assertions to the trivial scheduler to check that the value types match up between defs and uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23590 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
14765be0bc7cba8a0cda45de3a20e0d7c33411ca |
02-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen CopyFromReg using the regclass that matches the valuetype of the destination vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23586 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
505277a7f554fcfe73e97cbdca304da5716cefa7 |
01-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add some very paranoid checking for operand/result reg class matchup For instructions that define multiple results, use the right regclass to define the result, not always the rc of result #0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
2aeaf4e839438d51766996006fc22310d05ab2a7 |
01-Oct-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
37345fe3cd2dd56c3711592a5af6c294c10c7aba |
01-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23575 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
22f6212e9f1551c93a76f2ad8ea0e9688a3e3775 |
01-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23574 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
41755e2c7e112f96a448e71521685318fe42f37e |
01-Oct-2005 |
Jim Laskey <jlaskey@mac.com> |
1. Simplify the gathering of node groups. 2. Printing node groups when displaying nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
b6d4c2cf2d3e5173fb16c24d93b18eb13ba04f37 |
30-Sep-2005 |
Jim Laskey <jlaskey@mac.com> |
1. Made things node-centric (from operand). 2. Added node groups to handle flagged nodes. 3. Started weaning simple scheduling off existing emitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23566 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
8fb040e584606f048b85d87363a52baf5ff9c1c7 |
30-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
now that we have a reg class to spill with, get this info from the regclass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23559 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
80a4f169b4a8cd160f832fd4a1052e5d9b2c1a92 |
30-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Now that we have getCalleeSaveRegClasses() info, use it to pass the register class into the spill/reload methods. Targets can now rely on that argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23556 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
bf9716b9c48d3b0370c715cd79540945f73dc296 |
30-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Change this code ot pass register classes into the stack slot spiller/reloader code. PrologEpilogInserter hasn't been updated yet though, so targets cannot use this info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23536 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
irtRegMap.cpp
|
473a99073cc29f59809a0d5dfee11f5e9e6ad2b7 |
29-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix two bugs in my patch earlier today that broke int->fp conversion on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23522 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fef80f43e0f5be66baf74db5e585ef10a101b355 |
29-Sep-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Silence VC++ redeclaration warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23516 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
01b3d73c20f5afb8265ae943a8ba23c2238c5eea |
29-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add FP versions of the binary operators, keeping the int and fp worlds seperate. Though I have done extensive testing, it is possible that this will break things in configs I can't test. Please let me know if this causes a problem and I'll fix it ASAP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23504 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6c38b33613d64522581dc55d82fffa4aee0e9f22 |
28-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
If the target prefers it, use _setjmp/_longjmp should be used instead of setjmp/longjmp for llvm.setjmp/llvm.longjmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23481 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
8e6be8b9218b3b9c44b784b559d49236f80c1049 |
28-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
initialize new flag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23480 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
5324fec6449555a76fa622a1a90760d42c50bd6b |
27-Sep-2005 |
Jim Laskey <jlaskey@mac.com> |
Remove some redundancies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e6b90fba4a0ab4ea14bbb11f029305b7153905cb |
26-Sep-2005 |
Jim Laskey <jlaskey@mac.com> |
Addition of a simple two pass scheduler. This version is currently hacked up for testing and will require target machine info to do a proper scheduling. The simple scheduler can be turned on using -sched=simple (defaults to -sched=none) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23455 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
5ae7911b2437aec6f695d6820284ff7bc60ec97a |
23-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Turn (X^C1) == C2 into X == C1^C2 iff X&~C1 = 0 (and move a function) This happens all the time on PPC for bool values, e.g. eliminating a xori in inverted-bool-compares.ll. This should be added to the dag combiner as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23403 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3c3fe462f7978b429ecdd71750c26be25c3d1335 |
21-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Expose the LiveInterval interfaces as public headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23400 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
44728a7bb65f5228fff631da807ed7ed3c791a8d |
20-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Stub out the rest of the DAG Combiner. Just need to fill in the select_cc bits and then wrap it in a convenience function for use with regular select. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23389 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
cea8688ee4637e0f3cffc75e47f15be756f043bf |
19-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Teach the local spiller to turn stack slot loads into register-register copies when possible, avoiding the load (and avoiding the copy if the value is already in the right register). This patch came about when I noticed code like the following being generated: store R17 -> [SS1] ...blah... R4 = load [SS1] This was causing an LSU reject on the G5. This problem was due to the register allocator folding spill code into a reg-reg copy (producing the load), which prevented the spiller from being able to rewrite the load into a copy, despite the fact that the value was already available in a register. In the case above, we now rip out the R4 load and replace it with a R4 = R17 copy. This speeds up several programs on X86 (which spills a lot :) ), e.g. smg2k from 22.39->20.60s, povray from 12.93->12.66s, 168.wupwise from 68.54->53.83s (!), 197.parser from 7.33->6.62s (!), etc. This may have a larger impact in some cases on the G5 (by avoiding LSU rejects), though it probably won't trigger as often (less spilling in general). Targets that implement folding of loads/stores into copies should implement the isLoadFromStackSlot hook to get this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23388 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
452d7bebaab3990ed16efa5f21b1031894a99caf |
16-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
More DAG combining. Still need the branch instructions, and select_cc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23371 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
fa57702388f139e964befecb4b98c7dfe836945f |
13-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
If a function has liveins, and if the target requested that they be plopped into particular vregs, emit copies into the entry MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
13d58e71b7ab2857162b88860c56dce4c9cea3de |
10-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to say they don't support truncstore i1 (which includes a mask when storing to an 8-bit memory location), as most don't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23303 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a500fc681de6329194e9755e051422d621387aa3 |
10-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add a missing #include, patch courtesy of Baptiste Lepilleur. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23302 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
3ec5d74fc5bc03bdb3ab5876799dff4d82e38193 |
10-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a problem duraid encountered on itanium where this folding: select (x < y), 1, 0 -> (x < y) incorrectly: the setcc returns i1 but the select returned i32. Add the zero extend as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23301 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
08addbd4770a60adb6dbdc29cf73e7720f08197a |
10-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a crash viewing dags that have target nodes in them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23300 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
50ea01ed5ba23c8988af9fed0b91178e69140a80 |
09-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Use continue in the use-processing loop to make it clear what the early exits are, simplify logic, and cause things to not be nested as deeply. This also uses MRI->areAliases instead of an explicit loop. No functionality change, just code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23296 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
39ee1ac7e58a66aff7f6986c04878bb7e1bc5b5d |
09-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Last round of 2-node folds from SD.cpp. Will move on to 3 node ops such as setcc and select next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23295 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
ceb0a5223180c01c6ea6e26ae9556b3797b47f02 |
09-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
remove debugging code *slaps head* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23294 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b11443dc8458b0ba72d484dacf99dffa2e8d3b51 |
09-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
When spilling a live range that is used multiple times by one instruction, only add a reload live range once for the instruction. This is one step towards fixing a regalloc pessimization that Nate notice, but is later undone by the spiller (so no code is changed). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23293 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
223df2269da508eadc160e34e0dc03c9e02e7d0b |
08-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Move yet more folds over to the dag combiner from sd.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23278 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
998011927000c8150499bb887ca0d68bb1ff38c2 |
08-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Another round of dag combiner changes. This fixes some missing XOR folds as well as fixing how we replace old values with new values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23260 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAG.cpp
|
dc6e2e0a5f3ee81d85922790aaedc80740820a8b |
07-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug that Tzu-Chien Chiu noticed: live interval analysis does NOT preserve livevar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23259 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f89d78d7c7c93e83c0f19ecabc16cef4ba748d61 |
07-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Implement a common missing fold, (add (add x, c1), c2) -> (add x, c1+c2). This restores all of stanford to being identical with and without the dag combiner with the add folding turned off in sd.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23258 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1e111c7bbb50eec1cb1ebc7d12fcfb22c36f8d87 |
07-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug nate ran into with replacealluseswith. In the recursive cse case, we were losing a node, causing an assertion to fail. Now we eagerly delete discovered CSE's, and provide an optional vector to keep track of these discovered equivalences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23255 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2300f5504643eaddc307d3db8a3ccd224c4fa251 |
07-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Add an option to the DAG Combiner to enable it for beta runs, and turn on that option for PowerPC's beta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23253 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
electionDAG/SelectionDAGISel.cpp
|
83e75ecd2725aed3ace0bd52945f2b5266696d00 |
06-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Next round of DAGCombiner changes. This version now passes all the tests I have run so far when run before Legalize. It still needs to pick up the SetCC folds, and nodes that use SetCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6a8a21ced4fd1bb3655aa3b5990a6e9b65022089 |
03-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a checking failure in gs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23235 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
646d7e2727950b7729b9b1604a7c84246e81550f |
02-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Next round of DAG Combiner changes. Just need to support multiple return values, and then we should be able to hook it up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
6fdcb250d5692235813b30274cdfcd0e76377f00 |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Clean up some code from the last checkin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23229 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
99c25b86aa85b0093f24b2394a5aa37f66294b2b |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in legalize where it would emit two calls to libcalls that return i64 values on targets that need that expanded to 32-bit registers. This fixes PowerPC/2005-09-02-LegalizeDuplicatesCalls.ll and speeds up 189.lucas from taking 122.72s to 81.96s on my desktop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
70b9b1098a82990cca7804ba6425e7aa151ea8b4 |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Make sure to auto-cse nullary ops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23224 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6621e3b9636174886c9665b648f2ddc13effbc8a |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix some buggy logic where we would try to remove nodes with two operands from the binary ops map, even if they had multiple results. This latent bug caused a few failures with the dag isel last night. To prevent stuff like this from happening in the future, add some really strict checking to make sure that the CSE maps always match up with reality! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23221 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fd88f64934c43613dd4a70b97db620de1338782b |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Don't create zero sized stack objects even for array allocas with a zero number of elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23219 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a639a43602cd64087a9730632fbf6f7cf7d88276 |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the release build, noticed by Eric van Riet Paap git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23215 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
08951a32fbc1de3ec3746e14109a74ca506ca251 |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Make sure to legalize assert[zs]ext's operand correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23208 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5ab6f5fe666d0e3403d9b777324d1a1999118153 |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Teach live intervals to not crash on dead livein regs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23206 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
fab08875b73656f373b10a59aad475615df82baf |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
For values that are live across basic blocks and need promotion, use ANY_EXTEND instead of ZERO_EXTEND to eliminate extraneous extensions. This eliminates dead zero extensions on formal arguments and other cases on PPC, implementing the newly tightened up test/Regression/CodeGen/PowerPC/small-arguments.ll test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
13c78e2e5f158e9008b279b43b685ff02bb3cbea |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
legalize ANY_EXTEND appropriately git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4ed11b4b791422af543c87d5451183a2a1081e80 |
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for ANY_EXTEND and add a few minor folds for it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
39f60a230243d8da02f5e17be3f8918f689ec72b |
02-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix some code in the current node combining code, spotted when it was moved over to DAGCombiner.cpp 1. Don't assume that SetCC returns i1 when folding (xor (setcc) constant) 2. Don't duplicate code in folding AND with AssertZext that is handled by MaskedValueIsZero git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4ebd805c6af9db5099214b463003387691df50e8 |
02-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Implement first round of feedback from chris (there's still a couple things left to do). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23195 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
da8abb02397d7cd62a1e16e7c534edd7096ac873 |
01-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
It is NDEBUG not _NDEBUG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23186 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4942a9687dc6c3322dd135cab005c1dd7345df23 |
01-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Add the rest of the currently implemented visit routines to the switch statement in visit(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23185 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
1d4d41411190dd9e62764e56713753d4155764dd |
01-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
First pass at the DAG Combiner. It isn't used anywhere yet, but it should be mostly functional. It currently has all folds from SelectionDAG.cpp that do not involve a condition code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23184 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGCombiner.cpp
|
a1f68ca94e763945f9accc75768a55a84bae6cfb |
01-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
If a function has live ins/outs, print them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23181 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
50ec8979047065bd0ff41fac4ffd44f744b77723 |
31-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to custom expand shifts that are too large for their registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23173 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7383ce4127f0e1d9ff4eaaa7dac8e71e02d860c6 |
31-Aug-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ precedence warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23169 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fe75a2836abd15557cf21a5cc34a7048cbba654f |
31-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Sigh, not my day. Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9f52f2838d99774d3262bfce7b22d70a7a3f0196 |
31-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a mistake in my previous patch pointed out by sabre; the AssertZext case in MaskedValueIsZero was wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b85dfab8898807d592ea96acf19f41ebcd9e8813 |
31-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove some unnecessary casts, and add the AssertZext case to MaskedValueIsZero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23164 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0fdd7680948a6facf34e0791bd2dfa8b5a2e4942 |
31-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Allow physregs to occur in the dag with multiple types. Though I don't likethis, it is a requirement on PPC, which can have an f32 value in r3 at onepoint in a function and a f64 value in r3 at another point. :( This fixes compilation of mesa git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23161 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e836ad6736492c239be8f1d125369ae8ef0d9401 |
30-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
When checking the fixed intervals, don't forget to check for register aliases. This fixes PR621 and Regression/CodeGen/X86/2005-08-30-RegAllocAliasProblem.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23158 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
cc0675a4be9a5133abd48ee272ff999ae48feabf |
30-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix FreeBench/fourinarow with the dag isel, by not adding a bogus result to SHIFT_PARTS nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23151 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ec176e30d655f96d75b49e620a849008bf0f63a2 |
30-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a miscompile of PtrDist/bc. Sign extending bools is not the right thing, at least tends to expose problems elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23149 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
5ffcd9b56c527c060b6d7c128610916f6afb507a |
30-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove a bogus piece of my AssertSext/AssertZext patch. oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
56eb86806d5d178d42108f17d11098b3e640b996 |
30-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add support for AssertSext and AssertZext, folding other extensions with them. This allows for elminination of redundant extends in the entry blocks of functions on PowerPC. Add support for i32 x i32 -> i64 multiplies, by recognizing when the inputs to ISD::MUL in ExpandOp are actually just extended i32 values and not real i64 values. this allows us to codegen int mulhs(int a, int b) { return ((long long)a * b) >> 32; } as: _mulhs: mulhw r3, r4, r3 blr instead of: _mulhs: mulhwu r2, r4, r3 srawi r5, r3, 31 mullw r5, r4, r5 add r2, r2, r5 srawi r4, r4, 31 mullw r3, r4, r3 add r3, r2, r3 blr with a similar improvement on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23147 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
f155635b53e02e3460af3374000d22d1f8432f1c |
30-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Name this variable to be what it really is! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23145 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
55334fc45c27c55de61d895e4ec704f0727ebb46 |
30-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Handle CopyToReg nodes with flag operands correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23144 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
82e14db9a90413cc11fcf2ba27431346146aed75 |
30-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add a hack to avoid some horrible code in some cases by always emitting token chains first. For this C function: int test() { int i; for (i = 0; i < 100000; ++i) foo(); } Instead of emitting this (condition before call) .LBB_test_1: ; no_exit addi r30, r30, 1 lis r2, 1 ori r2, r2, 34464 cmpw cr2, r30, r2 bl L_foo$stub bne cr2, .LBB_test_1 ; no_exit Emit this: .LBB_test_1: ; no_exit bl L_foo$stub addi r30, r30, 1 lis r2, 1 ori r2, r2, 34464 cmpw cr0, r30, r2 bne cr0, .LBB_test_1 ; no_exit Which makes it so we don't have to save/restore cr2 in the prolog/epilog of the function. This also makes the code much more similar to what the pattern isel produces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23135 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
c26aefa15ae7f02b37923f6fed5a74d60e76ff56 |
29-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new API for Nate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23131 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5e3efbc2ca459621400211f7370d7f121d4827d9 |
29-Aug-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Some of us cared about the the promote path git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23130 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
507f752f6ed28aa9f0ae680e95bfc93df4e9e2dc |
29-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix an infinite loop on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23129 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dfd58709cc78e841ef4a50ba75d940473031617e |
29-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in my previous patch that was using the wrong iterator. This fixes Olden/bisort among others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23124 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
ff01698ec037050fd9452d3b3486de568024ee72 |
29-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in ReplaceAllUsesWith git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0f9beca707b98ecfc7af252c5827958f7ede4c74 |
27-Aug-2005 |
Reid Spencer <rspencer@reidspencer.com> |
Change the names of member variables per Chris' instructions, and document them more clearly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23118 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
88b9c159120703555a30314411af26f425597d90 |
27-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Disable this code, which broke many tests last night git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23114 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
620c93cca1aeef8a53b00eee19e3f16926dcc1cf |
27-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
fix PHI node emission for basic blocks that have select_cc's in them on ppc32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23113 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
eb150d7d1fe0a7c63a9008798324a284bbcb9ce9 |
27-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Nate noticed that Andrew never did this. This fixes PR600 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23110 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9d3a483a3826d3749c2db9863ddb6e824f1dd6d4 |
27-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Don't copy regs that are only used in the entry block into a vreg. This changes the code generated for: short %test(short %A) { %B = xor short %A, -32768 ret short %B } to: _test: xori r2, r3, 32768 xoris r2, r2, 65535 extsh r3, r2 blr instead of: _test: rlwinm r2, r3, 0, 16, 31 xori r2, r3, 32768 xoris r2, r2, 65535 extsh r3, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23109 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ed461e0fafbd0b905cb716df108000bcd6ecf3d4 |
27-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Make this code safe for when loadRegFromStackSlot inserts multiple instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23108 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
579cfabdade805651c42971a22ae042dba3a33c4 |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Checking types here is not safe, because multiple types can map to the same register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23103 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
025c39bf36b6bc2f35a5544338de6cf96fa511a9 |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Call the InsertAtEndOfBasicBlock hook if the usesCustomDAGSchedInserter flag is set on an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23098 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
8b52f21f100b090c49fc264fc482942c767eaa18 |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Revampt ReplaceAllUsesWith to be more efficient and easier to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23087 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5839bf2b3bd22689d9dd0e9de66c2dce71d130ae |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Change ConstantPoolSDNode to actually hold the Constant itself instead of putting it into the constant pool. This allows the isel machinery to create constants that it will end up deciding are not needed, without them ending up in the resultant function constant pool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23081 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/ScheduleDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
2bb06cdf27905cf95bd39e4120f1ad57c68ac73e |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a huge annoyance: SelectNodeTo took types before the opcode unlike every other SD API. Fix it to take the opcode before the types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23079 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d7050a9c50211dd215cb3c2bc28b4fb6bfa4a116 |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
the 5th operand is the 4th number git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23074 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
23004e5f21716671401e95e3be91d87dc7d4d68b |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that want to custom expand select_cc in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23071 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
07dffd6af673c73352150583150b242a93694f00 |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Allow LowerOperation to return a null SDOperand in case it wants to lower some things given to it, but not all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23070 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f07d023dd9a4638dc157d1361482c780117c1302 |
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a nasty bug from a previous patch of mine git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23069 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1999b4b974d2674e94953c32e5e4a47ede7664b4 |
25-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
New fold for SELECT_CC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23058 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
43247a157b613dbf3caedacdbb171a9d653e3ef5 |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Don't auto-cse nodes that return flags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23055 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9d338cf3a3888c18cb031e6bf7633992c0c0b8a0 |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
simplify the code a bit using isOperationLegal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23053 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
376d54f9b622424bbc485834f45e8e4fc0001749 |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for flag operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23050 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
4025a9c2cc4ac3b9efa465a2f64be50fdaba9da9 |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
ADd support for TargetConstantPool nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23041 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
afb2dd43de61f4585e75d1f3ab93a9ac4b3b7592 |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a new TargetFrameIndex node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23035 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7651fa4a7ed1c81abb004847af1eeb3beb9c88fd |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23027 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7b2880c4cd29f5a90ac8af897f970b3199a9bbb1 |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add ReplaceAllUsesWith that can take a vector of replacement values. Add some foldings to hopefully help the illegal setcc issue, and move some code around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23025 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
14b392af1d696c3880b1ed1e5202533d7afe3855 |
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for external symbols, and support for variable arity instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23022 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
e39db07713641cb933d1183a343ffe4eb8f44492 |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix pasto that prevented VT ndoes from showing up in -view-isel-dags correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23021 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
1d6373c1af26236385e41b52b3a4d93c00bf7431 |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
teach selection dag mask tracking about the fact that select_cc operates like select. Also teach it that the bit count instructions can only set the low bits of the result, depending on the size of the input. This allows us to compile this: int %eq0(int %a) { %tmp.1 = seteq int %a, 0 ; <bool> [#uses=1] %tmp.2 = cast bool %tmp.1 to int ; <int> [#uses=1] ret int %tmp.2 } To this: _eq0: cntlzw r2, r3 srwi r3, r2, 5 blr instead of this: _eq0: cntlzw r2, r3 rlwinm r3, r2, 27, 31, 31 blr when setcc is marked illegal on ppc (which restores parity to non-illegal setcc). Thanks to Nate for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23013 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c9c60f6429416d362c2131b14d097ce0a9ac9599 |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Start using isOperationLegal and isTypeLegal to simplify the code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23012 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9ed62c16f2b463461fa8667143969fea0b81781e |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to new interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23010 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
cebd433d8de9cdfeea4a27341e4afea7ca5fca67 |
24-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach SelectionDAG how to simplify a few more setcc-equivalent select_cc nodes so that backends don't have to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22999 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
82cfa5d616ff0f760425cbf6e2983fbab618fbda |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Make -view-isel-dags show the dag before instruction selecting, in case the target isel crashes due to unimplemented features like calls :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22997 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0750a40a4ff494a2dec24f5761149b8b00e642c5 |
24-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix optimization of select_cc seteq X, 0, 1, 0 -> srl (ctlz X), log2 X size git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22995 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
657b4d1ac6a64d8751ed8c53d662201dab4438e1 |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Implement LiveVariables.h change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22994 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
44b94c2185f4c1b826ec6003d25370cf2efac219 |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
adjust to new live variables interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22992 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
egAllocLocal.cpp
|
ab4b66d4c279e8cd9e448687020fc838e7881dbc |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify this code by using higher-level LiveVariables methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22989 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b980578b4160cf8ef1ba6d33e85c50eaeef0eef8 |
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Keep track of which registers are related to which other registers. Use this information to avoid doing expensive interval intersections for registers that could not possible be interesting. This speeds up linscan on ia64 compiling kc++ in release mode from taking 7.82s to 4.8s(!), total itanium llc time on this program is 27.3s now. This marginally speeds up PPC and X86, but they appear to be limited by other parts of linscan, not this code. On this program, on itanium, live intervals now takes 41% of llc time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22986 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
7042f15bded917ba68e5e66be873ad4d06f9ca2d |
23-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the SelectionDAG how to transform select_cc eq, X, 0, 1, 0 into either seteq X, 0 or srl (ctlz X), size(X-1), depending on what's legal for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22978 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b942a3dd5f9318b2c57f137d2991440c2f0262ad |
23-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach Legalize how to turn setcc into select_cc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22977 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a411cbca5c081f0813ff507901be412903894423 |
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Try to avoid scanning the fixed list. On architectures with a non-stupid number of regs (e.g. most riscs), many functions won't need to use callee clobbered registers. Do a speculative check to see if we can get a free register without processing the fixed list (which has all of these). This saves a lot of time on machines with lots of callee clobbered regs (e.g. ppc and itanium, also x86). This reduces ppc llc compile time from 184s -> 172s on kc++. This is probably worth FAR FAR more on itanium though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22972 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
a6c1750362ffb5e8c5b5b5232442cd4c49eafdc8 |
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Move some code in the register assignment case that only needs to happen if we spill out of the fast path. The scan of active_ and the calls to updateSpillWeights don't need to happen unless a spill occurs. This reduces debug llc time of kc++ with ppc from 187.3s to 183.2s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22971 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
8f03405ee57094d627c342fb6087399a30009a02 |
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a problem where constant expr shifts would not have their shift amount promoted to the right type. This fixes: IA64/2005-08-22-LegalizerCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f8355d9846ab9b24d052870ca19c23b332c95d1e |
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Speed up this loop a bit, based on some observations that Nate made, and add some comments. This loop really needs to be reevaluated! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22966 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
23553cfb4a7f859e0dbfef2f9fb739526bad8984 |
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add a fast-path for register values. Add support for constant pool entries, allowing us to compile this: float %test2(float* %P) { %Q = load float* %P %R = add float %Q, 10.1 ret float %R } to this: _test2: lfs r2, 0(r3) lis r3, ha16(.CPI_test2_0) lfs r3, lo16(.CPI_test2_0)(r3) fadds f1, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22962 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
c975e1dedcffd55894a14b41ccdb7255aaf19034 |
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add anew method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
81e72b13d778772738747b0d9fd2131855db42c4 |
21-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for frame index nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22956 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
99baddaf57e0ae8eb7e09504262b47e7ed44520e |
21-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22955 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6b09a296049d765ad663ae21ab1b26ce7c2c93ae |
21-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22949 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f85ab15acfd44de684df7153f9c07ec67139f8d9 |
21-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for basic blocks, fix a bug in result # computation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
550b1e59c4eb5db020766012b1406fc56833251d |
21-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
When legalizing brcond ->brcc or select -> selectcc, make sure to truncate the old condition to a one bit value. The incoming value must have been promoted, and the top bits are undefined. This causes us to generate: _test: rlwinm r2, r3, 0, 31, 31 li r3, 17 cmpwi cr0, r2, 0 bne .LBB_test_2 ; .LBB_test_1: ; li r3, 1 .LBB_test_2: ; blr instead of: _test: rlwinm r2, r3, 0, 31, 31 li r2, 17 cmpwi cr0, r3, 0 bne .LBB_test_2 ; .LBB_test_1: ; li r2, 1 .LBB_test_2: ; or r3, r2, r2 blr for: int %test(bool %c) { %retval = select bool %c, int 17, int 1 ret int %retval } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22947 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fe0c2c8721fc448fec15e6361d727de70f5f61e2 |
20-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
fix bogus warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22943 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
9b78db7f16193f4a4ad866ea4d98f482b70e3171 |
20-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for global address nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22940 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
aaaa0b67dd0a943ee9275c42d7df4bd244d52c95 |
20-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for TargetGlobalAddress nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22938 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7ef330478ff7f87fece5144ebeb5783894fa3f33 |
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Implement CopyFromReg, TokenFactor, and fix a bug in CopyToReg. This allows us to compile stuff like this: double %test(double %A, double %B, double %C, double %E) { %F = mul double %A, %A %G = add double %F, %B %H = sub double -0.0, %G %I = mul double %H, %C %J = add double %I, %E ret double %J } to: _test: fnmadd f0, f1, f1, f2 fmadd f1, f0, f3, f4 blr woot! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
fa164b61d11a3fe4056c8e9b97209bfda6c0b61b |
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in previous commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22936 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7228aa78686c2920c0f8588628b1278698720d07 |
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Print physreg register nodes with target names (e.g. F1) instead of numbers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22934 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
0189197608d14f03437da889b87393d59cc5c66a |
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Before implementing copyfromreg, we'll implement copytoreg correctly. This gets us this for the previous testcase: _test: lis r2, 0 ori r3, r2, 65535 blr Note that we actually write to r3 (the return reg) correctly now :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22933 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
4ccd406317942375c32b223625d757180867a547 |
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Now that we have operand info for machine instructions, use it to create temporary registers for things that define a register. This allows dag->dag isel to compile this: int %test() { ret int 65535 } into: _test: lis r2, 0 ori r2, r2, 65535 blr Next up, getting CopyFromReg to work, allowing arguments and cross-bb values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22932 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
23c73a182353330f982eca95cf5e83d8e5ed7512 |
19-Aug-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ constant truncation warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22907 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
a92b7c36e97c22bf528706bfceb568ff512de751 |
19-Aug-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ precedence warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22902 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ca6aa2f70ca1325d8cc4af3d6a7d99ab693e5456 |
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix computation of # operands, add a temporary hack for CopyToReg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22896 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
068ca15d5e1c55af57e2b0898c1ea6a5aee836c0 |
18-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a new -view-sched-dags option to view dags as they are sent to the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22878 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
2d973e45b8a8d33f45ccb4940f599cadcfa5a19d |
18-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Implement the first chunk of a code emitter. This is sophisticated enough to codegen: _empty: .LBB_empty_0: ; blr but can't do anything more (yet). :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22876 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
d32b23690d9919a31ac6c56b2783efb622051e75 |
18-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
new file, obviously just a stub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/ScheduleDAG.cpp
|
36b708f05720c407f5e5657f2fd4b0677702ad46 |
18-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Enable critical edge splitting by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22863 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
294a0a103d561864f2089b9f5948fb1a49801918 |
18-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add support for target DAG nodes that take 4 operands, such as PowerPC's rlwinm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a23e8154dc58a62225074bb4eb1633c363ce331b |
18-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix printing of VTSDNodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22853 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
58b968be853ef02d0f448e5e2c31676e361c210f |
17-Aug-2005 |
Jim Laskey <jlaskey@mac.com> |
Move the code dependency for MathExtras.h from SelectionDAGNodes.h. Added some class dividers in SelectionDAG.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22841 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
cb6682fa44e13262bdef7dd22b4ba90f8c2e7b97 |
17-Aug-2005 |
Jim Laskey <jlaskey@mac.com> |
Culling out use of unions for converting FP to bits and vice versa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22838 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
8b8749f367fd30a8a3d57284576a6d59b60b69eb |
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in RemoveDeadNodes where it would crash when its "optional" argument is not specified. Implement ReplaceAllUsesWith. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22834 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
02659d23637f69f90640bfa3e66919517103c57a |
17-Aug-2005 |
Jim Laskey <jlaskey@mac.com> |
Switched to using BitsToDouble for int_to_float to avoid aliasing problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22831 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
491dfa88e48ac48b1dae0adf89d2ff77c828c735 |
17-Aug-2005 |
Jim Laskey <jlaskey@mac.com> |
Change hex float constants for the sake of VC++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22828 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
495a0b51915eb763576874f29192820b731edc22 |
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new beta option for critical edge splitting, to avoid a problem that Nate noticed in yacr2 (and I know occurs in other places as well). This is still rough, as the critical edge blocks are not intelligently placed but is added to get some idea to see if this improves performance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22825 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
fae59b99b8d1942f30a4be609423282c3fd62dd8 |
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a regression on X86, where FP values can be promoted too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22822 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6269ed125fc492d81dc5e3f48482816fc9d47f49 |
17-Aug-2005 |
Jim Laskey <jlaskey@mac.com> |
Added generic code expansion for [signed|unsigned] i32 to [f32|f64] casts in the legalizer. PowerPC now uses this expansion instead of ISel version. Example: // signed integer to double conversion double f1(signed x) { return (double)x; } // unsigned integer to double conversion double f2(unsigned x) { return (double)x; } // signed integer to float conversion float f3(signed x) { return (float)x; } // unsigned integer to float conversion float f4(unsigned x) { return (float)x; } Byte Code: internal fastcc double %_Z2f1i(int %x) { entry: %tmp.1 = cast int %x to double ; <double> [#uses=1] ret double %tmp.1 } internal fastcc double %_Z2f2j(uint %x) { entry: %tmp.1 = cast uint %x to double ; <double> [#uses=1] ret double %tmp.1 } internal fastcc float %_Z2f3i(int %x) { entry: %tmp.1 = cast int %x to float ; <float> [#uses=1] ret float %tmp.1 } internal fastcc float %_Z2f4j(uint %x) { entry: %tmp.1 = cast uint %x to float ; <float> [#uses=1] ret float %tmp.1 } internal fastcc double %_Z2g1i(int %x) { entry: %buffer = alloca [2 x uint] ; <[2 x uint]*> [#uses=3] %tmp.0 = getelementptr [2 x uint]* %buffer, int 0, int 0 ; <uint*> [#uses=1] store uint 1127219200, uint* %tmp.0 %tmp.2 = cast int %x to uint ; <uint> [#uses=1] %tmp.3 = xor uint %tmp.2, 2147483648 ; <uint> [#uses=1] %tmp.5 = getelementptr [2 x uint]* %buffer, int 0, int 1 ; <uint*> [#uses=1] store uint %tmp.3, uint* %tmp.5 %tmp.9 = cast [2 x uint]* %buffer to double* ; <double*> [#uses=1] %tmp.10 = load double* %tmp.9 ; <double> [#uses=1] %tmp.13 = load double* cast (long* %signed_bias to double*) ; <double> [#uses=1] %tmp.14 = sub double %tmp.10, %tmp.13 ; <double> [#uses=1] ret double %tmp.14 } internal fastcc double %_Z2g2j(uint %x) { entry: %buffer = alloca [2 x uint] ; <[2 x uint]*> [#uses=3] %tmp.0 = getelementptr [2 x uint]* %buffer, int 0, int 0 ; <uint*> [#uses=1] store uint 1127219200, uint* %tmp.0 %tmp.1 = getelementptr [2 x uint]* %buffer, int 0, int 1 ; <uint*> [#uses=1] store uint %x, uint* %tmp.1 %tmp.4 = cast [2 x uint]* %buffer to double* ; <double*> [#uses=1] %tmp.5 = load double* %tmp.4 ; <double> [#uses=1] %tmp.8 = load double* cast (long* %unsigned_bias to double*) ; <double> [#uses=1] %tmp.9 = sub double %tmp.5, %tmp.8 ; <double> [#uses=1] ret double %tmp.9 } internal fastcc float %_Z2g3i(int %x) { entry: %buffer = alloca [2 x uint] ; <[2 x uint]*> [#uses=3] %tmp.0 = getelementptr [2 x uint]* %buffer, int 0, int 0 ; <uint*> [#uses=1] store uint 1127219200, uint* %tmp.0 %tmp.2 = cast int %x to uint ; <uint> [#uses=1] %tmp.3 = xor uint %tmp.2, 2147483648 ; <uint> [#uses=1] %tmp.5 = getelementptr [2 x uint]* %buffer, int 0, int 1 ; <uint*> [#uses=1] store uint %tmp.3, uint* %tmp.5 %tmp.9 = cast [2 x uint]* %buffer to double* ; <double*> [#uses=1] %tmp.10 = load double* %tmp.9 ; <double> [#uses=1] %tmp.13 = load double* cast (long* %signed_bias to double*) ; <double> [#uses=1] %tmp.14 = sub double %tmp.10, %tmp.13 ; <double> [#uses=1] %tmp.16 = cast double %tmp.14 to float ; <float> [#uses=1] ret float %tmp.16 } internal fastcc float %_Z2g4j(uint %x) { entry: %buffer = alloca [2 x uint] ; <[2 x uint]*> [#uses=3] %tmp.0 = getelementptr [2 x uint]* %buffer, int 0, int 0 ; <uint*> [#uses=1] store uint 1127219200, uint* %tmp.0 %tmp.1 = getelementptr [2 x uint]* %buffer, int 0, int 1 ; <uint*> [#uses=1] store uint %x, uint* %tmp.1 %tmp.4 = cast [2 x uint]* %buffer to double* ; <double*> [#uses=1] %tmp.5 = load double* %tmp.4 ; <double> [#uses=1] %tmp.8 = load double* cast (long* %unsigned_bias to double*) ; <double> [#uses=1] %tmp.9 = sub double %tmp.5, %tmp.8 ; <double> [#uses=1] %tmp.11 = cast double %tmp.9 to float ; <float> [#uses=1] ret float %tmp.11 } PowerPC Code: .machine ppc970 .const .align 2 .CPIl1__Z2f1i_0: ; float 0x4330000080000000 .long 1501560836 ; float 4.5036e+15 .text .align 2 .globl l1__Z2f1i l1__Z2f1i: .LBBl1__Z2f1i_0: ; entry xoris r2, r3, 32768 stw r2, -4(r1) lis r2, 17200 stw r2, -8(r1) lfd f0, -8(r1) lis r2, ha16(.CPIl1__Z2f1i_0) lfs f1, lo16(.CPIl1__Z2f1i_0)(r2) fsub f1, f0, f1 blr .const .align 2 .CPIl2__Z2f2j_0: ; float 0x4330000000000000 .long 1501560832 ; float 4.5036e+15 .text .align 2 .globl l2__Z2f2j l2__Z2f2j: .LBBl2__Z2f2j_0: ; entry stw r3, -4(r1) lis r2, 17200 stw r2, -8(r1) lfd f0, -8(r1) lis r2, ha16(.CPIl2__Z2f2j_0) lfs f1, lo16(.CPIl2__Z2f2j_0)(r2) fsub f1, f0, f1 blr .const .align 2 .CPIl3__Z2f3i_0: ; float 0x4330000080000000 .long 1501560836 ; float 4.5036e+15 .text .align 2 .globl l3__Z2f3i l3__Z2f3i: .LBBl3__Z2f3i_0: ; entry xoris r2, r3, 32768 stw r2, -4(r1) lis r2, 17200 stw r2, -8(r1) lfd f0, -8(r1) lis r2, ha16(.CPIl3__Z2f3i_0) lfs f1, lo16(.CPIl3__Z2f3i_0)(r2) fsub f0, f0, f1 frsp f1, f0 blr .const .align 2 .CPIl4__Z2f4j_0: ; float 0x4330000000000000 .long 1501560832 ; float 4.5036e+15 .text .align 2 .globl l4__Z2f4j l4__Z2f4j: .LBBl4__Z2f4j_0: ; entry stw r3, -4(r1) lis r2, 17200 stw r2, -8(r1) lfd f0, -8(r1) lis r2, ha16(.CPIl4__Z2f4j_0) lfs f1, lo16(.CPIl4__Z2f4j_0)(r2) fsub f0, f0, f1 frsp f1, f0 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22814 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
37bfbb47de5381704471af6178bfbba29260297c |
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a new TargetConstant node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22813 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d5d0f9bd20d9df07d6b4d41b7e8ed6d33b6a649d |
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate the RegSDNode class, which 3 nodes (CopyFromReg/CopyToReg/ImplicitDef) used to tack a register number onto the node. Instead of doing this, make a new node, RegisterSDNode, which is a leaf containing a register number. These three operations just become normal DAG nodes now, instead of requiring special handling. Note that with this change, it is no longer correct to make illegal CopyFromReg/CopyToReg nodes. The legalizer will not touch them, and this is bad, so don't do it. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
7cbd525ba85ebe440d15fa359ec940e404d14906 |
16-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Implement BR_CC and BRTWOWAY_CC. This allows the removal of a rather nasty fixme from the PowerPC backend. Emit slightly better code for legalizing select_cc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22805 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
f3e133a35f5aa6ed32ca29aa3675eff349d61008 |
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Allow passing a dag into dump and getOperationName. If one is available when printing a node, use it to render target operations with their target instruction name instead of "<<unknown>>". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22804 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ad95d6ab201bad53ae155a06d49cc16cfbebe507 |
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Use a extant helper to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22802 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
149c58ce0b94e64faf3c4ccdbf894061cf7d66e1 |
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add some methods for dag->dag isel. Split RemoveNodeFromCSEMaps out of DeleteNodesIfDead to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22801 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
2d56e72f09337a1cab3ba199a9467c159296f3fa |
14-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix last night's PPC32 regressions by 1. Not selecting the false value of a select_cc in the false arm, which isn't legal for nested selects. 2. Actually returning the node we created and Legalized in the FP_TO_UINT Expander. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22789 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d2558e3e4af2930730e2314868afd09ba005e282 |
14-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the legalizer how to legalize FP_TO_UINT. Teach the legalizer to promote FP_TO_UINT to FP_TO_SINT if the wider FP_TO_UINT is also illegal. This allows us on PPC to codegen unsigned short foo(float a) { return a; } as: _foo: .LBB_foo_0: ; entry fctiwz f0, f1 stfd f0, -8(r1) lwz r2, -4(r1) rlwinm r3, r2, 0, 16, 31 blr instead of: _foo: .LBB_foo_0: ; entry fctiwz f0, f1 stfd f0, -8(r1) lwz r2, -4(r1) lis r3, ha16(.CPI_foo_0) lfs f0, lo16(.CPI_foo_0)(r3) fcmpu cr0, f1, f0 blt .LBB_foo_2 ; entry .LBB_foo_1: ; entry fsubs f0, f1, f0 fctiwz f0, f0 stfd f0, -16(r1) lwz r2, -12(r1) xoris r2, r2, 32768 .LBB_foo_2: ; entry rlwinm r3, r2, 0, 16, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22785 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ff66368a5f83ed62cb7817efc4a16b78c449a4c0 |
13-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove an unncessary argument to SimplifySelectCC and add an additional assert when creating a select_cc node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
32c392a3a5e397b5f1cc83aaedfab96368d11e8a |
13-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix the fabs regression on x86 by abstracting the select_cc optimization out into SimplifySelectCC. This allows both ISD::SELECT and ISD::SELECT_CC to use the same set of simplifying folds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
3e27b1f5c4bbbc5729a154b9b76b4231bb0ad9b9 |
13-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
implement a couple of simple shift foldings. e.g. (X & 7) >> 3 -> 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22774 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e1fae4a3aeeb1c0f349f9b02a4d6b8fc0a6a9934 |
11-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add a select_cc optimization for recognizing abs(int). This speeds up an integer MPEG encoding loop by a factor of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22758 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e5d63829fd62d815a330c21ea316e6b4cf943562 |
11-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Some SELECT_CC cleanups: 1. move assertions for node creation to getNode() 2. legalize the values returned in ExpandOp immediately 3. Move select_cc optimizations from SELECT's getNode() to SELECT_CC's, allowing them to be cleaned up significantly. This paves the way to pick up additional optimizations on SELECT_CC, such as sum-of-absolute-differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22757 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
9373a81e53ce5f9f2c06c4209b8b886605aece08 |
10-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add new node, SELECT_CC. This node is for targets that don't natively implement SELECT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22755 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
7c6e452d4415abaeb562958bbae1ca1bc2eb6809 |
10-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix an oversight that may be causing PR617. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22753 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bd8625b062c468ccd62b713993a45e8dd40e67a7 |
10-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix spelling, fix some broken canonicalizations by my last patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22734 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
079a27a0deca2501485da55701632cf9ebe4e8c4 |
09-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add cc nodes to the AllNodes list so they show up in Graphviz output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22731 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7cf7e3f33f25544d08492d47cc8a1cbba25dc8d7 |
09-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate the SetCCSDNode in favor of a CondCodeSDNode class. This pulls the CC out of the SetCC operation, making SETCC a standard ternary operation and CC's a standard DAG leaf. This will make it possible for other node to use CC's as operands in the future... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22728 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
660538c8a5c4795926694a5d37b147315941933e |
08-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Handle 64-bit constant exprs on 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22696 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
bf3fa976ee85528712669c9513a4eed351fcb3bb |
07-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a small simplification that can be exposed after promotion/expansion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22691 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
82299e70977500209c951404e354510feffb8efa |
05-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Change FindEarliestCallSeqEnd (used by libcall insertion) to use a set to avoid revisiting nodes more than once. This eliminates a source of potentially exponential behavior. For a small function in 191.fma3d (hexah_stress_divergence_), this speeds up isel from taking > 20mins to taking 0.07s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22680 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c534395cb22202e66f27abe99dd9c153b4a68b14 |
05-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a use-of-dangling-pointer bug, from the introduction of SrcValue's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2f4eca30d11d634ac2a26eed4d80f8bc9584a4b3 |
05-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a latent bug in the libcall inserter that was exposed by Nate's patch yesterday. This fixes whetstone and a bunch of programs in the External tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22678 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2ac4fc032050ff1e0f06bd8e27126e979406effb |
04-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a fixme in LegalizeDAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22661 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cd33eef1b2dc1e81ab57b4857cb63c47bb62a496 |
04-Aug-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
* Unbreak release build * Add comments to #endif pragmas for readability git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22647 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
4c64dd7977bc676399df0d5d2bf8016a3242780e |
03-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix PR611, codegen'ing SREM of FP operands to fmod or fmodf instead of the sequence used for integer ops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22629 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
0561b3ff9fd08f9cda48551f2f91590ca5f60656 |
02-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Update to use the new MathExtras.h support for log2 computation. Patch contributed by Jim Laskey! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22594 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e21c305ed85b2be4a27784ba52471f6b68fdd255 |
01-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix casts from long to sbyte on ppc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22570 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d29b6aa608d69f19b57ebd2ae630b040b1c4951d |
30-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Keep tabs and trailing spaces out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f20d183c2268553c738fefb014959ea924dd0555 |
30-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
fix float->long conversions on x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22563 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f1fa74ee0d30dfdb854f7d3f5ee67437cc82e250 |
30-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to have custom expanders for FP_TO_*INT conversions where both the src and dest values are legal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22555 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
80a3e94653574c69ac805d9684a23a94ed3e4b5d |
29-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to define custom expanders for FP_TO_*INT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22548 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1618bebcf6f9cd19c4e05de3bfffda28c246bb12 |
29-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
allow a target to request that unknown FP_TO_*INT conversion be promoted to a larger integer destination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fa9c801a6b42609dc2a934afb6535e3d51d61a3e |
29-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
instead of having all conversions be handled by one case value, and then have subcases inside, break things out earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22546 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fe660397e14ecba84e792ada489f2bda7269b413 |
28-Jul-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
new is not a valid default anywhere, so make this pure virtual git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22542 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
achineCodeEmitter.cpp
|
cef21c354408980eab7922c35af7523b08b5bec9 |
28-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Fix debug info to not print out recently freed memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22529 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
8e7a70976deee78a84099b916591d40f7a1cdc34 |
28-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Print symbolic register names in debug dumps git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22528 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
00b16889ab461b7ecef1c91ade101186b7f1fce2 |
27-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Eliminate all remaining tabs and trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
700a3c97e90dfdad049f460d4547bff6e48dd7e7 |
19-Jul-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove unnecessary FP_EXTEND. This causes worse codegen for SSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22469 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a0f5bf306c0e66ca5fc519fd3b0cb732d37d4a5e |
19-Jul-2005 |
Reid Spencer <rspencer@reidspencer.com> |
For: memory operations -> stores This is the first incremental patch to implement this feature. It adds no functionality to LLVM but setup up the information needed from targets in order to implement the optimization correctly. Each target needs to specify the maximum number of store operations for conversion of the llvm.memset, llvm.memcpy, and llvm.memmove intrinsics into a sequence of store operations. The limit needs to be chosen at the threshold of performance for such an optimization (generally smallish). The target also needs to specify whether the target can support unaligned stores for multi-byte store operations. This helps ensure the optimization doesn't generate code that will trap on an alignment errors. More patches to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22468 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f4d32726e622c740b4befc803e604903eb1349df |
18-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
The assertion was wrong: the code only worked for i64. While we're at it, expand the code to work for all integer datatypes. This should unbreak alpha. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0589523525a156e096baf975c5e6e7e4112cb673 |
16-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Only get the .bss and .data sections when needed instead of unconditionally. This allows is to not emit empty sections when .data or .bss is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22457 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
000339532046486632f50bb66ae75b3bbd38d387 |
16-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor getSection() method to make it easier to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22455 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
5f48ff7d1f27891f129ff09f1bbd0fced8c41f5a |
16-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Major refactor of the ELFWriter code. Instead of building up one big vector that represents the .o file at once, build up a vector for each section of the .o file. This is needed because the .o file writer needs to be able to switch between sections as it emits them (e.g. switch between the .text section and the .rel section when emitting code). This patch has no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22453 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
5a8441ea3fc145393d6274156bd05c4a006099ea |
16-Jul-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the legalizer how to promote SINT_TO_FP to a wider SINT_TO_FP that the target natively supports. This eliminates some special-case code from the x86 backend and generates better code as well. For an i8 to f64 conversion, before & after: _x87 before: subl $2, %esp movb 6(%esp), %al movsbw %al, %ax movw %ax, (%esp) filds (%esp) addl $2, %esp ret _x87 after: subl $2, %esp movsbw 6(%esp), %ax movw %ax, (%esp) filds (%esp) addl $2, %esp ret _sse before: subl $12, %esp movb 16(%esp), %al movsbl %al, %eax cvtsi2sd %eax, %xmm0 addl $12, %esp ret _sse after: subl $12, %esp movsbl 16(%esp), %eax cvtsi2sd %eax, %xmm0 addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22452 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cad063f1a8ecda4fd556a733dc5eaa8a96acb80d |
16-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Break the code for expanding UINT_TO_FP operations out into its own SelectionDAGLegalize::ExpandLegalUINT_TO_FP method. Add a new method, PromoteLegalUINT_TO_FP, which allows targets to request that UINT_TO_FP operations be promoted to a larger input type. This is useful for targets that have some UINT_TO_FP or SINT_TO_FP operations but not all of them (like X86). The same should be done with SINT_TO_FP, but this patch does not do that yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22447 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6e741f8842b5570e30f25912dbdaaa2edf36110c |
16-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
You can't use config options without config.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22446 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
c5f44add43bf9ecb7f1f63a320e4440f8f0784c3 |
14-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Make this use the new autoconf support for finding the executables for gv and Graphviz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22434 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
e388b5ea2c599a1db72497bf2d2920895da28f47 |
14-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
As discussed on IRC, this stuff is just for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22432 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
f1a2f15ed35c1cf987f6a1a703f855a3c61fdab6 |
14-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
If the Graphviz program is available, use it to visualize dot graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22429 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
c087a435109cdc943da094a21371f7d66d5b0e54 |
13-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Fix Alpha/2005-07-12-TwoMallocCalls.ll and PR593. It is not safe to call LegalizeOp on something that has already been legalized. Instead, just force another iteration of legalization. This could affect all platforms but X86, as this codepath is dynamically dead on X86 (ISD::MEMSET and friends are legal). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6814f1522dd7cdeb4674a9ad199f482a2e7aaea1 |
13-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Fix test/Regression/CodeGen/Generic/2005-07-12-memcpy-i64-length.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
46c53054d0af0a99edf98309ff11affe92a17f19 |
12-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for 64-bit elf files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22400 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
44213c95387eb6f87501b7675380c837149fbb0c |
12-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
VC++ demands that the function returns a value git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22393 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
0e180507975c31d584e0a3ca992ead7709e74f13 |
11-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Clean up code, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22382 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
5fe7b6e2be1de7e77c183e221641387eab187f94 |
11-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Emit a symbol table entry for each function we output to the ELF file. This allows objdump to know which function we are emitting to: 00000000 <foo>: <---- 0: b8 01 00 00 00 mov $0x1,%eax 5: 03 44 24 04 add 0x4(%esp,1),%eax 9: c3 ret ... and allows .o files to be useful for linking :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22378 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
aa507db59e085b1a6c728c2becef76e6dd9ab03a |
11-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
add code to emit the .text section to the section header. Add a *VERY INITIAL* machine code emitter class. This is enough to take this C function: int foo(int X) { return X +1; } and make objdump produce the following: $ objdump -d t-llvm.o t-llvm.o: file format elf32-i386 Disassembly of section .text: 00000000 <.text>: 0: b8 01 00 00 00 mov $0x1,%eax 5: 03 44 24 04 add 0x4(%esp,1),%eax 9: c3 ret Anything using branches or refering to the constant pool or requiring relocations will not work yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22375 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
5acd120078bb7356d0c1792f293255bbded9c4c9 |
11-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Use a name mangler object to uniquify names and remove nonstandard characters from them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22371 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
5f056bf4b862a7c31388a68711dd3b3ed5de2be8 |
10-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode. This is the last MVTSDNode. This allows us to eliminate a bunch of special case code for handling MVTSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22367 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
9fadb4c1c0a6d223aa468f9f72f8c2562dc66839 |
10-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Change TRUNCSTORE to use a VTSDNode operand instead of being an MVTSTDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
15e4b01920d6a0ffbe35d3e5aa88a4b42970b6a7 |
10-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Introduce a new VTSDNode class with the ultimate goal of eliminating the MVTSDNode class. This class is used to provide an operand to operators that require an extra type. We start by converting FP_ROUND_INREG and SIGN_EXTEND_INREG over to using it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22364 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
4c47e3a1c598a2d9c4f0a52c611379fcd08cc6ab |
08-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for emitting a .data section and .bss section. Add support for emitting external and .bss symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22358 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
80ed8faaea095ec269a06d97f1de1f04474bea66 |
07-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for emitting the symbol table (and its string table) of the module to the ELF file. Test it by adding support for emitting common symbols. This allows us to compile this: %X = weak global int 0 %Y = weak global int 0 %Z = weak global int 0 to an elf file that 'readelf's this: Symbol table '.symtab' contains 4 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000004 4 OBJECT GLOBAL DEFAULT COM X 2: 00000004 4 OBJECT GLOBAL DEFAULT COM Y 3: 00000004 4 OBJECT GLOBAL DEFAULT COM Z git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22343 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
e64e72b794cfa385372436b3c88460aeee0acbf6 |
05-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Make several cleanups to Andrews varargs change: 1. Pass Value*'s into lowering methods so that the proper pointers can be added to load/stores from the valist 2. Intrinsics that return void should only return a token chain, not a token chain/retval pair. 3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22338 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f2eb1396b8fe7b5b1c4bd5f27903209cfa4d20ae |
05-Jul-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
2 fixes: 1: Legalize operand in UINT_TO_FP expanision 2: SRA x, const i8 was not promoting the constant to shift amount type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22337 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c6bead211b608c51270e821f28bb50eed71be6c9 |
02-Jul-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
I really didn't think this was necessary. But, Legalize wasn't running again and legalizing the extload. Strange. Should fix most alpha regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
31559081a4285f4b7282e765aea4ec8a8e1d396c |
30-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
oops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22320 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9d416f713e8b9e4f0c0c2b3f6f57ce2dd8993209 |
30-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
FP EXTLOAD is not support on all archs, expand to LOAD and FP_EXTEND git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22319 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
06ef88472f7bac3512e224974e87a0a456471b82 |
29-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
restore old srcValueNode behavior and try to to work around it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22315 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
782ad62f334c732143047950dff4a1692538735d |
29-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
tracking the instructions causing loads and stores provides more information than just the pointer being loaded or stored git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22311 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
f4b3278aeba23efbeacf6be5c33273e2945be2f2 |
28-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Adapt the code for handling uint -> fp conversion for the 32 bit case to handling it in the 64 bit case. The two code paths should probably be merged. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22302 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
35f0a4f24e1d7ded182bd557503a9035fb540a58 |
27-Jun-2005 |
Chris Lattner <sabre@nondot.org> |
iniital checkin of ELFWriter implementation For now, the elf writer is only capable of emitting an empty elf file, with a section table and a section table string table. This will be enhanced in the future :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22291 91177308-0d34-0410-b5e6-96231b3b80d8
LFWriter.cpp
|
213e557cef3e653e2d3a00b07b137c143128430a |
22-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
If we support structs as va_list, we must pass pointers to them to va_copy See last commit for LangRef, this implements it on all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
558bc88a00930fce283b240b7c9555f649a18f1b |
18-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
core changes for varargs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
41aaf7016ebf205d8b02c857461f679a3e82f9d0 |
16-Jun-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B for integer types. Add a couple checks to not perform these kinds of transform on floating point values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4560657b4c1bb90f899bf59a01a38742f41d9603 |
15-May-2005 |
Duraid Madina <duraid@octopus.com.au> |
aCC and STLport complained about this, because they're like that git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22053 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e5eb6f829c983dfe0da6634f5ea46a2bf16f359e |
15-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add some simplifications for MULH[SU]. This allows us to compile this: long %bar(long %X) { %Y = mul long %X, 4294967297 ret long %Y } to this: l1_bar: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, %EAX add %EDX, DWORD PTR [%ESP + 8] ret instead of: l1_bar: mov %ECX, DWORD PTR [%ESP + 4] mov %EDX, 1 mov %EAX, %ECX mul %EDX add %EDX, %ECX add %EDX, DWORD PTR [%ESP + 8] mov %EAX, %ECX ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22044 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4fc997941dde5c11e91a28c9b5b8fa331d053a18 |
15-May-2005 |
Chris Lattner <sabre@nondot.org> |
When inserting callee-save register reloads, make sure to skip over any terminator instructions before the 'ret' in case the target has a multi-instruction return sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22041 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
1ca85d567c8860a8a7cf0730107f4ee701fa4fd0 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix construction of ioport intrinsics, fixing X86/io.llx and io-port.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22026 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2789bde57f4245f4418a2d8d54e7f372b71f0a7d |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
allow token chain at start or end of node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22020 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3e01136f9fc2e1db9207d278002e76e6175783e9 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
remove special case hacks for readport/readio from the binary operator codepath git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22019 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
385328ce416e2b98d7113a75d9413a56a2b10318 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Implement fixme's by memoizing nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22018 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b7f7d514220693728b90dfc8293b964fadd58df2 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Turn this into a wrapper for a simpler version of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22016 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
adf6c2a0cb638e8b211200b57b927d16f6e1cfc4 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate special purpose hacks for dynamic_stack_alloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22015 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
e89083a9300dc463e3b79eabe2b9913d85338d28 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Use the general mechanism for creating multi-value nodes instead of using special case hacks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
5fa4fa4e0fde8aebc55a05258d2a274f3c7e1df6 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Wrap long line, actually add node to the graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d73cc5d0585e86bf6d350ab9fd9caf85bdfc8b52 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
legalize target-specific operations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22010 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
89c34637cb471609343c2e4f4b08a81779189aa7 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
add a getNode() version that allows construction of any node type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
50381b6c4180e9a2b983d4623da2e485cd768632 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
LowerOperation takes a dag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22004 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
38135af219c48a8626d6af34a92e7e8bb957c81f |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Print the symbolic register name in a register allocator debug dump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22002 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
iveIntervalAnalysis.cpp
|
a88a260dbd874a3bdd3e47f4f15ab0d7c7803044 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to have a custom int64->fp expander if desired git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a8217e3000b5b01c4a95316aef078a9d02a9a119 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Align doubles on 8-byte boundaries if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21993 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0db07092a7aaeeaa0722799d9f533be3b782d362 |
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
print stack object alignment in -print-machineinstr dumps git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21992 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
2a82ef317c39ac436f80854c7ddbb06bfddeada1 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Tolerate instrs with extra args git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21982 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
adf6a965a321372c640845407195594835921eb4 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add an isTailCall flag to LowerCallTo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21958 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
d71c04199c447de39a2cab240c2fb7f717973e20 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Handle TAILCALL node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21957 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
405ef9e28d955c1b107c27bedfd4be8b9165af01 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Emit function entry code after lowering hte arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21931 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3aa7832c821c19a57aaf6ce87f16d8b49931e644 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to emit code into the entry block of each function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21930 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
712ad0c36dcfacb30620c793a6ffe4e80bd5d569 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
allow a virtual register to be associated with live-in values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21927 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
eb516e7f0aa3223eab7967f4c0f8132d82efd841 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a problem that nate reduced for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21923 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9530ddcc605cb65d0a19bbfbfb8b73b09c4e4cfa |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
rename variables and functions to match renamed DAG nodes. Bonus feature: I can actually remember which one is which now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21922 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
66de05b606cf31f1f23ed0c4eb1f097738cd1506 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
do not call expandop on the same value more than once. This fixes X86/2004-02-22-Casts.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21919 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a364fa126a686035909d15a87c4dfd2abc60363c |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
fix a bad typeo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21917 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
128b52d3d75f4b74367de43e891cd98b5a9b5483 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
update comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21916 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
16cd04d26c53c6f81313cafb85f6c0e7a07cdff6 |
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21915 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
9092fa310c8b2b1645b0d448c4c34b1e8ddc131d |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Pass calling convention to use into lower call to git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21900 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
3becf2026bec881a60cbbe0031d8c51f4d6d4e28 |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
fix expansion of ct[lt]z nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21896 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
39a8f336305a492fc6d2625f39f08968185616d2 |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Expand 64-bit ctlz/cttz nodes for 32-bit targets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21895 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
383203b0036b8fdeef8119975fdbbd528b760adb |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix uint->fp casts on PPC, allowing UnitTests/2005-05-12-Int64ToFP to work on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21894 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
45982dad53cd184fe8947a1b0206b0b16964f359 |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Allow something to be legalized multiple times. This can be used to reduce legalization iteration git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21892 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
13689e2009e71f7982d1313ed699e0e6a50157d0 |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Oops, don't do this after we figure out where to insert the call chains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21890 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
44d105b7faf5672a2af61a3f0fdfed0d437d5777 |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Make sure to expand all nodes, avoiding unintentional node duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21889 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6980d8295f415caa752b45c745c25a9be0079a9a |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
handle a common case generated by the uint64 -> FP code path better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21888 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e131e5b81e5853f3c2a8c63651898ecd37eaf6f8 |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
add fixme git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21887 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b9fa3bc8f39bf1e8df48b85eae4563032dd20bfc |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a problem where early legalization can cause token chain problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21885 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
88de6e77bfadea8962b017f372658204ab71448c |
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Make legalize a bit more efficient, and canonicalize sub X, C -> add X, -C git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21882 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
d7c4a4a6c048d4174b8795598f50fd76c30731ed |
12-May-2005 |
Nate Begeman <natebegeman@mac.com> |
Necessary changes to codegen cttz efficiently on PowerPC 1. Teach LegalizeDAG how to better legalize CTTZ if the target doesn't have CTPOP, but does have CTLZ 2. Teach PPC32 how to do sub x, const -> add x, -const for valid consts 3. Teach PPC32 how to do and (xor a, -1) b -> andc b, a 4. Teach PPC32 that ISD::CTLZ -> PPC::CNTLZW git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
98cf45bbf6b6efc1b90d4744082149e9b5f3e17a |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix lowering of ctlz, so now UnitTests/2005-05-11-Popcount-ffs-fls passes with the CBE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21875 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
a801172e504b45b2266486ec68adb64f7fcf8e17 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix lowering of cttz to work with signed values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21874 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
86f3e0c24e8834e6ad5ac61f2459fb335549bc24 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
fix and concisify intinsic lowering for ctpop. Unfortunately, this code looks completely untested. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21873 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
0d67f0c80f0295aa44f826ec1402ea73d6b4bd22 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the last remaining bug preventing us from switching the X86 BE over from the simple isel to the pattern isel. This forces inserted libcalls to serialize against other function calls, which was breaking UnitTests/2005-05-12-Int64ToFP. Hopefully this will fix issues on other targets as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21872 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
27e9b4146417a9bdbade90d0ecc32c9567694a87 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Do not memoize ADJCALLSTACKDOWN nodes, provide a method to hack on them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21871 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
16ce0df92717cd1474029d87efe596d000dc2caa |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
wrap long line git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21870 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5c33c9a166c2d68d64c68d8097598d09d9af6c20 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Make sure to legalize generated ctpop nodes, convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21868 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
57ff7e5f6479b43828406a6723b7dde6f673f48c |
11-May-2005 |
Duraid Madina <duraid@octopus.com.au> |
expand count-leading/trailing-zeros; the test 2005-05-11-Popcount-ffs-fls.c should now pass (the "LLVM" and "REF" results should be identical) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
18aa680a96c49cf9e28b52f5ab3f2c4f98793636 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add some notes for expanding clz/ctz git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21862 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e3ef0a8b9f79d77116e888ffe51730c8279b7363 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify this code, use the proper shift amount git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21861 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9b583b49103f21888ac3de3f7941a98a63a23aea |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Legalize this correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21859 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
edb1add9a093efa266c94b6d0a34c26f5b2d5d7b |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
implement expansion of ctpop nodes, implementing CodeGen/Generic/llvm-ct-intrinsics.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21856 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
276260b16d8771f96afb919a8ee0811254f5c275 |
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Print bit count nodes correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21855 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
19bb2283e6b3ce2bcb8bbbe76c61682caae3ddc7 |
10-May-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Silence some VC++ warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21838 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ef311aa7cf26ae0cbb6e784d767801b9058dd24b |
10-May-2005 |
Chris Lattner <sabre@nondot.org> |
The semantics of cast X to bool are a comparison against zero, not a truncation! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21833 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
6d5b8e16462859333db9ad984f05ec2ed1f48f4a |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
legalize readio/writeio into a load/store if requested git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21827 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
52d08bd9d8a8dcc06148525c7fad6f2ebcad0a42 |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
legalize READPORT, WRITEPORT, READIO, WRITEIO, at least in the basic cases where they are directly supported by the architecture. Wrap a bunch of long lines :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21826 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d0f6c1f52dddf11701406c31fd3e9448314a8366 |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for matching the READPORT, WRITEPORT, READIO, WRITEIO intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21825 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3c6910153c2913ea3e566bbbeb4070f15bfae2f4 |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for READPORT, WRITEPORT, READIO, WRITEIO git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21824 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
57aa5961a92b633e668038963fc655d74afe679d |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fold shifts into subsequent SHL's. These shifts often arise due to addrses arithmetic lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21818 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fd414a27fdc85e45af00ed4329cb0e6508470dea |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Don't use the load/store instruction as the source pointer, use the pointer being stored/loaded through! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21806 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
0437cdd6dc204a77854a61bf19f33cd272224d10 |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
memoize all nodes, even null Value* nodes. Do not add two token chain outputs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21805 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
369e6db9b6033bb60519b0ad84afeacc9ec9b416 |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
wrap long lines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21804 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2bf3c26b2bb783aada259f1c70be6dd0798f6126 |
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Print SrcValue nodes correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21803 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
1f243e9f43e3552c28331c2e17b7c19bdfc889f6 |
08-May-2005 |
Chris Lattner <sabre@nondot.org> |
Wrap long lines. Fix "warning: conflicting types for built-in function 'memset'" warning from the CBE+GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21779 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
d7a10c8566c1f2e979f8f3abcaab441297a0c44c |
06-May-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
* Order #includes alphabetically * Remove commented-out debug printouts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21707 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
7ea0ade1b6a16b5836645b61da671715180ab039 |
05-May-2005 |
Chris Lattner <sabre@nondot.org> |
When hitting an unsupported intrinsic, actually print it Lower debug info to noops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21698 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ded10bfb46aeacf02acec0018a0b970c1f932a32 |
05-May-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
ctpop lowering in legalize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21697 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fecf095292991bdf9396fec474011446107f9813 |
04-May-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Make promoteOp work for CT* Proof? ubyte %bar(ubyte %x) { entry: %tmp.1 = call ubyte %llvm.ctlz( ubyte %x ) ret ubyte %tmp.1 } ==> zapnot $16,1,$0 CTLZ $0,$0 subq $0,56,$0 zapnot $0,1,$0 ret $31,($26),1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21691 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
691ef2ba066dda14ae4ac0ad645054fbc967785a |
03-May-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Implement count leading zeros (ctlz), count trailing zeros (cttz), and count population (ctpop). Generic lowering is implemented, however only promotion is implemented for SelectionDAG at the moment. More coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
b1beff0f0d5422d6e7a26a92b691a75367a352fe |
30-Apr-2005 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Do not use deprecated APIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21639 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
f76e7dc8d8ac1855ef59698e82c757548ef4ca65 |
30-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen and legalize sin/cos/llvm.sqrt as FSIN/FCOS/FSQRT calls. This patch was contributed by Morten Ofstad, with some minor tweaks and bug fixes added by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21636 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
b42a9ffbe9f5dc7dc0e54c6425dff10e926e1f3d |
30-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Lower llvm.sqrt -> fsqrt/sqrt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21629 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
da6ba87d234a934409e8d8d5b131b7341ab4bf97 |
28-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Legalize FSQRT, FSIN, FCOS nodes, patch contributed by Morten Ofstad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7f64464ff100bcb7661b65c74c13dc88e83eb65b |
28-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Add FSQRT, FSIN, FCOS nodes, patch contributed by Morten Ofstad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21605 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2d86ea21dd76647cb054fd5d27df9e49efc672b6 |
27-Apr-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Implement Value* tracking for loads and stores in the selection DAG. This enables one to use alias analysis in the backends. (TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*. Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21599 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
d36f979085048f0d24dbe4a5584acd89153940a8 |
26-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold (X > -1) | (Y > -1) --> (X&Y > -1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21552 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
229ab2e7b24847ea0d248d3d8b3d83adc8e5f5fe |
25-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
implement some more logical compares with constants, so that: int foo1(int x, int y) { int t1 = x >= 0; int t2 = y >= 0; return t1 & t2; } int foo2(int x, int y) { int t1 = x == -1; int t2 = y == -1; return t1 & t2; } produces: _foo1: or r2, r4, r3 srwi r2, r2, 31 xori r3, r2, 1 blr _foo2: and r2, r4, r3 addic r2, r2, 1 li r2, 0 addze r3, r2 blr instead of: _foo1: srwi r2, r4, 31 xori r2, r2, 1 srwi r3, r3, 31 xori r3, r3, 1 and r3, r2, r3 blr _foo2: addic r2, r4, 1 li r2, 0 addze r2, r2 addic r3, r3, 1 li r3, 0 addze r3, r3 and r3, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21547 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
6ea927930433f5e22acd2316e34e7c7e48ac1a60 |
25-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen x < 0 | y < 0 as (x|y) < 0. This allows us to compile this to: _foo: or r2, r4, r3 srwi r3, r2, 31 blr instead of: _foo: srwi r2, r4, 31 srwi r3, r3, 31 or r3, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21544 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dedf2bd5a34dac25e4245f58bb902ced6b64edd9 |
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21439 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
egAllocSimple.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
f976c856fcc5055f3fc7d9f070d72c2d027c1d9d |
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
edf128a7fa90f2b0b7ee24741a04a7ae1ecd6f7e |
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
ranchFolding.cpp
ntrinsicLowering.cpp
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineCodeEmitter.cpp
achineFunction.cpp
achineInstr.cpp
HIElimination.cpp
asses.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
irtRegMap.h
|
588bbbffa1cf29201c72b8b3f04c6330f4bde2dd |
21-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Improve and elimination. On PPC, for: bool %test(int %X) { %Y = and int %X, 8 %Z = setne int %Y, 0 ret bool %Z } we now generate this: rlwinm r2, r3, 0, 28, 28 srwi r3, r2, 3 instead of this: rlwinm r2, r3, 0, 28, 28 srwi r2, r2, 3 rlwinm r3, r2, 0, 31, 31 I'll leave it to Nate to get it down to one instruction. :) --------------------------------------------------------------------- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21391 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1c2a9b95dc73c6fd11052e384ea5b10d011abb66 |
21-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold (x & 8) != 0 and (x & 8) == 8 into (x & 8) >> 3. This turns this PPC code: rlwinm r2, r3, 0, 28, 28 cmpwi cr7, r2, 8 mfcr r2 rlwinm r3, r2, 31, 31, 31 into this: rlwinm r2, r3, 0, 28, 28 srwi r2, r2, 3 rlwinm r3, r2, 0, 31, 31 Next up, nuking the extra and. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21390 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fda2b55e1b169044828c8f7b2cba073bfd455dd5 |
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold setcc of MVT::i1 operands into logical operations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21319 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4a44c8df1984ebcb253dda283bd2c117cbbb1929 |
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Another minor simplification: handle setcc (zero_extend x), c -> setcc(x, c') git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21318 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7467c9b086d3917333ece77e9fc8624922d42ef1 |
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Another simple xform git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21317 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
706aa9685ad74e4825544064bf28aa5b42578812 |
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold: // (X != 0) | (Y != 0) -> (X|Y != 0) // (X == 0) & (Y == 0) -> (X|Y == 0) Compiling this: int %bar(int %a, int %b) { entry: %tmp.1 = setne int %a, 0 %tmp.2 = setne int %b, 0 %tmp.3 = or bool %tmp.1, %tmp.2 %retval = cast bool %tmp.3 to int ret int %retval } to this: _bar: or r2, r3, r4 addic r3, r2, -1 subfe r3, r3, r2 blr instead of: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r3, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21316 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
36019aa5c66abfa0cd55a21004dfef79ab2a3cde |
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Make the AND elimination operation recursive and significantly more powerful, eliminating an and for Nate's testcase: int %bar(int %a, int %b) { entry: %tmp.1 = setne int %a, 0 %tmp.2 = setne int %b, 0 %tmp.3 = or bool %tmp.1, %tmp.2 %retval = cast bool %tmp.3 to int ret int %retval } generating: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r3, r2, r3 blr instead of: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r2, r2, r3 rlwinm r3, r2, 0, 31, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21315 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
72ea281d61c74abfa875d4d7ba614a993119df8a |
14-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Add a couple missing transforms in getSetCC that were triggering assertions in the PPC Pattern ISel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21297 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
eea805e74ce49f98e03c87a20cf2e6a6ff1b7c52 |
13-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Disbale the broken fold of shift + sz[ext] for now Move the transform for select (a < 0) ? b : 0 into the dag from ppc isel Enable the dag to fold and (setcc, 1) -> setcc for targets where setcc always produces zero or one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21291 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
97e001dec7d8972c2734ea63ca020d9136172ba0 |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
fix an infinite loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21289 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fd8d389edef29f6442cb4e32ee4b7ffe1d0c71d7 |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
fix some serious miscompiles on ia64, alpha, and ppc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21288 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
51679c430f1c02cea0717bb20d9b7eac84adf9b2 |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
avoid work when possible, perhaps fix the problem nate and andrew are seeing with != 0 comparisons vanishing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21287 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e9c35e7309a8293852ba71d874fa4dc99e07e6fe |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Implement expansion of unsigned i64 -> FP. Note that this probably only works for little endian targets, but is enough to get siod working :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21280 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ffe284c65137ac1d8e4421550bdc9979ed80e9ee |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Make expansion of uint->fp cast assert out instead of infinitely recurse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21275 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e666fcfbdd1c2a8f47c4577ef4ff4a8280099e28 |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
add back the optimization that Nate added for shl X, (zext_inreg y) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21273 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8a8dbfa57cb8bf6bf98a5cfc434dff4d9bdf5e0b |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Oops, remove these too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21272 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
23993561e24b2a6eaf0e036062522ab825c30d3f |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Instead of making ZERO_EXTEND_INREG nodes, use the helper method in SelectionDAG to do the job with AND. Don't legalize Z_E_I anymore as it is gone git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21266 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0f2287baa18fb1c6a7e8ba42ba5163c2845b8654 |
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Remove all foldings of ZERO_EXTEND_INREG, moving them to work for AND nodes instead. OVerall, this increases the amount of folding we can do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
db81ebab89796551eb74100f0c294fae2446d6be |
13-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Fold shift x, [sz]ext(y) -> shift x, y git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21262 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b882752bd04602249d391699dc7183de007f8964 |
13-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Fold shift by size larger than type size to undef Make llvm undef values generate ISD::UNDEF nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21261 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
1c51c6ac13b5e68b099605021784c7f552dcce3c |
12-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
promote extload i1 -> extload i8 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21258 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fd1f1ee0baf9c808fdee14bdbfe76d4a5e66210d |
12-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Remove some redundant checks, add a couple of new ones. This allows us to compile this: int foo (unsigned long a, unsigned long long g) { return a >= g; } To: foo: movl 8(%esp), %eax cmpl %eax, 4(%esp) setae %al cmpl $0, 12(%esp) sete %cl andb %al, %cl movzbl %cl, %eax ret instead of: foo: movl 8(%esp), %eax cmpl %eax, 4(%esp) setae %al movzbw %al, %cx movl 12(%esp), %edx cmpl $0, %edx sete %al movzbw %al, %ax cmpl $0, %edx cmove %cx, %ax movzbl %al, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21244 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5b95ed652fcfe578aa8af4e21318fca989164e21 |
12-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Emit comparisons against the sign bit better. Codegen this: bool %test1(long %X) { %A = setlt long %X, 0 ret bool %A } like this: test1: cmpl $0, 8(%esp) setl %al movzbl %al, %eax ret instead of: test1: movl 8(%esp), %ecx cmpl $0, %ecx setl %al movzbw %al, %ax cmpl $0, 4(%esp) setb %dl movzbw %dl, %dx cmpl $0, %ecx cmove %dx, %ax movzbl %al, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21243 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
08b698e38db5ab5db44c0472e2a7f4f780887629 |
12-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Emit long comparison against -1 better. Instead of this (x86): test2: movl 8(%esp), %eax notl %eax movl 4(%esp), %ecx notl %ecx orl %eax, %ecx cmpl $0, %ecx sete %al movzbl %al, %eax ret or this (PPC): _test2: nor r2, r4, r4 nor r3, r3, r3 or r2, r2, r3 cntlzw r2, r2 srwi r3, r2, 5 blr Emit this: test2: movl 8(%esp), %eax andl 4(%esp), %eax cmpl $-1, %eax sete %al movzbl %al, %eax ret or this: _test2: .LBB_test2_0: ; and r2, r4, r3 cmpwi cr0, r2, -1 li r3, 1 li r2, 0 beq .LBB_test2_2 ; .LBB_test2_1: ; or r3, r2, r2 .LBB_test2_2: ; blr it seems like the PPC isel could do better for R32 == -1 case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21242 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3b2c1d95a27479a0d6ce2e6fcd1f81185568bb31 |
12-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
canonicalize x <u 1 -> x == 0. On this testcase: unsigned long long g; unsigned long foo (unsigned long a) { return (a >= g) ? 1 : 0; } It changes the ppc code from: _foo: .LBB_foo_0: ; entry mflr r11 stw r11, 8(r1) bl "L00000$pb" "L00000$pb": mflr r2 addis r2, r2, ha16(L_g$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_g$non_lazy_ptr-"L00000$pb")(r2) lwz r4, 0(r2) lwz r2, 4(r2) cmplw cr0, r3, r2 li r2, 1 li r3, 0 bge .LBB_foo_2 ; entry .LBB_foo_1: ; entry or r2, r3, r3 .LBB_foo_2: ; entry cmplwi cr0, r4, 1 li r3, 1 li r5, 0 blt .LBB_foo_4 ; entry .LBB_foo_3: ; entry or r3, r5, r5 .LBB_foo_4: ; entry cmpwi cr0, r4, 0 beq .LBB_foo_6 ; entry .LBB_foo_5: ; entry or r2, r3, r3 .LBB_foo_6: ; entry rlwinm r3, r2, 0, 31, 31 lwz r11, 8(r1) mtlr r11 blr to: _foo: .LBB_foo_0: ; entry mflr r11 stw r11, 8(r1) bl "L00000$pb" "L00000$pb": mflr r2 addis r2, r2, ha16(L_g$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_g$non_lazy_ptr-"L00000$pb")(r2) lwz r4, 0(r2) lwz r2, 4(r2) cmplw cr0, r3, r2 li r2, 1 li r3, 0 bge .LBB_foo_2 ; entry .LBB_foo_1: ; entry or r2, r3, r3 .LBB_foo_2: ; entry cntlzw r3, r4 srwi r3, r3, 5 cmpwi cr0, r4, 0 beq .LBB_foo_4 ; entry .LBB_foo_3: ; entry or r2, r3, r3 .LBB_foo_4: ; entry rlwinm r3, r2, 0, 31, 31 lwz r11, 8(r1) mtlr r11 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21241 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
bd0781ed12dd817f760065e3ac2dcff12fb29440 |
11-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Teach the dag mechanism that this: long long test2(unsigned A, unsigned B) { return ((unsigned long long)A << 32) + B; } is equivalent to this: long long test1(unsigned A, unsigned B) { return ((unsigned long long)A << 32) | B; } Now they are both codegen'd to this on ppc: _test2: blr or this on x86: test2: movl 4(%esp), %edx movl 8(%esp), %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ee27f57a6a4dd7fa9259b3604f563907da1f65ef |
11-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fix expansion of shifts by exactly NVT bits on arch's (like X86) that have masking shifts. This fixes the miscompilation of this: long long test1(unsigned A, unsigned B) { return ((unsigned long long)A << 32) | B; } into this: test1: movl 4(%esp), %edx movl %edx, %eax orl 8(%esp), %eax ret allowing us to generate this instead: test1: movl 4(%esp), %edx movl 8(%esp), %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c7c16575fea9aeffe8a63ddabe7c3c25f81ed799 |
11-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix libcall code to not pass a NULL Chain to LowerCallTo Fix libcall code to not crash or assert looking for an ADJCALLSTACKUP node when it is known that there is no ADJCALLSTACKDOWN to match. Expand i64 multiply when ISD::MULHU is legal for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21214 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
2bb6f412820cad829e1dd3ea4bd8a1b26c8c23b6 |
11-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Don't bother sign/zext_inreg'ing the result of an and operation if we know the result does change as a result of the extend. This improves codegen for Alpha on this testcase: int %a(ushort* %i) { %tmp.1 = load ushort* %i %tmp.2 = cast ushort %tmp.1 to int %tmp.4 = and int %tmp.2, 1 ret int %tmp.4 } Generating: a: ldgp $29, 0($27) ldwu $0,0($16) and $0,1,$0 ret $31,($26),1 instead of: a: ldgp $29, 0($27) ldwu $0,0($16) and $0,1,$0 addl $0,0,$0 ret $31,($26),1 btw, alpha really should switch to livein/outs for args :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21213 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
01ff7216dd7829d4094754086baf28aa2d7149ac |
11-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize to deal with targets that don't support some SEXTLOAD/ZEXTLOADs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21212 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
6841dec8c1c071b5a417fb4172633c68301be36c |
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
don't zextload fp values! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21209 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
232ee95a09a583b7d66b90ee7ddf7fdb9c194a04 |
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Until we have a dag combiner, promote using zextload's instead of extloads. This gives the optimizer a bit of information about the top-part of the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21205 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
45278e37eb9823ceabdaab6b27dabf3b5dcdcede |
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold zext_inreg(zextload), likewise for sext's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21204 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
edeecfcbd5ae3fe6d7e65107203a93ed196aaf1b |
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
add a simple xform git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21203 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
dea29e25c32d2651e2efaff67bc30803ea24d991 |
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a thinko. If the operand is promoted, pass the promoted value into the new zero extend, not the original operand. This fixes cast bool -> long on ppc. Add an unrelated fixme git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21196 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
a2daa8c78d8749d6b4743e8bbfe4d522cd13a669 |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
add a little peephole optimization. This allows us to codegen: int a(short i) { return i & 1; } as _a: andi. r3, r3, 1 blr instead of: _a: rlwinm r2, r3, 0, 16, 31 andi. r3, r2, 1 blr on ppc. It should also help the other risc targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21189 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8e7d87b22867cc5add0c2e9fda4fddb340128403 |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
there is no need to remove this instruction, linscan does it already as it removes noop moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21183 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
799a919dbc03d8451434a1f3afc6fe571212d19c |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust live intervals to support a livein set git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21182 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d493b34d31ddb37b2e2f0b24e00c4597cb1dcfd6 |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Consider the livein/out set for a function, allowing targets to not have to use ugly imp_def/imp_uses for arguments and return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21180 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
59723e96987bdbfbada75fdbf1742f6a28d90d7d |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
recognize some patterns as fabs operations, so that fabs at the source level is deconstructed then reconstructed here. This catches 19 fabs's in 177.mesa 9 in 168.wupwise, 5 in 171.swim, 3 in 172.mgrid, and 14 in 173.applu out of specfp2000. This allows the X86 code generator to make MUCH better code than before for each of these and saves one instr on ppc. This depends on the previous CFE patch to expose these correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21171 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e7ccd4acd2ee9753e6d212efd522be5c7de154d7 |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Emit BRCONDTWOWAY when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21167 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
411e888c1b4155190c8cffe388631ee20693b309 |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Legalize BRCONDTWOWAY into a BRCOND/BR pair if a target doesn't support it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21166 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ef847df0870b9e3407bdc24ccb9db9ba2df817e6 |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
print and fold BRCONDTWOWAY correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21165 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
485df9b84b5753154d3762b2a176b8b6684f716f |
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
canonicalize a bunch of operations involving fneg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21160 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5a6bace3ab8db44e5412a773626fbb76fb316767 |
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
If a target zero or sign extends the result of its setcc, allow folding of this into sign/zero extension instructions later. On PPC, for example, this testcase: %G = external global sbyte implementation void %test(int %X, int %Y) { %C = setlt int %X, %Y %D = cast bool %C to sbyte store sbyte %D, sbyte* %G ret void } Now codegens to: cmpw cr0, r3, r4 li r3, 1 li r4, 0 blt .LBB_test_2 ; .LBB_test_1: ; or r3, r4, r4 .LBB_test_2: ; addis r2, r2, ha16(L_G$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_G$non_lazy_ptr-"L00000$pb")(r2) stb r3, 0(r2) instead of: cmpw cr0, r3, r4 li r3, 1 li r4, 0 blt .LBB_test_2 ; .LBB_test_1: ; or r3, r4, r4 .LBB_test_2: ; *** rlwinm r3, r3, 0, 31, 31 addis r2, r2, ha16(L_G$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_G$non_lazy_ptr-"L00000$pb")(r2) stb r3, 0(r2) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21148 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2467392c5931579e2354b9e64e8ecf6cc5192d13 |
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Remove somethign I had for testing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21144 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
67255a1d1783c126c1cbd4982670a61bc63aacce |
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
This patch does two things. First, it canonicalizes 'X >= C' -> 'X > C-1' (likewise for <= >=u >=u). Second, it implements a special case hack to turn 'X gtu SINTMAX' -> 'X lt 0' On powerpc, for example, this changes this: lis r2, 32767 ori r2, r2, 65535 cmplw cr0, r3, r2 bgt .LBB_test_2 into: cmpwi cr0, r3, 0 blt .LBB_test_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21142 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8e8bd656b3eeb69947719c3673f37756f1b2a466 |
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a really scary bug that Nate found where we weren't deleting the right elements auto of the autoCSE maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21128 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f1fe32e337cf825a27a57bb3e9fb847bc91a26ce |
06-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach ExpandShift how to handle shifts by a constant. This allows targets like PowerPC to codegen long shifts in many fewer instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21122 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c105e19864f2792c52bc6bb765d365308f38f461 |
06-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Expand SREM and UREM for targets that claim not to have them, like PowerPC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21103 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1867054643c20c3027421ab7711664b4d55fe4c6 |
06-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Add MULHU and MULHS nodes for the high part of an (un)signed 32x32=64b multiply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21102 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
886dd9136f4c5b4523a0958e726955272eb9dfb2 |
04-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Make sure to notice that explicit physregs are used in the function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21084 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
79e46acd35df36477029e9f534ab1a366a98df56 |
04-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Handle expanding arguments to ISD::TRUNCATE. This happens on PowerPC when you have something like i16 = truncate i64. This fixes Regression/C/casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21073 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
06098e0e9bd542f227aa3802768d1416e79e9f45 |
04-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fix sign_extend and zero_extend of promoted value types to expanded value types. This occurs when casting short to long on PPC for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21072 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
855a51974134e818232e52d63a2c3b2b48c8e244 |
02-Apr-2005 |
Duraid Madina <duraid@octopus.com.au> |
add support for prefix/suffix strings to go around GlobalValue(s) (which may or be function pointers) in the asmprinter. For the moment, this changes nothing, except the IA64 backend which can use this to write: data8.ua @fptr(blah__blah__mangled_function_name) (by setting FunctionAddrPrefix/Suffix to "@fptr(" / ")") git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21024 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
c0f18152d94bf65061fab4b80869998cfb0439e1 |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
transform fabs/fabsf calls into FABS nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21014 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4af6e0d7836126630f579b0a34f054321187f00b |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Expand fabs into fneg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21013 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b9fccc41933648647e3f7669612c683eb5de0d58 |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Turn -0.0 - X -> fneg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21011 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
2c8086f4b9916b2d02842be5e375276023225fba |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Several changes mixed up here. First when legalizing a DAG with pcmarker, dont' regen the whole dag if unneccesary. Second, fix and ugly bug with the _PARTS nodes that caused legalize to produce multiples of them. Finally, implement initial support for FABS and FNEG. Currently FNEG is the only one to be trusted though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21009 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ff9fd0a99c00a5ec17b867365bd2c22fb4061363 |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
print fneg/fabs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21008 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5b359c6c4f052e41579ad7da9af37db4f54207d9 |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
fix some bugs in the implementation of SHL_PARTS and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21004 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
4759982a2d4ab597fb69d4a1113d0f35e673a4e1 |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Turn expanded shift operations into (e.g.) SHL_PARTS if the target supports it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21002 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
41be951a47d2141a3c6693c0b598509c889f3f37 |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Print some new nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21001 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f4b457987fca50a1dc86e1a60dad2cff2b060945 |
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug when inserting a libcall into a function with no other calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20999 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ea19cd51aaf87c5cc19e7cdc2c32ddbefcac7b8f |
02-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a warning about an unhandled switch case git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20994 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fc1b1dad88a256ab5ab16dd548ad82df8efa2ca9 |
02-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Add ISD::UNDEF node Teach the SelectionDAG code how to expand and promote it Have PPC32 LowerCallTo generate ISD::UNDEF for int arg regs used up by fp arguments, but not shadowing their value. This allows us to do the right thing with both fixed and vararg floating point arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20988 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
380ae495996c84f348d12224ea9f4514f6471f59 |
01-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
print the machine CFG in the -print-machineinstrs dump git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20976 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
95762124a1d781cc0f8cbc4c22e9c5c1358d7ea0 |
31-Mar-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
PCMarker support for DAG and Alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20965 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
a33ef4816d2c192e36e7c025d18c66e89ef9d311 |
30-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Instead of setting up the CFG edges at selectiondag construction time, set them up after the code has been emitted. This allows targets to select one mbb as multiple mbb's as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20937 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
f51d3bd6769d46e7cf7beaa283d1ca449629bd32 |
29-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug that andrew noticed where we do not correctly sign/zero extend returned integer values all of the way to 64-bits (we only did it to 32-bits leaving the top bits undefined). This causes problems for targets like alpha whose ABI's define the top bits too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20926 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d4e50bb2e23b8f9ddde629a28dab3bcdaf0633e4 |
29-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
implement legalization of build_pair for nate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20901 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7f4ec3b2e3157e6a0798f3e95a3961bfa6ef66b6 |
28-Mar-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
First step in adding pcmarker intrinsic. Second step (soon) is adding backend support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20900 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
8e21e71b248365c69c0f666518c378b5819ce6fb |
26-Mar-2005 |
Nate Begeman <natebegeman@mac.com> |
Change interface to LowerCallTo to take a boolean isVarArg argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20842 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5b3a4553c1da7e417a240379e2f510c77532c5c1 |
17-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the missing symbols problem Bill was hitting. Patch contributed by Bill Wendling!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20649 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
e4d5c441e04bdc00ccf1804744af670655123b07 |
15-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
This mega patch converts us from using Function::a{iterator|begin|end} to using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
electionDAG/SelectionDAGISel.cpp
|
e97568c3c41e6de2b726d2cd99724659650e9614 |
10-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
I didn't mean to check this in. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20555 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ee639f1760ea3d22c46b141393eab611a4de2200 |
10-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where we would incorrectly do a sign ext instead of a zero ext because we were checking the wrong thing. Thanks to andrew for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20554 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
f768bba43f5c036039851d2fcca8212edca18467 |
10-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Allow the live interval analysis pass to be a bit more aggressive about numbering values in live ranges for physical registers. The alpha backend currently generates code that looks like this: vreg = preg ... preg = vreg use preg ... preg = vreg use preg etc. Because vreg contains the value of preg coming in, each of the copies back into preg contain that initial value as well. In the case of the Alpha, this allows this testcase: void "foo"(int %blah) { store int 5, int *%MyVar store int 12, int* %MyVar2 ret void } to compile to: foo: ldgp $29, 0($27) ldiq $0,5 stl $0,MyVar ldiq $0,12 stl $0,MyVar2 ret $31,($26),1 instead of: foo: ldgp $29, 0($27) bis $29,$29,$0 ldiq $1,5 bis $0,$0,$29 stl $1,MyVar ldiq $1,12 bis $0,$0,$29 stl $1,MyVar2 ret $31,($26),1 This does not seem to have any noticable effect on X86 code. This fixes PR535. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20536 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
14723c264d26c9387e27b0e7d5deaf225effe484 |
09-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
constant fold FP_ROUND_INREG, ZERO_EXTEND_INREG, and SIGN_EXTEND_INREG This allows the alpha backend to compile: bool %test(uint %P) { %c = seteq uint %P, 0 ret bool %c } into: test: ldgp $29, 0($27) ZAP $16,240,$0 CMPEQ $0,0,$0 AND $0,1,$0 ret $31,($26),1 instead of: test: ldgp $29, 0($27) ZAP $16,240,$0 ldiq $1,0 ZAP $1,240,$1 CMPEQ $0,$1,$0 AND $0,1,$0 ret $31,($26),1 ... and fixes PR534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20534 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d0656fc94dbdbf87217812f68778963dbd6244eb |
01-Mar-2005 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Lower llvm.isunordered(a, b) into a != a | b != b. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20382 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
0942b7caf1b5fde959301042129d25f1e7b86b28 |
28-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Lower prefetch to a noop, patch contributed by Justin Wick! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20375 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
84734ce8ef1a21eb347d4deca0bf32d59001f751 |
22-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the 'store fpimm, ptr' -> 'store intimm, ptr' handling code. Changing 'op' here caused us to not enter the store into a map, causing reemission of the code!! In practice, a simple loop like this: no_exit: ; preds = %no_exit, %entry %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ] ; <uint> [#uses=3] %tmp.4 = getelementptr "complex long double"* %P, uint %indvar, uint 0 ; <double*> [#uses=1] store double 0.000000e+00, double* %tmp.4 %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2] %exitcond = seteq uint %indvar.next, %N ; <bool> [#uses=1] br bool %exitcond, label %return, label %no_exit was being code gen'd to: .LBBtest_1: # no_exit movl %edx, %esi shll $4, %esi movl $0, 4(%eax,%esi) movl $0, (%eax,%esi) incl %edx movl $0, (%eax,%esi) movl $0, 4(%eax,%esi) cmpl %ecx, %edx jne .LBBtest_1 # no_exit Note that we are doing 4 32-bit stores instead of 2. Now we generate: .LBBtest_1: # no_exit movl %edx, %esi incl %esi shll $4, %edx movl $0, (%eax,%edx) movl $0, 4(%eax,%edx) cmpl %ecx, %esi movl %esi, %edx jne .LBBtest_1 # no_exit This is much happier, though it would be even better if the increment of ESI was scheduled after the compare :-/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20265 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d3f03e4b50feb6abfa9fec8b0aa705d45134c59e |
17-Feb-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix compilation errors with VS 2005, patch by Aaron Gray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20231 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
d8658616cf8b6ad984974bb764dc9ee4b77499aa |
17-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Don't rely on doubles comparing identical to each other, which doesn't work for 0.0 and -0.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20230 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
aa781b34040f07db00fb4b59cb567e6ad9ef5861 |
17-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Don't sink argument loads into loops or other bad places. This disables folding of argument loads with instructions that are not in the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20228 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
27e192196fec42618c7fcbd865e8e0b541545671 |
14-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Print GEP offsets as signed values instead of unsigned values. On X86, this prints: getelementptr (int* %A, int -1) as: "(A) - 4" instead of "(A) + 18446744073709551612", which makes the assembler much happier. This fixes test/Regression/CodeGen/X86/2005-02-14-IllegalAssembler.ll, and Benchmarks/Prolangs-C/cdecl with LLC on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20183 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
595dc5408ad809b9a9a417db275c43242e54b8dc |
04-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a case where were incorrectly compiled cast from short to int on 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20030 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
571c9c314f2f02319ebf485b05dccd6d33bf87af |
04-Feb-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
fix constant pointer outputing on 64 bit machines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20026 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
272455b404eabe70ce9e033ba19ec1b6cfe603a5 |
02-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Fix yet another memset issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19986 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
deb692e756cd3826e4ecc6eaec3397177c8b89ce |
01-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Fix some bugs andrew noticed legalizing memset for alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19969 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
bca81448ac8e19c588c9a4ad16fc70732b76327c |
30-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Improve conformance with the Misha spelling benchmark suite git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19930 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
|
9d5d7598db72c00a0fb89dc77198e4f6ebc5294d |
29-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
adjust to ilist changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19924 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
|
99939d39c9555ebecbcd24c1b607eae52804ea37 |
28-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Alpha doesn't have a native f32 extload instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19880 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e76ad6de40b5e4c0399257b0438914c8c85ceaa1 |
28-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
implement legalization of truncates whose results and sources need to be truncated, e.g. (truncate:i8 something:i16) on a 32 or 64-bit RISC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19879 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e560521f1af300a10717ca5c73d42df9ffb1b121 |
28-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Get alpha working with memset/memcpy/memmove git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19878 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
13c184de29c09294ed63b01ac43e1b46c049278e |
28-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
CopyFromReg produces two values. Make sure that we remember that both are legalized, and actually return the correct result when we legalize the chain first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19866 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fed5577066aa13948745415316ebad1c2e72507e |
24-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Silence optimized warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19797 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3563015b0df358cfc4ec310eb0df195015ea54a5 |
24-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify/speedup the PEI by not having to scan for uses of the callee saved registers. This information is computed directly by the register allocator now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19795 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
786116337e1717e79c77339cfc13d3bf2b854ae6 |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Update physregsused info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19793 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
0648b16c486388c1b58b7a2d0f865d08bdfcd3a9 |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Update this pass to set PhysRegsUsed info in MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19792 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b0f31bf19b9cd0107900728123d4848eae462e6c |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Update these register allocators to set the PhysRegUsed info in MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19791 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
irtRegMap.cpp
|
ce9c41e77a2ec75d48a173b9baf0f4a3bf49fac7 |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for the PhysRegsUsed array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19789 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
92b9fcea7b3180ed18f379212d14bd5cea7a1954 |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Speed this up a bit by making ModifiedRegs a vector<char> not vector<bool> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19787 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
9c32d3b798dc6caeebe6cea2effe80ca5e84e66e |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to changes in SelectionDAG interfaces The first half of correct chain insertion for libcalls. This is not enough to fix Fhourstones yet though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19781 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
b48da3953642d3d006edebd7fc6c1ca5bcfdb5cd |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Remove the 3 HACK HACK HACKs I put in before, fixing them properly with the new TLI that is available. Implement support for handling out of range shifts. This allows us to compile this code (a 64-bit rotate): unsigned long long f3(unsigned long long x) { return (x << 32) | (x >> (64-32)); } into this: f3: mov %EDX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%ESP + 8] ret GCC produces this: $ gcc t.c -masm=intel -O3 -S -o - -fomit-frame-pointer .. f3: push %ebx mov %ebx, DWORD PTR [%esp+12] mov %ecx, DWORD PTR [%esp+8] mov %eax, %ebx mov %edx, %ecx pop %ebx ret The Simple ISEL produces (eww gross): f3: sub %ESP, 4 mov DWORD PTR [%ESP], %ESI mov %EDX, DWORD PTR [%ESP + 8] mov %ECX, DWORD PTR [%ESP + 12] mov %EAX, 0 mov %ESI, 0 or %EAX, %ECX or %EDX, %ESI mov %ESI, DWORD PTR [%ESP] add %ESP, 4 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19780 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ac9dc08c7f0ae60c125624d72c3022025d79ee9e |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to changes in SelectionDAG interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19779 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
68cd65ea689907fb8a4aa80d72d182921e94607f |
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Get this to work for 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19763 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
5037a1591070247af4f83316ec479829846cc734 |
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implicitly defined registers can clobber callee saved registers too! This fixes the return-address-not-being-saved problem in the Alpha backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19741 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
7cd50cf286c5f16ca633080b3d78ee4dd2094a9f |
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
More bugfixes for IA64 shifts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19739 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
27ff112948d059524e5f4ebe249a1da0b7c710e8 |
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix problems with non-x86 targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19738 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
a7306db5f7cb7376da77237ada0bd624f99fec6c |
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add a nasty hack to fix Alpha/IA64 multiplies by a power of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19737 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
9bb86f46e134bf75d1dd76d9865156fb67eb24eb |
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Remove unneeded line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19736 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
1e7ceaf0a0ff966725957f123bd6958f6884d674 |
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
test commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19735 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
a93ec3ebfb2b6382c79e577cff4c05c204ed4544 |
21-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Unary token factor nodes are unneeded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19727 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
77e77a6aa0ab25a812947aed477220dd11220a18 |
21-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor libcall code a bit. Initial implementation of expanding int -> FP operations for 64-bit integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19724 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e5544f851a2a3f7b06339b132e60ad2f2d53e7b8 |
20-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify the shift-expansion code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19721 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
84f6788044f9b1b47945e98ce23a6cf4d7d32579 |
20-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Expand add/sub into ADD_PARTS/SUB_PARTS instead of a non-existant libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19715 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
17eee18f40c79cd6ed00985201d395f8da50c417 |
20-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
implement add_parts/sub_parts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19714 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2c49f2795514a7c56b680ba0310d7eb0a8a43289 |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Support targets that do not use i8 shift amounts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19707 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
3ca6a2c72c9ab8c5df00fc473abcc12f526b9f6a |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add an assertion that would have made more sense to duraid git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19704 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3d9dffc5863d0319aa9c5cb156045ae6778cba01 |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that pass args in registers to calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19703 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1e81b9e5112c40c23ecca9a64b6ab2ce97c8c6d4 |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fold single use token factor nodes into other token factor nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19701 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ec39a45bdb1eca0cfe77be6a05cc43e16f2338eb |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Realize the individual pieces of an expanded copytoreg/store/load are independent of each other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19700 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
39908e0ce0d8bd9de3c53271f0d27ab9d75816ad |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Know some identities about tokenfactor nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19699 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
88218ef706ba6fffc3b3f3c894910eea0f59abb1 |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Know some simple identities. This improves codegen for (1LL << N). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19698 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2a6e163edc2f5c81ad1f4c527c354b1a727676b7 |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Just in case, handle something that is both a use and a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19696 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
d45be36965470710eb18662fc716243ea384bf2f |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
When an instruction moves, make sure to update the VarInfo::Kills list as well as all of teh other stuff in livevar. This fixes the compiler crash on fourinarow last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19695 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
c71d6949b91e19610f0f85f57b402b4df43019a5 |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Use the TargetInstrInfo::commuteInstruction method to commute instructions instead of doing it manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19685 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
e34b396ab7d28469bf3d9679a748b643d8e30458 |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement a way of expanding shifts. This applies to targets that offer select operations or to shifts that are by a constant. This automatically implements (with no special code) all of the special cases for shift by 32, shift by < 32 and shift by > 32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19679 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
d6e496732b9cc2c4b4986d015c7dba9032aaa14c |
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add a hook to find out how the target handles shift amounts that are out of range. Either they are undefined (the default), they mask the shift amount to the size of the register (X86, Alpha, etc), or they extend the shift (PPC). This defaults to undefined, which is conservatively correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19677 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
d5d56825123665b60d4eada0a4ad7d0adc5cf3a3 |
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Zero is cheaper than sign extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19675 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
47e9223e06390897c3834f8c527001df392570ff |
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix some fixmes (promoting bools for select and brcond), fix promotion of zero and sign extends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19671 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4a9b4f1943c6c56c749c8709ed28680408afc577 |
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Keep track of the retval type as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19670 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ef5cd1d3cf7d0b20987a545fcd2d0af2bfe6c422 |
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize to promote copy(from|to)reg, instead of making the isel pass do it. This results in better code on X86 for floats (because if strict precision is not required, we can elide some more expensive double -> float conversions like the old isel did), and allows other targets to emit CopyFromRegs that are not legal for arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19668 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
82fbfb6984c1feb7d44a077ac2dc031f4a950005 |
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize to promote SetCC results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19657 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f30b73b1c6b6ca8453dc61eb3777b4e4414d3839 |
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Allow setcc operations to have nonbool types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19656 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
6e4e7652d8c671d83b6332d0189e93f2920c04ff |
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the completely broken FP constant folds for setcc's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19651 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
d3948116b81b11e82246c11389a9b4ce7e619fbb |
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Non-volatile loads can be freely reordered against each other. This fixes X86/reg-pressure.ll again, and allows us to do nice things in other cases. For example, we now codegen this sort of thing: int %loadload(int *%X, int* %Y) { %Z = load int* %Y %Y = load int* %X ;; load between %Z and store %Q = add int %Z, 1 store int %Q, int* %Y ret int %Y } Into this: loadload: mov %EAX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%EAX] mov %ECX, DWORD PTR [%ESP + 8] inc DWORD PTR [%ECX] ret where we weren't able to form the 'inc [mem]' before. This also lets the instruction selector emit loads in any order it wants to, which can be good for register pressure as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19644 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a651cf67b77cd477dd7da4baa8688af2ccd4f7f6 |
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Don't call SelectionDAG.getRoot() directly, go through a forwarding method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19642 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
0afa8e348eab21d3e09ae3240544886d61879266 |
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement a target independent optimization to codegen arguments only into the basic block that uses them if possible. This is a big win on X86, as it lets us fold the argument loads into instructions and reduce register pressure (by not loading all of the arguments in the entry block). For this (contrived to show the optimization) testcase: int %argtest(int %A, int %B) { %X = sub int 12345, %A br label %L L: %Y = add int %X, %B ret int %Y } we used to produce: argtest: mov %ECX, DWORD PTR [%ESP + 4] mov %EAX, 12345 sub %EAX, %ECX mov %EDX, DWORD PTR [%ESP + 8] .LBBargtest_1: # L add %EAX, %EDX ret now we produce: argtest: mov %EAX, 12345 sub %EAX, DWORD PTR [%ESP + 4] .LBBargtest_1: # L add %EAX, DWORD PTR [%ESP + 8] ret This also fixes the FIXME in the code. BTW, this occurs in real code. 164.gzip shrinks from 8623 to 8608 lines of .s file. The stack frame in huft_build shrinks from 1644->1628 bytes, inflate_codes shrinks from 116->108 bytes, and inflate_block from 2620->2612, due to fewer spills. Take that alkis. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19639 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
068a81e9fca511b9a3b3a0f28a8988a57f994652 |
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor code into a new method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19635 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
714b69d0479e0fab36195e36da4578742ed4b63d |
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Shift and setcc types default to the pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19619 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
8ac532c55eb7f8698466f25d1a8a01240c44ec7d |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement legalize of call nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19617 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
55ba8fba750ee0a51a9d74fa33b7242d24a4ff35 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Revamp supported ops. Instead of just being supported or not, we now keep track of how to deal with it, and provide the target with a hook that they can use to legalize arbitrary operations in arbitrary ways. Implement custom lowering for a couple of ops, implement promotion for select operations (which x86 needs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19613 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
171453a284b097f1ee89fb87ff495c3a6c7b6297 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
add method stub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19612 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
4b7899343eb492b70868fc73450b708834a3cf99 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Don't mash stuff together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19611 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
cba82f9339566cef76ecb062980e40913e6ccc23 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Use enums, move virtual dtor out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19610 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
f8161d83f0201a32a33a0c875eb43df81d8586ab |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement some more missing promotions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19606 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
9467497ae2aef3534623ca20d01f49f3441ea154 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Clarify assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19597 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7636512f59e61429eae8839aa5c472c5e2f24b85 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19596 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c8ea3c47103656a0924909f41651bf5d396c26cd |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for promoted registers being live across blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19595 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
cfdfe4ce4afba6e6d2ef22bf07068ca6bf5bd75a |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Set up identity transforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19584 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
71c42a0190300a8903aaea80467b88f15f327ea9 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Move some information into the TargetLowering object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19583 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
98e5c0e5e4c5be1b531d287d0a1373a62fe562e2 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Use the new TLI method to get this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19582 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
bb97d81cc873e2c0914f2ece43832723cc936d24 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Move some information out of LegalizeDAG into the generic Target interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19581 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
1713e73b8ac53f045150cb2a7d7ba9781dc35ef8 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
legalize a bunch of operations that I missed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19580 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fb849800ea2040c188365c265421ad54fbdcf219 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that require promotions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19579 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ff3e50cc39db6939b637165997283f59412387bb |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix some serious bugs in promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19578 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
950aa3ca2c60863510bee45ec1b9180f975b8e79 |
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate unneeded extensions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19577 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8b6fa22e722e1de7522aae51d6cdd0f552d489da |
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement promotion of a whole bunch more operators. I think that this is basically everything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19576 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8a389bb37603fa99a980475a4f5cdc27fa4014f1 |
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print extra type for nodes with extra type info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19575 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGPrinter.cpp
|
45b8caf1c5a1fd8337038d64c6da8fba2d299fdf |
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for legalizing FP_ROUND_INREG, SIGN_EXTEND_INREG, and ZERO_EXTEND_INREG for targets that don't support them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19573 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4ea6924444d73a0b5f6207e05b4229b49a284f06 |
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Common code factored out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19572 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
0f69b2910810b7c0971a739f18b37fae2a20eca5 |
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for promoting ADD/MUL. Add support for new SIGN_EXTEND_INREG, ZERO_EXTEND_INREG, and FP_ROUND_INREG operators. Realize that if we do any promotions, we need to iterate SelectionDAG construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19569 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
859157daee6a4b49e99921832e1dde065167b317 |
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add new SIGN_EXTEND_INREG, ZERO_EXTEND_INREG, and FP_ROUND_INREG operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19568 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
03c8546ec57523970874917854a2fb77b1ff598e |
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add intitial support for promoting some operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19565 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
69a52155d2eff066b49dbac385113002fd9dba14 |
14-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to CopyFromReg changes, implement deletion of truncating/extending stores/loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19562 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
2ee743ff9be43c350075a2fa15d11a79bff36775 |
14-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Start implementing truncating stores and extending loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19559 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
|
8f1d6402ba73b96993ffd1eb9434b28c828d8856 |
14-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Improve compatibility with acc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19549 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
18c2f13e0f9d0e5d6227cf6d1881e9ee3d1b6109 |
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add new ImplicitDef node, rename CopyRegSDNode class to RegSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19535 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
electionDAG/SelectionDAGPrinter.cpp
|
5a6c6d98d561df671350a56c8031a3611f1c46fa |
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Don't forget the existing root. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19531 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ddb870b065984007a0df645ad97c6ad6a6f12de0 |
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen independent ops as being independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19528 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a385e9b20fa7d37d3842ce15afd412f617d83a27 |
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Legalize new node, add assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19527 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
282c5cae89986a5722ef59f6787108bdd668289d |
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print new node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19526 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2f0ca79a7504a91b16156b199b6f07857f3782c6 |
12-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Do not fold (zero_ext (sign_ext V)) -> (sign_ext V), they are not the same. This fixes llvm-test/SingleSource/Regression/C/casts.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19519 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5c884562279927757cbe0ae718ab18af730ddb35 |
12-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
New method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19517 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
2dad454af674cb41a14a85ad6ce5c85c43959acd |
12-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix sign extend to long. When coming from sbyte, we used to generate: movsbl 4(%esp), %eax movl %eax, %edx sarl $7, %edx Now we generate: movsbl 4(%esp), %eax movl %eax, %edx sarl $31, %edx Which is right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19515 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
3bfbf4ea990930d153e58e153f319408341a94fe |
12-Jan-2005 |
Reid Spencer <rspencer@reidspencer.com> |
Shut up warnings with GCC 3.4.3 about uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19512 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7944d9d9957db1efe085d9df3ea89826f50029b7 |
12-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add an option to view the selection dags as they are generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19498 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
c871e1d56fa9e4c73f01419d4f1fef6d47f24d29 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print the value types in the nodes of the graph git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19485 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
f1fdacae8c1bd9e5ff4619546b3a28e93fb75ab5 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
add an assertion, avoid creating copyfromreg/copytoreg pairs that are the same for PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19484 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
7abf8201827be0c65272ca76d8afca0e46062be1 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Clear the whole array, always. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19482 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
64da653ba916509757daa47424d2a8217d82ba76 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Squelch optimized warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19475 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
e1bd822ddb0099406d9f280535461033dfeeb190 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize to lower MEMSET/MEMCPY/MEMMOVE operations if the target does not support them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19465 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
4c633e82f6041f452e451904ec0de670e7f143e4 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print new operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19464 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7041ee35adecb864e3e8df490aa73b0605fbfb5a |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Turn memset/memcpy/memmove into the corresponding operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19463 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
a8d9cc870593d3e915ac9184dc0daf1783d4f8a4 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
shift X, 0 -> X git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19453 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
e9c44cdf18b1235841a5d8bfeb07bee9f5699b9a |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print SelectionDAGs bottom up, include extra info in the node labels git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19447 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
fc08d9c789b6698fe5f5904d573bb03fcc52a32d |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add a marker for the graph root. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19445 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
e0646b86e3cdc35c5dd0e1c10b7ac564066e3bd6 |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Put the operation name in each node, put the function name on the graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19444 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
d75f19fa42e6f6ee8f159aa8964baf8b0bbd2dee |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Split out SDNode::getOperationName into its own method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19443 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
66328480bb3eb6aa52e2c155657f3d19d4efea7a |
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement initial selectiondag printing support. This gets us a nice graph with no labels! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19441 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGPrinter.cpp
|
6b7598b9955520af8942740acda96a99b005c839 |
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Lower to the correct functions. This fixes FreeBench/fourinarow git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19436 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
68dc3109420f38d639fb2e9fed6f1a29df60795b |
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement a couple of more simplifications. This lets us codegen: int test2(int * P, int* Q, int A, int B) { return P+A == P; } into: test2: movl 4(%esp), %eax movl 12(%esp), %eax shll $2, %eax cmpl $0, %eax sete %al movzbl %al, %eax ret instead of: test2: movl 4(%esp), %eax movl 12(%esp), %ecx leal (%eax,%ecx,4), %ecx cmpl %eax, %ecx sete %al movzbl %al, %eax ret ICC is producing worse code: test2: movl 4(%esp), %eax #8.5 movl 12(%esp), %edx #8.5 lea (%edx,%edx), %ecx #9.9 addl %ecx, %ecx #9.9 addl %eax, %ecx #9.9 cmpl %eax, %ecx #9.16 movl $0, %eax #9.16 sete %al #9.16 ret #9.16 as is GCC (looks like our old code): test2: movl 4(%esp), %edx movl 12(%esp), %eax leal (%edx,%eax,4), %ecx cmpl %edx, %ecx sete %al movzbl %al, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19430 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
87ae6ae41cde4548b55bcc19da36dc0ad7e021df |
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix incorrect constant folds, fixing Stepanov after the SHR patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19429 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
8136d1f8cb8c6d89460ab9750b6d91a157659831 |
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Constant fold shifts, turning this loop: .LBB_Z5test0PdS__3: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax movl $16000, %ecx sarl $3, %ecx cmpl %eax, %ecx fstpl 16(%esp) #FP_REG_KILL jg .LBB_Z5test0PdS__3 # no_exit.1 into: .LBB_Z5test0PdS__3: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax cmpl $2000, %eax fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__3 # no_exit.1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19427 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5cdcc58d51c792d329202bab97c34aefbc043b15 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add some folds for == and != comparisons. This allows us to codegen this loop in stepanov: no_exit.i: ; preds = %entry, %no_exit.i, %then.i, %_Z5checkd.exit %i.0.0 = phi int [ 0, %entry ], [ %i.0.0, %no_exit.i ], [ %inc.0, %_Z5checkd.exit ], [ %inc.012, %then.i ] ; <int> [#uses=3] %indvar = phi uint [ %indvar.next, %no_exit.i ], [ 0, %entry ], [ 0, %then.i ], [ 0, %_Z5checkd.exit ] ; <uint> [#uses=3] %result_addr.i.0 = phi double [ %tmp.4.i.i, %no_exit.i ], [ 0.000000e+00, %entry ], [ 0.000000e+00, %then.i ], [ 0.000000e+00, %_Z5checkd.exit ] ; <double> [#uses=1] %first_addr.0.i.2.rec = cast uint %indvar to int ; <int> [#uses=1] %first_addr.0.i.2 = getelementptr [2000 x double]* %data, int 0, uint %indvar ; <double*> [#uses=1] %inc.i.rec = add int %first_addr.0.i.2.rec, 1 ; <int> [#uses=1] %inc.i = getelementptr [2000 x double]* %data, int 0, int %inc.i.rec ; <double*> [#uses=1] %tmp.3.i.i = load double* %first_addr.0.i.2 ; <double> [#uses=1] %tmp.4.i.i = add double %result_addr.i.0, %tmp.3.i.i ; <double> [#uses=2] %tmp.2.i = seteq double* %inc.i, getelementptr ([2000 x double]* %data, int 0, int 2000) ; <bool> [#uses=1] %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1] br bool %tmp.2.i, label %_Z10accumulateIPddET0_T_S2_S1_.exit, label %no_exit.i To this: .LBB_Z4testIPddEvT_S1_T0__1: # no_exit.i fldl data(,%eax,8) fldl 16(%esp) faddp %st(1) fstpl 16(%esp) incl %eax movl %eax, %ecx shll $3, %ecx cmpl $16000, %ecx #FP_REG_KILL jne .LBB_Z4testIPddEvT_S1_T0__1 # no_exit.i instead of this: .LBB_Z4testIPddEvT_S1_T0__1: # no_exit.i fldl data(,%eax,8) fldl 16(%esp) faddp %st(1) fstpl 16(%esp) incl %eax leal data(,%eax,8), %ecx leal data+16000, %edx cmpl %edx, %ecx #FP_REG_KILL jne .LBB_Z4testIPddEvT_S1_T0__1 # no_exit.i git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19425 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
fd161e964aa02636c00364ae4d46bf4e384df096 |
09-Jan-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19423 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
ea946cdb1b16827a5f19a2593d054953e51b9fb6 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print the DAG out more like a DAG in nested format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19422 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
49d24716a4398fc249d2b5ac993ff97a421f0635 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print out nodes sorted by their address to make it easier to find them in a list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19421 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
abd21828752667fdff5a0c20d591f66de102b3c3 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add a simple transformation. This allows us to compile one of the inner loops in stepanov to this: .LBB_Z5test0PdS__2: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax cmpl $2000, %eax fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__2 instead of this: .LBB_Z5test0PdS__2: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax movl $data, %ecx movl %ecx, %edx addl $16000, %edx subl %ecx, %edx movl %edx, %ecx sarl $2, %ecx shrl $29, %ecx addl %ecx, %edx sarl $3, %edx cmpl %edx, %eax fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__2 The old instruction selector produced: .LBB_Z5test0PdS__2: # no_exit.1 fldl 24(%esp) faddl data(,%eax,8) fstl 24(%esp) movl %eax, %ecx incl %ecx incl %eax leal data+16000, %edx movl $data, %edi subl %edi, %edx movl %edx, %edi sarl $2, %edi shrl $29, %edi addl %edi, %edx sarl $3, %edx cmpl %edx, %ecx fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__2 # no_exit.1 Which is even worse! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19419 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
38d6be5d49e61e4be9bb12ee3cedf2a4fcddb8f3 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug legalizing call instructions (make sure to remember all result values), and eliminate some switch statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19417 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
513e52ec4e20048a8f491498d219a2669283f3bd |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a minor bug legalizing dynamic_stackalloc. This allows us to compile std::__pad<wchar_t, std::char_traits<wchar_t> >::_S_pad(std::ios_base&, wchar_t, wchar_t*, wchar_t const*, int, int, bool) from libstdc++ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19416 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fa404e8a76abfdafefb8806b35f596d288609496 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize to deal with DYNAMIC_STACKALLOC (aka a dynamic llvm alloca) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19415 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
ee749d7488bd42df0f67e2d80048c63415943785 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Handle static alloca arguments to PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19409 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
39ae3622791986a0232f7e4797b633f8fa9e54d2 |
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Use new interfaces to correctly lower varargs and return/frame address intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19407 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
64e14b1679fa3649b286402ea254d663ac43ef91 |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for llvm.setjmp and longjmp. Only 3 SingleSource/UnitTests fail now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19404 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
e3304a3d24afc952d3cb415d1b504d973573c5c5 |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Tighten up assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19397 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
dea18b6c0ddc037a0c6334b5582ffc27d098edcb |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Silence VS warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19388 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
28696bee024805a6b191cfe12e1a24784dae8aa7 |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Silence warnings from VS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19386 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineFunction.cpp
|
5e5fb942e6bcdb5436c60f0343cefaa73b82d2f8 |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Silence VS warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19385 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
f26bc8ef4827cf0023a7052b62b920b41813d473 |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Silence VS warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19384 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
4e6c74689944be1de80c99dc0688ec0bcbd743aa |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement handling of most long operators through libcalls. Fix a bug legalizing "ret (Val,Val)" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19375 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
cf5734dddd66af9388a171b44996505ede47feed |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to changes in LowerCAllTo interfaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19374 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ae0aacb8331e1227abea6601e531a10d0e65fdca |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for FP->INT conversions and back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19369 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
5d2c6c784bdc3d572a553ed7aa48dcf27a45b1a3 |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement the 'store FPIMM, Ptr' -> 'store INTIMM, Ptr' optimization for all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19366 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
623f70dd4c5525888aca400c27832282913b539e |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
1ULL << 64 is undefined, don't do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19365 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
7c68ec6b70c765edec1e850331c30a7b65c6ebda |
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a pointer invalidation problem. This fixes Generic/badarg6.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19361 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
5351e9b172962a4f51e6d3b12018dd2de34b2f97 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fold conditional branches on constants away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19360 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
4287d5e355c7dafcb8d674a236eabcccb895c892 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a thinko in the reassociation code, fixing Generic/badlive.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19359 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
b00a6425de1ef8668b63f29927c38da8a19ce904 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for truncating integer casts from long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19358 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
8afc48e44ad8868c1d41511db645e2ba1a4b894e |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in load expansion legalization and ret legalization. This fixes CodeGen/Generic/select.ll:castconst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19357 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c7af17923e3bb6053f529679ef0be5399d3519ed |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Legalize unconditional branches too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19356 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
7cc4777a263f6a52877d29201311fde5f6edb632 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement support for long GEP indices on 32-bit archs and support for int GEP indices on 64-bit archs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19354 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
electionDAG/SelectionDAGISel.cpp
|
fd8c39b77331fbb6f994665b45eba1b2cc6ced6d |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify: truncate ({zero|sign}_extend (X)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19353 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
03c0cf822e9a57109d1b4e6a2705d68852c93e1d |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
implement legalization of a bunch more operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19352 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
fad71ebe1ebdc8d59c26e4e45a7c7579a2ca58b7 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix another bug legalizing calls! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19350 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
f44fd88e9cdd7b47acb71ac78e3dccb91319c72d |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix handling of dead PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19349 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
ebda942efcb86634a6581aae76a0d0c92c4a232e |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug legalizing calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19348 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
62fd269c146d9023efe32644e44cd97b88631d4f |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
After legalizing a DAG, delete dead nodes to save space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19346 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
0e12e6e0418564d4b2e83138fe2044be29a6f6d5 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement RemoveDeadNodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19345 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
c18ae4cb6a263cf31283c0ef51ace24350f8d72b |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize how to handle condbranches git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19339 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
1c08c714bb3d07c3b39f06bfcbb4559fefca73f9 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Initial implementation of the SelectionDAGISel class. This contains most of the code for lowering from LLVM code to a SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19331 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAGISel.cpp
|
b75c12de6792ca269e8099f317332c7d3f1528c2 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
This file is obsolete git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19330 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGBuilder.cpp
|
3e928bbd6153eb08641cbd0ad7d8487378a8b12a |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Initial implementation of the DAG legalization. This still has a long way to go, but it does work for some non-trivial cases now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19329 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/LegalizeDAG.cpp
|
c3aae25116e66c177579b0b79182b09340b19753 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Complete rewrite of the SelectionDAG class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19327 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
310968cbbb564c4141d4bd418a746e8103560222 |
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
First draft of new Target interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19324 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/TargetLowering.cpp
|
cfa0f2edd31a32d58ffa6e5224c6f476932d82b5 |
02-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Make the 2-address instruction lowering pass smarter in two ways: 1. If we are two-addressing a commutable instruction and the LHS is not the last use of the variable, see if the instruction is the last use of the RHS. If so, commute the instruction, allowing us to avoid a register-register copy in many cases for common instructions like ADD, OR, AND, etc on X86. 2. If #1 doesn't hold, and if this is an instruction that also existing in 3-address form, promote the instruction to a 3-address instruction to avoid the register-register copy. We can do this for several common instructions in X86, including ADDrr, INC, DEC, etc. This patch implements test/Regression/CodeGen/X86/commute-two-addr.ll, overlap-add.ll, and overlap-shift.ll when I check in the X86 support for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19245 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5b2103405b55c8b9960d28f59df27040db39813f |
15-Dec-2004 |
Chris Lattner <sabre@nondot.org> |
Move virtual method call out of loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18955 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
80ad87d2271673b4f9148d64c91ee6338978c9fc |
07-Dec-2004 |
Nate Begeman <natebegeman@mac.com> |
Move virtual function call out of loop to speed up getFreePhysReg by about 20%, shaving 0.1s off hbd compile time on my g5. Yay. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18592 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ce9653ce449f1409815547e1bf60abcd1332d2c9 |
07-Dec-2004 |
Reid Spencer <rspencer@reidspencer.com> |
For PR387:\ Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18589 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
ead1b3f0bb70cd9c1ba7a853a79070cb47db9344 |
04-Dec-2004 |
Chris Lattner <sabre@nondot.org> |
Prevent accessing past the end of the intervals vector, this fixes Prolang-C/bison in the JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18477 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
63eb93025d78d4745ece7c63bee77934380ee599 |
28-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix SingleSource/UnitTests/2004-11-28-GlobalBoolLayout.c, and hopefully PR449 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18306 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
cf88d324a892c8f93ccdac55788afb48b17c728b |
22-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix the FIXME, nuke the JIT specific forceCompilationOf method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18131 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
6f71720be3c67f6bffd3976805e577995d779a2f |
22-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
These methods are obsolete git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18129 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
3bf285a6765438ac1c73638814cae6201ae26a3a |
21-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Adjust to changed interfaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18064 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
47012c0c711fd10901fb30643def557af7bbb4a9 |
20-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Add getCurrentPCOffset() and addRelocation() methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18034 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
45730d71b69646afe0876dd03446b4df8b8d11f2 |
19-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Match change in MachineCodeEmitter prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18009 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
c8b9f33ac08e15dc1eb675cff70bf85b34b68fdd |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
* There is no reason for SpillWeights to be an instance var * Do not put fixed registers into the unhandled set. This means they will never find their way into the inactive, active, or handled sets, so we can simplify a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17945 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9fddc12c9b16a5526b0ee2e6f1da252f7974d7d0 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
There is no need to check to see if j overflowed in this loop as we're only incrementing i. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17944 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
1e409bfd2adf441b92f84e09706b768513f42c85 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Moderate head scratching reveals that this conditional is not needed. If i->start == j->start, then certainly i->end > j->start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17943 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
f348e3abfcca1b6366638ba8aa617118d090a305 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a couple of bugs where we considered physregs past their range as possibly intersecting an interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17939 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
1a3a48776340c96df5df673df1c159391d1a1cb7 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix typeo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17938 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.h
|
365b95fbbc80c58d9d40a44b6d8a0330cc9d1bfe |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Start using the iterators in the fixed_ intervals to avoid having to binary search physreg intervals every time we access it. This takes another half second off of linscan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17937 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
8c68b6a226ce46b35eafda972e04bf53128c2615 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Take another .7 seconds off of linear scan time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17936 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
19828d46f665e24b26c2a5d603c961abfd84cd0f |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Add a counter for the number of times linscan has to backtrack. Start using the iterator hints we have to speed up overlaps(). This speeds linscan up by about .2s (out of 8.7) on 175.vpr for PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17935 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
bae74d9192f04d8185c7b4580565d56cc4ef53f2 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Add ability to give hints to the overlaps routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17934 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
|
cbb5625cecc4f051094fc3afdc5d78fc703cb644 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
* Improve comments/documentation substantially * Eliminate the releaseMemory method, this is not an analysis * Change the fixed, active, and inactive lists of intervals to maintain an iterator for the current position in the interval. This allows us to do constant time increments of the iterator instead of having to do a binary search to find our liverange in our liveinterval all of the time, which substantially speeds up cases where LiveIntervals have many LiveRanges - which is very common for physical registers. On targets with many physregs, this can make a noticable difference. With a release build of LLC for PPC, this halves the time in processInactiveIntervals and processActiveIntervals, from 1.5s to .75s. This also lays the ground for more to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17933 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
743ef6d70e710353c1e2b6a4b23af1262f4a475b |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Add new advanceTo method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17932 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.h
|
8d8d513d4dcd4d98b92ccce10a9907086af28f1e |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a minor bug in expiredAt. endNumber() is the first number that is not valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17931 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.h
|
23b71c1e1e33219327b1c0edf43034dbe4c3ae90 |
18-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Rename some methods, use 'begin' instead of 'start', add new LiveInterval iterator/begin/end members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17930 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.h
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
8311befb6968a581a3abdce1e13b5d63922662f7 |
16-Nov-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Give a better message for a common assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17887 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
41ffe4b5313fe9c25a2aa91f01a9824d22c5351e |
05-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Do not make i have bigger scope that we need git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17483 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
6cb21d443eff9369e4f9035af28efd627e8f3909 |
28-Oct-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Change Library Names Not To Conflict With Others When Installed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17286 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
electionDAG/Makefile
|
52c09d76564d6fb24444c4d56bc8978e042e72f9 |
26-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Move method bodies that depend on <algorithm> from MBB.h to MBB.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17253 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
27f291600b04c382c390b16fdacd52b910b9164d |
26-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Clean up the MachineBasicBlock.h file, percolating #includes into this file. Patch contributed by Morten Ofstad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17251 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
irtRegMap.cpp
|
ad3c74fc9b52b652859807580c8e40b67394d689 |
26-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Reduce usage of MRegisterInfo::getRegClass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17238 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6fcd8d848dc722537c32b91daea59f50b78a4eba |
25-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Do not use variable sized arrays in C++, they are non-portable. Patch contributed by Morten Ofstad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17217 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
7a36ae8b0103088328e3a4992ac08b3dce312248 |
25-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Patch to support MSVC better, contributed by Morten Ofstad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17215 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cac731ecbe6a80e0c607ece2833525a92601db99 |
22-Oct-2004 |
Reid Spencer <rspencer@reidspencer.com> |
We won't use automake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17155 91177308-0d34-0410-b5e6-96231b3b80d8
akefile.am
akefile.in
electionDAG/Makefile.am
electionDAG/Makefile.in
|
86d341b204171d53a470c361ee58811bfc22bf1a |
19-Oct-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Initial automake generated Makefile template git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17136 91177308-0d34-0410-b5e6-96231b3b80d8
akefile.in
electionDAG/Makefile.in
|
bd1d382cc47dfc43ee758714bc22ab5a750bad15 |
16-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17055 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
ca4f6ebefc4dc55d13a0182a0be5b02e92fc63ea |
15-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Allow machine operands to represent global variables with offsets. This is useful when you have a reference like: int A[100]; void foo() { A[10] = 1; } In this case, &A[10] is a single constant and should be treated as such. Only MO_GlobalAddress and MO_ExternalSymbol are allowed to use this field, no other operand type is. This is another fine patch contributed by Jeff Cohen!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17007 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
47eb6567e22ecf87ebeabc566fac6c02c975a9a4 |
15-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
This patch fixes the nasty bug that caused 175.vpr to fail for X86 last night. The problem occurred when trying to reload this instruction: MOV32mr %reg2326, 8, %reg2297, 4, %reg2295 The value of reg2326 was available in EBX, so it was reused from there, instead of reloading it into EDX. The value of reg2297 was available in EDX, so it was reused from there, instead of reloading it into EDI. The value of reg2295 was not available, so we tried reloading it into EBX, its assigned register. However, we checked and saw that we already reloaded something into EBX, so we chose what reg2326 was assigned to (EDX) and reloaded into that register instead. Unfortunately EDX had already been used by reg2297, so reloading into EDX clobbered the value used by the reg2326 operand, breaking the program. The fix for this is to check that the newly picked register is ok. In this case we now find that EDX is already used and try using EDI, which succeeds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17006 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
8df6a594d2781777cd25fe2d00818419a8b10e5c |
15-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
This patch adds and improves debugging output. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17005 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
d96cb6eaa0a878467d9594a12dfe3a55466706f0 |
13-Oct-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Update to reflect changes in Makefile rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16950 91177308-0d34-0410-b5e6-96231b3b80d8
akefile.am
electionDAG/Makefile.am
|
de2a9432f9b4015959bd791866a2a1d838ca1688 |
11-Oct-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
ModuloScheduling has moved to lib/Target/SparcV9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16906 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
akefile.am
|
f60a149df6d6e10503e49075da455104eb489f5a |
11-Oct-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
ModuloScheduling moved to lib/Target/SparcV9 as it is SparcV9-specific git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16902 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSSchedule.cpp
oduloScheduling/MSSchedule.h
oduloScheduling/MSchedGraph.cpp
oduloScheduling/MSchedGraph.h
oduloScheduling/Makefile
oduloScheduling/Makefile.am
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
420025b04f4ca81ea1fa29a6ab995864a2dce7b6 |
11-Oct-2004 |
Tanya Lattner <tonic@nondot.org> |
Added debug information. Fixed several bugs in the reconstruct loop function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16895 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSSchedule.cpp
oduloScheduling/MSSchedule.h
oduloScheduling/MSchedGraph.cpp
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
01930c48918fc9fef5f9a3bda98e96bf337814fa |
10-Oct-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Remove the InstrSched directory (moved to SparcV9) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16887 91177308-0d34-0410-b5e6-96231b3b80d8
akefile.am
|
d9a9925f87e2971af7b5613a820a1e1e4180cbe9 |
10-Oct-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Directory no long exists (moved to Targets/SparcV9). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16886 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/Makefile.am
|
9f41a5fe8534ab5a76d2925f31a20782c135b7d2 |
10-Oct-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Initial version of automake Makefile.am file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16885 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/Makefile.am
akefile.am
oduloScheduling/Makefile.am
electionDAG/Makefile.am
|
6a134dedf6d3ac71670ad35de2387a54e40198f3 |
08-Oct-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Hyphenate target-(in)dependent for more tasty grammar goodness (tm) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16854 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGBuilder.cpp
|
6b68973617b8c4d5842595f1c77ef716807f629b |
08-Oct-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
InstrSched has been moved to lib/Target/SparcV9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16850 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
c8e049124e1e10475217d406990dbc1d34f2d15c |
08-Oct-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
InstrSched is SparcV9-specific and so has been moved to lib/Target/SparcV9/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16849 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/Makefile
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedGraphCommon.cpp
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
|
1481a5c4c7040ba96025c4e4e41b40c7da7843b4 |
08-Oct-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Single-space instead of double-spacing in the Makefile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16845 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/Makefile
|
7cf34908920dc714eba7525d38747de2cdc81402 |
02-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Do not repeat the map lookup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16633 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
bec6a9ea1281a0b3b37aece91ab0df21e086af61 |
02-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
When a virtual register is folded into an instruction, keep track of whether it was a use, def, or both. This allows us to be less pessimistic in our analysis of them. In practice, this doesn't make a big difference, but it doesn't hurt either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16632 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
irtRegMap.h
|
52b25db3ef9390271bbfa0b5c6efe0a72ce7cb8e |
01-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Add a simple little improvement to the local spiller to keep track of stores and delete them if they turn out to be dead. This is a useful little hack that even speeds up some programs. For example, it speeds up Ptrdist/ks from 17.53s to 15.59s, and 188.ammp from 149s to 146s. This also speeds up llc :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16630 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7fb64347d7d1310b5f3f06f7ae97031c73a21797 |
01-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Substantially revamp the local spiller, causing it to actually improve the generated code over the simple spiller. The new local spiller generates substantially better code than the simple one in some cases, by reusing values that are loaded out of stack slots and kept available in registers. This primarily helps programs that are spilling a lot, and there is still stuff that can be done to improve it. This patch makes the local spiller the default, as it's only a tiny bit slower than the simple spiller (it increases the runtime of llc by < 1%). Here are some numbers with speedups. Program #reuse old(s) new(s) Speedup Povray: 3452, 16.87 -> 15.93 (5.5%) 177.mesa: 2176, 2.77 -> 2.76 (0%) 179.art: 35, 28.43 -> 28.01 (1.5%) 183.equake: 55, 61.44 -> 61.41 (0%) 188.ammp: 869, 174 -> 149 (15%) 164.gzip: 43, 40.73 -> 40.71 (0%) 175.vpr: 351, 18.54 -> 17.34 (6.5%) 176.gcc: 2471, 5.01 -> 4.92 (1.8%) 181.mcf 42, 79.30 -> 75.20 (5.2%) 186.crafty: 484, 29.73 -> 30.04 (-1%) 197.parser: 251, 10.47 -> 10.67 (-1%) 252.eon: 1501, 1.98 -> 1.75 (12%) 253.perlbm: 1183, 14.83 -> 14.42 (2.8%) 254.gap: 825, 7.46 -> 7.29 (2.3%) 255.vortex: 285, 10.51 -> 10.27 (2.3%) 256.bzip2: 63, 55.70 -> 55.20 (0.9%) 300.twolf: 830, 21.63 -> 22.00 (-1%) PtrDist/ks 14, 32.75 -> 17.53 (46.5%) Olden/tsp 46, 8.71 -> 8.24 (5.4%) Free/distray 70, 1.09 -> 0.99 (9.2%) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16629 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ef0543689ff90337af358add9dad74a1e23e9d74 |
01-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Pretty print a bit nicer :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16628 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c736b3a37aa8959f9011bf0773288ba35c3f08b3 |
01-Oct-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Document this class a bit :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16626 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
dbea9731b12e62f70d9da40cf273cdd9105f987c |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Use more efficient map operations. Fix a bug that would affect hypothetical targets that supported multiple memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16614 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
477e4555de341c5de780de3720d6f115ec133c4e |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
There is no need to call MachineInstr::print directly, just send the MI& to an ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16613 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
irtRegMap.cpp
|
70ca358b7d540b6061236ddf757085042873c12c |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
* Wrap some comments to 80 cols * Add const_iterator stuff * Add a print method, which means that I can now call dump() from the debugger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16612 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
0fc27ccdd374799c8d65b61e89db53ba1ea47358 |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Simplify the logic in the simple spiller and capitalize some variables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16609 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
5f7d2d45fdd7a62611b94d404aa925a8609b5ed6 |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Switch from defaulting to the 'local' spiller to the 'simple' spiller. The two spillers produce perfectly identical code (at least on povray and eon), but the simple spiller is substantially faster than the local spiller. Once the local spiller is improved, we can switch back. Switching cuts 5.2% off of the llc time for povray (about 1.3s). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16608 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
4ea1b828ebc5d2e8711acf13c2a3fdd7c14fe339 |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Don't use a densemap for keeping track of which vregs are already loaded, just use a simple vector. This speeds up -spiller=simple from taking 22s to taking .1s on povray (debug build). This change does not modify the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16607 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
7f690e625807b9320bf4ae437b8f35258acc99de |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Use longer and more explicit names for instance vars (particularly important data structures). Fix the print method to send to the right ostream, not always cerr. Delete typedefs that are only used once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16606 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
510a3ea646c6f42a565de273b20766e6946ed691 |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Free the VirtRegMap at the end of MachineFunction processing instead of at the beginning of processing the next one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16605 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
8c4d88d3697835371ecf6823f4142af13603ad2d |
30-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Reindent code, improve comments, move huge nested methods out of classes, prune #includes, add print/dump methods, etc. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16604 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
c72c617a4ea3784c9a9f634478dc405ef6b2866b |
28-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add includes and use std:: for standard library calls to make code compile on windows. This patch was contributed by Paolo Invernizzi. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16539 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraphCommon.cpp
oduloScheduling/MSchedGraph.cpp
oduloScheduling/ModuloScheduling.cpp
|
c4d3b918165461bc6f5d395bca8d9d9d8a84413d |
28-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix includes. Patch contributed by Paolo Invernizzi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16533 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
2c4f7b5faaeedd97058ec4cfa44177124c42b9e1 |
09-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Grow the map on entry so that we don't crash if joinIntervals never runs (if coalescing is disabled for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16259 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5d0d1e350a30772fd70798b5733bb060febd7b0d |
08-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use a DenseMap for mapping reg->reg. This improves the LiveInterval analysis running time from 2.7869secs to 2.5226secs on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16244 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
76d9daccebc589dbf0f9cbb23326c7d50a26f17d |
05-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Indent to 2 spaces and cleanup excess whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16188 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
a63828619feaeee7a7468ab00c50c3d678afae55 |
05-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Indent to 2 spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16187 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
08a6c7614be9793754b17930ba619e875aef9585 |
03-Sep-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Order #includes alphabetically, local .h files first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16153 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
20aa474f8fbebde588edc101b90e834df28ce4ce |
03-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fixes to make LLVM compile with vc7.1. Patch contributed by Paolo Invernizzi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16152 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
70619fae28414db54e00be2f9052a66cd245a9c8 |
02-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change the way we choose a free register: instead of picking the first free allocatable register, we prefer the a free one with the most uses of inactive intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16148 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
|
84f5bcb0139789010eb4a4509fddf811def8794e |
02-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change the way we choose a free register: instead of picking the first free allocatable register, we prefer the a free one with the most uses of inactive intervals. This causes less spills and performes a bit better compared to gcc: Program | GCC/LLC (Before)| GCC/LLC (After) 164.gzip/164.gzip | 0.59 | 0.60 175.vpr/175.vpr | 0.57 | 0.58 176.gcc/176.gcc | 0.59 | 0.61 181.mcf/181.mcf | 0.94 | 0.95 186.crafty/186.crafty | 0.62 | 0.62 197.parser/197.parser | 0.89 | 0.88 252.eon/252.eon | 0.61 | 0.66 253.perlbmk/253.perlbmk | 0.79 | 0.84 254.gap/254.gap | 0.81 | 0.81 255.vortex/255.vortex | 0.92 | 0.93 256.bzip2/256.bzip2 | 0.69 | 0.69 300.twolf/300.twolf | 0.91 | 0.90 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16147 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
82b4955f96035e4c29a2d477dbf3d8cf6dc1bf28 |
02-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
We don't need to sort the added vector as unhandled intervals are stored in a binary heap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16143 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedGraphCommon.cpp
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
iveInterval.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
oduloScheduling/MSSchedule.cpp
oduloScheduling/MSchedGraph.cpp
oduloScheduling/MSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
HIElimination.cpp
asses.cpp
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
nreachableBlockElim.cpp
irtRegMap.cpp
irtRegMap.h
|
ed543731fb385b55750d0c514d130a810339d739 |
02-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Be a bit more efficient when processing the active and inactive lists. Instead of scanning the vector backwards, scan it forward and swap each element we want to erase. Then at the end erase all removed intervals at once. This doesn't save much: 0.08s out of 4s when compiling 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16136 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
2e58a410896ffbee3d856b113c3718bc4a5462e8 |
02-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Give a better assertion if we see a use before a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16135 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
d19e2901c1b79d287d01079659684f3a4951a69e |
31-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Minor code clarity changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16123 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
81ab877a0c8fbbdc903762bcc891c50e5bb98204 |
30-Aug-2004 |
Nate Begeman <natebegeman@mac.com> |
Put this change back in after testing from Reid proved its innocence. getSpillSize now returns value in bits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16102 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
81bc6e377e06c358747f59bce781aba25c60fb56 |
29-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16077 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
ca5d1c378ce17c24404514dcdd4ee9c28ecc721a |
27-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Now that LiveIntervals::addIntervalsForSpills is fixed, do not require LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16076 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
d8d26b3268acf7f157028f0cb60a545b185e8905 |
27-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Only update LiveVariables if it is available. addIntervalsForSpills runs after the initial run of the live interval analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16075 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ccdf21af1fe3cd0f2d8485e9da25e10c0cab7a9b |
27-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Back out this change as it broke the build last night. This should be investicated further as the linearscan variants don't really need LiveVariables... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16074 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
bd2efb96005c51f9088701843c5ee9032bd1ca76 |
27-Aug-2004 |
Nate Begeman <natebegeman@mac.com> |
Back out change to divide getSpillSize by 8 until I figure out why it breaks x86, which has register sizes in bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16073 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
3f06e687836528dc5b1f30bfe0ae2173f2f66468 |
27-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
The linear scan variants do not require the LiveVariables analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16071 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
5709998993cade99e4aeda1c9d44a1bdf54aa720 |
27-Aug-2004 |
Nate Begeman <natebegeman@mac.com> |
Register sizes are in bits, not bytes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16070 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
22a2f6d5b05631a21b62e3e103aa1b9469ad0c5c |
27-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use newly added API in MRegisterInfo and don't expose the allocatable register set anymore. Its users now use the MRegisterInfo API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16061 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
5327801fb87e3eda52a33f82e6211181030ecb93 |
27-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use newly added API in MRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16060 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
d0d0a1a08f9e27f4c950e846e0a21c3c3f11e40c |
24-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in a previous checkin of mine, correcting Regression.CodeGen.Generic.2004-04-09-SameValueCoalescing.llx and the code size problem. This bug prevented us from doing most register coallesces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16031 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7af2865fc6f15e7c94b1bee5cf04116a2f09c296 |
24-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Do not use .xword and friends to emit zeros on V9. Apparently there are issues with emitting .xwords when not on an 8-byte boundary (.xword 0 is not the same as 8 .byte 0's). Because we do not know when or when we are not aligned, just emit bytes like the old V9 asmprinter did. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16006 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7008034c9f5e69af92496308e176752dfc8e4297 |
21-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Register info alignment is in bits, frame object alignment is (currently) in bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15970 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
fa1face30a1943aa17560f6f6e10bb667b257065 |
21-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Now that we have per-register spill size/alignment info, remove more uses of getRegClass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15967 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
418379e229dc491050f7f6292aa8364c29b71301 |
18-Aug-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Instead of using isDummyPhiInstr, we just compare the opcode with V9::PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15906 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
oduloScheduling/ModuloScheduling.cpp
|
e058b27faf9ba0df1582fddda55c3bcbd96de9a0 |
18-Aug-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Instead of using isDummyPhiInstr, we just compare the opcode with V9::PHI. Also, squash a use of TargetInstrInfo::isNop(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15905 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
f746a7d09b219619b16ffa875e762d6e24868d6f |
18-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Rename var git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15897 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
7d057a3fd579a57d9f16a3e366b56df0aff4f486 |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for targets without a .zero directive git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15894 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
bfddc2030a7e67b9e0c42276525d6932375ff261 |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15888 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
0554fb6b9cf10717bd6ec099cd8193e9bb079a8d |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Use a designated comment character when printing comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15880 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
e85a5a9f40eb78ea002b47b9d70e66404b3eb52f |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that have .quad, drop extra tab inserted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15870 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
1b7e2356ace23af872cc7d66cf45c56b10e77c4d |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Implement emitGlobalConstant git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15868 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
af2bf0ab306f7a9a3fe2af028656514f7ef53143 |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
We now allow targets to use any prefix they want for global symbols. Lets hear it for ".". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15863 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
ed1ff01639f8c0ea63131662568c82699447b6b3 |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Some asmwriters want an _ prefix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15845 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
a80ba71efe5be5012128e2db0dd29b024e00105a |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Initial implementation of the asmprinter base class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15838 91177308-0d34-0410-b5e6-96231b3b80d8
smPrinter.cpp
|
ad8281607f066c2cce5c3625009d8ee0761dbf35 |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Move this code to lib/Target/SparcV9/MachineFunctionInfo.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15834 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e7f372703a87f3bafb74078c5ac5aeae61959789 |
17-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
This file is moving to lib/Target/SparcV9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15833 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
85015a0891d4d23d0215511c7b302747e1438ad2 |
16-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Move MachineCodeForInstruction.h and MachineFunctionInfo.h into lib/Target/SparcV9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15830 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
achineCodeForInstruction.cpp
achineFunction.cpp
oduloScheduling/ModuloScheduling.cpp
|
753c16c9cb50c1a6f034d851d4bcf25f3af013e7 |
16-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Nuke this file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15829 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
e97db86e1717c60e4f11e53f7b2550add7859f39 |
16-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Fold MachineInstrAnnot.cpp into this file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15828 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
e6c3dc88ca209cd754c604f18f1d63d172ed36a0 |
16-Aug-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Add a note that people shouldn't use MachineFunctionInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15823 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
3bba026994f01b2b5bdcdf4b628fa93a8ae9d6ef |
16-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Reduce usage of MRegisterInfo::getRegClass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15784 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLocal.cpp
|
078fee3f2e62d50f6c38fdb4e0f6aefaf385963d |
16-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
The insertion method returns void now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15779 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
3cc03be51ad00b65cb7b8e4f678cbd4e2c0e699f |
16-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Nuke ifdef'd out code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15777 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
26eb14ba51c8eccdb3ac69370c6ac859d3be34a4 |
16-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Stop using CreateStackObject(RegClass*) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15775 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
irtRegMap.cpp
|
57f1b67c347b9ba1f8a1cdc3a55362d4f2aa8653 |
15-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
These methods no longer take a TargetRegisterClass* operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15774 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
irtRegMap.cpp
|
8c9b4de5744ea6c4ce8b79e8a55130df268761cd |
15-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make this compile on gc 3.4.1 (static_cast to non-const type was not allowed). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15766 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
5de0f7aa14f15f463cedf6391bc4823e79d342b5 |
15-Aug-2004 |
Nate Begeman <natebegeman@mac.com> |
Elminiate MachineFunction& argument from eliminateFrameIndex git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15736 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c330b68fb7f1cb7f05a60ab4d811bba397538840 |
12-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Split saveCallerSavedRegisters into two methods for clarity, and add comments. Add support for targets that must spill certain physregs at certain locations. Patch contributed by Nate Begeman, slightly hacked by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15701 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4f65fb38c64621952263b78d3a5e00b578155237 |
12-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Forward substitute some constants into their users git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15693 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
3927af8d70c0809c6286b3d14b350a2f04bd024b |
12-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
The only target that uses this code (v9) always has argsOnStackHaveFixedSize set to true (obviously) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15692 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
b814e2d1c00c4a1abea1997ba76577e2952c37ec |
07-Aug-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Get rid of a warning when compiling optimized. Uninitialized variable has been initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15565 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSSchedule.cpp
|
ecf8afdc2065dec1ca739e2b6a96f8e72dc34533 |
07-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Ok get rid of the REST of the tabs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15564 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
d555da52f4301f0a221845d5a549848f5ae84577 |
07-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Death to tabs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15563 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
706515727c6d024015fffded2b3109a4f0ac5299 |
04-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Clean up whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15490 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
1a8ea01f01b30e28e4e3ac0e3a344c4a4d579270 |
04-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Convert indentation to 2 spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15489 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
57195d1321d959b4745429f0d43f8724050829d1 |
04-Aug-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Include SparcV9TmpInstr.h to pick up the def. of TmpInstruction, instead of InstrSelection.h, which is dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15476 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
|
f7d4efb3ed35dd12509c1248aa9b14f02bea87bd |
04-Aug-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Tighten up some whitespace. Include SparcV9TmpInstr.h to pick up the def. of TmpInstruction, instead of InstrSelection.h, which is dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15475 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
46c2b3a5eca387bdfcbc3213584ab88aff1e974d |
04-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Squelch warnings in release mode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15460 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
|
6a90f8202b0a0043de21130b1ba9d8006ba866ba |
02-Aug-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Add #include <cstdlib> and abort() to silence a warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15413 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSchedGraph.cpp
|
82fd8d8cdd207c6c48295dc5dcdc74b0a15ab978 |
02-Aug-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
* ceil() requires #include <cmath> for compilation * Alphabetize #includes * Fix some lines to fit within 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15412 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
|
e0b531cc400aba4dd2c7dbf2694b71c3ea66dfd0 |
01-Aug-2004 |
Tanya Lattner <tonic@nondot.org> |
Adding ModuloScheduling so that it compiles for everyone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15408 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
4ae131e5da124bb5f7455133fefb1fa3b336192b |
01-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Dereferencing end() is bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15402 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
f978a1db517749e91210b7df17b7f11b9a30ae47 |
31-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make OptimizeBlock take a MachineFunction::iterator instead of a MachineBasicBlock* as a parameter so that nxext() and prior() helper functions can work naturally on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15376 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
7f74340733967255cf45f6514cf0f18a1f325371 |
31-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Next on a pointer increments the pointer, not an iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15375 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
9fd332392c184b13eeb2bd3ffc4347034bc7408a |
31-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use next() helper to make code more readable. Use MachineFunction::iterator instead of MachineBasicBlock* to avoid dereferencing end iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15373 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
dd0458378128b748d4ac6c6035cd47d021faf507 |
31-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use MachineFunction::iterator instead of a MachineBasicBlock* because FallThrough maybe == to MF.end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15372 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
21ab22e47592d8a4046cfdac844d76b2cb76d711 |
31-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Implement a simple target-independent CFG cleanup pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15368 91177308-0d34-0410-b5e6-96231b3b80d8
ranchFolding.cpp
|
0a88d2d8b96aa02449afb94761d67c3b59aade5c |
31-Jul-2004 |
Tanya Lattner <tonic@nondot.org> |
Updated ModuloScheduling. It makes it all the wya through register allocation on the new code!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15351 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSSchedule.cpp
oduloScheduling/MSchedGraph.cpp
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
365f54c7bc32c13e9c3919bbc37f32192b5cb354 |
29-Jul-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Convert a few assertions with side-effects into regular old runtime checks. These side-effects seem to make a difference when using llc -march=sparcv9 in Release mode (i.e., with -DNDEBUG); when they are left out, lots of instructions just get dropped on the floor, because they never end up in the schedule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15339 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
47b14a4a6a455c7be169cfd312fcbe796f0ad426 |
29-Jul-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix #includes of i*.h => Instructions.h as per PR403. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15334 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
achineFunction.cpp
achineInstrAnnot.cpp
|
879313ae3aa2052cc40ba6f0f25c17e7a5a6f0da |
29-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix #includes of i*.h => Instructions.h as per PR403: http://llvm.cs.uiuc.edu/PR403 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15333 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
9670eecf33dbe09f0e5edc1f4ce4e56f7ae2cf10 |
29-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix #includes of i*.h => Instructions.h as per PR403: http://llvm.cs.uiuc.edu/PR403 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15331 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
b2f30a3792c84790fcf7f20bf581b963bb0a25d3 |
28-Jul-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
TargetInstrInfo::hasOperandInterlock() is always true, because it is never overridden by any target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15308 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
5a0a1c2cba48c24a81fb4f786fb25dccfcf0e335 |
25-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add some comments to the backtracking code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15200 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
c25b55a5b237772bbd7cc55988d3ca0ec569aede |
25-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix the sense of joinable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15196 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveIntervalAnalysis.cpp
|
f542649f1b374b1bae845e4e4f6d1e82f90a9e31 |
25-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
This patch makes use of the infrastructure implemented before to safely and aggressively coallesce live ranges even if they overlap. Consider this LLVM code for example: int %test(int %X) { %Y = mul int %X, 1 ;; Codegens to Y = X %Z = add int %X, %Y ret int %Z } The mul is just there to get a copy into the code stream. This produces this machine code: (0x869e5a8, LLVM BB @0x869b9a0): %reg1024 = mov <fi#-2>, 1, %NOREG, 0 ;; "X" %reg1025 = mov %reg1024 ;; "Y" (subsumed by X) %reg1026 = add %reg1024, %reg1025 %EAX = mov %reg1026 ret Note that the life times of reg1024 and reg1025 overlap, even though they contain the same value. This results in this machine code: test: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, %EAX add %EAX, %ECX ret Another, worse case involves loops and PHI nodes. Consider this trivial loop: testcase: int %test2(int %X) { entry: br label %Loop Loop: %Y = phi int [%X, %entry], [%Z, %Loop] %Z = add int %Y, 1 %cond = seteq int %Z, 100 br bool %cond, label %Out, label %Loop Out: ret int %Z } Because of interactions between the PHI elimination pass and the register allocator, this got compiled to this code: test2: mov %ECX, DWORD PTR [%ESP + 4] .LBBtest2_1: *** mov %EAX, %ECX inc %EAX cmp %EAX, 100 *** mov %ECX, %EAX jne .LBBtest2_1 ret Or on powerpc, this code: _test2: mflr r0 stw r0, 8(r1) stwu r1, -60(r1) .LBB_test2_1: addi r2, r3, 1 cmpwi cr0, r2, 100 *** or r3, r2, r2 bne cr0, .LBB_test2_1 *** or r3, r2, r2 lwz r0, 68(r1) mtlr r0 addi r1, r1, 60 blr 0 With this improvement in place, we now generate this code for these two testcases, which is what we want: test: mov %EAX, DWORD PTR [%ESP + 4] add %EAX, %EAX ret test2: mov %EAX, DWORD PTR [%ESP + 4] .LBBtest2_1: inc %EAX cmp %EAX, 100 jne .LBBtest2_1 # Loop ret Or on PPC: _test2: mflr r0 stw r0, 8(r1) stwu r1, -60(r1) .LBB_test2_1: addi r3, r3, 1 cmpwi cr0, r3, 100 bne cr0, .LBB_test2_1 lwz r0, 68(r1) mtlr r0 addi r1, r1, 60 blr 0 Static numbers for spill code loads/stores/reg-reg copies (smaller is better): em3d: before: 47/25/26 after: 44/22/24 164.gzip: before: 433/245/310 after: 403/231/278 175.vpr: before: 3721/2189/1581 after: 4144/2081/1423 176.gcc: before: 26195/8866/9235 after: 25942/8082/8275 186.crafty: before: 4295/2587/3079 after: 4119/2519/2916 252.eon: before: 12754/7585/5803 after: 12508/7425/5643 256.bzip2: before: 463/226/315 after: 482:241/309 Runtime perf number samples on X86: gzip: before: 41.09 after: 39.86 bzip2: runtime: before: 56.71s after: 57.07s gcc: before: 6.16 after: 6.12 eon: before: 2.03s after: 2.00s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15194 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
d3a205eab5761298ccfb320834b5f0ea0184ab27 |
25-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Make a method const, no functionality changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15193 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
|
62d4e16a059b5bbcd49b1bcab0d4854e784821f9 |
25-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where we incorrectly value numbered the first PHI definition the same as the PHI use. This is not correct as the PHI use value is different depending on which branch is taken. This fixes espresso with aggressive coallescing, and perhaps others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15189 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6925a9f9cc0b9d34cfbc19d9208c416e293ca516 |
25-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the range remover git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15188 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
c83e40d1b6582155286f1044623d544dea20202e |
25-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Add debugging output for joining assignments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15187 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3f86193cd2153595f0e32d8a8d8a0e7d4ec97faf |
24-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove implementation of operator= and make it private so that it is not used accidentally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15172 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.h
|
a1613db62fec94845aa8306232fb665273615bad |
24-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change std::map<unsigned, LiveInterval*> into a std::map<unsigned, LiveInterval>. This saves some space and removes the pointer indirection caused by following the pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15167 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
060913cce42d8b746194c7ebd8b19c9789a03909 |
24-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
whoops, didn't mean to remove this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15157 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
deb9971061cfb9c57930724fcf8d62fb26dc2213 |
24-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
In the joiner, merge the small interval into the large interval. This restores us back to taking about 10.5s on gcc, instead of taking 15.6s! The net result is that my big patches have hand no significant effect on compile time or code quality. heh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15156 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
4df98e546dd0cca214df661ae1072e1a3f6eff98 |
24-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Completely eliminate the intervals_ list. instead, the r2iMap_ maintains ownership of the intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15155 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
7ac2d3146a196fa0120c579ecd2ddd69652ad230 |
24-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Big change to compute logical value numbers for each LiveRange added to an Interval. This generalizes the isDefinedOnce mechanism that we used before to help us coallesce ranges that overlap. As part of this, every logical range with a different value is assigned a different number in the interval. For example, for code that looks like this: 0 X = ... 4 X += ... ... N = X We now generate a live interval that contains two ranges: [2,6:0),[6,?:1) reflecting the fact that there are two different values in the range at different positions in the code. Currently we are not using this information at all, so this just slows down liveintervals. In the future, this will change. Note that this change also substantially refactors the joinIntervalsInMachineBB method to merge the cases for virt-virt and phys-virt joining into a single case, adds comments, and makes the code a bit easier to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15154 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
0f4c076140cbd9360650f75a896c88dcfacc526e |
24-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Add a new differingRegisterClasses method make overlapsAliases take pointers instead of references fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15153 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.h
|
abf295fc6cfb438617e8b105022ce506f56674d8 |
24-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Little stuff: * Fix comment typeo * add dump() methods * add a few new methods like getLiveRangeContaining, removeRange & joinable (which is currently the same as overlaps) * Remove the unused operator== Bigger change: * In LiveInterval, instead of using a boolean isDefinedOnce to keep track of if there are > 1 definitions in a particular interval, keep a counter, NumValues to keep track of exactly how many there are. * In LiveRange, add a new ValId element to indicate which of the numbered values each LiveRange belongs to. We now no longer merge LiveRanges if they are of differing value ID's even if they are neighbors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15152 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
|
f35fef7060c465dd7b578bf6339a18e8a8911888 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
More minor changes: * Inline some functions * Eliminate some comparisons from the release build This is good for another .3 on gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15144 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
b26c215c059d4674bd6a9a8b94da86e497e64844 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Change addRange and join to be a little bit smarter. In particular, we don't want to insert a new range into the middle of the vector, then delete ranges one at a time next to the inserted one as they are merged. Instead, if the inserted interval overlaps, just start merging. The only time we insert into the middle of the vector is when we don't overlap at all. Also delete blocks of live ranges if we overlap with many of them. This patch speeds up joining by .7 seconds on a large testcase, but more importantly gets all of the range adding code into addRangeFrom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15141 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
|
aa14147cd6401e9c66dc9f81d1a47a90a5477159 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Search by the start point, not by the whole interval. This saves some comparisons, reducing linscan by another .1 seconds :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15139 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
|
e6ad392802d8643ec7efad9bb80c0c429edda499 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
New helper method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15138 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.h
|
4dc54ae0d950764443ee6a475cc9212d37074747 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Speedup debug builds a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15137 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.h
|
ebd7e6c54dce754a88d8f38df4ac2f388f35435e |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Instead of searching for a live interval pair, search for a location. This gives a very modest speedup of .3 seconds compiling 176.gcc (out of 20s). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15136 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
|
a3b8b5c0e0a1d0942288568b2012592184ca67c5 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Rename LiveIntervals.(cpp|h) -> LiveIntervalAnalysis.(cpp|h) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15135 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
|
fb449b9ea5a37fb411aee7d42f6a76119602288d |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Pull the LiveRange and LiveInterval classes out of LiveIntervals.h (which will soon be renamed) into their own file. The new file should not emit DEBUG output or have other side effects. The LiveInterval class also now doesn't know whether its working on registers or some other thing. In the future we will want to use the LiveInterval class and friends to do stack packing. In addition to a code simplification, this will allow us to do it more easily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15134 91177308-0d34-0410-b5e6-96231b3b80d8
iveInterval.cpp
iveInterval.h
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
ec2bc645053e9051ada01fac6a555df17a85c91d |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Improve comments a bit Use an explicit LiveRange class to represent ranges instead of an std::pair. This is a minor cleanup, but is really intended to make a future patch simpler and less invasive. Alkis, could you please take a look at LiveInterval::liveAt? I suspect that you can add an operator<(unsigned) to LiveRange, allowing us to speed up the upper_bound call by quite a bit (this would also apply to other callers of upper/lower_bound). I would do it myself, but I still don't understand that crazy liveAt function, despite the comment. :) Basically I would like to see this: LiveRange dummy(index, index+1); Ranges::const_iterator r = std::upper_bound(ranges.begin(), ranges.end(), dummy); Turn into: Ranges::const_iterator r = std::upper_bound(ranges.begin(), ranges.end(), index); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15130 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
94881e8c4522e368df38275d28c8ececdd1e171e |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Update live intervals more accurately for PHI elim. This slightly reduces the live intervals for some registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15125 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
fe1630b43ef3e9506fde9780108c2af0431393e9 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Force coallescing of live ranges that have a single definition, even if they interfere. Because these intervals have a single definition, and one of them is a copy instruction, they are always safe to merge even if their lifetimes interfere. This slightly reduces the amount of spill code, for example on 252.eon, from: 12837 spiller - Number of loads added 7604 spiller - Number of stores added 5842 spiller - Number of register spills 18155 liveintervals - Number of identity moves eliminated after coalescing to: 12754 spiller - Number of loads added 7585 spiller - Number of stores added 5803 spiller - Number of register spills 18262 liveintervals - Number of identity moves eliminated after coalescing The much much bigger win would be to merge intervals with multiple definitions (aka phi nodes) but this is not that day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15124 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
a7bfbba856f6fc99803c9a670fd110d7a72f4843 |
23-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
costmetic changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15118 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
e8850f476eba1b839b24bd926bab2dfd8b452307 |
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix broken -debug printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15115 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4951d48a16d46880e7dd57580d8dda7a27820778 |
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
The default has not been 'simple' for AGES! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15114 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
0bafa9818baafc969359a668245cff7d95268931 |
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Make linear scan the default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15111 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
77c4c4da24a7dc4906eed82a8f0944dee9e2367f |
22-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Put variable name to a separate line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15108 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
75fa4e4f99bd9c89be190e65155b0b78ad7f0106 |
22-Jul-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix indentation and wrap code at 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15107 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
d3014edc51af0751e7f05180e9f48162433fb4ba |
22-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Sorting is now handled by both linearscan and iterative scan so live intervals need not be sorted anymore. Removing this redundant step improves LiveIntervals running time by 5% on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15106 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
82c24fba8a096ade6875451894340a75fd3c27f4 |
22-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fit to 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15105 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
53eb37340c02a06f5927852db978586ceab0525c |
22-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Some compile time improvements resulting in a 1sec speedup in the 5sec compilation of gcc: * Use vectors instead of lists for the intervals sets * Use a heap for the unhandled set to keep intervals always sorted and makes insertions back to the heap very fast (compared to scanning a list) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15103 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
199edde70774ecb69922230fcde65acc51c21d89 |
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Remove extraneous punctuation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15098 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
10e169b0386d4fd93dca648b1188be0df0d9d405 |
22-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use reverse iterators when updating the vector, since scanning from the end will reduce erase() runtimes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15093 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
|
6beef3e1a085a0f3693fa6eff1b0b702e2c246e7 |
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
That funny 2-address lowering pass can also cause multiple definitions, fortunately, they are easy to handle if we know about them. This patch fixes some serious pessimization of code produced by the linscan register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15092 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1e31363a9ee6b4e83703da7501fba19ca31395d7 |
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15091 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
7848e68c1635ccba5a08d55314d4e5aed5ab54b9 |
21-Jul-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
These files don't need to include <iostream> since they include "Support/Debug.h". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15089 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
oduloScheduling/MSSchedule.cpp
oduloScheduling/MSchedGraph.cpp
oduloScheduling/ModuloScheduling.cpp
egAllocIterativeScan.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
d03451ef475de49edea840ab95d3d8bf0245f6bd |
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix analysis name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15078 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
|
fc29e63afec1e8f4636c13bd9723b27efc2d4c73 |
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Clear spilled list at once. Remove unused vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15073 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
|
2d54705c4b8c83b47cb7d03d488b3eda34158ada |
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change std::list into a std::vector for IntervalSets. This reduces compile time for 176.gcc from 5.6 secs to 4.7 secs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15072 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
|
3b1af0b3fc492dee8d1cd993e6d22142fe2ee7d3 |
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Improve file comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15069 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocIterativeScan.cpp
|
910d0d6066f55fba7c67f2b42dd7eb4f971ca49a |
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add Iterative scan register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
egAllocIterativeScan.cpp
|
c8dec2c23e7b31e4f7a40d686d95513a442a0b6e |
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Linearscan is no longer experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15067 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
a39fc0efcf1ccaf18f1b8eb095433e37ac9ec425 |
20-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add function to clear all virtual->physical mappings but not assigned stack slots. This is in preparation for the iterative linear scan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15032 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
6bd23c083290ab0f68388397f213323f386fc36e |
20-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unneeded functor. LiveInterval has a < operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15031 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
da77c44c2c008271d802954706350518b2683e76 |
20-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15011 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
8640f4e666086cc6e7447dc164105e428e6cb81a |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug that occurs when the last instruction in a range is dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15005 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cc0d156f7bca0811aade0a95b0e7419176383c90 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
When joining intervals, join intervals in deeply nested loops first. This is a simple change, but seems to improve code a little. For example, on 256.bzip2, we went from 75.0s -> 73.33s (2% speedup). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15004 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1c5c0444f1326b58cf05015651f36f2b04ca322d |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Split joinIntervals into two methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15003 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
74de8b1b26b12fda3364382946e519a2e37b6709 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
There is no need to store the MBB along with the MI any more, we can now ask instructions for their parent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14998 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
|
472405e0dc05f6fb8c09af00713ff893fff25b94 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14997 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
woAddressInstructionPass.cpp
|
73d4adfb1e5d6c0ce834b331e6099b14d3341dd7 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Remove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14996 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
8ea13c6233d7dded98d933b435f2727a38149a70 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Two changes, both very significant: * vreg <-> vreg joining now works, enable it unconditionally when joining is enabled (which is the default). * Fix a serious pessimization of spill code where we were saying that a spilled DEF operand was live into the subsequent instruction. This allows for substantially better code when spilling starts to happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14993 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
57eb15e316c8f186b988dea7f8962ffa827d4a71 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
See comments. The live intervals were not coming out of the spiller in sorted order, causing the inactive list in the linearscan list to get unsorted, which basically fuxored everything up severely. These seems to fix the joiner, so with more testing I will enable it by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14992 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
331cb7dde1bf0c52bfd17570d36e56b934d559f5 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix assertion to not dereference end! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14991 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
59073e02ccd79c8728e439dfe6869091b84d669c |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Add some asserts that the list of intervals returned by addIntervalsForSpills is sorted. This is not the case currently, which is causing no end of problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14990 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
6097d13b2a624048dbe02e39e2dfb23bfa269b64 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
remove the mbbi2mbbMap_, which was just keeping track of mbb order anyway. Heavily refactor handleVirtualRegisterDef, adding comments and making it more efficient. It is also much easier to follow and convince ones self that it is correct :) Add -debug output to the joine, showing the result of joining the intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14989 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
6b929060107fe9bd04931436a5d959c13eb39584 |
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
fill comment to 80 cols remove map that is not needed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14988 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.h
|
e1b9536d546b78f8cffc7efbb2ff75d7e15f9749 |
17-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
It looks like physref->virtreg joining is working fine. Enable it by default but make virtreg->virtreg joining stay off by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14916 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b8edf61fa9f558ccd68b4b5ac970e3d403d870ea |
16-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix IA64 compatibility git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14866 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
irtRegMap.cpp
|
23f9ef062a361d77a51a563c0f03e36db6c4b6ba |
16-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Use new macro git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14865 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
f51c7f56caea364e4ad7adecff0413dc74686bb3 |
15-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix for PR341 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14845 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
9fb6cf1d82617994cd6dad33ecd45c1e913534aa |
09-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Add checks to ensure that there are no unreachable blocks in the function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14725 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
ce22e76996d3ff0930716fa60c29df60a7e0481b |
09-Jul-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
* Doxygenify comments * Fix spacing, grammar in comment * Make code layout consistent * Wrap code at 80 cols * Delete spurious blank lines No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14721 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
80b27ced2d5e6340bb62d75a8c6f23198e69a1af |
09-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14720 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
607baea7d2f3155a4ca391a1d9fb1f4b0178ebb2 |
09-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Improve code comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14719 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
71bf404e9b69122c276ad7ce66f38bf1e57cafeb |
08-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add viewCFG() and viewCFGOnly() APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14679 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
3877652e683cc85dd3cd512d6af0accbce84cad5 |
07-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Disable coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14655 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5de868b0b2daf145d7991bc9b3bf25807bcc7ca7 |
06-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Do not crash when joining two intervals of registers of different classes: just ignore that move. Thanks to Vladimir Prus who found the bug! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14644 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7f0566c1233ba4378c2c5531ddbc9eb8ad1868da |
06-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the unreachable block elim pass. Dropping all references on a basic block clear()'s all of the operands lists, including phis. This caused removePredecessor to get confused later. Because of this, we just nuke (without prejudice) PHI nodes in unreachable blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14635 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
c156095b174987226a94583cb7e10c426dddaea6 |
04-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly compute the ration of iterations/#intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14626 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
954da37bb492b519f5c31dc360f2a142567e08b4 |
04-Jul-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Add #include <iostream> since Value.h does not #include it any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraphCommon.cpp
nstrSched/SchedPriorities.cpp
ntrinsicLowering.cpp
achineBasicBlock.cpp
achineCodeEmitter.cpp
achineFunction.cpp
achineInstr.cpp
electionDAG/DAGBuilder.cpp
electionDAG/SelectionDAG.cpp
|
d55b2b1067248fff5696229adf31d214d864ccaf |
04-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add efficiency statistic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14590 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
230b4fb8a0d7b2b0e0d533cf37b05a084d140a5c |
02-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Revert patches 1.79 and 1.80 which had to do with dead MBB's. Now that they don't exist, we don't have to pretend to handle them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14567 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fc3c82a804c9b5eda24d96c21f7e6ff66bc2c529 |
02-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Add a trivially simple pass to delete unreachable blocks from the CFG. This pass is required to paper over problems in the code generator (primarily live variables and its clients) which doesn't really have any well defined semantics for unreachable code. The proper solution to this problem is to have instruction selectors not select blocks that are unreachable. Until we have a instruction selection framework available for use, however, we can't expect all instruction selector writers to do this. Until then, this pass should be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14563 91177308-0d34-0410-b5e6-96231b3b80d8
nreachableBlockElim.cpp
|
4b9a4006748b8d72a04504a5fc1f5daa73bf69f9 |
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Make sure that we destroy the MBB's, with all of their instructions, before any other data structures git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14524 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
8490f9c92e354fd9cd242bae89b24e6c59e5c794 |
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Now that MachineFunction/MachineBasicBlock keep a mapping of blocks to ID #'s use them instead of a local LiveVariables numbering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14523 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
|
ca48eb9f5175058a55c1818cb1d5d06052f0092d |
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Change MBB autonumber a bit to get the reverse mapping as well as a forward mapping git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14521 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
51289aa520c9839a0396eb3e76f5e0174dc67c09 |
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Instance var no longer exists git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14520 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
8ba9771549bcff6109ad45ff3944a1b6c3c54b46 |
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Start using MBB numbers directly instead of going through the live variables map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14518 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
|
a5287a63762fbf0976e333fb7787ec135fdc2061 |
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Instead of building a private numbering of MBB's use brg's nifty auto-numbering. Also convert df_iterator -> df_ext_iterator for subsequent stuff I'm doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14517 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
91a350ddd13de9c972c583b4a1ad3ac114c117e7 |
29-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
In line with the previous patch, do not assert out if analyzing a dead basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14475 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
59850a8f8f94c59e8894edcbf8629a5d88624dc6 |
29-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Do not dereference end iterators. It hurts when you do that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14474 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4e7244e68e617f6ba23e547fdf2593eeee2af8f2 |
27-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Do not find these ugly sparc-specific objects by using the annotation API on instructions. Instead, keep a map of instructions -> MCFI objects in the already sparc-specific class MachineFunctionInfo. This will slow down the sparc backend a bit, but it does not penalize the rest of LLVM! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14438 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
b140762a45d21aaed054f15adaff0fc2274d939d |
25-Jun-2004 |
Tanya Lattner <tonic@nondot.org> |
Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14389 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
achineBasicBlock.cpp
achineInstr.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
09ba906cf55b165550aecefbd6286939be84b8d1 |
24-Jun-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Convert tabs to spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14373 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
cc6543cb51bfbb62b89f7c98ff31fbe9c4b4bd3a |
22-Jun-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Making an archive version of the CodeGen library is unnecessary if we just move InstructionLowering itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14324 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
68fd0cae5233f3a37ec840e0b381da281ff838a0 |
22-Jun-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Provide archive version of CodeGen library (for those tools that only need IntrinsicLowering, for instance). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14323 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
418da55c89c9ba355b51dceecb16f4388ef35119 |
21-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Rename Interval class to LiveInterval to avoid conflicting with the already existing llvm::Interval class. Patch contributed by Vladimir Prus! http://mail.cs.uiuc.edu/pipermail/llvmbugs/2004-June/000710.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14281 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
30483737486d00e5c1c37f51138419aa08d8b5e3 |
20-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Move the IntrinsicLowering header into the CodeGen directory, as per PR346 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14266 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
988b7ba5bad830379a7108c1f9ea36fb29073245 |
18-Jun-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Make debugging dumps w/ multiple MachineBBs for a given LLVM BB readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14205 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineInstr.cpp
|
f70c22b019494723d0e706f93d6542dfaa6e73a5 |
17-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/SelectionDAG.cpp
|
aebcce840429a2f9dd0a17c300a91901528cb953 |
16-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a recent regression in Applications/sgefa that Alkis pointed out to me. The vector may actually be empty if the register that we are marking as recently used is not actually allocatable. This happens for physical registers that are not allocatable, like the ST(x) registers on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14195 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
be78ac442216ef87b13f9ac3da365a693417c693 |
15-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Remove isnan support, correct isunordered support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14187 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
9685372062a07c49d6c940d9094df07850092cd2 |
12-Jun-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add the isunordered intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14159 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
7f7bbc2fdb833485ac3d865a405fd948e58e8ddb |
11-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Fix fallout from getOffsetOfLocalArea() being negated. Debugging dumps were being printed incorrectly, and we were reserving 8 extra bytes of stack space for functions on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14152 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
|
02348caffc6a0ca6e00960767152b6b7422ab450 |
11-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Fix lowering to work correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14134 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
137cc4fc8c549c805e817095e2d82776a2af8095 |
11-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
I misled Alkis: LLVM should have isnan, not isunordered. isunordered(X, Y) === isnan(X) | isnan(Y) Remove isunordered, add isnan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14132 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
f616f22e816ce7f7ba3414cf3d91c9410aa03223 |
11-Jun-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add the isunordered intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14127 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
577aec14288b86ab1fb07e164375ebc7d3038cb7 |
10-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Fix the prolog epilog code inserter to match the documentation and support targets whose stack grows up. Patch contributed by Vladimir Prus git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14111 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
f0a3e6c21cc24ebbec701bd8f6b1253b49498457 |
05-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Remove an unused variable. Work around for bogus errors: no those static functions don't need to be executed to be initialized! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14040 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
6bc24419b69deeaaa7bc4f77086f8e0155304e3a |
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Oops, this was not to go in git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13958 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
98107ffd1e5bb8d99d1e72995330b667a1018cf7 |
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Adjust to the new TargetMachine interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13957 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
|
9bcdcd17c7219dbc68de2f11ca2de86471c8c390 |
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Adjust to new TargetMachine interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13956 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
achineBasicBlock.cpp
achineInstr.cpp
akefile
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
irtRegMap.cpp
|
62d6ad2cee0e6b7fa653c8903a951f8497b6da3a |
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Inline findOptimalStorageSize into it's caller, both of which are sparc specific git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13955 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e25738cab63977282f8ebc26012142debfbd1d20 |
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13948 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGBuilder.cpp
electionDAG/SelectionDAG.cpp
|
fd0f7b113120a7eed61c721aa74222fa85fdd571 |
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a trivial but blatant bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13947 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGBuilder.cpp
|
6924063bf2fdcc455bcb87807ab452ab7fc69773 |
30-May-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Pull Interval class out of LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13910 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
26f5a69e52b64e035d26c135979a39b39fd6ba3e |
30-May-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
When spilling an register, introduce a new temporary for each of its spills. This allows for more flexibility when allocating registers for spill code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13907 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
cdd69e6719bed79fb2756725814c49b85efa37e6 |
30-May-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix typo in head-of-file comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13903 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
38af59a43c4176d8f34bd26faeb18b23080a1d9b |
29-May-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add method to assign stack slot to virtual register without creating a new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13895 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
irtRegMap.h
|
f174cc303ba0f37ceaed75c3ea751ebd0fb3a4cd |
29-May-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add grow() member that grows the maps when the number of virtual registers in the function has changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13893 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
f717a0569886be297903078bcd779e84254d0010 |
29-May-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove defs vector from live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13892 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
20890832ead867e78a3e9b074caecaa62983b33d |
28-May-2004 |
Tanya Lattner <tonic@nondot.org> |
updates to ModuloSched git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13881 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
ebac64534ca8f7dbaddc7569d01f190ff57ce0ea |
26-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Adding scheduling class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13783 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSSchedule.cpp
oduloScheduling/MSSchedule.h
|
4cffb588f5fafe4b288d4361e115bedefe979495 |
26-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Updating my cvs versions. THis is still in progress and much will be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13782 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSchedGraph.cpp
oduloScheduling/MSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
17fb34bf8cd10a798c9206eeef3bff151b4d3688 |
24-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Moved MachineBasicBlock deconstructor to cpp file and removed it from LeakDetector to fix memory leak bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13718 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
|
792699c46ef9bfc47dd459bbfa7e71bcb2cee29a |
24-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Added MachineFunction parent* to MachineBasicBlock. Customized ilist template to set the parent when a MachineBasicBlock is added to a MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13716 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
|
5bf3ce2b7cffb9dcd793ecde117f767e96020664 |
24-May-2004 |
Chris Lattner <sabre@nondot.org> |
Eliminate an explicit use of the LLVM basic block, using getParent instead, which simplifies the code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13707 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
0c63e03e04d3982e1913479bba404c3debc9a27e |
24-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Changed clone to be const. Changed copy constructor to set parent, prev, and next pointers to null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13706 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b5159ed0cb7943e5938782f7693beb18342165ce |
23-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Fixed up my changes to add support for cloning Machine Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13665 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
466b534a570f574ed485d875bbca8454f68dcb52 |
23-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Adding support to clone MachineInstr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
bee887211b603a7e19bf72a4c04e120b47ad82e9 |
12-May-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a really nasty bug from my changes on Monday to PHIElim. These changes broke obsequi and a lot of other things. It all boiled down to MBB being overloaded in an inner scope and me confusing it with the one in the outer scope. Ugh! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13517 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
d657c42dce0a6568500dc19cc900adf5ccdc4efb |
12-May-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Start NextMBBNumber out at zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13515 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
0bcb1ad7be8515492ba02f64c0e43113ecdf8e32 |
12-May-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Add non-const MachineBasicBlock::getParent() accessor method. MBBs start out as #-1. When a MBB is added to a MachineFunction, it gets the next available unique MBB number. If it is removed from a MachineFunction, it goes back to being #-1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13514 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
8abf69374e9c34068ddc970817738c0eb24ece2b |
10-May-2004 |
Chris Lattner <sabre@nondot.org> |
Switch this from using an std::map to using a DenseMap. This speeds up phi-elimination from 0.6 to 0.54s on kc++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13454 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
80e20eb487e5e7bc41a7a52d5e985d332c552ef9 |
10-May-2004 |
Chris Lattner <sabre@nondot.org> |
Use a new VRegPHIUseCount to compute uses of PHI values by other phi values in the basic block being processed. This fixes PhiElimination on kimwitu++ from taking 105s to taking a much more reasonable 0.6s (in a debug build). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13453 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
791f896d9f8a38b3806878867d61c114069b6195 |
10-May-2004 |
Chris Lattner <sabre@nondot.org> |
Now that we use an ilist of machine instructions, iterators are more robust than before. Because this is the case, we can compute the first non-phi instruction once when de-phi'ing a block. This shaves ~4s off of phielimination of _Z7yyparsev in kimwitu++ from 109s -> 105s. There are still much more important gains to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13452 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
6d3848df7e1f2d773ed7ae1a225944810d8510ad |
10-May-2004 |
Chris Lattner <sabre@nondot.org> |
Patch to fix PR337. Make sure to mark all aliased physical registers as used when we see a read of a register. This is important in cases like: AL = ... AH = ... = AX The read of AX must make both the AL and AH defs live until the use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13444 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
0979ca7e3e8ff1bb3f38f7b93a02db2e1704333c |
09-May-2004 |
Chris Lattner <sabre@nondot.org> |
Implement the AddPrototypes method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13432 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
73e3e2e10f6a83f72651bb9e7d0a6ad107676ab9 |
08-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Updating my versions of ModuloScheduling in cvs. Still not complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13424 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSchedGraph.cpp
oduloScheduling/MSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
880e8e4b4cc0dc6d5d93690a36d6c6f564d0a795 |
08-May-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add required header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13417 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
feab248c93eeb1028ac014fa9546a02013dd3396 |
08-May-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unneeded header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13416 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
a19eedeb7aafc418ef2f017b8215ceafa7f1a76c |
06-May-2004 |
Chris Lattner <sabre@nondot.org> |
numeric_limits::infinity() apparently does not work on all systems. As a workaround, use the C HUGE_VAL macro instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13377 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
015959ee38e4fd4a920f6b0065c50e524762f580 |
01-May-2004 |
Chris Lattner <sabre@nondot.org> |
Operate on the Machine CFG instead of on the LLVM CFG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13302 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
HIElimination.cpp
|
f25fb4bc640340c60793a3e2bbf2510dea0e15f4 |
01-May-2004 |
Chris Lattner <sabre@nondot.org> |
Stop LiveVariables from using BasicBlocks as part of the mapping, instead use MachineBasicBlocks. To do this, we traverse the Machine CFG instead of the LLVM CFG, which is also *MUCH* more efficient by having fewer levels of indirections and mappings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13301 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
35450d2aaa139ea94714a20a370df61179c63ce3 |
23-Apr-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Include SparcV9RegInfo.h instead of TargetRegInfo.h. This serves as a bit of documentation that this module needs to be made independent of the register file description of the current target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13125 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
da8246bb71a8ade10d603fa11f1465bcd0e2fc84 |
23-Apr-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Implement emitWordAt() for the debug emitter and the file printer emitter. (I am not so sure about the file printer emitter, but the debug emitter change should be harmless.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13117 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
6e4d0d6546774d21a8f4f55c591df42557ca6c62 |
12-Apr-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix bug introduced in previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12872 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
43b61f724ef68810c63fc54c99e88f9b278f05c0 |
12-Apr-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly compute spill weights git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12869 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e633352fd57d54612f8986978b6fe3cb9ba2f620 |
12-Apr-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Print def lists a bit more compactly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12866 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9a8b490735d216435862a3d52e669357f165550f |
09-Apr-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add definition list to each live interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12791 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
b4186e0ccd8dd8630078147e022142a8b65c9383 |
31-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
MBB::remove should not modify the iterator passed in git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12572 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
4f6410f5cb1c9ad8cbe4f5a96dd706023ff4dbc5 |
31-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
MachineBasicBlock::remove should not modify the iterator passed in git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12571 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
a8db01ac8353f00b519211e6e9e7d53feb1b2923 |
31-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly update LiveVariables when an instruction changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12561 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
47b716483ef2d057c8a0015af20685755e606d0d |
29-Mar-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Change how the beginnings and ends of MachineFunctions are printed. Get rid of the funny cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12537 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
eee91172fb2cd4553bb5d0f4ca6241509e7b1f7c |
17-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make the set of fixed (preallocated) intervals be a fixed superset of unhandled + handled. So unhandled is now including all fixed intervals and fixed intervals never changes when processing a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12462 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
6ae9eb1566685241eb8eced2b0ebfb8dbb3d5b3f |
16-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Fix PR294 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12425 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
39354c99a158685d8bc91b0836c283e936a29cb2 |
14-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MRegisterInfo::foldMemoryOperand to return the folded instruction to make the API more flexible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12386 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLocal.cpp
|
6a367f33f333b09b3cad83d06ca88abcaf0c66b0 |
09-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Spill explicit physical register defs as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12260 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
5ae00066c6fca3ec479245191f1766a553acb1ec |
07-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
As I wrote in the docs, simple is the default spiller :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12189 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
499b2bad27307f9117656d58effb585f4744a44f |
06-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add simple spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12188 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
c54839573cd9ffa6af33dc5190cc40d498534585 |
03-Mar-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Make MachineOperand's value named 'contents'. Make really, really sure it is always completely initialized and copied. Also, fix up many comments and asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12100 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
dd420e060accd1d773c731e77335cff65ca34013 |
02-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12062 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
egAllocLinearScan.cpp
irtRegMap.cpp
irtRegMap.h
|
5f37502bfbadfa65de087627bd67fd58bb03725c |
01-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add the long awaited memory operand folding support for linear scan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12058 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
irtRegMap.cpp
irtRegMap.h
|
05b15fb075307d55a61694ebcb19bbc9b13aa9f8 |
01-Mar-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
TargetCacheInfo has been removed; its only uses were to propagate a constant (16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in the interest of not breaking things any more than they already are, I'm going to leave the constant alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12043 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
9b3cbdbedbbd56a6f4e01ad31c641ef9f01dd8b0 |
01-Mar-2004 |
Tanya Lattner <tonic@nondot.org> |
Adding new Modulo Scheduling graph files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12031 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/MSchedGraph.cpp
oduloScheduling/MSchedGraph.h
oduloScheduling/ModuloScheduling.h
|
d14b83733ee8d85e06866838aa6a73fb595b1a8c |
01-Mar-2004 |
Tanya Lattner <tonic@nondot.org> |
Removing old graph files with new graph files that I wrote. Updated ModuloScheduling pass, but still in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12030 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
|
92bc3bc11c2d439264b1cf9e7fc5bc79f4215a54 |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add an assert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12010 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
c81295ab24ab3ea3d8203f4b798fa05c1b602a96 |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add back #include I messed up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12009 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
e8d43fdced3432405ae8cbacc4b1ff2b7bc49e14 |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Urg, forgot to check this in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12007 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
08d4963d49348b4fd0593dbff0153975f251596c |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Move the private MachineInstrAnnot.h into a private directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12003 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
78827e9f8be2d5681a03e8dc59194a185d0a6eeb |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Remove use of an ugly header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12002 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
585911ee21a12c4bf57aafe10cf949877c2dbd0b |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Move methods out of .h file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12001 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
bceb68807fdb86c794bc8d8f8aef0940f12c2ceb |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Eliminate the distinction between "real" and "unreal" instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11986 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
561c0107b20e9be4a02bad57a68ae9e4f96461a9 |
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
int64_t -> int git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11977 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fc54e83cea9c8bdc924981576caac92da690dbe6 |
27-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Rename member function to be consistent with the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11898 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegMap.h
|
57af2cf6f3b1ae250891fb60272bcdb3a964fbf9 |
27-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make spiller push stores right after the definition of a register so that they are as far away from the loads as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11895 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
ddcfd9e6fafdbbe5c973477e537119e73c115ee4 |
27-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix crash caused by passing register 0 to MRegisterInfo::isPhysicalRegister(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11894 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8fa16e47f88975b577fe1cafce1a366b78b2c340 |
27-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Clear maps right after basic block is processed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11892 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
71e353ed3530a5da48c3dd3257c410f6c4ce2e3e |
26-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Uncomment assertions that register# != 0 on calls to MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes to relevant files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11882 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
egAllocLocal.cpp
|
7b1af15612e614feef08ab91a2692214a287555e |
26-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
No need to clear the map here, it will always be empty git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11868 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e3fcabe0681fe0d759593b1bcfab527f730778d8 |
26-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix bugs found with recent addition of assertions in MRegisterInfo::is{Physical,Virtual}Register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11849 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.cpp
|
367b91d1bd0a6abf6dbf4052ff3125e485a154f8 |
25-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Great sparc renaming fallout IV: Sparc --> SparcV9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11844 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.cpp
|
1d8b28a35761a22b6d90d01d79364bd59374a2ef |
25-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove asssert since it is breaking cases that it shouldn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11841 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
4d0d864be3d9a698c4edfe36961a22126f041298 |
25-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add DenseMap template and actually use it for for mapping virtual regs to objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11840 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
irtRegMap.cpp
irtRegMap.h
|
95c34f2efd5051a4b7bc872435807c0b114b459c |
25-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add an assertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11830 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
748fba141fc81dc15dbe94d88ada5da9fcad196d |
24-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
FunctionLiveVarInfo.h moved: include/llvm/CodeGen -> lib/Target/Sparc/LiveVar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11804 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.cpp
|
0d6c5b6489b9abb634a1506d183ba47f1bf4d1f0 |
24-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Move machine code rewriter and spiller outside the register allocator. The implementation is completely rewritten and now employs several optimizations not exercised before. For example for 164.gzip we have 997 loads and 699 stores vs the 1221 loads and 880 stores we have before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11798 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegMap.cpp
irtRegMap.h
|
ec8b8bb9abffdcc22373a7f28803c18ed8efa102 |
24-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add predicates for checking if a virtual register has a physical register mapping or a stack slot mapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11795 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
e8124b9ddb332c8db5c9961323e6da3daf7251a3 |
24-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make enum private as it is an implementation detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11782 91177308-0d34-0410-b5e6-96231b3b80d8
irtRegMap.h
|
797428719f7001086b3c308b71c89cfca77d52b7 |
24-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove '4Virt' from member function names as it is obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11781 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegMap.h
|
34d9bc9f168d17c52eb57e024580bd9499695f91 |
24-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Refactor VirtRegMap out of RegAllocLinearScan as the first part of bug 251 (providing a generic machine code rewriter/spiller). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11780 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
irtRegMap.cpp
irtRegMap.h
|
575649322f390f20d08c5f2577820091d120dfd9 |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add number of spilled registers statistic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11759 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
11d1f21e1d400826ccc3cae5702d6a626baa906b |
23-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix bugs in finegrainification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11758 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0742b59913a7760eb26f08121cd244a37e83e3b3 |
23-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11757 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
achineInstr.cpp
achineInstrAnnot.cpp
HIElimination.cpp
|
e699b16a76859fa98c00b95978f8cc81d270292d |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use MachineBasicBlock::getParent(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11756 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
e6394e2b625c369e9ac33c8113067d8626932fbe |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove implementation of default constructor as it is useless now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11755 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
743d0a1f831f1d5a3141a6ca730558f40c35690a |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Refactor rewinding code for finding the first terminator of a basic block into MachineBasicBlock::getFirstTerminator(). This also fixes a bug in the implementation of the above in both RegAllocLocal and InstrSched, where instructions where added after the terminator if the basic block's only instruction was a terminator (it shouldn't matter for RegAllocLocal since this case never occurs in practice). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11748 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
HIElimination.cpp
egAllocLocal.cpp
|
12edc7ef3d7c43a2ed90e51b834cea35751299a8 |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11738 91177308-0d34-0410-b5e6-96231b3b80d8
hysRegTracker.h
egAllocLinearScan.cpp
|
fc2b449a17c540285af2c358b31126c2ad666dec |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Simplify iterator usage now that we have next(). Also don't pass iterators by reference now that MachineInstr* are in an ilist git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11732 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
25d9d5800c77dd5f6e249a3dfb61b597c1a93c2c |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Some code cleanups from Chris git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11724 91177308-0d34-0410-b5e6-96231b3b80d8
hysRegTracker.h
|
534f545ef15a22533933af853894f3516ba2eed5 |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be consistent with the other two git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11723 91177308-0d34-0410-b5e6-96231b3b80d8
hysRegTracker.h
egAllocLinearScan.cpp
|
98e17cf54345a4e9ab0ded690cdb41c0cd219c8e |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Move LiveIntervals.h up to be the first included header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11721 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
888b1a6ccdd0b12a71a38c6318b9e773006d5564 |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Pull PhysRegTracker out of RegAllocLinearScan as it can be used by other allocators as well git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11720 91177308-0d34-0410-b5e6-96231b3b80d8
hysRegTracker.h
egAllocLinearScan.cpp
|
a2f6a408dc6616713b2e63425cf8cf7792c66c80 |
23-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts of the compiler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11719 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
d0d1c8f830afbdbb708096be27d35101e13414a6 |
22-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Another bug fix for empty MBB's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11716 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
688c8252d216659360325b25a7441861bbf9552d |
22-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where we were implicitly assuming that there would be at least one terminator instruction in each basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11714 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
0f338a1e8cd8167d22e2d011e0bec7eaadc6154a |
22-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Print basic block boundaries in machine instruction debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11704 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
7200c6b82acb8401048a2bc8a423f23b48db6731 |
22-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Abstract merging of ranges away from number of slots per instruction. Also make it less aggressive as the current implementation breaks in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11696 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
d6f6d1a80daf89ad0bddc4b8335e1b2ae1ec3410 |
21-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make 'fold' statistic's description the same in both allocators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11687 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLocal.cpp
|
007726ca6f64ea74c20ddb90093ee8d6801733af |
20-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Some more statistics improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11676 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
df158c7e3f09c05805e129fc2e8e661ccbc21f54 |
20-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Disambiguate statistic descriptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11675 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
cea44711203cfcb3b18528401ac1ad170677ebfe |
20-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Rename statistic and add another one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11674 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
fa510c4af587799e3cd430006a5125bbe1374dd0 |
20-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix crash in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11659 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
537fa9838d3995be09bd40dfd7825861a92da4ce |
20-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix instruction numbering in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11655 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
39a0d5c1123cfe4ddf826690b6744cc7248e3149 |
20-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Too many changes in one commit: 1. LiveIntervals now implement a 4 slot per instruction model. Load, Use, Def and a Store slot. This is required in order to correctly represent caller saved register clobbering on function calls, register reuse in the same instruction (def resues last use) and also spill code added later by the allocator. The previous representation (2 slots per instruction) was insufficient and as a result was causing subtle bugs. 2. Fixes in spill code generation. This was the major cause of failures in the test suite. 3. Linear scan now has core support for folding memory operands. This is untested and not enabled (the live interval update function does not attempt to fold loads/stores in instructions). 4. Lots of improvements in the debugging output of both live intervals and linear scan. Give it a try... it is beautiful :-) In summary the above fixes all the issues with the recent reserved register elimination changes and get the allocator very close to the next big step: folding memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11654 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
d195e99bc8c6ca5fed506239e298d023df20e942 |
19-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix RA::verifyAssignment() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11629 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
d368c6163a54190c852838b370a62a86caafde3a |
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix problem fusing spill code into instructions: we didn't update the live variable information to take into account the change of instruction address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11628 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a96478d7d6b2aee1aecad4af23506167ec16752c |
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix an iterator invalidation problem. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11627 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
5ed001b6afe2225343ec79f58645a9aaf35c1fd2 |
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add method to update livevar when an instruction moves git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11625 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
8517e1f0beea9b5e47974f083396d53294c390ad |
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a __LONG__ term annoyance of mine: symbolic registers weren't being printed by operator<< on MachineInstr's, and looking up what register "24" is all of the time was greatly annoying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11623 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5e61fa95196b85281eec655787e9c73267532bd1 |
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add a MachineBasicBlock::getParent() method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11622 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
2acef2da068763d7a48934de96a2fbef440beee5 |
19-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Rename reloads/spills to loads/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11619 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
779e640657e14420f8e796b7b179948038fc0707 |
19-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Implement assignment correctness verification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11609 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
52f8f56ef4efaceee7535d804bf0a844cf530c57 |
19-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Move unused typedefs in private section. Add method to return interval given a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11608 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.h
|
e6d04f1a99f522be95ea45c4acb614f7e366d0d7 |
18-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Eliminate operator[] is deprecated warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11578 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
fdc01cedd489ffa01faca3548e8b738781537a0e |
18-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix deprecated operator[] warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11577 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
23c114fd3bec342ac1a2a45801b892d6b4517afc |
18-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Be more agressive when joining ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11575 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
99d9923608bfd0feff288d667c3e4f94c4132c26 |
18-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix overly conservative spill interval computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11574 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3a9986f5d8432d2c8228311cabd9768ffaa23487 |
18-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Beautify debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11573 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
56ddada278aa768a6cc32782b6f92986d160d78b |
17-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Remove the -disable-kill option. The register allocator is buggy with it, and it was only for debugging in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11557 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
11390e76e73d36e62c981069a67d1d33823262de |
17-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add support to the local allocator for fusing spill code into the instructions that need them. This is very useful on CISCy targets like the X86 because it reduces the total spill pressure, and makes better use of it's (large) instruction set. Though the X86 backend doesn't know how to rewrite many instructions yet, this already makes a substantial difference on 176.gcc for example: Before: Time: 8.0099 ( 31.2%) 0.0100 ( 12.5%) 8.0199 ( 31.2%) 7.7186 ( 30.0%) Local Register Allocator Code quality: 734559 asm-printer - Number of machine instrs printed 111395 ra-local - Number of registers reloaded 79902 ra-local - Number of registers spilled 231554 x86-peephole - Number of peephole optimization performed After: Time: 7.8700 ( 30.6%) 0.0099 ( 19.9%) 7.8800 ( 30.6%) 7.7892 ( 30.2%) Local Register Allocator Code quality: 733083 asm-printer - Number of machine instrs printed 2379 ra-local - Number of reloads fused into instructions 109046 ra-local - Number of registers reloaded 79881 ra-local - Number of registers spilled 230658 x86-peephole - Number of peephole optimization performed So by fusing 2300 instructions, we reduced the static number of instructions by 1500, and reduces the number of peepholes (and thus the work) by about 900. This also clearly reduces the number of reload/spill instructions that are emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11542 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
cdee28724ed8adb40b1aabb1cb0cf96215b38b36 |
17-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in my previous refactoring change... arg! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11535 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
7093d37304cd9f4b8208e50a0f68a0a507a18ac2 |
17-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add LiveIntervals::Interval::empty() member function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11520 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.h
|
1e3812c1c539e973102efc52cb65a4b838173f4d |
17-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Once we have a way to fold spill code reloads into instructions, we have a way to use it. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11517 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
355a724bd8366b982950ac913b0589d40eaf379b |
17-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix spilled interval update. It was too conservative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11516 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
42e0a8fded2c22b45a351afb88bf7ee233d61258 |
17-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Refactor code a bit. No functionality changes, though the comment hints at things to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11515 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
aad5c0505183a5b7913f1a443a1f0650122551cc |
16-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add LeakDetection to MachineInstr. Move out of line member functions of MachineBasicBlock to MachineBasicBlock.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11497 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineFunction.cpp
achineInstr.cpp
|
9b700f7951b07cb7be885c7560066c73733ef101 |
15-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
By default, llvm.setjmp/llvm.longjmp intrinsics get lowered to their libc counterparts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11483 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
588e72db75649e8f9f79d73c24156c9611aeacf3 |
15-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Refactor code. Now the intrinsic lowering pass tries to recycle preexisting prototypes, even if they don't precisely match what it would prefer to use. This fixes: CBackend/2004-02-15-PreexistingExternals.llx compiling it into: ltmp_0_30 = memcpy(l14_C, 4u, 17); ltmp_1_30 = memcpy(((int *)l27_A), ((unsigned )(long)l27_B), ((int )123u)); instead of: ltmp_0_30 = memcpy(l14_C, 4u, 17); ltmp_1_27 = l43_memcpy(l27_A, l27_B, 123u); Which does the wrong thing as you could imagine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11481 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
f11800b718909a334a1130997523419ae3e0f06e |
15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
This pass should not require phi elimination or live variable analysis. It should only preserve them and update LiveVariables if it already ran. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11479 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
5aaf1d28209db546534c5ea69a78b68fa150af16 |
15-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification Remove one of the operands of a two operand instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11478 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
859a18b5833f3566799313ecba8db4916500485b |
15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make dense maps keyed on physical registers smallerusing MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11477 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
843b160a2040b3ec4d3452678450afa11704c473 |
15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Eliminate the use of spill (reserved) registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11476 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
05d8350c12d8d81de1d8af6f7da155bc1c1da50e |
15-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Allow for fixed objects to reside in the local area, and if they don't to not clobber them by allocating other objects in the same space! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11454 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
c81efdc59cd2ce5410cefd7ab5cb52cfd7ac3aad |
15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add back machine code deleter pass until we get a MachineCode pass that will be responsible for the creation of MachineFunctions and will be required by all MachineFunctionPass passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11453 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
93799292c1c04c53ff077a427737b3ffbd0445ab |
14-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
There is no reason to align the stack pointer if there are no callees of this function! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11449 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
cc42d2c3ccd17a82c3c0abc95a720e183e84dbdd |
14-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
A target that doesn't support these intrinsics will still meet spec (the intrinsic will always produce zero), but it will behave unexpectedly, so warn like GCC does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11444 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
cf8990838143fcfa91dd6276af523ac6c23517c2 |
14-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add llvm.memset/frameaddress/returnaddress intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11431 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
f81af21caf9c0f62c60b72762d9a927e8c24f679 |
14-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use newly added next() and prior() utility functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11430 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
woAddressInstructionPass.cpp
|
6ab5c15962cb16402713747f1fbe85e001318e7d |
14-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use std::numeric_limits<float>::infinity() instead of std::numeric_limits<float>::max() for weighting preallocated intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11427 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
be766c72464116a445a02b542a450c4274bab5d0 |
13-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove getAllocatedRegNum(). Use getReg() instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11393 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
iveIntervalAnalysis.cpp
achineInstr.cpp
HIElimination.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
|
4de473bc594deee7bfe9dee65184f6e8ae91bbbf |
13-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use getNumVirtualRegs(). Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11389 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
90421cd8f982b4fe38d8f5992423e4f63074869f |
13-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Refactor MachineFunction::print() into MachineBasicBlock::print(). Add MachineBasicBlock::dump(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11364 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
21326fc2ad47ee7e73a8c0b03a4a0cc0b0a0c4e8 |
13-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Add head-of-file comments and Doxygen comments. Tighten up a lot of whitespace. Rename SetMachineOperandConst's formal parameters to match other methods here. Mark some methods as being used only by the SPARC back-end. Fix a missing-paren bug in OutputValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11363 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ab8672c8bb83e722b856eac67863542ea7e0cbb2 |
12-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add parent pointer to MachineInstr that points to owning MachineBasicBlock. Also change opcode to a short and numImplicitRefs to an unsigned char so that overall MachineInstr's size stays the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11357 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2751e76a709738590242adce47a3b55bc77fd36d |
12-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for the llvm.memmove intrinsic Patch graciously contributed by Reid Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11355 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
5fe51cc2c46afca64638597cdef3bdafa6cd0a8c |
12-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Implement the llvm.memcpy intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11349 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
2a90ba60175f93e7438165d8423100aa573c16c5 |
12-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Rename the opCode instance variable to Opcode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11348 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3081db8d01aaac5b3f9e9a30b36cb3eeb8c3cb0a |
12-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
This field is never read git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11346 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
c0b9dc5be79f009d260edb5cd5e1d8346587aaa2 |
12-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MachineBasicBlock's vector of MachineInstr pointers into an ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11340 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineCodeForInstruction.cpp
achineFunction.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
woAddressInstructionPass.cpp
|
918cdd420b52a4745ce7d4495759c87fd1b32fd5 |
12-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
getOpCode() --> getOpcode(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11339 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
|
61b08f193a6e84db44d3032a822e324ebb42a584 |
10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11285 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
1cbe4d0ad0888e50858cca83cf2a0d3083709513 |
10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Do not use MachineOperand::isVirtualRegister either! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11283 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
3d878d80d67452865e286069ceefe918c0f65acb |
10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Eliminate users of MachineOperand::isPhysicalRegister git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11278 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
|
f738db08186b379b58d88511f726ed7ecfb47629 |
09-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Move InstrSchedule's iterator begin/end methods inline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11239 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
0dc5753f2b3e2f2f4be1439ba57a3f749bbe51cb |
09-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Make SchedGraph::dump() use SchedGraphNodeCommon's const_iterator instead of randomly groping about inside its outEdges array. Make SchedGraph::addDummyEdges() use getNumOutEdges() instead of outEdges.size(). Get rid of ifdefed-out code in SchedGraph::buildGraph(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11238 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
ecea5635f85fc5db3a69d657e39046828538e80a |
09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Another nice speedup for the register allocator. This time, we replace the Virt2PhysRegMap std::map with an std::vector. This speeds up the register allocator another (almost) 40%, from .72->.45s in a release build of LLC on 253.perlbmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11219 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
499487742ec4299852f7ae8962acebf7bc2a22a4 |
09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Ugh, perform an optimization that GCC should be able to do itself. This speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11217 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
96aef893383a6ffcc6d6955c5d969f0fd57831c2 |
09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Only do stuff for the REAL number of physical registers we have, not 1024. This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for the first/second pass respectively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11216 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
64667b6418786edd2fceb022b3da0d3ad38221c2 |
09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Change the PhysRegsUsed map into a dense array. Seeing that this is a mapping from physical registers, and they are always dense, it makes sense to not have a ton of RBtree overhead. This change speeds up regalloclocal about ~30% on 253.perlbmk, from .35s -> .27s in the JIT (in LLC, it goes from .74 -> .55). Now live variable analysis is the slowest codegen pass. Of course it doesn't help that we have to run it twice, because regalloclocal doesn't update it, but even if it did it would be the slowest pass (now it's just the 2x slowest pass :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11215 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
f5eaf16b94357057f4ef2db5d3c9c4f190c01576 |
06-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Increase code clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11151 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
54d23c754a4ace687c9712a88159afc1277702e7 |
06-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Eliminate uneeded lookups by passing a Virt2PhysMap::iterator instead of the virtual register to certain functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11143 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
0b8cb2bc47a6bee59c8c3f46d4cc047badf7f8ac |
05-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change live interval representation. Machine instructions now have two slots each. As a concequence they get numbered as 0, 2, 4 and so on. The first slot is used for operand uses and the second for defs. Here's an example: 0: A = ... 2: B = ... 4: C = A + B ;; last use of A The live intervals should look like: A = [1, 5) B = [3, x) C = [5, y) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11141 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ad48cd6327df13ad4b8530733bbf115224bf9562 |
05-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
We don't need to scan the blocks that we are live-in on every access. Rather we only have to do it on the creation of the interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11135 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5a5960978a0d64f65a54aa2d6b23f4c8a22fef62 |
05-Feb-2004 |
Tanya Lattner <tonic@nondot.org> |
Added missing include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11129 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
14be64018fb38d1fa535b9cd12d11371f4eba3b5 |
04-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Modify the two address instruction pass to remove the duplicate operand of the instruction and thus simplify the register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11124 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
egAllocLinearScan.cpp
woAddressInstructionPass.cpp
|
4e7854407ced8e2160592675918312a20cfb7cde |
03-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
When an instruction like: A += B had both A and B virtual registers spilled, A was loaded from its stack location twice. This fixes the bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11093 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
egAllocLinearScan.cpp
|
9fe7602862328c0081106709e0a8f03316dc845b |
03-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Revert changes. Will implement this using a different set of primitives git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11091 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
cc6a1290fc91716f7d81a637171cae59678f1f6c |
02-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11088 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
eea81bafd624c36d396a08bea87bafd996e6bf43 |
02-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly update def/use information for modified machine operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11087 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
b606eaca1b149ef74c578a6a11d65339c125edab |
02-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Should be more careful. The previously applied change made all counts outside of loops = 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11085 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
22b7e44bb00e534573d7a2f2b4b96706f7ad6c4c |
02-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Create an object for tracking physical register usage. This will look much better when I get rid of the reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11066 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
04667297afe523b4bbab94bd1b6cec6d66267ca4 |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change weight array into a vector and make it as big as the number of registers (not as the max number of registers). Change toSpill from a std::set into a std::vector<bool>. Use the reverse iterator adapter to do a reverse scan of allocatable registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11061 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
f440cc19c931120630c75af142d7c4737ae67a56 |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use std::map::count() instead of std::map::find() != std::map::end() where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11060 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
b180e3e92ba8783b1f93995c98dfe1634c5f9205 |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change string for joined intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11057 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
b0b0ebaac09a930f7cbd302255fa23c5d8107e66 |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change xor to ^. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11054 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
d4baf0f74ca54dcbb61d199f4b184d6012d7179f |
01-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in a recent checkin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11050 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
676cf8cb1d613d626f826a45b44658ae35f58c7c |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Missed one silly assert :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11048 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
01e74a2aab64c5901a62d9ba9e1c263759929390 |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Simplify joinIntervals() code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11047 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4f67b8664889d9e93b452a9a5f099d41d1bd235a |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use MRegisterInfo::isPhysicalRegister and MRegisterInfo::isVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11045 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
52220f61bba91ab787d4cc0aee47df4e2ca55c04 |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Apply final part of Chris' patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11040 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
02ba13c9897ae2b19f9201e57460d7ee2b753a0b |
01-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Be a little smarter on the way we handle physical register defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11038 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
ef09c63e7ba5dd5410655f71d35eb7245893b1f1 |
31-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification, use new MRegisterInfo::isVirtualRegister method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11037 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
egAllocLocal.cpp
|
6b5076790579476f4e4325e25332dacd8fc3d088 |
31-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Fix, correctly this time, the computation of the return value Fix a spello Tighten up the assertion checking No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11036 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
163c1e7a69d721e321b1d00a57f3565e30f08ec9 |
31-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
* Fix incorrect computation of the runOnMachineFunction return value * Turn a bunch of instance variables into automatic variables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11035 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
bd91c1c37641fef20a467d5c85f89a99a1969979 |
31-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Remove unneeded #includes Move Passes.h (which defines the interface to this file) to the top. Move statistics to the top of the file. Add a comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11034 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
08cec00588ec1a8fa85b208555f006d7396ae7a4 |
31-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Merge safe parts from last night's buggy commit. These do not break any test cases :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11032 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
97017de1872e08ffcdde2fccdfd399647c1ccc4a |
31-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Optimize liveAt() and overlaps(). We now use a binary search instead of a linear search to find the first range for comparisons. This cuts down the linear scan register allocator running time by a factor of 3 in 254.perlbmk and by a factor of 2.2 in 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11030 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4d46e1e521c0df1990ea50f8146d22bd77ea71a6 |
31-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Revert last night's changes as they broke some tests. Will remerge parts of the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11029 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
32bdd4ea65f58e3227176b9a5a43013fb13f06a5 |
31-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Several performance enhancements and cleanups from Chris. Simplification of LiveIntervals::Interval::overlaps() and addition of examples to overlaps() and liveAt() to make them clearer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11028 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
49a5aaacef127970f91648ac468de1cd2b6f462f |
30-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification Implement LiveVariables::getIndexMachineBasicBlock git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11018 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
09caa3751f3c53a8c8a7a81c2a60d6c8ddf5a980 |
30-Jan-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Give clients of MachineFunctionPrinter the ability to specify a banner and choose an ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11016 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
79b0c3f0b9d91bbda354a2c6f22b6578655a5143 |
23-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix failing test cases with joined live intervals. It turns out that when joining we need to check if we overlap with the second interval or any of its aliases. Also make joining intervals the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10973 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
e88280a4224730dcf8076e0d9a20973c5761fd06 |
23-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add option to join live intervals. Two intervals are joined if there is a move between two registers, at least one of the registers is virtual and the two live intervals do not overlap. This results in about 40% reduction in intervals, 30% decrease in the register allocators running time and a 20% increase in peephole optimizations (mainly move eliminations). The option can be enabled by passing -join-liveintervals where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10965 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
84dc5fb6ba3c131ed707b03fcd1603c1efca2802 |
22-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unneeded check. An interval in active, by definition overlaps with the current one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10959 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ce501150061cc011d955368513b6b0604a1026c5 |
22-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Improve debugging output. Remove unneeded virtReg->0 mapping when virtReg lives on the stack. Now a virtual register has an entry in the virtual->physical map or the virtual->stack slot map but never in both. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10958 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
1075ecd32f53b7bc12e4a8f6917d7d1aebd4672a |
22-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Revert previous change. The code was correct... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10957 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
e1a210777d4950fa47817e61a81118351c9a2311 |
22-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix incorrect negatives in LiveIntervals::Interval::liveAt(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10956 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
06723077ed440bb25b25908aa93002d7ac49d94f |
20-Jan-2004 |
Tanya Lattner <tonic@nondot.org> |
Moved iterators around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10926 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraphCommon.cpp
|
a105c802b2eb7a3fae9340bbb43be52399fc4548 |
20-Jan-2004 |
Tanya Lattner <tonic@nondot.org> |
Moved iterators to common file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10925 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
a12c7bb06f42fe41f09a1addafcf8c126e673ff3 |
16-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Handle printing of intervals that are not assign to any physical register yet (2nd try). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10896 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
a6d8c3f8456e05b3bf0b42aa8050912ce7e92c07 |
16-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Handle printing of intervals that are not assign to any physical register yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10895 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
3b02cbe75224d91899e91a7688cac3052be4e516 |
16-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fold open interval ends handling into LiveIntervals::Interval::expiredAt() and simplify regalloc code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10894 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
1893a05b28bf03e0ded1ed651cc1d71c7854ad93 |
16-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add asserts to previous change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10893 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
f5f1689ed28025cef601034052ef9c214797e8af |
16-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use a list instead of a vector to store intervals. This will be needed when we join intervals and one of the two will need to be removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10892 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
f907bac06887abf84fd7b46cd54f8d53ff0272c5 |
14-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Hrm, apparently I missed lowering this intrinsic. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10858 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
d6e40a6cbced8265334ee0375f5996098dfdccb2 |
14-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Properly update #intervals statistic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10847 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
9739736b94b1116be2043e05567aa8899593ab29 |
14-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix bug in LiveIntervals::Interval::overlaps and LiveIntervals::Interval::liveAt. Both were considering the live ranges closed in the end, when they are actually open. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10835 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
5ab20273a4cc08f3d2451e97a74e6caad50a7efd |
14-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Improve debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10834 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
af25473d5e99e0c0968746e12d8827e4b712bd31 |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix miscomputation of live intervals. The catch is that registers can be dead at the defining instruction but can only be killed in subsequent ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10833 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
1a119e24106810310825f44c7bfd232d3272e639 |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove allocatable registers vector. It is already provided by LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10830 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
a3a6524965416647883bc0b78ff6f18fb3f7b5fc |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Cleanup debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10824 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
63841bc85d15ca0ce1b3208084f4262f3d33ef21 |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix output of live intervals to show correctly its closed, open ranges, i.e. [a,b) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10822 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
c55640f0194511d2c44f4d8bea099e373199ae9d |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unneeded check (with the recent change in live variables a use of a physical register is always dominated by a def). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10821 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
b7be11514049d13f331743ac8c1a851cea9c6d70 |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Indentation and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10820 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
f7df173e3bf03c0d91adfa695fd9845583fb9d49 |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix bug introduced by previous commit: check if fixed intervals overlap before adding their spill weight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10819 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
19b6486d3891c8a02a301aa1b44348a420772fcf |
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly compute live variable information for physical registers when an implicitely defined register is later used by an alias. For example: call foo %reg1024 = mov %AL The call implicitely defines EAX but only AL is used. Before this fix no information was available on AL. Now EAX and all its aliases except AL get defined and die at the call instruction whereas AL lives to be killed by the assignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10813 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveVariables.cpp
egAllocLocal.cpp
|
b08bdc4a161313bb09a73e6c61f0cb0669e291c7 |
11-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make LiveVariables::HandlePhysRegUse and LiveVariables::HandlePhysRegDef private they use information that is not in memory when LiveVariables finishes the analysis. Also update the TwoAddressInstructionPass to not use this interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10755 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
ae7fc3aede6205be456739f35e1ebfb7bfd2bd40 |
10-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Remove use of llvm/CodeGen/InstrSelection.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10749 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
d5da19707139e6236855d9e76d348c68272db0af |
09-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification. This should get hunked over to the Sparc backend, along with MachineCodeForInstruction and a bunch of files in include/llvm/Codegen, but those battles will have to wait for a later time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10731 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
2abcf524a15ec2db5a93d70b834ba10900f1ca0a |
09-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Move InstrSelection into lib/Target/Sparc, as it's sparc specific git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10730 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
nstrSelection/Makefile
akefile
|
75e260990d81fdddd8660bbee854cb2c0d4c42c9 |
09-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Move lib/Codegen/RegAlloc into lib/Target/Sparc, as it is sparc specific git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10728 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
egAlloc/AllocInfo.h
egAlloc/IGNode.cpp
egAlloc/IGNode.h
egAlloc/InterferenceGraph.cpp
egAlloc/InterferenceGraph.h
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.cpp
egAlloc/LiveRangeInfo.h
egAlloc/Makefile
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
egAlloc/RegAllocCommon.h
egAlloc/RegClass.cpp
egAlloc/RegClass.h
|
7d629b50a582290bcbdf0ae04a05b7ec64c5584f |
07-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add a separate list of fixed intervals. This improves the running time of the register allocator as follows: before after mesa 2.3790 1.5994 vpr 2.6008 1.2078 gcc 1.9840 0.5273 mcf 0.2569 0.0470 eon 1.8468 1.4359 twolf 0.9475 0.2004 burg 1.6807 1.3300 lambda 1.2191 0.3764 Speedups range anyware from 30% to over 400% :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10712 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
1283d86b63a424be993dffa25616567376bced1e |
07-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10711 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
75ca6a3e828332de32caac572275e889a2848bf0 |
07-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove declared but undefined method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10710 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
80b378cf7c3dce77029dc3118e1f63bc6d389da1 |
07-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change implementation of LiveIntervals::overlap(). This results in a 30-50% decrease in running time of the linear scan register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10707 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
63caedf046bcce1f2981c5305d297c2b1890bfc7 |
05-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove simple coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10695 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
8c2403631b9c83b6bb80ef61a7f6d5a34975e6a9 |
05-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
fix warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10692 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
77b1330ece6ea40b3b7700fe13e2ca64bd494203 |
05-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Add VMCore and code generator support for debugging intrinsics. By default code generators completely ignore them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10691 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
271bd2d7f1c8dca9906a9b9b9d3081b9040e2f48 |
05-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Currently we cannot handle two-address instructions of the form: A = B op C where A == C, but this cannot really occur in practice because of SSA form. Add an assert to check that just to be safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10682 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
50c047d159a7f6d9a22e17178576c7ac5178356a |
05-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Update description. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10681 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
f70e0c216c074bd2ae2b08178f5512849545db4e |
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Clean up a lot of the code I added yesterday by exposing the IntrinsicLowering implementation from the TargetMachine directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10636 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
ntrinsicLowering.cpp
|
27490a6fcc8e24be0ee4ddfcdbdf7e9da9e5af41 |
28-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Reserve ECX and EDI instead of EBX and EDI. Since EBX is a callee saved register it has a longer free range than ECX (which is defined every time there is a fnuction call) which makes ECX a better register to reserve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10635 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
26bfc08b80c904c71487ac1ab49a8b3a15a8d3e9 |
28-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add coalescing to register allocator. A hint is added to each interval which denotes the register we would like to be assigned to (virtual or physical). In register allocation, if this hint exists and we can map it to a physical register (it is either a physical register or it is a virtual register that already got assigned to a physical one) we use that register if it is available instead of a random one in the free pool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10634 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
aed386e6b0216722af654d822d0a0e9ffb571c3b |
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Whoops, don't try to lower non intrinsic calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10632 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
f8742b3e033ff69649a3a76c12e28a1428858880 |
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Use the intrinsic lowering functionality git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10626 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
42450d8a5fe3809d75b9e40641e551fb7d9aa2a4 |
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Move into the VMCore library git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10623 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
3b66ecb05fedbfe0a70b39d73b1ea5998bc8c31b |
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Implement the default implementation of the intrinsic lowering class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10621 91177308-0d34-0410-b5e6-96231b3b80d8
ntrinsicLowering.cpp
|
aa4c91ff9669244b873cadd37e86fb7e19c5e82c |
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
finegrainify namespacification minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10619 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
843397c2372cf5bd5dbd6d6d305b45eb4454b66b |
24-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Improve debugging output when choosing a register to spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10604 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
7a40eaaceec0af76d5b97610f3d4e7a47a19d245 |
24-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Do a separate pass to compute spill weights because doing it inline with live intervals was missing registers that were used before they were defined (in the arbitrary order live intervals numbers instructions). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10603 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
3bf564a95fc5732c0e48adb4c369ac2563dabe2a |
23-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change the way free regusters are computed and perform better allocation in the presence of preallocated intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10595 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
056063e2645d86b11a441abfff4bfd96dc4edf8c |
22-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix crash when compiling twolf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10584 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4de1fefd7cb973003799c949e9c4fd8d7150d856 |
21-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove verifyIntervals() since it doesn't actually work right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10570 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
6b4edbaaf9021e0434f0ce0c3724eb43ed41b770 |
21-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change weight into a float so that we can take into account the nesting level when computing it. Right now the allocator uses: w = sum_over_defs_uses( 10 ^ nesting level ); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10569 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
169cfd01964fc03828a7f2cad5d710890fbb08d8 |
21-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add support for inactive intervals. This effectively reuses registers for live ranges that fall into assigned registers' holes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10566 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
16c45e9de896ea37d48d093dbe02fc9a4c1b9f8f |
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Add a new target-independent machine code freeing pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10560 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
07f32d48f1e16bcdc621985549548a5849215238 |
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
* Finegrainify namespacification * Move sparc specific code out of generic code * Eliminate the getOffset() method which made INVALID_FRAME_OFFSET necessary, which made pulling in MAX_INT as a sentinal necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10553 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
4c080863de86448d905beab27686da823b6d44c1 |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove TwoAddressInstruction from the public headers and add an ID instead, since this pass doesn't expose any state to its users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10520 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLocal.cpp
woAddressInstructionPass.cpp
|
5e46b513f36d69ba280e16500089b3b6af0e3b5f |
18-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Prune some #includes Add a statistic for # reloads git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10518 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
a71e05acdd7c6a8e815db46b5fb6dc1d87826aab |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Modify linear scan register allocator to use the two-address instruction pass. This also fixes all remaining bugs for this new allocator to pass all tests under test/Programs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10515 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
egAllocLinearScan.cpp
|
a3d0e5c2b257a19a0de03a98a4991f5168027129 |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix bug in reserved registers. DH actually aliases DX and EDX which are not reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10514 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9af9dbde7d8b7c1e8ba8548bc5dc44927857b9f3 |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Modify local register allocator to use the two-address instruction pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10513 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
71499ded4d76233f3b605638b539548bea8bb2f1 |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add TwoAddressInstructionPass to handle instructions that have two or more operands and the two first operands are constrained to be the same. The pass takes an instruction of the form: a = b op c and transforms it into: a = b a = a op c and also preserves live variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10512 91177308-0d34-0410-b5e6-96231b3b80d8
woAddressInstructionPass.cpp
|
485ec3c21efcb6388911f654a187c49ad04e86e6 |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Rename LiveIntervals::expired() to LiveIntervals::expiredAt(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10511 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.h
egAllocLinearScan.cpp
|
43f692f90f6b27304570e1b1807542dff4b8e847 |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
When a variable is killed and redifined in a basic block only one killing instruction is tracked. This causes the LiveIntervals to create bogus intervals. The workaound is to add a range to the interval from the redefinition to the end of the basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10510 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
dd2cc65f34f9b7bfda1cd0c42becedfc361d46f8 |
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Handle multiple virtual register definitions gracefully. Move some of the longer LiveIntervals::Interval method out of the header and add debug information to them. Fix bug and simplify range merging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10509 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
f6f91bf6680668990ff3804b14cf05beedc56ec4 |
15-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change preserve all claim to just preserve live variables and phielimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10469 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
4d7af65903cbc858464362e70a6adf499982ec8a |
14-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change interface of MachineOperand as follows: a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits32() to isLoBits32(), opHiBits64() to isHiBits64(), opLoBits64() to isLoBits64(). This results to much more readable code, for example compare "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used very often in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSelection/InstrSelectionSupport.cpp
iveIntervalAnalysis.cpp
iveVariables.cpp
achineInstr.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAllocLinearScan.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
94743e4915eb9a7d9c2dd57862e6634e9ece8eb5 |
13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
When reserving a preallocated register spill the aliases of this register too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10450 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
4c214d2bf0da92a7973bb7902c0d6d055b1fa991 |
13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Ignore non-allocatable physical registers in live interval analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10449 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
7d65a12fe660b10c5a10a3f0a655aa4e4a7fe365 |
13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Expire any active intervals left when register allocation is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10448 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
f6e610c27dcc681a427862a8bcd63908eb31fa3c |
13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add instruction numbers to debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10447 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
9435eda6993944e74419d2f586fdd25635293760 |
13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Handle explicit physical register defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10445 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
efe995a4063dd3f414f60c6ee2f4704dbb0fad34 |
13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unecessary if statements when looping on ImplicitDefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10444 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
egAllocLocal.cpp
|
f5ba89df1fb9d52bf6b7ba1def6bd00b8b668336 |
10-Dec-2003 |
John Criswell <criswell@uiuc.edu> |
This appears to fix Bug 172 and does not break any other feature tests or regression tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10388 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
a327e7fea987769152e06c10e58fea81ca2bc556 |
05-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make assertion stricter. Since the source operands are allocated at this point, the second operand must be a physical register (it cannot be a virtual one). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10292 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
49787e35c3eebb7afce81829d426114451f8a597 |
05-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix bug in register spilling when a preallocated live range overlaps a potential register assignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10291 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
b27ef248f579b354aab434f63c417ab1103e47e2 |
05-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Move operator<<(std::ostream&, const LiveInterval&) out of the header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10290 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
|
91ceae6d2060367a5212b15b26faa804ea0448a5 |
05-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Sort live intervals by increasing start point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10289 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
|
69546d5f840250455202e487ec42d8655d209775 |
04-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Improve debugging output and clean up some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10288 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
585870759b321b2c5e664bb767ad64615fa1cb4e |
01-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Print instructions before register allocation is performed. Also fix bug where spill instructions were added to the next basic block instead of the end of the current one if the instruction that required the spill was the last in the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10272 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
99d1a8f048a1bd215fcaca2bf3913c018237e134 |
30-Nov-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove "numReloaded" statistic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10268 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLinearScan.cpp
|
ff0cbe175df40e0d2b36e59c6fb72f211f1cba4c |
20-Nov-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Merging the linear scan register allocator in trunk. It currently passes most tests under test/Programs/SingleSource/Benchmarks/Shootout so development will continue on trunk. The allocator is not enabled by default. You will need to pass -regallo=linearscan to lli or llc to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10103 91177308-0d34-0410-b5e6-96231b3b80d8
iveIntervalAnalysis.cpp
iveIntervalAnalysis.h
asses.cpp
egAllocLinearScan.cpp
|
d0fde30ce850b78371fd1386338350591f9ff494 |
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedGraphCommon.cpp
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
iveVariables.cpp
achineCodeEmitter.cpp
achineCodeForInstruction.cpp
achineFunction.cpp
achineInstr.cpp
achineInstrAnnot.cpp
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
HIElimination.cpp
asses.cpp
rologEpilogInserter.cpp
egAlloc/AllocInfo.h
egAlloc/IGNode.cpp
egAlloc/IGNode.h
egAlloc/InterferenceGraph.cpp
egAlloc/InterferenceGraph.h
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.cpp
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
egAlloc/RegAllocCommon.h
egAlloc/RegClass.cpp
egAlloc/RegClass.h
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/DAGBuilder.cpp
electionDAG/SelectionDAG.cpp
|
e9414cab00e5d1ff37edf25cbc422ba8de63d4ff |
10-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix problems linking against the reoptimizer; _llvm_regAllocState must have externally-visible linkage, and SaveStateToModule must default to true for llc. I don't remember why I made it const; perhaps it should be deconstified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9858 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
213904133d0ee6cae7ebd025bfc4c5f0677cc214 |
10-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Operand numbers are now ints. Save the register allocation of the value each instruction produces as "operand" -1, and the other operands as 0 .. n, as before. PhyRegAlloc::saveState() is refactored into PhyRegAlloc::saveStateForValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9842 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/AllocInfo.h
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
e2bf0a2c36105dcee6bb9adb2306358ac1f936b5 |
06-Nov-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Let's not forget about our friends -- Constant Pool indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9750 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
414d9d270754a2bb4b5875e8c85078047ebfbea5 |
05-Nov-2003 |
Chris Lattner <sabre@nondot.org> |
Do not use a class before it is defined. Be gcc 3.4 clean git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9727 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
55766e139a2eae8d44e703c1933d1084c1d5a586 |
04-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Update verifySavedState()'s comment, so that it reflects its current status. In doFinalization(), skip over external functions, just like Anand's mapping info does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9703 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
cce4e7a1b12fcb7b0f4bc63b7515b4abc147a512 |
04-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9697 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
3ceac85296b5b0d6dd40daa49d529a56021dd51a |
30-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Include llvm/CodeGen/MachineCodeForInstruction.h. Use it to start implementing verifySavedState(). In saveState(), use the new AllocInfo::AllocStateTy enum, and increment Insn each time through the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9617 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
82c5eb7bc8f0cfe77938bbe107cf926680fc8c4d |
30-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Make AllocState an enum. Move the stringifying method for that enum into class AllocInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9616 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/AllocInfo.h
|
8fc493430c2265da5b7c46cf50ab93a75a00b2f3 |
24-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Publicize the type of FnAllocState. Prototype option to save state in a global instead of as a Constant in the Module. (Turned off, for now, with the on/off switch welded in the off position. You get the idea.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9500 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
3e43026095f273919daed6633cc838700f837a77 |
24-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
standardize command line option names git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9496 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
232db6e8d645360a9773e2617af9546ed32ac82c |
23-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Move the implementations of ==, != on AllocInfos here, from UnpackTraceFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9452 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/AllocInfo.h
|
537132bf129163343200fe6805ce43077fda233b |
23-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Move AllocInfo structure to a private AllocInfo.h header file. Make FnAllocState contain vectors of AllocInfo, instead of LLVM Constants. Give doFinalization a method comment, and let it do the work of converting AllocInfos to LLVM Constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9451 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
b8dbbcee25f2c2c6e3bc8fd81a89c087cd5e9a3d |
23-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Make FnAllocState contain vectors of AllocInfo, instead of LLVM Constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9450 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
3d7125cd6665a303e315aad36794314c1481e1c0 |
23-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
New file, containing AllocInfo structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9449 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/AllocInfo.h
|
f54c437714d676c939bdcb4941d2527018d661e5 |
23-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Eliminate `using' directive * Fix order of #includes * Make code layout more consistent * Eliminate extraneous whitespace and comment-lines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9433 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/RegClass.cpp
|
396c8c34edac7fa93168a8b57a9af3ea93567369 |
23-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Fix order of #include files * Doxygen-ify method comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9432 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
0d82a54bb9f9105c7b77a792e502cd194f4de509 |
23-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Order #includes as per style guide * Doxygen-ify comments * Make code layout more consistent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9431 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.cpp
egAlloc/LiveRangeInfo.h
|
a1f64355d79ce9c14a06c014df9d1054410d65ee |
23-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Use C++ style comments instead of C-style * Make file description more readable * Make code layout more consistent, include comment in assert so it's visible during execution if it hits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9430 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
egAlloc/IGNode.h
|
0849f5ace979a4827befcaff54535381fca12d89 |
23-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Eliminate `using' directive * Make code layout more consistent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9427 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
|
5e152593e05f93882b1f5ee46288d19d24544e4b |
23-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Make code layout more consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9426 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
|
3692fd97a6fb832f010bd269a7c65d010c518440 |
22-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Change the type of FnAllocState. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9388 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
60a3c55c4f98a3bdf43e85113eb0f4536b15f30e |
22-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Don't worry about converting each function's reg. alloc. state into One Big Constant early on, because we can do it in doFinalization. Tighten up a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9387 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
b8dc21e1e246a311f0c9b22847315dbd0ba0c751 |
22-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Add prototype for verifySavedState(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9386 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
af84370908bc3d498d53a1e02ab4e5bf511433b8 |
22-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Doxygenify method comments. Try to improve method comments a little. Get rid of some excess whitespace; put braces on previous line when possible. Add stub for method to verify the work of saveState(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9385 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
aefb666d07fdf695809fc92ef8497586674590d8 |
21-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM copyright notice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9324 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
egAlloc/InterferenceGraph.h
egAlloc/RegClass.h
|
856ba76200ec2302f2fe500bc507f426c7d566c8 |
21-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM copyright header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9321 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.h
oduloScheduling/ModuloSchedGraph.h
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
egAlloc/RegAllocCommon.h
|
e488e9360b1a865ba604330965edcf139e590b65 |
21-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM copyright notice to Makefiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9312 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/Makefile
nstrSelection/Makefile
akefile
oduloScheduling/Makefile
egAlloc/Makefile
electionDAG/Makefile
|
b576c94c15af9a440f69d9d03c2afead7971118c |
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraphCommon.cpp
nstrSched/SchedPriorities.cpp
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
iveVariables.cpp
achineCodeEmitter.cpp
achineCodeForInstruction.cpp
achineFunction.cpp
achineInstr.cpp
achineInstrAnnot.cpp
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloScheduling.cpp
HIElimination.cpp
asses.cpp
rologEpilogInserter.cpp
egAlloc/IGNode.cpp
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
egAllocLocal.cpp
egAllocSimple.cpp
electionDAG/DAGBuilder.cpp
electionDAG/SelectionDAG.cpp
|
3b237fcd385a734b49bb54893ce256ba181e36f9 |
19-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9269 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
60fa583545ca11c3d67faca90f6411c3f822942e |
16-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
#include vector which we will need here soon git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9144 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
|
fd05924946ebfcfb3409b21996cfd0836e4ddb31 |
15-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Decrease usage of use_size() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9135 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
cf3056db0fee1db7921214b1f25cea04e959e105 |
13-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Regularize header file comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9071 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
oduloScheduling/ModuloScheduling.cpp
|
aa41c3ca20df402e1626be590ff5c784afb734cc |
10-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Doxygenified comments * Wrap code at 80 columns * Ordered includes according to LLVM style guide git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9020 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
|
73ff5120eb8b8c0ccbfed8a17f1024c67a75f319 |
08-Oct-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs and TargetInstrDescriptor::ImplicitUses to always point to a null terminated array and never be null. So there is no need to check for pointer validity when iterating over those sets. Code that looked like: if (const unsigned* AS = TID.ImplicitDefs) { for (int i = 0; AS[i]; ++i) { // use AS[i] } } was changed to: for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) { // use *AS } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8960 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
7237ecef134cd88aad13190f078ff23057bfcb71 |
02-Oct-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8819 91177308-0d34-0410-b5e6-96231b3b80d8
asses.cpp
|
797c1366070b8c5f9a409fe39811c99f82af6261 |
30-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
include passes.h which defines the interface this file exposes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8793 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
222bd53c2c25d5612f3c56f791fefa3096de7872 |
24-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Update head-of-file comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8699 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
6a256cc37cc4b1b6b7e19be8eede976fc75c15ca |
24-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Untabify tabs in stuff I've recently added. Check in my register allocator state-saving code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8698 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
59b1c566c9abd02745a3f73f1dbceb8d65a1ac77 |
24-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Use getRegClassID() instead of getRegClass()->getID(), since it's there. Shorten the markSuggestedColorUsable method. Add a switch for saving reg. alloc. state (coming soon). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8697 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
eefaeb84f1299c2ea2d1b06537880f1683e2161d |
24-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Remove some unused methods of class IGNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8696 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
|
8474f6fcda95068c373e68a43fb0cf5a12662f97 |
23-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Move getAnalysisUsage method from header to .cpp file. Add a normal file header comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8679 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
bd353fb6625db70e902bb0c1eec2caac1ac243b1 |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Use C++ math header instead of C version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8648 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
37bc4cce9baf500162ef2b94a2eebb3175fd6ed5 |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Erase now-unused prototypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8647 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
874f423f54c4a01e4ccf07780593d7f894fc8422 |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Rearrange #includes ... since there are fewer now I guess it's a win. (I also zapped printMachineCode() and printLabel() at the previous checkin, but forgot to mention it.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8646 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
5779ef2ce0a7f8d5969e9e10acdc43965731b577 |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Standardize the names of include guards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8645 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.h
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
egAlloc/RegAllocCommon.h
egAlloc/RegClass.h
|
fdb2596c7730b4416c3c4bcd588a3d1a400781be |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Standardize the names of include guards. Remove more excess whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8644 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
6264fb70c14562266e3d3973ddd108e962f5eb92 |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Standardize the names of include guards. Fix typos in file header comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8643 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
|
43ce8fe477eb15674ba09eb1a7622de38e7d0f8a |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
I tried to standardize the formatting and tidy up the huge amount of excess whitespace a little. Also improved some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8642 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
4efe342424898fb37027040676b96c41a536c361 |
21-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Convert PhyRegAlloc into a proper pass. PhyRegAlloc.cpp: Don't include TargetMachine.h or TargetRegInfo.h, because these are provided by PhyRegAlloc.h. Merge class RegisterAllocator into class PhyRegAlloc. Simplify & move ctor, dtor to PhyRegAlloc.h. Make some of PhyRegAlloc's reference members into pointer members, so they can be more easily messed with. MarkAllocatedRegs() becomes a member method, with fewer args. PhyRegAlloc.h: Include Pass.h, TargetMachine.h and TargetRegInfo.h. Don't declare TargetRegInfo forward. Give AddedInstrns the obvious clear() method. Make some of PhyRegAlloc's reference members into pointer members, so they can be more easily messed with. Add prototype for markAllocatedRegs(). Remove unused inline void constructLiveRanges(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8641 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
6eba07a6a3dacec09aefa54a305b06c98b0c86c1 |
17-Sep-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Fixed spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8588 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
achineInstr.cpp
|
305f02dd6494147904f684621138cf0fe55bc41e |
16-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix typo in comment. Take out some random whitespace. (Partial merge from my working file) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8564 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
d0534a863afaac3f6b2bbcc8c5fcf3ce257cdcf8 |
16-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Edit comment for accuracy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8562 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
bed4effb84cb0834d01f9f8b1f9e87313520335f |
16-Sep-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add flag to control whether or not delay slots are filled during instruction scheduling (this is off by default). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8553 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
41de073b0482c1b9cf40f0a80c24b17333f0d9c9 |
15-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8523 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.h
|
37f92e25689bacd2308c92f33d01163478cf5ad1 |
12-Sep-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Fixed spelling and grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8489 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
be4063babd31bc6e47f04dfcb32697408f3d44ea |
01-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Don't build dead directories git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8308 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
79a4e8e2d62c57e729656eb8ff8744a726b82e14 |
01-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Remove dead library makefile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8304 91177308-0d34-0410-b5e6-96231b3b80d8
reOpts/Makefile
|
02b81351f983f21a420a69319c69860d2180ebdb |
01-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Remove makefile for dead library git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8303 91177308-0d34-0410-b5e6-96231b3b80d8
ostOpts/Makefile
|
84681f1184af38d9f6c56024f0079b7075133a9f |
01-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
LiveRange.h is now in lib/CodeGen/RegAlloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8299 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
|
893f9541dc09ff450415ca5cb28320d928511cf2 |
01-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
LiveRangeInfo got moved into the lib/CodeGen/RegAlloc directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8297 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.h
|
70b2f56e76b254c2d4a136ecd37623ad27981903 |
01-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
PhyRegAlloc.h got moved to lib/CodeGen/RegAlloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8296 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
c083dcccbf6da2830914ba691824cf780badef32 |
01-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Move IGNode from public include directory to here. Minor cleanups like adding std:: namespace qualifiers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8295 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
c9afb499f67a92c70ce349e84081f5bb41fab591 |
28-Aug-2003 |
John Criswell <criswell@uiuc.edu> |
Fixed two double free bugs that caused llc to segfault or run forever. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8191 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
3b6b6ba4be1fc67809e81f750f664363f947aa1c |
28-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
Removing README git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8180 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/README
|
4f839ccf4905906f6cb4327614c043aa4cafe554 |
28-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
Putting my revised version of ModuloScheduling in cvs. This is not complete... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8179 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
8dc9982e2e65fa2a2105c31d389f09bae7e5fc7c |
28-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
Moved index into BB to common graph class because its needed by ModuloSchedGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8174 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
|
d6d863392fdc7649fd3f68d0779f1178db91e1ef |
27-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
Added/removed header file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8160 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
c50ee556e5ecda3fc33d27f83b39f890010dee12 |
27-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8153 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedGraphCommon.cpp
|
b6489f3153926655770e5a0d5b72dbc81a87267f |
26-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
First version of SchedGraph common class and refactoring of SchedGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8148 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedGraphCommon.cpp
nstrSched/SchedPriorities.cpp
|
41822c790f7f0502e604fa2fa26e8edb022fda8c |
24-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: Jello/2003-08-23-RegisterAllocatePhysReg.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8095 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ef6a6a69ff1e1b709d0acb315b9f6c926c67a778 |
22-Aug-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
The word `dependent' has no `a'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
egAlloc/RegClass.h
|
e287cfdfd0815ac5c80c72c0913a45ca98993a28 |
22-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Fix spello git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8029 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
|
5560c9d49ccae132cabf1155f18aa0480dce3eda |
18-Aug-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Spell `necessary' correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7944 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
128c2aa49332123d7c89477efca73b8bac233dd7 |
17-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: Jello/2003-08-15-AllocaAssertion.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7916 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
53b99a0fe74b3cc272d7aad4d43a25f09c4979e4 |
15-Aug-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix typo in comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7906 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e3561c23c2fd64712ed1ec7dfdd0bfbcf84356d5 |
15-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Remove uses of the NonCopyable class, to make the doxygen output look better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7880 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
79ba7c1aee433775f77fb5892b0aa764b39d8511 |
15-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
rename selection directory and library to SelectionDAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7877 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
electionDAG/Makefile
|
7dc97ff18023935880082d84a0004ac111859357 |
15-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Add a bunch of new node types, etc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7875 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGBuilder.cpp
electionDAG/SelectionDAG.cpp
|
bf3c4cfaad706db21ac82a4376e1899d0d7f0935 |
14-Aug-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Factory methods for function passes now return type FunctionPass *. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7839 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
egAlloc/PhyRegAlloc.cpp
|
277aad2655b87402ecc48a0de8ad780d2816bc3a |
14-Aug-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Factory methods for function passes now return type FunctionPass *. Get rid of RegisterLLC, which can't handle FunctionPasses anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7836 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
19df3876e6dce016ec4c5ab28320a246ab285001 |
13-Aug-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Factory methods for FunctionPasses now return type FunctionPass *. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
7f2438f1700789278ebd28362c41646165b5ce00 |
13-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Mapping directory no longer exists git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7801 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
c09f429499c07ccb4eb527e26fd229812c9f9e68 |
13-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Obsolete file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7799 91177308-0d34-0410-b5e6-96231b3b80d8
apping/Makefile
|
feb3298fca84eaae664281e04b23f1fbe7ade856 |
13-Aug-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
For instructions in a delay slot of another instruction, we no longer need to find the live-before set of the delayed branch since that set is now included the live-before/after set of the instructions in each delay slot. Just assert that instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7796 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
fa7ed53f32917ef632b21753a772548dde8c2eed |
11-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Build the SelectionDAG library git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7718 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
78ec311bd5fcdf44ed64841a0f5df1124b3a9b17 |
11-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of SelectionDAG implementation. This is still rough and unfinished git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7717 91177308-0d34-0410-b5e6-96231b3b80d8
electionDAG/DAGBuilder.cpp
electionDAG/Makefile
electionDAG/SelectionDAG.cpp
|
2010f7baec18914b8a5d1b2b4c3c21511fa6e25d |
07-Aug-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix assertion in MachineInstr::substituteValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7675 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
3fd1f5bb6af4616f72f6e7920c2fc4b334277416 |
06-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Use a new local data structure instead of the MachineInstr::regsUsed set git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7621 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
c393c57afc971f88f2ad4618a921c359c0c57969 |
06-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Add a map git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7620 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
6ae3117582a12ecb92b8c38c13a0b3bf267139b8 |
06-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7619 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
3bed95b628308f9cd7fa060a4438425557dad76d |
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Physical registers no longer live in the regsUsed set for each machine instr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7618 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
610234d5c9582e2645738ad9c347b855962122b7 |
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Do not insert physical regsiters into the regsUsed set git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7617 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
a2dd745613fdb9deff6037285f4efc20248c7b3d |
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
All callers of these methods actually wanted them to preserve the flags, so get rid of the def/use parameters that were getting passed in. **** This now changes the semantics of these methods to preserve the flags, not clobber them! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7602 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8c8194500d3e06a7200a7a49508a6dc766d6e00a |
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bugs handling ESP in alloca references git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7591 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
d9ac6a7d3b6a022a2b3d0170c1a20c523c67b436 |
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Revert previous change, and be really anal about what physical registers can do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7588 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
27615d7f2159ef219167cfc3e804d17105a62e78 |
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Don't bother calculating info unless its needed. May reduce number of stack slots created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7584 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b8822ad224d4eb5dc1b8b770bee11a2160e79141 |
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
* Fix spelling of 'necessary' * Add a lot more DEBUG output, which is better structured than before * Fix bug: Jello/2003-08-04-PhysRegLiveFailure.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7583 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e109de3166484d9d2e111efd44bc05a60bd8b056 |
03-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Simplify code, eliminating the need for the X86 isVoid target instr flag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7534 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4cc662b0ef29bd0201e49a841e0c3a8acaa3753e |
03-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Set debug types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7533 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
egAllocSimple.cpp
|
925b771dc378d6c88da44cd5b6650f2758c3c0a7 |
03-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Remove using decl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7531 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d3fd79f699c50d6098ea59a357ed29473467340e |
03-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Wrap at 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7503 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
a11136b16c6c3cf26fc6185447458a1c4b300107 |
02-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Move DEBUG to Debug.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7497 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
egAllocSimple.cpp
|
b5161b60c2fdc832b203b93bc9ff1cf91134884e |
29-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
All constant-evaluation code now unified into TargetInstrInfo::ConvertConstantToIntType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7390 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
814030a0c588732e3bbb281e4a0139628e49802a |
29-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
1. Bug fix: Don't use branch operand reg. as temp. reg. when spilling values used by an instruction in the delay slot of the branch (which will eventually be moved before the branch). 2. Bug fix: Delete the delay slot instr, not the branch instr, when moving delay slot instr. out!!!! 3. Move code to insert caller-saves moved here from SparcRegInfo: it is now machine-independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7389 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
b403b2c0193aa2226069faa1208676d3f6380bde |
29-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add const version of getLiveRangeForValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7386 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.h
|
102f295114d57dc9624741516382ef47dd799a9c |
29-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Code to insert caller-saves moved here from SparcRegInfo: it is now machine-independent. Fix problem with using branch operand reg. as temp. reg. when spilling values used by an instruction in the delay slot of the branch (which will eventually be moved before the branch). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7385 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
8d3f8e226d6cac7882e9ffe7482602a7521400c3 |
27-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Making this code const-correct would be a pain, so I'll hack it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7350 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
egAlloc/PhyRegAlloc.cpp
|
9e2dd8f8d7c995721584d8c7add309e5d9cb1051 |
27-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Const correctness fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7349 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
HIElimination.cpp
|
9cdaa63f576de1a1bcb31b3436280a15c7d97c4d |
27-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Be const correct git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7348 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
e5a61ccdc5fdb5d3410a41a4f45071f5adb7d40d |
27-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Hrm, another necesary one :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7347 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
1d598fa25adc3f821f87f544d8ba20036879aed4 |
27-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Remove #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7342 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.h
|
bae47e5691fbdbbb1560542bd355f3e3ba282fb6 |
27-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Remove extraneous #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7341 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
egAlloc/LiveRangeInfo.h
|
bc001b24a17a2329dfd96bc22b8862b645603058 |
25-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
(1) Change the way unused regs. are marked and found to consider regType info (since multiple reg types may share the same reg class). (2) Remove machine-specific regalloc. methods that are no longer needed. In particular, arguments and return value from a call do not need machine-specific code for allocation. (3) Rename TargetRegInfo::getRegType variants to avoid unintentional overloading when an include file is omitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7329 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
egAlloc/RegClass.h
|
34a856749fd5563c201e91ce1cd2dfc345f6f49c |
25-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Remove unused field. Change the way unused regs. are marked and found to consider regType info (since multiple reg types may share the same reg class, e.g., single and double on Sparc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7327 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
c8bf87af3efe766440d0df259a038a0b6998e6e9 |
23-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Remove unnecessary casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7250 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
9daa8a12d33412d3d7c78f7b5a00f0883e388b58 |
23-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Random cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7247 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
|
1815383276d5068e4c1a336cefb0579953d05138 |
23-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
Remove using decl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7246 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
4d2faf630712f7a70d0d595f412a501a5e8cd3a8 |
10-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Values stored in CallArgsDescriptor cannot be const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7156 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
24d0410db074192fc8d9a60a168f6ec9d1b41edd |
10-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
isMarkedForSpill() should be const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7155 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
|
627eb31cd791f808eaa048478d01222577a30a1a |
10-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Change interface to MachineInstr::substituteValue to specify more precisely which args can be substituted: defsOnly, defsAndUses or usesOnly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7154 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
51bda6fccbbea7b88ecf6a69c567085fd64eeb5f |
10-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Print out all neighbors in interference graph, not just higher-numbered ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7153 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
|
3bf089227bb8470310481c21a3327146963714e5 |
10-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Several fixes to handling of int CC register: (1) An int CC live range must be spilled if there are any interferences, even if no other "neighbour" in the interf. graph has been allocated that reg. yet. This is actually true of any class with only one reg! (2) SparcIntCCRegClass::colorIGNode sets the color even if the LR must be spilled so that the machine-independent spill code doesn't have to make the machine-dependent decision of which CC name to use based on operand type: %xcc or %icc. (These are two halves of the same register.) (3) LR->isMarkedForSpill() is no longer the same as LR->hasColor(). These should never have been the same, and this is necessary now for #2. (4) All RDCCR and WRCCR instructions are directly generated with the phony number for %ccr so that EmitAssembly/EmitBinary doesn't have to deal with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7152 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
97539fc4b63031495cbee5441de7a3a583e5ec77 |
06-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Choose register instead of immediate for ConstantExpr in ChooseRegOrImmed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7112 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
65b2f401afbaa4a87f0dd4a51cd1f177c7c15e40 |
02-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Minor beautification: fold a couple of lines of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7054 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
74d15d36f5ae146853b6089ed4a76a381b11cbb3 |
02-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
A def. operand of a machine instruction may be an ordinary Value*, not just an Instruction*, at least in one unfortunate case: the first operand to the va_arg instruction. Modify ValueToDefVecMap to map from Value*, not Instruction*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7052 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
7a73b80b9052136c8cd2234eb3433a07df7cf38e |
30-Jun-2003 |
John Criswell <criswell@uiuc.edu> |
Merged in autoconf branch. This provides configuration via the autoconf system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
achineFunction.cpp
|
3889a2cb05c36f30050941679d5fd55d45e6a3ed |
22-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Remove a ton of extraneous #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6842 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
egAlloc/LiveRange.h
|
2eb9a257c86d6194ec572d8556f86af97452bebe |
17-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Actually, change it to use explicit new/delete, which is more likely to be optimized INTO an alloca git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6727 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
0bf94767018f15be77b7295215b7ffbffb7ebc7f |
17-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Remove two using decls Remove usage of alloca git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6725 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
ad95d9ef50cbd789025dbff8a1e018650cbcdc7f |
16-Jun-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h", so that we can easily change its use to be conditional on the result of an autoconf test later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6723 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
be583b914d8156b99d3da264d5adca37fee8dbc9 |
11-Jun-2003 |
John Criswell <criswell@uiuc.edu> |
Included assert.h so that the code compiles under newer versions of GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6682 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
egAlloc/LiveRange.h
|
0e93687ccae0a10497effff417cf360740684514 |
10-Jun-2003 |
Guochun Shi <gshi1@uiuc.edu> |
add some comments add a function ModuloScheduling::dumpFinalSchedule() to print out final schedule git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6677 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
e95b827db25376f41fb0ecd1ff9649d22f382f64 |
10-Jun-2003 |
Guochun Shi <gshi1@uiuc.edu> |
add an brief instruction what this pass is git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6676 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/README
|
0b970dad72c63ba99820b2a437aecee31ebdbc9f |
10-Jun-2003 |
Guochun Shi <gshi1@uiuc.edu> |
a simple introduction to this pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6675 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/README
|
f325261856a16dfa34d323db7c15cf85a8ea3f4e |
10-Jun-2003 |
Guochun Shi <gshi1@uiuc.edu> |
cleaned code add some comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6674 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
|
8f1d4ab409253e665a4cbd92401d345010bdc561 |
09-Jun-2003 |
Guochun Shi <gshi1@uiuc.edu> |
delete useless functions add comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6673 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
33280524f4882a3e6a7fa011a62595ba3a65c8ec |
08-Jun-2003 |
Guochun Shi <gshi1@uiuc.edu> |
change DEBUG to DEBUG_PRINT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6672 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
6fe6905df2e23e284faa9b368fbce096476d7e09 |
07-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Do not hastily change the Opcode from 'r' to 'i' type if we're not actually SETTING the operand to be an immediate or have verified that one of the operands is really a SignExtended or Unextended immediate value already, which warrants an 'i' opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6662 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
08d2e4e09adc53aa93c08c8327d2f5f2814acb74 |
05-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: Jello/2003-06-04-bzip2-bug.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6624 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
d15cd2752fc2dba5155f7f5588e80449919dd424 |
04-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
I have finally seen the light. The code to change the opcode must live higher in the loop, and in both cases. In the first case, it is a VReg that is a constant so it may be actually converted to a constant. In the second case, it is already a constant, but then if it doesn't change its type (e.g. to become a register and have the value loaded from memory if it is too large to live in its instruction field), we must change the opcode BEFORE the 'continue', otherwise we miss the opportunity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6602 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
d720da23dbe2f2b4f9293a2edecd8b74ebd4b188 |
03-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Pass through the emitConstantPool() call to the real emitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6590 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
c740aae220cb74debc08e2e244f6f97d6c04785e |
03-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Moved code to modify the opcode from 'reg' to 'imm' form to a more logical place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6563 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
0ee48d24fe0a6de9b06bf122c4deaa9f570c8d8b |
03-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Moved FInfo.cpp to lib/Target/Sparc as it is Sparc-specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6554 91177308-0d34-0410-b5e6-96231b3b80d8
apping/FInfo.cpp
|
78ddcd7b03c84aef48b8996ca427da64eaa4f035 |
03-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Minor cleanups. This pass should be moved to lib/Target/Sparc since it's sparc specific It also needs a file comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6553 91177308-0d34-0410-b5e6-96231b3b80d8
apping/FInfo.cpp
|
9efc4d6aaaa0153c94a661c44198d514d4f83282 |
03-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Remove usage of noncopyable classes to clean up doxygen output. In particular these classes are the last that link the noncopyable classes with the hash_map, vector, and list classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6552 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.h
|
747a04455072a1dac9e333f1dd10abc16687d5ff |
03-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Add #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6550 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
e6aa9e30b1df8bb92116faf5070b88ca5c6a03bd |
02-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Removed a useless ofstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6547 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
099b064a464d091f6800e2cd19e67cb4354952ec |
02-Jun-2003 |
Guochun Shi <gshi1@uiuc.edu> |
compiled with the new SchedGraphCommon git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6545 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.h
|
53a7ba851d445ada2fa9e293542912b9ccf6f7c0 |
02-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove spurious assert() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6529 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
efc84a4082e46c8e8f26517ea0c7bf5626f42e7f |
02-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Changes to be compatible with MachineCodeEmitter.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6515 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
5cdb12f95819c38e81d51791c79058660f078e4c |
31-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Minor changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6470 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
f3d3ca18b5a36f3a331367aa9ff0c3bcbd86ca82 |
31-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added MachineCodeForInstruction object as an argument to TmpInstruction constructors because every TmpInstruction object has to be registered with a MachineCodeForInstruction to prevent leaks. This simplifies the user's code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6469 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
|
3497782f3843007de3be0c43e3ff206a01e2ccac |
31-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Allow explicit physical registers for implicit operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6468 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7952d6088ec936aec621ea1ba9141731a7810d93 |
31-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Changes to allow explicit physical register arguments that have been preallocated. While reg-to-reg dependences were already handled, this change required new code for adding edges to/from call instructions. This was part of the extensive changes to the way code generation occurs for function call arguments and return values. See log for CodeGen/PhyRegAlloc.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6467 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
|
d0d06ad4f3b2db53e68a9615b282a7474c61820b |
31-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Extensive changes to the way code generation occurs for function call arguments and return values: Now all copy operations before and after a call are generated during selection instead of during register allocation. The values are copied to virtual registers (or to the stack), but in the former case these operands are marked with the correct physical registers according to the calling convention. Although this complicates scheduling and does not work well with live range analysis, it simplifies the machine-dependent part of register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6465 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
88ba25444c0542f43dc678392c7fc39fda7488e2 |
30-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
When converting virtual registers to immediate constants, change the opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6452 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
da3a8b19ce08670fdc19464963f436eb01a306a4 |
30-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Added saveBBreferences() for BasicBlock resolution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6451 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
139f0c279d460d770ee784a05e70e08717907d45 |
30-May-2003 |
Guochun Shi <gshi1@uiuc.edu> |
so far everything compiles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6423 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
eae77de8690d9e53a695ae0286e289266716772e |
28-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Correctly write out binary data as chars, before they're cast to ints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6385 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
3432d1d1d5684098cdfd6e16f0ab6f209d0973b4 |
28-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Added a debugging code emitter that prints code to a file, debug to std::cerr, and passes the real code to a memory-outputting code emitter. This may be removed at a later point in development. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6379 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
5f2180c53330502eb2f0f5bf3f21a838ad800906 |
27-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
(1) Added special register class containing (for now) %fsr. Fixed spilling of %fcc[0-3] which are part of %fsr. (2) Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. (3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly() and related functions and flags. Fixed several bugs where only "isDef" was being checked, not "isDefAndUse". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6341 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
iveVariables.cpp
achineInstr.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
6b77ec415662b92ea49e614ee568be556ea27899 |
22-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Cleaned up code layout. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6304 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
|
c2312df45cd10b580c500e1fc8f93b9693d73fe4 |
22-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Kill `using' directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6301 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
|
b52e0241c03a257f96bd9c77788eff5b1a7fd437 |
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
Use a kill, not a dead definition, update comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6131 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
572c77066808fc0e9ee1d212dab227f28bf5e28a |
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
* Keep LiveVariable information more up-to-date and consistent * *** Finally mark values that are inputs to PHIs as killed when appropriate. This should make the generated code quite a bit better. For example, the local-ra will not have to spill PHI inputs at the end of predecessor BB's anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6117 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
a13f0d3f4159b1f54bcfc733ccd94977b020ea56 |
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug where we could iterate off the end of a basic block git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6116 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
fb2cb69dc55c1e1d7754186cd1c8a9d543f54bdd |
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
* Keep the BBMap around as long as the pass is live * Change getVarInfo to take real virtual register numbers and offset them itself. This has caused me so much grief, it's not even funny. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6115 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
98719d7cdc693c077d179fe3461ce625d6faef34 |
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
Fix N^2 algorithm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6112 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
927ce5dfaea00453889080cd1c6daf3eb197ad74 |
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
* Fix several comments * Update LiveVar info better, fixing bug: Jello/2003-05-11-PHIRegAllocBug.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6110 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
|
d5725631c52e8033bcf03bc040309af031a54825 |
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
Fix tab infestation! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6109 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e0e72177c0ca447d1d2acab798a7ca2786d5618d |
09-May-2003 |
Chris Lattner <sabre@nondot.org> |
Allow const functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6056 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
fd33fb8726d4b824d82851f57e37e2df394aad0b |
08-May-2003 |
Chris Lattner <sabre@nondot.org> |
Add methods for stub function generation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6054 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
5cdfbad72d76864325260f134d58294c290a4886 |
07-May-2003 |
Chris Lattner <sabre@nondot.org> |
Add a vector to keep track of which registers are allocatable. Remove FIXMEs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6015 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
dff780f0466d824e775dd748d9880f0389be7260 |
06-May-2003 |
Chris Lattner <sabre@nondot.org> |
Re-add gross hack, it's still necessary. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6012 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
82a4d207aaa18f2df6649ec747ec0d10edf0e1dc |
06-May-2003 |
Chris Lattner <sabre@nondot.org> |
Remove hideously nasty hack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6011 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
15b55e20cc3ca89d77b3e5c2833b569eb33aa4f9 |
05-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Debug output should go to cerr, not cout, because that's where bytecode goes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6002 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
b589bf7d77a57e961a871ae5ffee2381722d8c0f |
02-May-2003 |
Chris Lattner <sabre@nondot.org> |
Fix a bug which occurred with empty basic blocks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5982 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
f98358efc7be57d1984c11ba2b3b02d92b530030 |
01-May-2003 |
Chris Lattner <sabre@nondot.org> |
Minor cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5976 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
|
2ee82e05e3e41fa23951d3503db5483a36dc3ae3 |
23-Apr-2003 |
Chris Lattner <sabre@nondot.org> |
Remove unneccesary &* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5871 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
achineFunction.cpp
|
63e04f3ccbfff4537458db8d99c323c00fc8b6ac |
23-Apr-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Just some code beautification changes I had sitting around in my tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5859 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
|
2c821cc06e0a94704ce4eef72d3ebfcb561ba1ff |
10-Apr-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Fixed compilation errors, command-line argument declarations, cleaned up code to look nicer and removed useless stuff. Also renamed a few variables, moved them into namespaces, converted outputting to a file into a print to std::cerr with a DEBUG() guard, as all passes should do anyway. No functional changes have been made. However, this code now compiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5769 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
8baa01c1d79d8cff13634a48339cf551e30eaf14 |
09-Apr-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Made the code readable: * Lines must be wrapped at 80 chars. This is a hard limit. * Consistent style on functions, braces, if, for, etc. Code must be readable. No functional changes have been made, even though I added a new typedef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5768 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
6fbe5fbce1f3ff901eb3685290e19f5973ff588a |
07-Apr-2003 |
Guochun Shi <gshi1@uiuc.edu> |
change the include file names and some class names to make it compile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5764 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
f1c154f5e69fdd11426b4e2a5cdea98fcab1606b |
27-Mar-2003 |
Guochun Shi <gshi1@uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5755 91177308-0d34-0410-b5e6-96231b3b80d8
oduloScheduling/Makefile
oduloScheduling/ModuloSchedGraph.cpp
oduloScheduling/ModuloSchedGraph.h
oduloScheduling/ModuloScheduling.cpp
oduloScheduling/ModuloScheduling.h
|
9085d8a9a9000eeaa7cf337ccbdca41d528c99c2 |
16-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Print machine frame objects with the frame offset intrinsic to the machine git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5329 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
0416d2a70aea644c3e0c06301c29f3b81ec1e42d |
16-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Fix problems with empty basic blocks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5326 91177308-0d34-0410-b5e6-96231b3b80d8
HIElimination.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
|
f85249ca7336cda5bd491c161cb163847774e868 |
16-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Arg, fix bugs in previous checkin... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5322 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
78d6db5627bdf41ab3ffd96133821647dbc60d53 |
16-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add assertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5321 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
4ac7d7302b36a5d20f71b5c290c63a7f6c345289 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
* Insert prolog/epilog code before rewriting indexes * Fix calculation of frame offsets when there is an offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5318 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
795ba6cabdbba32cdf9912fbd9091e6b3cfbd3c6 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Move sparc specific code into the Sparc backend git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5317 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
9d4ed15c9ec97573703247fb4e0d3d8816eb0ef0 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Adjust to new interfaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5314 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
af3cdcf9b06f34077f2a5d654019f19815918d6e |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Move headers around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5312 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.cpp
egAlloc/RegClass.h
|
4cfd622252d7b9cd1cd37fc6807631388e045655 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Header is moved into local directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5311 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
|
c7c7b7ab75634145506b08e3f1cdd7a4405aad29 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug in previous checkin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5310 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
c520feb6f03d1fded623f81a71f6625728ebfab8 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add new method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5309 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
|
4309e736c136f1c956e96ecfa4ce6747bfef387f |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
#include RegClass.h explicitly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5307 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
abb9c08a0585dfb1b61f3b87be4962178b5a55fa |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Remvoe dependency on RegClass.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5306 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
a9b19b9002cea9fd338df58856777f85b1c9a01b |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Prune #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5303 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
0412077faf0cc7e7e159e67b6d69e653137ddfe2 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Minor changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5302 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
|
b66fdc2934133872db1407bee749b69a4b59b2b7 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Remove obsolete ctor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5301 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1531b6342151762b4f55e2a5c09f093e3e95fd78 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5298 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
f6ee49fcf0ac86d3b39376939fe731b34c9ae6cb |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Use buildmi not MI ctor directly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5293 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
92ba2aaa58fa550490d1ace999750b3f75c2cf32 |
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Rename llvm/Analysis/LiveVar/FunctionLiveVarInfo.h -> llvm/CodeGen/FunctionLiveVarInfo.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5284 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.cpp
egAlloc/PhyRegAlloc.cpp
|
8143d8f91a7768007e80841ac3c29f938e470900 |
14-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5282 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
|
3501feab811c86c9659248a4875fc31a3165f84d |
14-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstrInfo -> TargetInstrInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSelection/InstrSelectionSupport.cpp
iveVariables.cpp
achineInstr.cpp
HIElimination.cpp
rologEpilogInserter.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
bc40e898e153c9b81f246a7971eaac7b14446c49 |
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
New files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5262 91177308-0d34-0410-b5e6-96231b3b80d8
iveVariables.cpp
HIElimination.cpp
|
80a0478bbb337391eb5fd217afced41b2f2f1e9a |
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
* Use the PHI Elimination pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5220 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
91a452b3822a3facb2191a01b58e370284ad9c19 |
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
* Convert to use LiveVariable analysis * Convert to use PHIElimination pass * Don't spill values which have just been reloaded (big win reducing spills) * Add experimental support for eliminating spills before TwoAddress instructions. It currently is broken so it is #ifdef'd out. * Use new "is terminator" flag on instructions instead of looking for branches and returns explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5219 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
f00a3f905e8cd99ab4d3dbbde1a9d510516e0fa2 |
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Convert to MachineFunctionPass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5218 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
8d95ef4973226044cefdd6dc237d3c326ffc15b3 |
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for 3 new forms of MachineOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5217 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
4d149cdae1553426f49623fdae215d481d56d955 |
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for constant pool Add helper methods for MachineFrameInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5216 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
7775df1a6c499bb24479d1f0e1420ba89f686fbb |
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for global address by string and constant pool values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5215 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
d0f166a4868c957041fa0ca0a35adde97aa10c91 |
29-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
More renamings of Target/Machine*Info to Target/Target*Info git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5204 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedPriorities.h
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
egAlloc/RegClass.cpp
egAlloc/RegClass.h
|
f27eeea54fb0176986f76731c499176345047dff |
29-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Rename MachineOptInfo to TargetoptInfo Rename MachineCacheInfo to TargetCacheInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5203 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
eb24db9727a7babe863d5afe70c7bda3a460da18 |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Rename FunctionFrameInfo to MachineFrameInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5200 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
egAllocLocal.cpp
egAllocSimple.cpp
|
8bd66e690779c838db51f55cf0b31d7206b3b659 |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Rename MachineFrameInfo to TargetFrameInfo.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5199 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
rologEpilogInserter.cpp
egAlloc/PhyRegAlloc.cpp
|
58b3328ac709a5706a8bfa522012ed90f1b4d4bd |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of Prolog/Epilog code inserter, which is an important part of the abstract frame representation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5198 91177308-0d34-0410-b5e6-96231b3b80d8
rologEpilogInserter.cpp
|
600dee4aaee093b6b45011c5461f43fd7855a5d6 |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Convert to be a MachineFunctionPass instance * Use new FunctionFrameInfo object to manage stack slots instead of doing it directly * Adjust to new MRegisterInfo API * Don't take a TM as a ctor argument * Don't keep track of which callee saved registers are modified * Don't emit prolog/epilog code or spill/restore code for callee saved regs * Use new allocation_order_begin/end iterators to simplify dramatically the logic for picking registers to allocate * Machine PHI nodes can no longer contain constant arguments * Use a bitvector to keep track of registers used instead of a set * Fix problem where explicitly referenced registers would be added to regsused set and never removed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5196 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
580f9be7ff6ddbdf6914fc9243ab21fa21ffd34e |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Convert to be a MachineFunctionPass instance * Use new FunctionFrameInfo object to manage stack slots instead of doing it directly * Adjust to new MRegisterInfo API * Don't take a TM as a ctor argument * Don't keep track of which callee saved registers are modified * Don't emit prolog/epilog code or spill/restore code for callee saved regs * Use new allocation_order_begin/end iterators to simplify dramatically the logic for picking registers to allocate * Machine PHI nodes can no longer contain constant arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5195 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
10cb79b48430ea7679e83ae045aaeadea04a0cc5 |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Add printing support for FrameIndex operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5194 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
955fad1f99dd174023a1b2e6a1795958147b077d |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* A bunch of functionality and data was removed from MachineFunction and put into a new MachineFunctionInfo class * Implement new FunctionFrameInfo class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5193 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
e90fcb739a5b2778981ae70b63fc566e469e2014 |
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Frame info moved out of MachineFunction into a seperate object git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5192 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
ff863ba610cd577e8589fbc94b2fc00d74f8294a |
25-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Adjust to simpler spill interface Only spill and reload caller saved registers that are actually modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5145 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
5124aec32fd492f473e9fdb8a2314c0a5b46e3ff |
25-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Adjustments to work with the simpler spill interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5144 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
831fdcf0177a4eef66129cd6fb4138922c492bf0 |
25-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Remove dependency on SSARegMap.h by MachineFunction.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5143 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
0eb172cc4a398b7c3107c3711512933ea67b0a27 |
24-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Substantial fixes to live range handling, fixing several problems, getting strtol to not miscompile, and fixing bug: 2002-12-23-LocalRAProblem.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5132 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
e500864619a0ff4cfd2b41e404e262b2e2891913 |
24-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Fix compilation on GCC 2.96 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5113 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
82bee0f2c89affbb8cd768d106d39ee7241944af |
18-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Fix several register aliasing bugs * Add a new option to eliminate spilling of registers that are only used within a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5106 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
aed967cc9ebeaa02220d0652954dcf71dce842f2 |
18-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Implicit defs/uses list may be empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5103 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
e7d361d15a9fdf02e7c491c9bc6e8615f4464914 |
17-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Use new reginfo interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5099 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
egAllocSimple.cpp
|
86c69a6cbe0c4c08ab3f57bcd47b11b0479849fc |
17-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Add prolog/epilog spills/reloads to counters Move X86 specific alignment gunk to X86 files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5096 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
ae6404373715c776b50ee11dc91d5a008ddb9a64 |
17-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Fix many bugs, regallocator now saves callee-save registers instead of target git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5093 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
c21be922bf78bb8a90b0d572c02fdb051e0486b2 |
16-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Fix a gross X86 hack that was intended to avoid allocating SP and BP * Implement register alias set support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5082 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
69c198863db1daccb2c80c2122c335a169d6b573 |
16-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Keep the stack frame aligned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5081 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
b74e83c89872a80f505bd7a83d1a21d159889c79 |
16-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of "local" register allocator. Bugs are still present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5078 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocLocal.cpp
|
1d62cea90baad4bf98dbab94a158ae69523a0cf3 |
16-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Rename createSimpleX86RegisterAllocator to createSimpleRegisterAllocator. Remvoe some dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5070 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
b167c04e626b7ee9609330a8ffa397a85611d49d |
16-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Some simpliciations to the spill/reload interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5067 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
8ed9eb5ca3bbbb90dad28e5e21f0359c4710e478 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Simplify PHI node elimination significantly by doing it as a prepass to register allocation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5066 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
9f366d7ab63d7c3427c570f249a32707d728a512 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Variety of small or trivial simplifications to the code, completely eliminated the dependence on PhysRegClassMap git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5064 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
f60505599407e0b01b28412bd4c1e88ff80be435 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Remove unused savePhysRegToStack method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5061 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
01b08c59b46b1aaea6fd1d9204ed4f60e5b048a7 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Localize a map, remove another git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5060 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
8233e2fe01b76071a1875d8ffb9252c87ca4675b |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Give simple reg allocator a nice Pass Name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5058 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
15f96db4d91eba096b7eaa36d8f891131412e064 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Add a big assert making sure 2 address instructions are formed right git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5057 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
3f91ad7ba72777e338a657900ce5536d4a0a68e3 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Fix a problem that occurs when PHI nodes have multiple entries for the same predecessor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5055 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
da7e453aac1af4a533dd73fc9e92911c863429a3 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Grab bag of minor cleanups. Export some statistics about the number of spills and reloads emitted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5054 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
2109f502d646a1bafc7b21a14347a71771a7b4cf |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Implement printing of MBB arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5053 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
|
198ab640bbb0b8e1cdda518b7f8b348764e4402c |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Simplify interfaces used by regalloc to insert code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5052 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
c2db1a95df09e30f190e51be98ed34fcbbbb7aec |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Simplify code a bit by breaking the PHI node handling stuff out into a seperate function from normal regalloc code * Make the regalloc for a block a function instead of part of runOnMachineBB, which makes it easier to see what's going on in runOnMBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5051 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
9593fb1503067c16b4e21dd2b8af676d64ca0440 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Remove some unneccesary instance variables * Make allocateStackSpaceFor only allocate the right amount of space git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5048 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
dd444f9242df810c36a98663904b9ecdcb36284d |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
pull inverse reg class mapping into a class that is sharable and out of the target register description classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5045 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
abe8dd592d1c2e4e604e39fcf4598642fd6ea197 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Prune #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5044 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
ad44bd99ff32d996c7b1598129f069437d5bfc61 |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Remove extraneous #includes, perform FIXME git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5043 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
71c83728b4940379ce969297bca99fd16f8e16ac |
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Fix borkness with not using MachineBasicBlocks in PHI nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5035 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
0868667f78bb712a1b307cf525df105b35699924 |
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Fixed a bug where moves due to phis were being neglected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5019 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
74676da6f122bd7abfd2ba47c5291bc9092cee55 |
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Need to insert all moves due to PHI nodes before *ALL* jumps in a predecessor basic block, as there could be multiple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5016 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
972b03fa53ef2053172415f2d05cfc444c492e55 |
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
This should be more correct: invalidates physical registers that are used in an instruction to avoid using them to allocate to other virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5013 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
59b3eedf31e0320d24060e064527c95457df5512 |
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Fixed bug with running out of registers. Also, reinstated namespace which disappeared during the last checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5007 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
203b769b208d553684488d00cb01d5e09b57998a |
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
This should handle register allocating PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5002 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
cea2245f04556ad718a7f18cb286b3150d5631a7 |
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Start allocating stack space at [ebp-4] to not overwrite the return address. Also make all loads & stores 4-byte aligned for performance. ;) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4982 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
d1bedcced2882f5c23dc3c5c8d0587ad5513345d |
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Take advantage of our knowledge of 2-address X86 instructions and register-allocated them appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4976 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
dd46e2a81d32778d1ad1421185261aafd7cffae4 |
05-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Added code generation for function prologues and epilogues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4930 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
06f8aecc882b90d23206233fe95b2df6078f987c |
04-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Fun arithmetic with iterators aimed at fixing a bug: inserting instructions after the *current* instruction while keeping the iterator in the same 'logical' place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4923 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
b72d221d619211335780b90f43bb129cf15fe0e7 |
04-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Print out direct global references git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4906 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
dc2ec004f1f29e0f61c60c71ef8bc94ae96694b8 |
04-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
This should fix the bug seen with some registers not being allocated correctly: skipping instructions by incorrectly incrementing the pointer. Also adds support for building a reg-to-regclass map, and splits the function for saving register to stack into two, one suitable for virtual registers (which also assigns it a physical register) and one for simply storing back physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4898 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
f815aebd20823698fca5db54dc8e0332f93e7ca8 |
03-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Checkin debug implementation of MCE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4893 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeEmitter.cpp
|
f514d51b208cff16f750e6a11cc6eb652f1a23d3 |
02-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
* Abstracted out stack space allocation into its own function * Added saving of register values to the stack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4858 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
0721867c8db12995c9db9abe095bf88d5acb9fca |
22-Nov-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
A simple (spilling) register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4828 91177308-0d34-0410-b5e6-96231b3b80d8
egAllocSimple.cpp
|
b7825bc72534573c444e646dd1c3999ff787bbad |
20-Nov-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Initialize the SSARegMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4782 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
af55be15dfa5321f470ce9734fabd858f5af7a88 |
18-Nov-2002 |
Chris Lattner <sabre@nondot.org> |
Print is const! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4737 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
570f55de8d9f53a0d8a5dc6dcbb6aaba46b1b6db |
17-Nov-2002 |
Chris Lattner <sabre@nondot.org> |
Remove only uses of markDef/markDefAndUse methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4719 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0006bd75201f340b95c1dbf71e50dc5de5ed9425 |
09-Nov-2002 |
Chris Lattner <sabre@nondot.org> |
Fix warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4649 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
5da2e6ac7016f61e3475cf6e982b2517a2294ca4 |
02-Nov-2002 |
Chris Lattner <sabre@nondot.org> |
Move function to cpp file from header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4510 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
|
ec3e2f41cdba2a46fae92a6ab3ed5e03c67a5e74 |
01-Nov-2002 |
Chris Lattner <sabre@nondot.org> |
New iostream definitions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4482 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
26fbcec43bd4e32f44849ea1bb2889eb9f5ed0f4 |
31-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Restore support for indirect function calls (which briefly wasn't working after I removed annotations on MachineInstr for the CallDescriptor). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4469 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
188732c971e06823a6dcd3320d5f8429642acedb |
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove fixme git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4447 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
6a592271fb2946a0704b06fd66199987cdd40b3c |
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Add special code to make printing SSA form machine instructions nicer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4446 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2a79a0927c479b69316aa275c1f79c74d20e8040 |
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Use MRegisterInfo, if available, to print symbolic register names git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4438 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1049164aa6b06d91d9b3b557a9a213eaf3f6319a |
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Implement structured machine code printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4435 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
achineInstr.cpp
|
88726188fe9a3e30ec9bdd9f2449905c0d8cedcf |
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Make argsize calculation stuff optional, so that Targets without FrameInfo objects yet don't die git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4427 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
ddd7fcb887be752ec8167276a697994ad9cb9c4e |
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Implement autoinserting ctor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4426 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e316efc0e74442cffdda4889d30dca4fffcad749 |
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Rename annotation id git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4425 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
ba64363562a4e01a689cc1cca2a80fced530956a |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Merge with sparc backend git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4403 91177308-0d34-0410-b5e6-96231b3b80d8
Instruction.cpp
|
495fe2e087c5f4ec4372d8f6d2fdc27ff93c61c5 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
X86 merge is complete, eliminate unused code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4400 91177308-0d34-0410-b5e6-96231b3b80d8
Function.cpp
|
a2bae305fb5a870c4ef753ed290a7ddea73ec82b |
29-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Remove separate vector of implicit refs from MachineInstr, and instead record them as extra operands in the operands[] vector. Also, move CallArgsDescriptor into this class instead of making it an annotation on the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4399 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
achineInstrAnnot.cpp
|
e68a3435ee6a695f1fd4b80c3d482e396001e0f5 |
29-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Move CallArgsDescriptor into this class instead of making it an annotation on the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4398 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
f1757c414cbf7d1b7a11cc8287fd26c2ce13fb41 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Move TargetInstrDescriptors extern to the one .cpp file that refers to it: MachineInstr.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4392 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d9512caca8ec1e5488cdc94b34986c8ab2d447bb |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Use higher level methods, don't use TargetInstrDescriptors directly! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4389 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
egAlloc/PhyRegAlloc.cpp
|
8f7802727f796b60fed79bb76f908ff289ad382c |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Use higher level method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4386 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
ea9d2495956123c307d21893047b541f1dc3d061 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove #include, misleading comment, and a typedef used only once git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4383 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
88da77c7394144f8179a16a33eead31ea7168faa |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Inline typedef, eliminate unused method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4382 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/LiveRangeInfo.h
|
67eaf73c89649d3b3af6e092fae742d018a233b5 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove long dead #if 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4381 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
|
cb6b4bd1c6245ce78214210655eecf12cd8a4db2 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Add #includes that were eliminated from headers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4380 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
770feb4bfcd920498ec24296685495678579bb65 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
De-inline methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4379 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.h
|
a80848704ab0eb2cc7429bd3e2a8a4cc6246921b |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4378 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
|
97d688515efd7719f1aa324f83f7c853700789a2 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove unneeded #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4377 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.h
|
9538cecf273fc6c8951b3f6bbbdef040fdbcf4df |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove forward decl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4376 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
|
28760f4e77cd7d63859337c872df9e648faea062 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Make assertIGNode be private to the InterferenceGraph.cpp file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4375 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/InterferenceGraph.h
|
c5b8b1a0404d3a57d6fd7e4af5e0e6b2f3b51633 |
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
MachineInstrInfo no longer #includes this header, so we must git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4366 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
9a8e4121aa4121100fb562134c098aeb38f70b37 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove all traces of the "Opcode Mask" field in the MachineInstr class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4359 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b98a53f201fd3652f4b7e37d1f2cb3b9b0775d45 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove more default arguments that are never used git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4358 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7279122e668816bed0d4f38d3392bbab0140fad0 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove default operands that are never used git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4357 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
413746e9833d97a8b463ef6a788aa326cf3829a2 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
* Make MachineOperand ctors private, so MachineOperand can only be created by MachineInstr. * Add a bunch of new methods to allow incremental addition of operands to the machine instr instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4356 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b7551ef115cc25d9abc87cabf67ad1717c8e69c9 |
28-Oct-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Replaced uses of deprecated `MachineFunction::get(BasicBlock *BB)'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4351 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
2f305989b395a0a8bf00c4b9dc140a6df051245e |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove two arguments that are never specified git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4348 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ccdf23ebbb4755f6e9c935618c1fa49f31d5c58c |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Rename some regalloc fields git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4346 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
f726e776b8a64df31499c25eabf052cae2a11809 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Eliminate usage of MachineBasicBlock::get git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4344 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
fcffe865f9003e592e09f1eea13da213eb1781e3 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove usage of MachineBasicBlock::get git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4342 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
fb3a0aed9b4225c653eb20313c4411dbb6c1c8c4 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove usage of MachineBasicBlock::get git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4341 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
|
b84a2ba877c670af013056c514fc80a56845fb87 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Eliminate unneccesary use of MachineBasicBlock::get git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4339 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
335d5c399b52c2507ad11048310edc51462f4811 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
s/method/function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4338 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
d0aa0cdbc6fee00f2b2019633a9b9d00d301ac68 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Change MachineBasicBlock's to not be Annotations, instead they are kept as part of a linked list tracked by MachineFunction. MachineBasicBlock::get is now linear time instead of constant time, and thus is deprecated! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4337 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
c5ddc8b74b1ab5f7e068a6db8071fef75527f0e7 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Make Scheduling Class variables be 'unsigned' instead of 'int' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4333 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
133f079c8cf966d2222c2dda2de56d2cc600497e |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Rename the redundant MachineOperand::getOperandType() to MachineOperand::getType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4331 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSelection/InstrSelectionSupport.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
572f5c8c0cf66cd6f53dda255cd8c4d8f27d8505 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Fairly major overhaul of MachineInstr & Operand classes - Inline methods that are mostly a single line anyway - Eliminate several methods that were never called - Group methods a bit more consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4329 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0be79c6c1bc4fca31599f396528511506e3a1378 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Add #includes now that MachineInstr.h doesn't include llvm/Target/MachineInstrInfo.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4327 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSelection/InstrSelectionSupport.cpp
achineInstr.cpp
achineInstrAnnot.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
4a63b72df95b5c0d4af064cef19377f811ba6060 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Don't #include <Support/*>, #include "Support/*" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4325 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
e61a584f98b1133ca1b8e3b411a3c6fb892542e4 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4323 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSelection/InstrSelection.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
e7d27fa00b3cd5b33f66a8180cea7edcc79f255a |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
MachineFunction now includes MachineBasicBlock so there is no need to reinclude it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4322 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
55291ead559c902e46ddcebad50dbfefe50ec2d6 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Rename MachineCodeForBasicBlock to MachineBasicBlock git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4318 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSelection/InstrSelection.cpp
achineBasicBlock.cpp
achineFunction.cpp
|
32be9f6cd4e8803e169eee827afb548b85c24ace |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4317 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
51a8d8528135ba4e3e4cf7cd711a9e47b19078a3 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Inline some methods from .cpp files into .h files, minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4313 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
achineCodeForInstruction.cpp
|
6b9445389a226b4ac97ceb89a34ee1a5bf921714 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4312 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
227c3d355b017393963a690f9f27d1de7fa359bc |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Move machine code generation/destruction passes out of Sparc.cpp because they are generic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4310 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
1febf88ef422dd0fa2f9e0f0cb464c8cc6f97936 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Prune #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4307 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
0c68e8ce6e68c45d6b4cc55f3044cec8687c1702 |
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Updates to match misha's changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4302 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
fce1143bcfa73f61845002fa50473d1a01384202 |
28-Oct-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
Changed `MachineCodeForMethod' to `MachineFunction'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4301 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.h
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
achineFunction.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
78cee7e7ab9fde0453d3f1b7a317b1c1b41a1b4c |
26-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of codegen infrastructure for LLVM-JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4282 91177308-0d34-0410-b5e6-96231b3b80d8
Function.cpp
Instruction.cpp
akefile
|
a0877726df7b62bea4cf81625cae6c34345efdc7 |
23-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Tell PassManager that this pass does not invalidate the CFG so that dominator information and Loop info will not have to be recomputed after this runs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4269 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSelection/InstrSelection.cpp
|
0ceeb42c9701d995267a04899b3a6acfceb8fb9e |
23-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Ensure definate initialization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4263 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.cpp
|
27a08935ca4ccf2121c2cf4bfbf148e2382c7762 |
23-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
- Two minor improvements to the MachineInstr class to reduce footprint and overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a bitvector. Sped up LLC a little less than 10% in a debug build! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4261 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
egAlloc/PhyRegAlloc.cpp
|
cf911de3c61db9291e9338f09b435e9a4868c2de |
14-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Significant improvement: GEP used by a load or store no longer generates a separate ADD; instead just use the indexed load/store instruction! Also, a bug fix: folding a GEP with a leading non-zero index with its predecessor was incorrect: now it only happens if the predecessor is pointing to an indexable type (aka SequentialType). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4168 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
1632e882f1a4a0a18be5821020a1bd2029656d80 |
13-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use vectors instead of hash_maps for issueGaps and conflictLists. These hash lookups were a major sink of time because they happen so often! Also, add option to disable scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4138 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
acf0f704f91ec826049fd706883397086ae6d324 |
13-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major bug fix: was not adding CD edges for RETURNs! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4137 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
cb202e3de51a82d72bc88823199f5cdcc1ceae2c |
11-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major bug fix: spill code for an instruction in a delay slot was merrily being inserted before/after the instruction! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4116 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
cde3982b022c91736418eeb8a4ae6b76b39bf568 |
11-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Don't pad variables in stack slots for performance! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4115 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
aebdbe69886a196cfb509a9eb77a01aa13cb83b2 |
30-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix in folding getElementPtr instructions: don't fold one into a predecessor if it has a non-zero first index and the predecessor ends with a struct index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3982 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
41174595670a6d51671f174f44e376ada78d1841 |
29-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Convert DIRS to PARALLEL_DIRS. They can be built independently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3972 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
1c397aae8ed24d4c589a846a52058274dea615ed |
28-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added a couple of helper methods for live range construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3970 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.h
|
9d67cd1468fa99bf98c52d85a9462f18e63133f3 |
28-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Live ranges for Return value and return address of a Call are now created here, simply by handling all implicit operands (which should have been done anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3969 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
|
f425884e275c66f975a68e56f24b33a2d1c6e5c6 |
28-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fixed method getReturnValue(): it should return NULL if the callee does not return a value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3968 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
ad9c978874e02deff86257ad23de8e60069f84d9 |
28-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fixed incorrect assertion: spill code for function ptr should be handled like normal operands, not like other call arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3967 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
1c10f17552c4794d65c8d0019a4111b367518be6 |
27-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Sign-extend integer constants from original type size to 64 bits! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3958 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
0efb50761dfb9b925888f94d7eadaad12249c1f6 |
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add method IGNode::getCombinedDegree to count the sum of the degrees of two nodes, excluding duplicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3848 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
|
57e14bd75735b79b189d85f25c5b86983845ff15 |
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add PostOpts/ and rename PreSelection/ to PreOpts/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3847 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
e8b57ef2603ed522083dc18e559ca4e20abf22ae |
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add method MachineInstr::replace to rewrite a machine instruction in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3843 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
32f81a3469bd132116f892269c64682845d54e86 |
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Allow copy coalescing in more cases: if sum of node degrees is more than than #available regs, compute the sum excluding duplicates and if that is less than #regs, go ahead and coalesce. Add method IGNode::getCombinedDegree to count excluding duplicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3842 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
egAlloc/LiveRangeInfo.cpp
|
25d80cdcc68080342aa65c037a4e9ebc67d3e256 |
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Peephole optimization pass on final machine code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3840 91177308-0d34-0410-b5e6-96231b3b80d8
ostOpts/Makefile
|
fafda59f0815b9cf2dadbbe871d5a02a5cf78dd7 |
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Files moved to CodeGen/PreOpts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3839 91177308-0d34-0410-b5e6-96231b3b80d8
reSelection/Makefile
reSelection/PreSelection.cpp
|
abf055c69857b62aa67fe159b23f03c7186ed726 |
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moving these files from Code/PreSelection to here. Original logs for PreSelection.cpp: revision 1.2 date: 2002/09/17 23:50:32; author: lattner; state: Exp; lines: +1 -3 Don't put default parameter values into .cpp files, it breaks 3.x compilers revision 1.1 date: 2002/09/16 15:31:13; author: vadve; state: Exp; New preselection pass that specializes LLVM code for a target machine, while remaining in legal portable LLVM form and preserving type information and type safety. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3838 91177308-0d34-0410-b5e6-96231b3b80d8
reOpts/Makefile
|
5fda99744ecd82de0e8e044a5a3693808d2bc188 |
18-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Don't put default parameter values into .cpp files, it breaks 3.x compilers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3799 91177308-0d34-0410-b5e6-96231b3b80d8
reSelection/PreSelection.cpp
|
82f05d86106c712097986b2563d3b66f867db8ac |
17-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Add support for GCC 2.96 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3777 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
00020d3d01ef91080ca6ba9790b2b198e8543895 |
16-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add subdirectory PreSelection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3739 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
7f90ea209aa1634f4be225d7603197c3b546292b |
16-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
New preselection pass that specializes LLVM code for a target machine, while remaining in legal portable LLVM form and preserving type information and type safety. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3738 91177308-0d34-0410-b5e6-96231b3b80d8
reSelection/Makefile
reSelection/PreSelection.cpp
|
8c6936a58b75d7d185014839ea95377eb2fbd878 |
16-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Dump routine now writes out allocated register numbers if available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3737 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1318bed20c52792913405c0d41766f69829cf944 |
16-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Improve and fix error in allocating stack slots: adjust alignment after adding base address of the relevant region (instead of assuming that each region is maximally aligned). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3736 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
fd0ec8019769087f7618cbbd6e571e110290d24f |
16-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add a version of ChooseRegOrImmed to handle numerical constants introduced by InstrSelection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3735 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
87fbcd99b406a5154c65e4f8ac3712b6c3136d84 |
16-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3734 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
993243e599887bbe9b19ed2fae98fa94e0861b96 |
15-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix typos in previous checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3726 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
|
4bc23480087be69a227edc847624b35ab672a33d |
15-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
RegAllocCommon no longer includes CommandLine.h so we have to include it here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3725 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
39c94e105fcfdb59555e8c3b5e6798a81bc3ea6b |
15-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Break RA_DEBUG option into several levels to get better control over debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3724 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/Makefile
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
521758fb79e439b33793f0adc2f455b487034bbd |
15-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Remove unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3723 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegAllocCommon.h
|
7e914a967dff2495ccc9f8f0da9fa855e812088d |
15-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Break RA_DEBUG option into several levels to get better output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3722 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegAllocCommon.h
|
7c268984010494658aae70cb3e6bbbceb2ca9855 |
14-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moving to lib/CodeGen/RegAlloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3718 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegAllocCommon.h
|
597f81fea26716ea024072bc154395d773b08567 |
12-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Fix a bug I introduced into the code generator. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3694 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
106ff4551c9c35bb6bcbdd6ca50543b100a7658e |
11-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
- Change getelementptr instruction to use long indexes instead of uint indexes for sequential types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3681 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
823c4abb58bbe2a502657e068b011d864cc6d896 |
08-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Make sure the leakdetector is told about temporary Phi nodes also, so it doesn't erroneously report them as leaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3624 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
a175ed419459f9d2e3cee67d43de3ced28b2341d |
08-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Inform the memory leak detector that TmpInstruction objects should not be subject to memory leak checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3623 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
0c4e886dbf1cf7736819a49d5143ae1c2a0cfb79 |
03-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
- Renamed Type::isIntegral() to Type::isInteger() - Added new method Type::isIntegral() that is the same as isInteger, but also accepts bool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3574 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
b85d265b16110454a466db9e909a727b746e6c30 |
28-Aug-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
moved this file from lib/Reoptimizer/Mapping git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3519 91177308-0d34-0410-b5e6-96231b3b80d8
apping/FInfo.cpp
|
894e83010014ac3f3a59a8e5362fa454e37994b3 |
28-Aug-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
Makefile for new sub directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3518 91177308-0d34-0410-b5e6-96231b3b80d8
apping/Makefile
|
2caa9204b2e667297ad32615ec3363ce2c6b9d74 |
28-Aug-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
Added Mapping subdir git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3517 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
74c83e44fa1f6ef545be4b0ccbfc903818ef6ae9 |
24-Aug-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use newly-added type inspection support in InstTreeNode subclasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3501 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
685133382d214b0ea7a2cf40e4cd2d2c5cff8dd4 |
24-Aug-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved code here to extract memory instruction indices and to check whether FoldGetElemNodes should be called. This is machine-independent but was in the Sparc directory. This is in a new function: GetMemInstArgs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3500 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
6656c43ac725861bf2d8ee3a73714f5f0fbb3955 |
23-Aug-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
Added #include <alloca.h> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3491 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
cc63f1c67456f41b25e8ccb8c1dce72067ddbadf |
23-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
Eliminated the MemAccessInst class, folding contents into GEP class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3487 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelectionSupport.cpp
|
da920aa55bcc779aef1dd3fa6e7e29c99b4e03c7 |
22-Aug-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
dumpNode() does not need to print MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3444 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
85af131d9e76e57244c8704792647f173443ffb6 |
15-Aug-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Unary Not (boolean and bitwise) is no longer a separate LLVM instruction but is instead implemented with XOR. Note that the InstrForest opLabels for Not and BNot remain the same, i.e., the XOR is recognized and represented as a (boolean or bitwise) Not when building the instruction trees. But these tree nodes are now binary, not unary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3343 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
e2a78e31862c2b6142491db5a67065756d6870be |
14-Aug-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add method MachineInstr::substituteValue() which substitutes one Value with another one in all operands and implicit references of the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3306 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
035dfbe7f2d109008d2d62d9f2a67efb477a7ab6 |
09-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
* Removed extraneous #includes * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3278 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelectionSupport.cpp
achineInstr.cpp
achineInstrAnnot.cpp
|
179cdfb5c844005ed94409e9405473029f2296a6 |
09-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
* Removed extraneous #includes * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3277 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
egAlloc/PhyRegAlloc.cpp
|
b91b31c12df168816702a5e58ecdc56031b27ef6 |
09-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
We are using std::vector, so remove extraneous namespace prefixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3275 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
b0cfa6dfecc882866a45353466a57db4ea937d95 |
09-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
Very minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3271 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
5f0eb8da62308126d5b61e3eee5bee75b9dc5194 |
08-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
- Cleaned up the interface to AnalysisUsage to take analysis class names instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3265 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
dd5b49512976df3225b67f9685642253186cde3d |
08-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
- Cleaned up the interface to AnalysisUsage to take analysis class names instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3264 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
1b51b1b4f9c191c070554df5d1f86b5aeefd0453 |
04-Aug-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add function GetConstantValueAsUnsignedInt. Fix 2 bugs in FoldGetElemChain so index vector is not modified when no GEPs are folded in, and so a hasLeadingZero is computed only for the last folded GEP, not the one after that if any. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3244 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
2e1749bbf8c25a99c6b951e4d2fb771f906434ea |
30-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
* Move InstructionSelection Pass here instead of living in Sparc.cpp. It is platform independant afterall. * Object orientize the functions, cleanup code a bit. Instead of static global functions, the helpers for instruction selection are now part of the InstructionSelection Pass class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3147 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
67fcce2b1968494d776f79413c216777c3f30d7e |
30-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
Remove unused vector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3143 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
d8bbc06c8782866ec2fa3226b0fe2f77c4897b09 |
25-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
Refix stuff for GCC 2.95, 3.0.4 & 3.1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3094 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
e95ce74b80c5b366abfa1f67254219bf24b05ea3 |
25-Jul-2002 |
Mehwish Nagda <nagda@cs.uiuc.edu> |
now removes deleted nops from MachineCodeForInstruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3090 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
0c0edf8afc35a42b15a24ebb5fa5f3fc674290ae |
25-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3075 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
achineFunction.cpp
achineInstr.cpp
|
cb6289a73d8caaad87da1b26f03b9b63b7b712cc |
24-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3058 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
1089790546ae7c5e8bcce99e60b19b3b23546bf3 |
24-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
Non-standard hash classes are not in the std:: namespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3057 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.h
|
09ff1126dab045d68be7d9e8ae7ad0601002a718 |
24-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3056 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
achineFunction.cpp
|
6cf7849c1ab6782c583d2d13a4bab5760e9c202d |
23-Jul-2002 |
Mehwish Nagda <nagda@cs.uiuc.edu> |
moving to the Reoptimizer/Mapping dir git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2993 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/MappingInfo.cpp
|
5ff62e90d0bc321206023897edc1e2691cb0fbb6 |
22-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2985 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSelection/InstrSelection.cpp
egAlloc/PhyRegAlloc.cpp
|
cafc0d20bb68d539c46dcbb560616240225634a8 |
20-Jul-2002 |
Mehwish Nagda <nagda@cs.uiuc.edu> |
changed size computation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2974 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/MappingInfo.cpp
|
e01166591f7c0d0a560c9c71e07eb1d5a2f02bef |
18-Jul-2002 |
Mehwish Nagda <nagda@cs.uiuc.edu> |
added check for Function with 0 BB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2942 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/MappingInfo.cpp
|
3115540870939b2bd7100c6552339c3d30ac0fef |
16-Jul-2002 |
Mehwish Nagda <nagda@cs.uiuc.edu> |
Now will profile all Basic Blocks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2922 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/MappingInfo.cpp
|
b43086b4b7a3e79f71fc19d150803ca3c912975c |
16-Jul-2002 |
Mehwish Nagda <nagda@cs.uiuc.edu> |
Initial checking : Writes LLVM - MI mappiing to the .s file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2911 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/MappingInfo.cpp
|
e683f773a47423bbbaf90980cefea6f19c6f6d83 |
11-Jul-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
added std:: to endl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2875 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
cd13e7a5ee81dd4de7fc6d98f65b256a5eb3f994 |
10-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix print of BB name in dump(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2861 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
3bc9ef9317982cd7157ff29fb6bc3a60a11c3f78 |
10-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add support for marking each operand as a %hh, %hm, %lm or %lo. Represent previous bools and these ones with flags in a single byte per operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2860 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
d58290ed3b0bba30954a16db47a932d2e9716083 |
09-Jul-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
changed mem_fun to std::mem_fun git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2847 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
f5af636dbeb516e2d929e026d997841ffb431948 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Significant changes to correctly spill CC registers and to correctly handle conditional move instructions: -- cpMem<->Reg functions now support CC registers (int and FP) correctly. -- Scratch registers must be explicitly provided to cpMem<->Reg when needed, since CC regs need one to be copied to/from memory. -- CC regs are saved to a scratch register instead of stack. -- All regs used by a instruction are now recorded in MachineInstr::regsUsed, since regs used to save values *across* an instruction are not obvious either from the operands or from the LiveVar sets. -- An (explicit or implicit) operand may now be both a def and a use. This is needed for conditional move operations. So an operand may need spill code both before and after the instruction. -- class MachineCodeForBasicBlock is now an annotation on BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2833 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
c9a0ca5171f8244270310a757a13190d5555c6bf |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
MachineInstr* in vector are not const (and never really were) because operands may be modified directly to set register. Also, class MachineCodeForBasicBlock is now an annotation on BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2832 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
|
45c3877b5c7a42454e78c35b24f973508cfa3738 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Rename static struct Initializer to avoid name conflict with BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2831 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
432e1ca621af9a3d51fe658d8c9460828bdd8524 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix printing of BB in dump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2830 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
1dcfd3c1a6af9e118d42c54a7d8e680fb6aae4ff |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.h. This class is now an annotation on BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2829 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
bf82a42d1c325b235923bddcd9b7f995027cc91c |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
MachineInstr::dump() now takes no arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2828 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
11991ac70f25d8224d026e76af4f1ed41576eac9 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Implementation of class MachineCodeForBasicBlock. Moved here from MachineInstr.cpp to make it an annotation on BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2827 91177308-0d34-0410-b5e6-96231b3b80d8
achineBasicBlock.cpp
|
0baf1c0911017be6626cf4fe4cc78d345fdc9a27 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
A single MachineInstr operand may now be both a def and a use, so additional dep. edges have to be added. This was needed to correctly handle conditional move instructions! MachineCodeForBasicBlock is now an annotation on BasicBlock. Renamed "earliestForNode" to "earliestReadyTimeForNode". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2826 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
|
c2580ddb0888c0b823dab5e0b9f27bbf4afdd705 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
getUsableUniRegAtMI interface simplified slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2822 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
7a4be9580e095ca4bffd16ec6ec4882f6270fb09 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}. An (explicit or implicit) operand may now be both a def and a use. Also add a set of regs used by each instruction. dump() no longer takes an optional argument, which doesn't work in gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2821 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1871b2f1c23b522870aa69fd908bbaccced22e71 |
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
MachineInstr* in vector are not const (and never really were) because operands may be modified directly to set register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2820 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.h
|
000f60d1b14f9b39a39f86b8100d2c77f851ce08 |
30-Jun-2002 |
Chris Lattner <sabre@nondot.org> |
Remove tag that just clutters diffs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2807 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
cfb22d3c14b53bc73ec90f7d471c2d2d2453cf03 |
25-Jun-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
changes to make it compatible with 64bit gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2791 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
egAlloc/PhyRegAlloc.cpp
|
7e70829632f82de15db187845666aaca6e04b792 |
25-Jun-2002 |
Chris Lattner <sabre@nondot.org> |
MEGAPATCH checkin. For details, See: docs/2002-06-25-MegaPatchInfo.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
0b12b5f50ec77a8bd01b92d287c52d748619bb4b |
25-Jun-2002 |
Chris Lattner <sabre@nondot.org> |
MEGAPATCH checkin. For details, See: docs/2002-06-25-MegaPatchInfo.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2778 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
achineFunction.cpp
|
85c5465e072b3bbebb1f5e112fb2db46f7fba148 |
23-May-2002 |
Chris Lattner <sabre@nondot.org> |
Convert RegClass::IsColorUsedArr from a dynamically allocated array to a vector. This makes asserting on array bounds easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2731 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
egAlloc/RegClass.h
|
70e60cbd4dd59b61e3e9d0a55f24cf92b0dc8724 |
22-May-2002 |
Chris Lattner <sabre@nondot.org> |
Move debug options out of header files so that the header does not have to #include CommandLine.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2712 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.h
egAlloc/PhyRegAlloc.cpp
|
e87adaac31aff4c442c793012f9cb1508e4aecad |
22-May-2002 |
Chris Lattner <sabre@nondot.org> |
Avoid #including CommandLine.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2710 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegAllocCommon.h
|
ad86b74bafe3f25000d0172fda4479c0a305ff3a |
20-May-2002 |
Chris Lattner <sabre@nondot.org> |
Hide debugging options git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2676 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSelection/InstrSelection.cpp
egAlloc/PhyRegAlloc.cpp
|
5245f853c54e422b3004d5f80d2aaaebbceb8468 |
20-May-2002 |
Chris Lattner <sabre@nondot.org> |
Don't lose namespace qualifications on previous patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2664 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
0243ff9e62c3c2c5d230a24b9901ecce7807bb38 |
19-May-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
InstrnsBefore and InstrnsAfter are now vectors instead of deques. May be slightly less efficient but significantly reduces special cases interfaces in code generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2649 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
36f0a9e5a63fd6f31ae47fd285ce133bde0c5a1e |
19-May-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Better folding getelementptr operations with mixed array and struct indexes. Update operand values in CallArgsDescriptor (a new class) when replacing constant values with immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2645 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
629b70f274deb5d8ff19d7046b10df0fe1c84dc3 |
19-May-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
cpValue2Value now needs a vector of MachineInstr to store return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2644 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
7e684a956a70980160ff038047fd5f6696461db4 |
19-May-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Annotation class for MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2643 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstrAnnot.cpp
|
dabb41d93de9b2d8f2d506caf611311bce6a188c |
19-May-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Numerous bug fixes: -- passing FP arguments to functions with more than 6 arguments -- passing FP arguments to varargs functions -- passing FP arguments to functions with no prototypes -- incorrect coloring for CC registers (both int and FP): interferences were being completely ignored for int CC and were considered but no spills were marked for fp CC! Also some code improvements: -- better interface to generating machine instr for common cases (many places still need to be updated to use this interface) -- annotations on MachineInstr to communicate information from one codegen phase to another (now used to pass information about CALL/JMPLCALL operands from selection to register allocation) -- all sizes and offests in class TargetData are uint64_t instead of uint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2642 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
9b625030c8427a3bc56f5993c0b5b214c393042f |
06-May-2002 |
Chris Lattner <sabre@nondot.org> |
Replace all usages of Type::isPointerType with isa<PointerType> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2486 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
86e9187dccd1ef73cc2d498bb4828162d11dd650 |
29-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Add neccesary #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2406 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
c6f3ae5c66c8e0dab6a2bd9601d0e253ef9ba794 |
29-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Eliminate duplicate or unneccesary #include's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2397 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
achineCodeForInstruction.cpp
egAlloc/IGNode.h
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
egAlloc/RegClass.h
|
96c466b06ab0c830b07329c1b16037f585ccbe40 |
29-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Add new optional getPassName() virtual function that a Pass can override to make debugging output a lot nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2395 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
egAlloc/PhyRegAlloc.cpp
|
97453d60c6d7a3235d974e755bd9736c4da6588a |
28-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Include appropriate file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2379 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
31bcdb822fe9133b1973de51519d34e5813a6184 |
28-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Split ConstantVals.h into Constant.h and Constants.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2378 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelectionSupport.cpp
|
1b7f7dc4b45a900fae2e9b062d588a995935727a |
28-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes to the global namespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2370 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
8fc2f2072de83665ae20e06929e28317f449bcdf |
28-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Remove all contents of the cfg namespace to the global namespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2369 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
483e14ee0412a98db1fb0121528d8d621ae3dfdb |
27-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
s/Method/Function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2336 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
f57b845547302d24ecb6a9e79d7bc386f761a6c9 |
27-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
* Rename MethodPass class to FunctionPass - Rename runOnMethod to runOnFunction * Transform getAnalysisUsageInfo into getAnalysisUsage - Method is now const - It now takes one AnalysisUsage object to fill in instead of 3 vectors to fill in - Pass's now specify which other passes they _preserve_ not which ones they modify (be conservative!) - A pass can specify that it preserves all analyses (because it never modifies the underlying program) * s/Method/Function/g in other random places as well git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
egAlloc/PhyRegAlloc.cpp
|
d23a229c4cd4019ecfdd18b855c32146922d1b14 |
25-Apr-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Don't record instructions for copying method arguments in the AddedInstrns sets for the first machine instruction. It is hard to ensure that the right order is preserved, and sure enough, the order was broken. Instead, use a separate set for the function entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2318 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
4876209aa6ac2db626ab21e996b37005c03600da |
25-Apr-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Don't record instructions for copying method arguments in the AddedInstrns sets for the first machine instruction. It is hard to ensure that the right order is preserved, and sure enough, the order was broken. Instead, use a separate set for the function entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2312 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
93240fe6b1f79e9ccb271a214a01141f8c2c123a |
25-Apr-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Improve printing during dumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2311 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
03d33bd2640806ce8e661acf7bcfa3726a14d606 |
25-Apr-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Optional args are no longer allocated as they are discovered. (This can be improved to avoid making the initial pass over the method.) Also, ensure automatic vars and reg. spills areas are not extended if their sizes are used for computing some other offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2310 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
167b9629e18bace3e735b87e21ecf7b967672a4b |
15-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Only emit message if DEBUG_RA is on git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2252 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.cpp
|
73e214244f2403b5ba0ef81b8839600f3c8ffebc |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Move FunctionArgument out of iOther.h into Argument.h and rename class to be 'Argument' instead of FunctionArgument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2216 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
9bbf99de5faa3565d4b6cf22e50d07437f0d2328 |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
No need to reserve space, erasing does not change the size of the container. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2201 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
af50d00829b8d9ddbaf819619cd14758c6b96e21 |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
* Add a file header with some information * Delete the DelaySlotInfo objects created by the SchedulingManager class. These leaked objects were accounting for 3/4 of the memory leaked by the backend, so this is a relatively major win. * Reorganize SchedulingManager::getDelaySlotInfoForInstr so that it has better code locality (making it easier to read). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2197 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
f3dd05ca03c9c649bf5b8891b73cda1e11ab914e |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Clean up the ownership model a bit so that nodes actually get deleted more frequently. This still leaks edges quite a bit, but it leaks no nodes (I think). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2190 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
0b0ffa0800c51589a3b2f2371c9f6a0092bddaeb |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Convert AddedInstrMapType to contain AddedInstrns by value instead of by pointer so that they do not all get leaked! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2188 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
244212a80b7c86fde230d06e785063ab74d4bd24 |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
GCC3.0 is reported to die without an alloca definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2186 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
7884cd17aa830bc8d4af1c082cc2d1f7460ccf34 |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Don't leak memory like a seive git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2185 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
69a34cddaf00ebd4ffdcbda15db0333134298703 |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Value cannot be directly instantiated. I think that this code was TRYING to make a PHI node, although it was badly broken. This keeps tests passing, so we'll go with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2184 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
b7653df0853f06112b741be09f1b7ae5a6aa6fde |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
s/Method/Function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2180 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.cpp
egAlloc/PhyRegAlloc.h
egAlloc/RegClass.h
|
4d669b510c1d609c6b3fe98ac14ae38bd7c011f6 |
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
s/method/function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2177 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
egAlloc/RegClass.cpp
|
2fbfdcffd3e0cf41422aaa6c526c37cb02b81341 |
07-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Change references to the Method class to be references to the Function class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2144 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
achineFunction.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
1f818610285249f94626d53ebf54e9bf7cf65f5b |
31-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add method clearCallInterference(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2071 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
|
fa79e6e869264f6bf8b134302e4218f08f1f0ced |
31-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Include temp. values when computing max. size of stack frame! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2070 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
1792779edffe9e41cb0c07298b4dd0ef4acb0f2a |
31-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix a bug in previous bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2069 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
1a53f03392ea21a47745430057f0b342129dd902 |
31-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix: address used by indirect call instruction should also be marked as having a Call Interference, even though it may not be live after the call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2068 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
79df7c0aaa18129e55968c8783ef8346807bd4af |
26-Mar-2002 |
Chris Lattner <sabre@nondot.org> |
Change references from Method to Function change references from MethodARgument to FunctionArgument git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1991 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
9c4f7268c6f149e0d81c7c1d24d73d944c1909ef |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Destroy MethodLiveVarInfo after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1976 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
97fb99bc540c1b5611d85d09191f4c5311cf075a |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use deterministic iterator for SchedGraphs. This is actually not useful right now when we only do local scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1975 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
1392d6903cff7a770674ddaa8651667c179c5c51 |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix: nextToTry was not being initialized in one case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1974 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
|
7c7e46ae5fab1b672bb4f4cd5d04884f93f762c4 |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add option to disable scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1973 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
802cec485f4d1a1b48df10a91b1f96945325c87e |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add option to disable scheduling. Destroy live-variable information after scheduling so it is recomputed before later phases (e.g., reg. allocation). Use deterministic iterator to enumerate sched graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1972 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
cf8a98f2c20811c03b3cb7f0c6e00e141f9db24f |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Minor changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1971 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
ded1bf8cd8e5e289e038b8f2b30801d25fab6875 |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Re-fix bug: Put back MachineCodeForInstruction::dropAllReferences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1970 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
|
e4e4d4e2f9d49855712f6dc9e785d5d9416f0dab |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix padding for variables allocated on stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1969 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c941b87397877a2fc76980935765e70262828e4c |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major overhaul to FoldGetElemPtr to handle mixed array and struct refs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1968 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
4e7bc49b54c18440c1a5ffdffbee75c7371f857e |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use deterministic iterator for treeRoots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1967 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
d95919cbd09007f3e363180c3059a63287f4edd1 |
24-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Change treeRoots data structure to make enumeration deterministic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1962 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
e7506a366e8bd56c97d10beb68e4db953aebaeca |
23-Mar-2002 |
Chris Lattner <sabre@nondot.org> |
Rename Method to Function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1957 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.h
egAlloc/LiveRangeInfo.h
|
23a4c8fcb5135622d007b162a5e3fcd44dc2ac0c |
18-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Big bug fix: getUsableUniRegAtMI needed to return values in arguments but did not pass the arguments by reference! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1906 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
89e2da034a02cd33b306b59dbbf607650cca1c4c |
18-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added function computeOffsetforLocalVar to check how big the offset-from-FP will be before allocating space for a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1905 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
c356e565a69e56993d018c7d94194e504a78285f |
18-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix in setting CC register. Also use distinct names for the three types of SetMachineOperand to avoid painful overloading problems and errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1904 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
42f632041dcce6335349512724f5ce648f46f08b |
18-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Constants are now added to the constant pool only when a load instruction is actually generated for them. Rename the different versions of SetMachineOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1903 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
1ed009f66ed7b5311c8997d785f1a71cd82c9130 |
18-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use vector for machine instructions returned by GetInstructionsByRule. Fix constants in instructions generated for Phi elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1902 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
705f95e0b7cb36b9f3786d4e8397f5226e4acd05 |
18-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Big bug fix: getUsableUniRegAtMI needed to return values in arguments but did not pass the arguments by reference! Also added a function to get a register class by ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1901 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
155d2c93848cece13909a4c4c64a54bafcc8f24d |
26-Feb-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
Change to make it build with GCC 2.95.3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1802 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
b91ca1f7d69172713e44fc04ce46a4db7dd64739 |
25-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Make it compile with GCC 3.0.4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1788 91177308-0d34-0410-b5e6-96231b3b80d8
achineFunction.cpp
|
dfb8b95c2d94d71ec8dd6aae27130b5b485b4718 |
25-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Silence signed/unsigned warnings * Make it compile with GCC 3.0.4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1787 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.h
|
455889aa79e3463a4b0f2161e3d9d72a683268b6 |
12-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into llvm/Support/CFG.h * Make pred & succ iterators for intervals global functions * Add #includes that are now neccesary because BasicBlock.h doesn't include InstrTypes.h anymore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1750 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.h
nstrSelection/InstrSelection.cpp
|
221d688a5ef21a22c2368c9fff0e92d7966c95e5 |
12-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Method.h no longer includes BasicBlock.h Method::inst_* is now in llvm/Support/InstIterator.h GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1746 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
nstrSelection/InstrForest.cpp
achineFunction.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
2f898d207466bf233b55607e404baca302bc7b5e |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Convert operand iterator over to work like an STL iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1720 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
748697d2421051b3ff1263d13cccaf410f3e7034 |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Minor change: Methods that return ValueSet's that are guaranteed to be valid return references instead of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1719 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
egAlloc/IGNode.cpp
egAlloc/IGNode.h
egAlloc/PhyRegAlloc.cpp
|
3773094a1da7d7fc76a2491211fadf734c3b8645 |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Code Cleanups * Removal dependencies on Type.h & remove uses of getTypeID() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1718 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
569ea239f0556f1341a216eac8aed4d3cdaecbf1 |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Code Cleanups of IGNode.h * Removal of getTypeID() methods, and dependence on llvm/Type.h, from IGNode & LiveRange git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1717 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
egAlloc/LiveRange.h
|
7471a7b019b2c4bb9d91a1e1aaf6328e2fc97256 |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Must include SetOperations to do set_* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1716 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
|
296b7730e355a657df9fc5355c2cbe4985219903 |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static function in the one .cpp file that uses it. Use ValueSet's instead. * Prepare to delete LiveVarSet.h & LiveVarSet.cpp * Eliminate the ValueSet class, making all old member functions into global templates that will eventually be moved to Support. * Eliminate some irrelevant const's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1712 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
5e5dfa307a6999cef7cba6d1a594f880ab72c043 |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static function in the one .cpp file that uses it. Use ValueSet's instead. * Prepare to delete LiveVarSet.h & LiveVarSet.cpp * Eliminate the ValueSet class, making all old member functions into global templates that will eventually be moved to Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1711 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.cpp
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
|
0665a5f1f5716a69982f4bcd654e5ace975d0c0a |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Code Cleanups * Introduce RAV to allow stream I/O instead of using printValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1710 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
4996084acfd87c7a7eecb28f9b0c8ea4961c48f2 |
05-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Add a #include not indirectly included any more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1707 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
egAlloc/PhyRegAlloc.cpp
|
4d7fc119b8e717f221a4efaac79214b2d20d2ed1 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* RegisterAllocation _uses_ LiveVar analysis, instead of creating it's own copy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1701 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
9adb7ad457b38de13dd16b86a90f645695dae5a0 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* The itf exposed by InstrScheduling is now a single function to create the right pass * InstructionScheduling is now a real pass * InstrSched _uses_ LiveVar analysis, instead of creating it's own copy many times through a loop. In this was LiveVarAnalysis is actually even SHARED by Register allocation. * SchedPriorities is now passed the live var information in git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1700 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
|
14ab1ce0209343b0e2c424ab8ba32261d4474349 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Switch register allocator over to using LoopInfo directly instead of indirectly through LoopDepthCalculator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1696 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
4911c357e14a6972e7614c52ed87302b280f7c30 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Make LoopDeptCalculator be an internal artifact of how RegAlloc is implemented, do not expose it. Additionally, have it be auto generated by the pass framework for us. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1695 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
3e0f8288e774a88d837329d8f70c02fcbb7e3c69 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Make #include "llvm/Analysis/LoopDepth.h" be an internal artifact of how register allocation is implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1693 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
30adeb6d07e8017e890075d7904b2cefc89c603d |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Add #includes removed from headers * ValueSet interface converted from add/remove to insert/erase * Minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1689 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
f35f2fbbc29b593acfafb85846c4d83b90a505e7 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Remove dependence on BBLiveVar from InstrScheduling Minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1688 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedPriorities.h
|
2f9b28e59a1e10152cd32f2c717e89d47a2fd7e3 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Convert RegisterAllocator interface to opaque pass type, so that users do not need to know _anything_ about RegAlloc to use it. Well in the end maybe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1681 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
0a8ed9401dd5678f03752c2908890b32ba496b6b |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Add #includes neccesary since they were removed from .h files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1675 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
b99bd2b14501fe596de56120d8618042e48509e2 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Move instrIsFeasible from InstrScheduling.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1674 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
2182c785c22a3e805d7d38708e75e5d30c547fdf |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Minor cleanups * Reduce number of #includes, sometimes drastically (LiveRangeInfo.h lost _7_) * Move instrIsFeasible() from InstrScheduling.h to SchedPriorities.h * Delete blank lines at end of files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1672 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
egAlloc/RegAllocCommon.h
egAlloc/RegClass.h
|
77f66c131dd931b2a04c43f72068955a047bb2a4 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Move command line parsing debug stuff to InstrScheduling internal header file SchedPriorities.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1669 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
6dd98a6c317404b3b700573e6b3a7b627ba38ff4 |
04-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined pass that has a very minimal interface (like it should have). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1667 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
f2868ce228ca20f72d1c6fbe241de01975cfe609 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Code pulled out of MAchineInstr.(h|cpp) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1660 91177308-0d34-0410-b5e6-96231b3b80d8
achineCodeForInstruction.cpp
achineFunction.cpp
|
dd1e40b4ce5485e27a0369f5d46882cd4f6786c4 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Lots of code cleanups, no functional changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1650 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
3801f6d38371b734d9de2fb8394ca75d2bf190eb |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Prune #includes * Remove MachineCodeFor(Method|VMInstr) code to their own .cpp files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1649 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
fb3b1ec98260d848dd9a4b74498994aec808e930 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Switch over to cleaner TmpInstruction model git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1648 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
06cb1b738236969eb5bd804f950a2f2e2cfe5047 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Straighten out #includes * Switch to MAchineCodeForInstruction model instead of MachineCodeForVMInstr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1647 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
a8bbb6bcedda02058c5548b8eb99fcc1f348dde9 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Swich to annotation model for MachineCodeForInstruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1646 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
de6dbabaee55de5693950ac5f8d7cb7cc10ba27f |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Remove extraneous #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1645 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
0861b0c3e6a5f66650b0027800ca8e64c6324d16 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Straighten out #includes * Switch from MachineCodeForVMInstr to MachineCodeForInstruction model git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1644 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
3462cae44fb12e22474e935e77d010f4461a6697 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Get machine instrs from Instructin's by using MachineCodeForInstruction::get * Convert a few (*X). to X-> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1643 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
29f4c06b7f12b0da25ee022014bd7e2a72b11142 |
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Add a class forward decl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1637 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
92a12d5c6bf7df4f023000719cdb5c9a31542716 |
31-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
LoopDepth calculation is now in CFG namespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1601 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
a16c3efb9faba1dadea565b0de89234086498ca2 |
23-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
Make it build with 2.95.3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1554 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
dbe5304f77215fd5d211e60c385fb01edf70b24a |
21-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
Oops lost a parenthesis somehow :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1504 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
697954c15da58bd8b186dbafdedd8b06db770201 |
20-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
Changes to build successfully with GCC 3.02 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
achineInstr.cpp
egAlloc/IGNode.cpp
egAlloc/IGNode.h
egAlloc/InterferenceGraph.cpp
egAlloc/InterferenceGraph.h
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.cpp
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
egAlloc/RegClass.cpp
egAlloc/RegClass.h
|
ce773da22344a3942b41dc2019d839f3e9231c21 |
08-Jan-2002 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Fixed a bug in spill cost estimation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1500 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.cpp
|
6a3db8c117b75ebd87d5e7fff213570230d6c436 |
07-Jan-2002 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
PhyRegAlloc.cpp: Added temp area resetting before every call git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1499 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
4f3eb22e1fc8ee46cb8455f36162b5e7837473d8 |
07-Jan-2002 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added destructors and comments. Added correct spill candidate selection logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1493 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
42bd177eae30b6bdef578b6efb21e6c609aa5204 |
07-Jan-2002 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added comments, destructors where necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1491 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
egAlloc/RegClass.h
|
fa24897f9f7b533a451baad86ab7e473c8d534e9 |
15-Dec-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Eliminate all uses of memInst->getIndicesBROKEN(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1485 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
7a1767520611d9ff6face702068de858e1cadf2c |
04-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Renamed inst_const_iterator -> const_inst_iterator Renamed op_const_iterator -> const_op_iterator Renamed PointerType::getValueType() -> PointerType::getElementType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1408 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
nstrSelection/InstrSelection.cpp
achineInstr.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
e9bb2df410f7a22decad9a883f7139d5857c1520 |
03-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Rename ConstPoolVal -> Constant Rename ConstPool* -> Constant* Rename ConstPoolVals.h -> ConstantVals.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1407 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelectionSupport.cpp
|
7061dc50b2513731d7b346ab16183cda4a44619f |
03-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Split the PHINode class out from the iOther.h file into the iPHINode.h file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1405 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
|
cee8f9ae67104576b2028125b56e9ba4856a1d66 |
27-Nov-2001 |
Chris Lattner <sabre@nondot.org> |
Create a new #include "Support/..." directory structure to move things from "llvm/Support/..." that are not llvm dependant. Move files and fix #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1400 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
egAlloc/RegAllocCommon.h
|
4ed17bad69ef7f61bf6236e757732b9ecffa1c59 |
26-Nov-2001 |
Chris Lattner <sabre@nondot.org> |
Stuff after a #endif is not valid CPP input and breaks some compilers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1375 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
69a86e4e23de6811c7f63c22266da8ad8d365575 |
26-Nov-2001 |
Chris Lattner <sabre@nondot.org> |
The old getIndices has been deprecated, because it no longer works. It now is named getIndicesBROKEN() and shall be removed when the codebase is updated to not call it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1338 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
f90870f622a18ae14d72d491eaf6e8dcfe431aff |
15-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Commented some popTempArg.. since it leads to a bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1326 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
07c7086bd29b5c7223945cbdeae48494874de38f |
15-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added naming to inserted phi copy values - for easy debugging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1325 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
achineInstr.cpp
|
ba9d5dba2556de71bb8f3ecca5574450a0197949 |
15-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Fixed a bug in setReLRegsUsedByMI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1323 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
825dd55429f6dfea37a6aeb095a1c0c48018c568 |
15-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Changed some names of methods, added const etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1322 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/PhyRegAlloc.h
|
7c47c7201d762c24bc6140b6e5a2ac511aec5cb1 |
15-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Modify AllocateLocalVar method to take a size argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1318 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f6dfca13955b1eef40745c2b18b81c0ae7f46d41 |
15-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
fixed setUsedRegAtMI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1317 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
20ac79e3298d41be5a22ee8d27acc19eb358ca22 |
15-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Changed phi elimination code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1311 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
8d24337eea5f9462908b7ac07a997935e31ddd59 |
14-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Small changed to printing a machine operand - It the operand is a def, it prints a star after it - only for debugging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1309 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
ecd5813639e305d55ce8c2e3517228e819d5817b |
14-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Don't assume constant operand can only be in position 1! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1308 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
9e29f780296feb1cddffbad640d2f813efc11b94 |
14-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Idiotic error in last fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1306 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
c81174515659e15f2907ec8ced09c6f775738dfa |
14-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Don't need to load a NULL pointer constant from memory! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1305 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
cbddf49665ec3900f285b4972d571fcd90c99180 |
14-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added support method for setting interference for pseudo instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1303 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
22ccb1b90501893021c5dea546fd3cad0269c11d |
14-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added interference for args in pseudo instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1300 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
65ea171409e8c25db20806fb09e820f46e3d11a2 |
14-Nov-2001 |
Chris Lattner <sabre@nondot.org> |
Remove much cruft from the MemAccessInst instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1298 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelectionSupport.cpp
|
84dce16fb193b46d473dc4165f2ca71bd0f622d1 |
14-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
commented out lines printing code after scheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1295 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
f221a2e0a8a37e8ee91ef9c98cac8eb5f8c3cbce |
14-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Fixed a bug concering LR spilling. Earlier, added spilled code was not inserted into the instruction stream correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1294 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
e85f2332dbdd7ed50635b9095d021b086d26f488 |
13-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Do the same for allocating spills to get their alignment right too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1285 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
00521d79bf4ee009f59e726a5eb227e04075f5c8 |
13-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
When allocating space on stack for writing a register, use the size of the register, not the size of the Value type, to get the right alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1284 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
e492c9d4d1a161cd0972bfb8bab33f073fb018b4 |
13-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix in offset alignment computations: don't subtract the padding value from size *before* subtracting size from offset! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1283 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7130938f94726af4c69bcce4d959c91ef024bdb8 |
12-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
For phi elimination, now we are generating only one instruction using cpValue2Value instead of passing vector to createCopyInstructionByType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1272 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
200a4359661e5ef8ec952a088ecc723d4581f606 |
12-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Eliminate most uses of the machine instruction vector for each LLVM instr, since some m. instr. may be generated by LLVM instrs. in other blocks. Handle non-SSA (anti and output) edges and true edges uniformly by working with machine instructions alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1269 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
|
b2490fc4fbab28624aeef9cae6fcde31248ce797 |
12-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added phi elimination code - not final git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1264 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
d9beb975f20cea2d3e9c3f528068cd25b80a1b72 |
12-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Improved printing routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1263 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
af00d485a409983639881b4d34f0cd89e1eb4d38 |
12-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major improvement to how nodes are built for a BB. LLVM instruction is no longer recorded in each node, but BB is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1262 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
|
5567e942c03056cc566225e93a93f6516d73f305 |
12-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Adjust all stack variable offsets to be aligned by size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1261 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
f1a0a1081347ff6177b8b57dc16d841cde89e7fc |
11-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix errors in computing downgrowing offsets, and in computing size of extra outgoing args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1256 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
5b43af962bea1e1e4ca0c8306e60bfbb39e6caba |
11-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Only add true dep. edges from an earlier to a later instruction. This wasn't a problem until we started putting copies for Phi values that produced cycles in the SchedGraph! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1254 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
|
65480b75afbb856e91cf95d2a38bc784a2dc3d30 |
10-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Changed code to ignore Phi Nodes in PhyRegAlloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1253 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
efaf9be8a44eb4c52981009ae8eb2a1e8af5fab6 |
10-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Coalesing bug fix - now checks for the same regType instead of the same regClass since FP class has two reg Types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1236 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
|
ad1400924d9145b71d983c7ae37e38a12a3f0037 |
10-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
No major change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1235 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
fb1a6c87d6ade700f6ef665588bd179b8a604dc5 |
09-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use node->getOpCode() instead of node->getMachineInstr()->getOpCode(). Much nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1223 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
00d91c6cd8ecf8ec4c112bda8df3e57a45f59c33 |
08-Nov-2001 |
Chris Lattner <sabre@nondot.org> |
Add method decl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1217 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
226f1f0b22853a879d142b848fa22e407efc9bd8 |
08-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
corrected insertCode4Spilled ... bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1212 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
5a61d85f9754e178ee434d27eed57e6d9a9b8971 |
08-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Uncommented LR spill code insertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1207 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
e64574ce7198dc0967caf811dd295fd8df91409c |
08-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major change to how defs are found when adding dependences (they are now found as part of the initial walk of the machine code). Also memory load/store instructions can be generated for non-memory LLVM instructions, which wasn't handled before. It is now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1199 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
|
af1d2c80e03b01e995e7a5cdbcdd625082a4ebfb |
08-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
MachineCodeForMethod is now an annotation on class Method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1198 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
38f5d46affe2cd8837c69918b6387783cf73bff3 |
08-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added two minor methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1187 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
|
12af164c87b57b275c4d9830e42b0dd23364c58a |
08-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Removed class RegStackOffsets and used class MachineCodeForMethod directly to manage stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1186 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
be49526193c5d8856d0b3c2721dfa6a4c4010d6d |
08-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major overhaul of stack frame management. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1185 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
achineInstr.cpp
|
d1565abd688daeff10f9398bd04df837b3d467ed |
06-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Fixed bug - added code in pushUnconstrainedIGNodes() to check whether a node is already pushed to stack by a previous call to the same method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1154 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.cpp
|
04cc49be657c034e3427c452473bcf8e8b6e2583 |
06-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix: uninitialized variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1147 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.cpp
|
c352d2c530d88e2f3960eefec65c2b70de40579a |
05-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Modified graph construction to use one pass to find all defs. Avoids having to handle some special cases that cause complex interactions with instr. selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1138 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
|
df1c3b8398d1df253ebd389ac1068ec732a2f28f |
05-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Make reg. numbers signed ints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1137 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
8e7f4091695aad705f84398ede1fccc3796b1fad |
04-Nov-2001 |
Chris Lattner <sabre@nondot.org> |
Minor method rename git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1119 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
a9e45c8d66b84971973d94a0c28cad770eac7cc4 |
03-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added an assertion since it seems like AdjList returns an errornous size in method IGNode::pushOnStack(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1116 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
|
80b1a1a26aaebf13eda9ff6d9c9492b1a06a75de |
03-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added support for correct spilling of %ccr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1112 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
|
51bc0e7994094662ad31ce8b1df8692b97900ba3 |
03-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Arranged stack frame - needs furhter organization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1108 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
ef1b0cb9a5abc13750f67366d99a04d6bf7a2404 |
03-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Arranged stack frame - needs furhter organization Moved InsertCallerSaveInstr to the SparcRegInfo.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1106 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
94e40ef064deec984d25eaceaf684795627f2d5b |
28-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Record constants that need to be emitted in the assembly code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1010 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
d0d79c01b4e1f625c0b8d725626b2123dcae9c77 |
28-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Allow combinations of True/Anti/Output flags for each edge to support, e.g., dependences on Call instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1009 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
a93bbac606cef2c5895a92b9630639d2209c16cf |
28-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add edges between call instructions and (a) load/store instructions, and (b) any instructions that use or set CC registers. Whether or not the latter are needed really should be machine-dependent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1008 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
20c82b12c909ed643e9b47f93a60fefc46753bcd |
28-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added support for spilling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@992 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/PhyRegAlloc.h
egAlloc/RegClass.h
|
174bded6ce100512679db768605611d3bdc3cec1 |
28-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added spill code support; moved insertCallerSaving to SparRegInfo since we need to handle %ccr reg in a special way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@990 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
f7434f0e1d1b7f711d13749efeea18a5f364eeb5 |
23-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
added support to move "added instructions" after the delay slot git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@968 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
251d8db1331e75968231ad69976deb6c904caea3 |
23-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added support to move "added instructions" after the delay slot git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@967 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
c023be29a4efbcea096427029a610c12e6c2b2ac |
22-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use class MachineCodeForMethod to print machine code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@948 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
1d6158f98fb46ccf86af8285f066c8a513e453c5 |
22-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added class MachineCodeForMethod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@947 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
7ad104606557f7b46035556da4d912ad87792290 |
22-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Cosmetic changes only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@946 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
fb8c0533b46309296a3c404d58f6b5d7c337f0f1 |
22-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Modify code that processes delay slots so that it preserves any useful instructions already inserted into delay slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@945 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
b3b6f5338c246ad1b209047cf9422fbf08fb1ddc |
21-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added support for both call/jmpl instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@930 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
44d2b947cb05cf8cbb47ad6a3b63da41e24e2581 |
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added code to support unusable Suggested Colors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@922 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/PhyRegAlloc.h
|
0e62aa6d1425e26702b13692a56a966762dbb0d6 |
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added code to PhyRegAlloc to mark unusable suggested regs Added initialization to AdjList to IGNode constructor - major bug fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@920 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
egAlloc/PhyRegAlloc.cpp
|
36f7707d2a06acfe4199a5533a60a9f50915ddf8 |
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Changed Call interference info git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@917 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
egAlloc/LiveRange.h
egAlloc/PhyRegAlloc.h
|
958faf3f5ac0804b264860ddb3d71fb3758aa8c4 |
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Corrected call interference bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@916 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
0fd8dc809975e6ac13fec7d2459d8d387e05a1fa |
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
no major change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@914 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
69917e27af9248cbce98bb56f1e1b5286aede759 |
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added implict operand printing for operator( ostream, MachineInstr&) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@912 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
97b8b4410a43bfef4e09a8db855e671b5013d060 |
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
removed some debug messages git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@910 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
6d35326cd549163a9af189dddca45c92f6014242 |
18-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
1. Add a bottom-up pass on BURG trees that is used to fix constant operands. Needs to be bottom up because constant values may be forward-substituted to their uses (i.e., into the parent in the BURG tree). 2. Move most of the constant-fixup code into machine-indepedent file InstrSelectionSupport.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@859 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
nstrSelection/InstrSelectionSupport.cpp
achineInstr.cpp
|
f43e3366efa9a3a9f54f886bd6022c2f003adf53 |
18-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Separate VM instruction that generates the instructions that compute a value from the value itself (the one causing an edge) because the latter may be a temporary used within the instruction sequence for the VM instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@858 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
85b46d6c6d2fa35c271b1fce7afa01546511c465 |
18-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@857 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
1b732fd0d628052be7709d393ced28980c0cd027 |
16-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
changed debugg message printing - no change to useful code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@850 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
47c1372e09fd371cb928c7073abfa62a6f24d246 |
16-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
No major change - commented some debug code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@849 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
c4d4b76efbe57025525edf75d6b91cec363d2fc4 |
16-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added support for caller saving git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@847 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAlloc.h
egAlloc/RegClass.cpp
|
634b352fa6ccb7313520dcf552359569bf1b7f47 |
15-Oct-2001 |
Chris Lattner <sabre@nondot.org> |
Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@841 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/RegClass.h
|
1e23ed7c653bb73984766cd3868da4d372ac47f8 |
15-Oct-2001 |
Chris Lattner <sabre@nondot.org> |
Output to cerr rather than cout so that debug info doesn't mess up assembly generation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@840 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/RegClass.cpp
|
a90e77061d52076d9edf09b2f1ae42db04ff14d4 |
15-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
updated suggesting/coloring of call & return args & implicit operands. Changed added instr to a deque (from a vector) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@831 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
21721b63c3b5a314dfa0be14823b10273860787c |
15-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
fixed a coalscing bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@828 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
|
80c685ff1569c899cc941297882af52ea1186579 |
13-Oct-2001 |
Chris Lattner <sabre@nondot.org> |
* Fix privacy issues on RegToRefVecMap * Fix initialization order problems... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@762 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
d33238bb7b6ba1606061a6108e791339b8576c46 |
12-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
--corrected coalescing test: coalsed only if two are of the same reg class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@729 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
|
8d0ffa553fda8d3fe8bfbeb7a10f98c46f8afb4c |
11-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add graph edges due to implicit refs in each machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@724 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
6db77c55ff6c591739b41a5a5666c304405952f0 |
10-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Don't insert useful instructions in delay slot of a RETURN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@721 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
|
a1d14f3555e6726198c892c3417e6366ee75d2b3 |
10-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Machine-independent code generation routines used in instruction selection. These used to live in several different places before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@719 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelectionSupport.cpp
|
9aba1d3307a3ce4a30fa95a08b6b68c445a49b8a |
10-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved code generation support routines to InstrSelectionSupport.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@717 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
achineInstr.cpp
|
b00c582b6d40e6b9ff2d1ed4f5eaf7930e792ace |
02-Oct-2001 |
Chris Lattner <sabre@nondot.org> |
Commit more code over to new cast style git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@697 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSelection/InstrForest.cpp
|
1d87bcf4909b06dcd86320722653341f08b8b396 |
01-Oct-2001 |
Chris Lattner <sabre@nondot.org> |
Convert more code to use new style casts Eliminate old style casts from value.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@696 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
nstrSelection/InstrForest.cpp
achineInstr.cpp
|
9636a91649f168f41b477cba705287665e054f79 |
01-Oct-2001 |
Chris Lattner <sabre@nondot.org> |
Add support for new style casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@694 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
71939033dee310ad85d3ef10691b6588e4cd4fe5 |
01-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
removing phy regaloc - incorrect file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@682 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAloc.cpp
|
64c2cedd6623770b3914942c7f3024598061dc40 |
01-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Change ! ( ...== ...) to !=. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@680 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
e949da5bb18f89de40b6781237dfe616cba7bfc9 |
01-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Improved dump for disp type operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@679 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
c5b4632c27566de7c3fc6679b43d7da4f4a29666 |
01-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fixes: (1) Ensure that delay slot instructions are not moved out of place (this was happening for some CALL instructions). Basically, we need to move all delay slot instructions out of the graph and handle them along with the delayed control transfer instruction. (2) Mark scheduled instructions correctly when instructions are scheduled in more than one cycle in a single step (due to delay slots). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@678 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
4a87b38ba9ce13fd24d469a36360e947c01c12c9 |
01-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Minor changes for bug fixes in SchedGraph.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@677 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
5316f8fa2f2714e243f2dea787025f01f6750d07 |
01-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Two bug fixes: (1) Add edges for Values that are written by multiple m/c instructions (2) Add edges for LLVM operands that are not machine operands (e.g., Call args) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@676 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
ab304c42c2d7c3ab1109c423774bddb85867715f |
01-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
added suggesting color support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@673 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
|
a5ab9648a8e295a84817327d96ed4f83fa468d0c |
01-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
--added suggesting colors; call/ret arg handling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@670 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
|
3ff4387113d7e74a8aa73f80c3518cb95f09a64b |
29-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Pull iterators out of CFG.h and CFGdecls and put them in Support directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@664 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
|
24fad613ba086343c55031067c6eb3808be9e3a5 |
20-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
-- removed debugging messages git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@651 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAloc.cpp
|
23d95af6326086aec0c667f00ebc1b6a1bbfc7ec |
20-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
-fixed return value bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@650 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAloc.cpp
|
045e7c8434cc9b61413c0b4df3b8568e79fe28bf |
19-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Change debug info from #define to command line option Clean up extra debug info that wasn't guarded git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@647 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.cpp
|
6edcad89e7d5ff58dc347206e8d0c5c7a6459505 |
19-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Change debug info from #define to command line option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@646 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegAllocCommon.h
|
4c3aaa4adb12aa140742eaa1f9e79c2bebf14596 |
19-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
* REMOVE extraneous debug info if DEBUG_RA is not set * Spell PhyRegAlloc right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@645 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAlloc.cpp
egAlloc/PhyRegAloc.cpp
|
80acc6cf43af185f406cbe29b3ba902a3528717f |
19-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@634 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
e727f8553d713536f1ed8302019deeb8ab880602 |
19-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
-- updated printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@631 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAloc.cpp
|
7e5450312d6d8de18f4a4846cb40789f89c75299 |
18-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Remove a copy of a bunch of code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@630 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAloc.cpp
|
921b5e14715f241b5050dfbe063621ded1344893 |
18-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Don't check for null on delete git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@624 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
137f7202c75d44903d0df89971396684bcc66212 |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Cast unsigned to int! It was causing a nice little bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@614 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAloc.cpp
|
6e447181928b95902c38ea89e57bc835ecd83cb5 |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Minor changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@613 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
achineInstr.cpp
|
4c31fb5fbb9c2a3feaf9d8cc565f85cb805a8125 |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Don't add instructions to subtree for Phi or Call. Free tree nodes when done. Avoid obscuring code with for_each and bind_obj :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@612 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
fe30f1f664500c6cd99baf02cae0fc3680864323 |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Format file header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@611 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
|
f0ba28045f28b331fe722c21c9dfcaefbdbc393d |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add new entry/exit edges when removing delay slot nodes from the graph. Renamed some header files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@610 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
8b6d2456934612cc61b2ccafe3c3146c78dfbdb0 |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved erase edge functions to class SchedGraph. Add new dummy edges when deleting existing edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@609 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
851d44c52245ffaa4ad313204e78900c5fc3c9b5 |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Renamed some header files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@608 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.h
|
f0b6d7960c26c5a2422f12448429eb460635fe01 |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved erase-edge functions from SchedGraphNode to SchedGraph. Renamed some header files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@607 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
4bc86976bb14ce66b734a534351a4e9fb027d17d |
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Minor fixes: renamed target machine files; fold sched info into TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@603 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegClass.h
|
6b0a8b5b1af555e7c902ccc806dbb7372e15b026 |
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
modified machine code printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@595 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAloc.cpp
|
6053b9337bedd7fdcdea3742199708d2f173d878 |
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
--added methods for printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@592 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/PhyRegAlloc.h
|
ed8f674b9a18312886355288ac49f9a2dd5e4e94 |
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
added setRegForValue to MachineOperand class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@591 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
0931a01f57c2ebcf7a35b5d2f1a6971822336f3b |
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
fixed printing messages git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@590 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAloc.cpp
egAlloc/RegClass.cpp
|
4d0d6329274771168be50a77da57a892a86ea45b |
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
-- debug messages dissabled git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@589 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/RegAllocCommon.h
|
1bf6d645cd8e167851660e841276dcc53be0e344 |
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
--reg alloc code added git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@587 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRangeInfo.h
egAlloc/PhyRegAlloc.h
egAlloc/RegClass.h
|
1f3b29fc72972c84a7c2f742ddd028dbd86dc0c9 |
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
-reg alloc code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@586 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/Makefile
|
1506aef6d4c31e1f8ddc31b1d838e2b10b9694be |
14-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
added RegAlloc Directory to DIRS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@581 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
8e6047920dbf22a1edcbd98e65a8bc57a56c0e17 |
14-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@580 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.cpp
egAlloc/InterferenceGraph.cpp
egAlloc/LiveRangeInfo.cpp
egAlloc/PhyRegAloc.cpp
egAlloc/RegClass.cpp
|
c0c77083ba7915fabbe86065a77f2b7bb5636bef |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Add a forward decl, oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@573 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.h
|
46cbff625eb9593cf9ddac415c39311a54aa27fa |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Chris seems fond of #include <vector>. Fix these. Also convert use list in Value to a vector instead of a list. Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@572 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
nstrSched/SchedGraph.h
nstrSched/SchedPriorities.cpp
nstrSched/SchedPriorities.h
|
e5bc8b06533ba0f50403158a63f99a0c83da0493 |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Split Target/Machine.h into three files: * Machine.h * InstInfo.h * SchedInfo.h TODO: Split out reg info stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@567 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
egAlloc/RegClass.h
|
b26bcc5087029ffe8037ed9036ff74430c6054cf |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Make a new llvm/Target #include directory. Move files from lib/CodeGen/TargetMachine to lib/Target Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h} Prepare to split TargetMachine.h into several smaller files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@566 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
nstrSched/SchedGraph.cpp
akefile
egAlloc/RegClass.h
argetMachine/Makefile
argetMachine/TargetData.cpp
argetMachine/TargetMachine.cpp
|
f6e0e2813526b4ebea473427ea5ffd88bb1559ac |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Checkin changes to: 1. Clean up the TargetMachine structure. No more wierd pointers that have to be cast around and taken care of by the target. 2. Instruction Scheduling now takes the schedinfo as an argument. The same should be done with the instinfo, it just isn't now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@565 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
f6374bfd69f9acd7c128ca44f933df77614bcefd |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Move the sparc target to a new lib/Target directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@562 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Makefile
|
1fddfd18abde2578a487bb247110acfd2226d62b |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Move the contents of the CodeGen/TargetMachine/Sparc directory to Target/Sparc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@560 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Makefile
argetMachine/Sparc/Sparc.burg
argetMachine/Sparc/Sparc.cpp
argetMachine/Sparc/SparcInstrSelection.cpp
argetMachine/Sparc/SparcInternals.h
argetMachine/Sparc/SparcRegInfo.cpp
argetMachine/Sparc/SparcRegInfo.h
|
0e6530ee1b2641060736e161425e759c051a3544 |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
This checkin represents some cleanup of the backend, implementing the following things: 1. The TargetMachine structure is free to decide the process a particular target uses to generate code. 2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory. The Sparc.h file that is globally visible is just a stub. 3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@559 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
egAlloc/PhyRegAlloc.h
argetMachine/Sparc/Sparc.burg
argetMachine/Sparc/SparcInstrSelection.cpp
argetMachine/Sparc/SparcInternals.h
argetMachine/Sparc/SparcRegInfo.cpp
argetMachine/Sparc/SparcRegInfo.h
|
d8dc93d0ac1e4f0c6413eef2b48972ebfcef884d |
14-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Updates to use local header files. Note that this reverted changes that Ruchira commited that broke the build and are unmaintainable without other checkins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@557 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.cpp
|
5f6baf78ea26168d328444f15bc1da355afd88a8 |
12-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
More cleanups, preparing to revamp InstrForest to, among other things, not leak all its allocated memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@553 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
argetMachine/Sparc/Sparc.burg
|
4ddb4c82d7451f7ab0269a4d0ca948f96e80402e |
12-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
* Clean up InstrForest * Fix ins sel problem, test case: void "foo" (int *%x, int *%y) begin seteq int *%x, %y ret void end git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@552 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
argetMachine/Sparc/SparcInstrSelection.cpp
|
d268ad6e2e6c224c688a8e2a51de706e9e6f8165 |
12-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminate 'BasicNode' from InstrForest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@551 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
argetMachine/Sparc/Sparc.burg
argetMachine/Sparc/SparcInstrSelection.cpp
|
c2a2396e17f8fd6c78afd81368d2b80e8cfe6c42 |
12-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminate MainTreeNode function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@550 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
achineInstr.cpp
|
974e73a086e5faf8a3ebeec86df78abe4c4b248b |
12-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Remove irrelevant gross K&R Cisms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@549 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.burg
|
c4e09ec453af406db7dc92e7d994d727edc7663b |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Use type checking predicates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@543 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
79a4aeb61c5af98e39dd657d7fff952908540de6 |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Use correct casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@542 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/TargetData.cpp
|
1a4f8ae3c8f859b5ff6a84ba93810b563e8015d6 |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Use predicate for Value type test Use builtin casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@541 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
919758563deb865be67c7f861a9dfd2da4a895c8 |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Use predicate for Value type test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@540 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
b221a763862ccaed46dee3fbf56c384981d84fbd |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Fix a bug I introduced (assertion failed: Unknown operand type), and convert to predicate style for type checks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@531 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
52bdd8aaa34f2244ec426f3fd0f77992c31608d0 |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Implement the subset of the GetConstantValueAsSignedInt function that is needed, locally. Remove the two support functions to inline their contents. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@525 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
990f2a5a1a0b16d0dc07cee486033c0a3864334e |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Implement the subset of the GetConstantValueAsSignedInt function that is needed, locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@524 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
e6fdb11e1ae823d69e646e76828ccb5d427a9d3a |
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Fix problems with freeing memory twice git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@520 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9856e0c56bb13465cb7002d86ba600915ea1dc9a |
09-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Handle cast float-to-float or cast double-to-double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@512 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
56786d268feeb6d0e895b6c4cba60139285c47d6 |
09-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Fix build breakage. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@511 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
2e5309304a06b5f8b7356af806141972d4df827b |
09-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
I really don't like it when people break the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@510 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
7cd2ca13c1920e9db68695a364048cb6586bb324 |
08-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Committed for compliation. Not yet final. --Ruchira git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@505 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/InterferenceGraph.h
egAlloc/PhyRegAlloc.h
egAlloc/RegAllocCommon.h
egAlloc/RegClass.h
|
c7136d2b09a796528d7ce790190394dceb3ab6c3 |
08-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
--Ruchira git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@504 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/LiveRange.h
egAlloc/LiveRangeInfo.h
|
1fa0c09e9deb4c680d26f304921e940cf549fe0e |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Updates to work with new lack of constant pool git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@490 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
15dedbc585b45ede9497d2084b8d54aa5c56e6b9 |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Remove unneeded #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@489 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
|
c83e954025206605f253498f62f4c1bd218646fb |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Remove unnecesary #include add dump calls pulled out of .h file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@488 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
1ff63a121764f9fbda839bf5e4a31f1c9ffade44 |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
* Remove lots of #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@487 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
1b40a1bacd72494b01ae29d85d8509ff35ddd25b |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Add tags so emacs knows these are C++ files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@483 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
|
822b4fb896846b87dd11a330ae13f2239329aeef |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
The header file for a translation unit should always be included first System headers should be last git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@475 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
feb60593438460fc237353570d2df70153b95f2f |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
A file should always include it's private header file *FIRST* see the coding guidelines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@474 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
97b7311e9f639dcd26c85ade79b54f2ccf9695cf |
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
annotations are now const git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@450 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/TargetData.cpp
|
f2a6477aee0939b18f2d32e6bd2809cb444cfc04 |
31-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@412 91177308-0d34-0410-b5e6-96231b3b80d8
egAlloc/IGNode.h
argetMachine/Sparc/Sparc.cpp
argetMachine/Sparc/SparcRegInfo.cpp
|
840f53ae8ea31f31c11ef555a3faf1d9b1fa8a4b |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added nonterminals for arithmetic operations where one operand is constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@406 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.burg
|
59e3b8220a0acf736bccb2231089e8981591c517 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Makefile for InstrSched/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@403 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/Makefile
|
3b4d062eb37f14023293d8cace5845d04f10b52e |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Remove source list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@402 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/Makefile
|
4c182bf16fac4741a2b7346978a017e1d431ae41 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added directory InstrSched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@401 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
d4228a50669a7b0050ce911f9f02812cf940b4e6 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major changes too hard to document :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@400 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
24084be5f2c94f0a988d5c8d302047b69b21a9a8 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Extensive additions for supporting instruction scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@398 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.cpp
|
bf2423369184b30c538c5c4e0fe005c6a30d44d6 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added class MachineSchedInfo and several supporting classes as a machine description for instruction scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@397 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/TargetMachine.cpp
|
0e1158f3401ca3c3407b6fb5b5250538b04dae1c |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Implementation of instruction scheduling for LLVM. Currently schedules one basic block at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@396 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/InstrScheduling.cpp
|
37866b34376c3143006efde1b544cfce688f7ea9 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Class that encapsulates priority heuristics for instruction scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@395 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedPriorities.cpp
|
78ef1392f3c61ba71683437d895a26269cd6d916 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Scheduling DAG for instruction scheduling. Currently for a single basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@394 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSched/SchedGraph.cpp
|
89df1ae2c3243a8af03da57d4edf626bf4a6e597 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved debug options declaration to header file, and moved a function to MachineInstr.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@393 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
5b79591450c47920139705712a402251af7eed79 |
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved function PrintMachineInstructions here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@392 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
9ff64a8c635d0212fd7c97564d384ec583e23f5d |
27-Aug-2001 |
Chris Lattner <sabre@nondot.org> |
I suck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@385 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/TargetData.cpp
|
e7fb36030bbaa56bfa46a9d62f96f84863f75908 |
27-Aug-2001 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of TargetData code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@384 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/TargetData.cpp
|
e3860e5be5f3bbbfbe27a097aa38ba21f08e3961 |
27-Aug-2001 |
Chris Lattner <sabre@nondot.org> |
Convert to use the new factored out TargetData class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@381 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.cpp
argetMachine/Sparc/SparcInstrSelection.cpp
|
3a13c7e56fe7dd722ce8b9be6b4fde7f37569800 |
27-Aug-2001 |
Chris Lattner <sabre@nondot.org> |
Factor code out to the TargetData class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@380 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/TargetMachine.cpp
|
be88fd03e6d2d9eb8ce570031ce011cb5a6bfd35 |
27-Aug-2001 |
Chris Lattner <sabre@nondot.org> |
Demolish explicit source list git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|
d6075728d26a27f49fb9fe7f5c2cd2e49c31ec8c |
25-Aug-2001 |
Chris Lattner <sabre@nondot.org> |
Remove explicit source list git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@371 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Makefile
|
149977b48a02735861697d5b4df1fe5a8592245f |
13-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Always set isDef for operand in position resultPos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
b0cdcda42a99b5fb4d99c773006acb175ef391a0 |
13-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Changed SetMachineOpernad calls in Set3OperandsFromInstr so that the result position is a def (i.e., added true to the end of call) -- Ruchira git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
81cb20775a5bf9511020ac51b75094a83209e11f |
13-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Changed case 64 to make the first arg of phi a defintion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
0b03c6a492a0e09049b6c0bd127bd0ede7732aa5 |
07-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
45c171ee25619f6650e90fa5e3102d9969fd82b3 |
07-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
added a default isDef arg to SetMachineOperand method - Ruchira git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
98a9c979e271ee24bf5f87baed5050cf9c8b236d |
06-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add CC operand as 4th operand of SUBcc, and mark it as a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@348 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
0fae90e3a2de718e4d3ea1d23ae989024152b795 |
06-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Also, move burg rule to Makefile.common. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Makefile
|
811aad97c1f2b02278e807b854a27db113dc265b |
06-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Better still, lets move pathname for Burg to Makefile.common. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Makefile
|
735c4ce808893ef95e23fc5d0a5152d0b636b75e |
06-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Use full pathname for burg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Makefile
|
960066ad75e1dce3b908c6b211b3d69974380246 |
31-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Simplify command line options, and add option for printing machine instructions without debugging info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
769939dbde3557fc6ec65714aac0e213a917f245 |
31-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added tree nodes for Phi instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.burg
|
e4e77f9efced5862bc8e8f4d5f13dca70c68678c |
31-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Generate tree nodes for Phi instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
1885da4f49cf32efde2d4c840365c4333a0c8579 |
31-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Allow machine instructions with variable numbers of arguments. This is used only by Phi for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
74f4a130d2b4542668bd8b760462ed642b25f075 |
31-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Generate dummy Phi machine instruction, plus a bug fix for BrCond(boolreg). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
76d3520f3e2d9c3ff306155a32ddedfcfa26ad16 |
30-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Record machine instructions in the vector for each basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
3c3b713d55da4f0d13578c38644607716bebcca0 |
28-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added UltraSparcInstrInfo class to specialize class MachineInstrInfo. Relevant changes elsewhere: Added MachineInstrInfo class and moved instruction-related members there. Added several fields to MachineInstrDescriptor (and renamed it from MachineInstrInfo. Latency fields are to support scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.cpp
|
9b0b1ec1ecc14d46a9e6e50e3ba4c054de239d83 |
28-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Eliminate unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
4f231661338dba94d3ba9c3c2dbbeff4fab85597 |
28-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fixes: Store bool result in register after SetCC if the bool value is used by anything other than a branch. Forward-substitute operand of a VM instruction for which no machine instruction is generated (e.g., Cast). Other changes due to changes to classes TargetMachine and MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
44a853cc530e13b3a9aa2692680a8c4c1006af85 |
28-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added MachineInstrInfo class and moved instruction-related members there. Added several fields to MachineInstrDescriptor (and renamed it from MachineInstrInfo. Latency fields are to support scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/TargetMachine.cpp
|
6a175e01eb164baac5cc16311c474ff644ce17c1 |
28-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Eliminate separate enum for operand register type. Use union for alternative data for different operand types. Add iterator over Value* operands in a MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307 91177308-0d34-0410-b5e6-96231b3b80d8
achineInstr.cpp
|
1e78f36127fb0e405d2cf893e2ce3381300a667b |
23-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
CommandLine library cleanup. No longer use getValue/setValue, instead, just treat the commandline args as the objects they represent and the "right thing" will happen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
4bc3daaa3f3c9f22d5dd695e987e8d20f999791c |
23-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminated the Unique class in favor of NonCopyable and NonCopyableV git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
achineInstr.cpp
|
57dbb3ad63b6a0e77798edb156ef43daa3bfc67e |
23-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Moved inline/llvm/Tools/* to include/llvm/Support/* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
75279ccc759499704655a581bacb8dafb3c32b71 |
23-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Clean up hash table usage Remove opaque pointer used for C compatibility which isn't an issue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
|
6c5a32d545f65623fcbb69937406f80e0715931a |
23-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Removal of the redundant CompileContext wrapper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
argetMachine/Sparc/SparcInstrSelection.cpp
|
8f367bd3c0f56b7b318c46cee04f77735f617777 |
23-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Large scale changes to implement new command line argument facility git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
aceb9132b7c0f2b22a2e51d523d0bd46f2cb3817 |
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Privatize LLCOptions. It had no business being visible to the entire program. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
68498cefe602bf5364168b4acd0bd5806cdd72ec |
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminate lots of unnecessary #includes and forward decls there are probably more to kill git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
achineInstr.cpp
argetMachine/Sparc/Sparc.cpp
argetMachine/TargetMachine.cpp
|
942d99e4c8922af40345dce1f886a34d621462c7 |
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminate many unneccesary #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
|
51a9ad93af64476678de425357955cef97e69bec |
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Make code fit in 80 columns more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/SparcInstrSelection.cpp
|
36765b0c3ff1f8ec86e02bc73e8ef8caad0c954e |
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Remove unneccesary #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrSelection.cpp
|
57738965f8687f9f1fca5d444e7a0c173eafb31e |
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Exterminate nasty Cisms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Makefile
|
e23fb7c8ee180fe1783c3ecd7b776678f0cc4636 |
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Refer to include/llvm/CodeGen not Codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Sparc.burg
|
7e583cfafeb07713e5ceadcfe28b70111a528d97 |
21-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Renamed include/llvm/Codegen to include/llvm/CodeGen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
achineInstr.cpp
argetMachine/Sparc/Sparc.cpp
argetMachine/Sparc/SparcInstrSelection.cpp
argetMachine/TargetMachine.cpp
|
a21cf20411c595c81598a53b560a757d9daf299a |
21-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Description of the SPARC as a target architecture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Sparc/Makefile
argetMachine/Sparc/Sparc.burg
argetMachine/Sparc/Sparc.cpp
argetMachine/Sparc/SparcInstrSelection.cpp
|
daae69927f2fe65b15cf68fbbc4c6099e2afc009 |
21-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Base clas for a description of a target architecture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232 91177308-0d34-0410-b5e6-96231b3b80d8
argetMachine/Makefile
argetMachine/TargetMachine.cpp
|
70bc4b5d1a3795a8f41be96723cfcbccac8e1671 |
21-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Instruction selection via pattern matching on instruction trees using BURG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231 91177308-0d34-0410-b5e6-96231b3b80d8
nstrSelection/InstrForest.cpp
nstrSelection/InstrSelection.cpp
nstrSelection/Makefile
achineInstr.cpp
|
05f4745c01db6705edc0c08f12a8da7c3d4f5910 |
21-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
|